Materials and Textures
Note: The book is a work in progress. This page serves as a placeholder for the future content.
Dependent texture reads
If the shader modifies UVs just to do tiling, you can safely move the calculation to the vertex shader. You can do it by putting a VertexInterpolator node after the operation.
Breaking tiling
Atlases, RGB packing
Good cases for packing and atlassing:
- Spatially related textures - maximizes the re-use of data among nearby assets, which helps to do less streaming
- Logically related textures - makes them easy to find, use and modify
Actually the best case may be to pack PBR channels of the same material. Additional effort is often low, as programs like Substance Painter and Designer can handle such packing almost by default. Both positive cases stated above are met, which means good performance and ease of use.