Patch Textures

High-Level Motivation and Context

Standard 2D textures for objects are hard to create and cause many problems during rendering. The film industry therefore uses surface-based representations for data, where each patch gets its own individual texture. In the widely-used Ptex scheme, each patch's texture is an ordinary 2D texture. In the Mesh Colors scheme, each patch's texture has data stored on the corners of cells instead of their centers.

Such approaches have not been adequately adapted for use on GPUs because making them simple and performant requires hardware support, which is absent on current GPUs (NVIDIA Turing introduces partial support by a Vulkan extension, but it is incomplete).

We describe how to alter the existing GPU hardware to implement Mesh Colors. The changes are surprisingly minor. This project serves as an overview of the issues for hardware vendors looking to add support.


Patch Textures: Hardware Implementation of Mesh Colors

Ian Mallett ,   Larry Seiler ,   Cem Yuksel

HPG '19 Proceedings of High Performance Graphics, 2019


Models tested by our GPU simulation. See also Figure 8 in the paper.

Abstract

Mesh colors provide an effective alternative to standard texture mapping. They significantly simplify the asset production pipeline by removing the need for defining a mapping and eliminate rendering artifacts due to seams. This paper addresses the problem that using mesh colors for real-time rendering has not been practical, due to the absence of hardware support. We show that it is possible to provide full hardware texture filtering support for mesh colors with minimal changes to existing GPUs by introducing a hardware-friendly representation for mesh colors that we call patch textures. We discuss the hardware modifications needed for storing and filtering patch textures.

Resources

Preprint
Presentation Slides
Bibtex

Patch Textures: Hardware Support for Mesh Colors

Ian Mallett ,   Larry Seiler ,   Cem Yuksel

TVCG '20 IEEE Transactions on Visualization and Computer Graphics, 2020

Abstract

Mesh colors provide an effective alternative to standard texture mapping. They significantly simplify the asset production pipeline by removing the need for defining a mapping and eliminate rendering artifacts due to seams. This paper addresses the problem that using mesh colors for real-time rendering has not been practical, due to the absence of hardware support. We show that it is possible to provide full hardware texture filtering support for mesh colors with minimal changes to existing GPUs by introducing a hardware-friendly representation for mesh colors that we call patch textures, which can have quadrilateral or triangular topology. We discuss the hardware modifications needed for storing and filtering patch textures, including anisotropic filtering. This paper extends discussing and comparing patch edge-handling approaches, including an option for sampling the textures of neighboring patches using an adjacency map. We also provide extensive discussions regarding data duplication, a partial implementation present in existing hardware, and the difficulties with providing a similar hardware support for Ptex.

Resources

Preprint
Bibtex