Extending Render To Texture to Support New Materials

3DS Max Plug-In SDK

Extending Render To Texture to Support New Materials

Overview

The render to Texture feature of 3ds max r5 provides the ability to render out various elements from a standard render for example light maps and specular maps. It works in conjunction with the new Unwrap modifier, which can now flatten texture coordinates. Please see the user guide for a more detailed description.

 

This new feature now creates certain maps that do not fit into any particular material map slot for example, a light map. However 3rd party materials may exist that support extended features. BakeTextureMappings.ini file allows developers to add support for new materials. This provides the mapping between the different baked elements and the map sots in the material.

 

An example INI file can be seen below.

 

[DeclareFileMappings]

DeclareFileMapping1=SaveAll

DeclareFileMapping2=CompleteOnly

DeclareFileMapping3=

DeclareFileMapping4=

DeclareFileMapping5=

DeclareFileMapping6=

DeclareFileMapping7=

DeclareFileMapping8=

DeclareFileMapping9=

DeclareFileMapping10=

 

[CompleteOnly]

shaderName =  blinn

ambientMap=

diffuseMap =   CompleteMap

specularMap=

diffuseLevelMap=

specularLevelMap=

glossinessMap=

selfIllumMap=

opacityMap=

filterMap=

bumpMap=

reflectionMap=

refractionMap=

displacementMap=

diffuseRoughnessMap=

anisotropyMap=

orientationMap=

glossinessMap2=

anisotropyMap2=

orientationMap2=

 

[SaveAll]

shaderName=  oren-nayar-blinn

ambientMap=  CompleteMap

diffuseMap=  DiffuseMap

diffuseLevelMap= ShadowsMap

specularLevelMap=SpecularMap

bumpMap=  NormalsMap

opacityMap=  AlphaMap

selfIllumMap= LightingMap

displacementMap= BlendMap

 

The first section of the file is used to populate the drop down list in the RTT dialog box. For each entry there must be a subsequent entry defining the mapping. In the save all section all the supported baked elements are mapped to a standard material. This provides a method of viewing all the maps created, not necessarily to produce the correct rendering

 

The names, on the left hand side are the supported Maxscript parseable names for the parameters that have been defined in the ParamBlockDesc2 of the material. The name on the right is the actual baked element name used in the RTT. This mapping and naming needs to be accurate as it can cause a run time error in the RTT macro script

 

The Render To Texture script has been written to use the new ViewportManager to handle new Viewport Shaders, Internally it supports the MetalBump and LightMap shaders. The script can be found at UI\Macroscripts\ Macro_BakeTextures.mcr. In the function called UpdateMaterial, there is a section that provides additional ViewportShader support. The script lists all available shaders, so all that is needed is for the developer to supply the correct setup for the shader. Examples can be found in the function setupLightMapShader.

 

Script lists all available shaders, so all that is needed is for the developer to supply the correct setup for the shader. Examples can be found in the function setupLightMapShader