Texture Scaling

Scale down textures and background .exr files for more optimization. To scale down textures, copy the contents of the resize_textures.py sample script into the Windows > Script Editor.

The texture scaling process described below optimizes textures files for the configurator requirements.

  1. Set the target_root variable to the path of the collected folder from previous steps.

  2. Select Ctrl + Enter to run the script. The console prints all files that exceed the max_size specified in the script. Also, any files that are not saved as 8-bit are reported. Non-square image ratios and their sizes are also reported

  3. Comment out the print_info line (by adding a # at the beginning of the line) and uncomment the down_res line (remove the # and indent at the beginning of the line). Include the max_size argument to set the texture ratio for the destination.

  4. Select Ctrl + Enter to run the script. Any files larger than the maximum allowed size are down-scaled.

if __name__ == "__main__":

    # Set this to your root directory with textures you want to get info on or down res

target_root="D:/ConceptCar/ConceptCar_Configurator_collected_3c89c090"

    files = get_files_of_type(target_root, '.png')
    files.extend(get_files_of_type(target_root, '.jpg'))

    #print_info(files=files, max_size=1024)
    down_res(files=files, max_size=1024, enforce_8_bit_depth=True)

Note

.exr file types (environment images) require manual down-scaling in an imaging software like PhotoShop. These files are typically high resolution and memory-intensive at full resolution. All .exr files that were 16K x 8K were scaled down to 8K x 4K to fit on the L20

Textures

Memory Footprint Best Practice: Keep your configurator streaming hardware in mind when authoring textures. If you are planning to stream from hardware with a lower amount of VRAM, such as the L20 on GDN, create your textures in such a way that:

  • Very large textures are not required to capture small details.

  • The number of textures required to load are minimized.

For example, a UDIM workflow usually generates a higher number of textures and may not be optimal for all hardware targets. Instead, use any combination of detail normal maps , tiling textures on materials, and shared normal maps between multiple materials.