Summary
This article explains the process of pre-converting textures to help decrease render times when rendering with Redshift.
The following topics are covered:
- Pre-Convert Textures - References for converting textures locally.
- Upload Pre-Converted Textures - Steps to upload converted textures.
- Troubleshooting - How to enable debug log verbosity.
- Cache any long pre-render cooks - how to setup your scene to minimize tasks before the render starts.
Pre-Convert Textures
How to convert textures locally using the redshiftTextureProcessor tool.
When a job is submitted to GridMarkets, textures are automatically converted to .rstexbin files. Depending on the quantity and size of the textures, the conversion process can cause a substantial increase to render times. The conversion step can be skipped, and render times reduced, by pre-converting your textures and uploading them to render.
- Instructions on how to pre-convert textures can be found in the Redshift Docs.
When converting textures locally, be aware that the proper conversion options need to be set in order for the texture to match what the automatic conversion process would output from within Houdini.
For example, an .EXR texture used in an environment light might need to have -isphere and -l set as conversion options to render properly and not trigger an auto-conversion at render time.
- "-isphere" is needed if it is a spherical projection map,
- "-l" is needed to keep the image in linear gamma.
An example command using the redshiftTextureProcessor.exe (it can be found under <Redshift_install_location>/bin/redshiftTextureProcessor.exe) tool and run using the Houdini Command Line Tools would be the following:
redshiftTextureProcessor.exe C:\Users\Steve\Desktop\rs_texture_test\hdr\bonifacio_aragon_stairs.exr -isphere -l
If you are unsure about which command-line options to use, check the Redshift Logs for conversion option recommendations.
It's similar in Windows cmd shell - please note you don't need to convert the textures 1 by 1. You can batch convert whole folders. Please consult the examples below.
Setting working directory in the shell to redshiftTextureProcessor.exe's location:
cd C:\ProgramData\Redshift
This command will convert all textures from the C:\textures folder:
redshiftTextureProcessor.exe C:\textures\*
This command will convert all PNG textures from the C:\textures folder:
redshiftTextureProcessor.exe C:\textures\*.png
The image below shows an example of the conversion option recommendations found in a Redshift log.
If the scene is correctly referencing converted textures, it will not display any conversion warnings in the debug logs, as in the example below.
Upload Pre-Converted Textures
Troubleshooting
How to change Redshift log verbosity.
To check if the converted textures are being used when rendering on GridMarkets, set the log verbosity to "debug" by inputting the following command in the Pre-Render script parameter in the Redshift ROP.
Redshift_setLogLevel -L 5
The number at the end will determine what log level to output, where:
0 - Off
1 - Error
2 - Warning
3 - Info
4 - Detailed
5 - Debug
Note that this command will need to be added for each job submission in order to view the debug messages.
The debug messages should now be displayed in the logs found in the render manager.
Cache any long pre-render cooks
When submitting a GPU job to GridMarkets, it is always a good idea to minimize the amount of cooks that are needed to start rendering your scene. The GPU machines are slightly slower on the CPU front than our CPU render machines, so what may seem like a short, few second cook to convert those points to a volume will take quite a bit longer on them. Also, every machine will have to do those cooks, so those seconds can add up to a fair amount of time and money.
This can be avoided by placing a Filecache or File node at the bottom of the network just before your render flag and caching out the geometry. This will allow you to avoid costly slowdowns at the expense of an upload.
Break up the AOVs.
If you can't fit all the AOVs in VRAM then break them up