By default, ShaderFX texture nodes do not include color management. This differs from texture handling elsewhere in the 3ds Max interface.
The reason is that for game and real-time texturing, many textures should not be gamma-corrected. In particular, normal maps, displacement maps, density maps, and ambient-occlusion (AO) maps do not work correctly when gamma-corrected.
For textures that provide RGB colors, whether you need gamma correction depends on the target. Some game engines use linear color space; others do not. If the target engine is linear, then RGB textures should be gamma-corrected, except for linear formats such as EXR or CIN. RGB textures to be rendered should also be gamma-corrected, again excepting linear or high dynamic formats.
To gamma-correct an RGB texture, do one of the following:
- Select the texture node and on the Properties panel, turn on ConvertToLinearSpace.
This is equivalent to turning on gamma correction with other 3ds Max methods.
- Select the texture node and on the Properties panel, turn on MyTexture / Expose As Material Input. Change MyTexture / UI Order to
1.
The texture map now appears on the Material Editor
Parameters rollout for the ShaderFX shader. You can click the map button and use Gamma controls on the Select Bitmap Image File dialog to change the gamma setting.
Use the Material Node for Gamma Correction
The default Material node has a Gamma socket that globally sets gamma correction for the shader tree.
To set gamma correction for the shader tree output:
- Right-click and from the menu, choose Tools
Toggle Advanced Mode to make sure advanced mode is on.
- Right-click again and choose Graph Nodes
Values
Bool Value.
- Wire the
BoolValue node's Bool socket to the
Material node's Gamma socket.
While the Value of BoolValue is on (true), the shader tree is gamma corrected.
Alternatively, instead of enabling gamma for the Material node, you can use the Display gamma controls to re-apply gamma correction.