Here are some general guidelines for developing render tree-compatible shaders:
• Break complex shaders into simple, reusable blocks that do one thing and one thing only.
• Use the mi_eval() macros to evaluate parameter values. This allows shader parameters to be connected to other shaders in a render tree. Without mi_eval, the shader is not render tree-compliant. Note that mi_eval is not required for parameters that are not marked as texturable. Also, it is not necessary to use mi_eval on the index and offset parameters for arrays.
About the SOFTIMAGE|3D Shaders and Parameter Structures
• Don’t build render trees using the SI|3D shaders. Instead, use the sib_ and mib_ base shaders.
• Don’t build shaders that rely on the SOFTIMAGE|3D si_default default parameter structures (such as soft_light and soft_material). This structure does not exist in the same form in Softimage.
For example, suppose you had a SI|3D shader that was built on top of soft_material and then applied some effect to the color returned by soft_material.
Instead of calling soft_material, the shader can expose a color parameter that can be connected to a material or illumination shader. So some other shader provides the color, and the shader then does something extra to that color and returns it.
Autodesk Softimage v7.5