Refining UI Controls for Parameter Definitions


There are two ways you can customize the appearance of an instantiated shader definition in the UI:

To add a parameter definition as a connectable port in the shader node only, set the parameter definition options to be ShaderParamDefOptions.SetTexturable or ShaderParamDefOptions::SetTexturable (true) but notShaderParamDefOptions.SetInspectable or ShaderParamDefOptions::SetInspectable (false). To add a parameter definition as a parameter on the associated property page, set the inspectable capability to true and the texturable capability to false.

You can control what appears on the property page by modifying the PPGLayout or PPGLayout object via the ShaderDef.PPGLayout or ShaderDef::GetPPGLayout property: use it to add the parameter definitions that you want to appear and simply don't add the ones you don't want to appear. However, if you don't need to prevent a non-texturable parameter definition from appearing or customize a control on the property page, you don't need to access it at all.

Similarly, the render tree layout does not need to be explicitly accessed unless you need to group connection ports on the shader node. In that case you can get the PPGLayout from the ShaderDef.RenderTreeLayout or ShaderDef::GetRenderTreeLayout property.