The usual basic data types are supported for ShaderParamDef or ShaderParamDef objects (such as colors, matrices, scalars, strings, booleans, etc.) but there are also a couple of more complex types which combine the simpler types: array and struct types. These basically act as containers for more shader parameter definitions.
In addition, there are reference and property parameters which associate a picking widget in the render tree to handle getting scene objects (3d objects, materials, lights, etc.) and special properties (UV, CAV, weight maps, etc.). For the picking widgets, you can filter what the user can choose from by applying one of the siShaderPropertyFilterType or siShaderReferenceFilterType values.
A number of custom parameter data types are also available which allow you to specify special shader node connection types such as lightmap, geometry, realtime, etc. Like the reference and property look-up widgets, you define the specific data type for your shader parameter by applying one of the siShaderCustomDataType values.
Besides the native Softimage data types, you can also create your own custom parameter data type using the RegisterShaderCustomParameterType or RegisterShaderCustomParameterType method. This method allows you to specify a custom display color in the render tree, specify what port types and shader families can be connected to a port having the data type.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License