インスタンス化したシェーダ定義の UI での外観をカスタマイズする方法は 2 つあります。
シェーダ ノードの表示を制御する ShaderDef.RenderTreeLayout または ShaderDef::GetRenderTreeLayout を変更できます。たとえば、ポートのグループ化については、「VBScript の例: レンダ ツリーでポートをグループ化する」を参照してください。
関連付けられた ShaderDef.PPGLayout または ShaderDef::GetPPGLayout を変更できます。これで、標準の PPGLayout または PPGLayout オブジェクトの機能のほとんどをサポートできます。たとえば、パラメータベースのコントロールをカスタマイズしたり(オプションリストをコンボリストボックスとして指定するなど)、シェーダパラメータをグループおよびタブに整理したり、他のパラメータが表示されないようにしたりできます。
コンボボックスコントロールを設定する方法の例については、の例を参照してください。パラメータ定義が UI に表示されないようにする方法を示す例については、「JScript の例: UI のないパラメータ定義」を参照してください。
シェーダ ノードのみに接続可能なポートとしてパラメータ定義を追加するには、パラメータ定義オプションを ShaderParamDefOptions.SetTexturable または ShaderParamDefOptions::SetTexturable(true)に設定し、ShaderParamDefOptions.SetInspectable または ShaderParamDefOptions::SetInspectable(false)に設定しません。パラメータ定義を関連付けられたプロパティページのパラメータとして追加するには、インスペクト可能機能をtrueに設定し、テクスチャ設定可能機能をfalseに設定します。
プロパティ ページに表示する内容は、ShaderDef.PPGLayout または ShaderDef::GetPPGLayout プロパティを介して PPGLayout または PPGLayout オブジェクトを変更して制御できます。単に、表示したくないパラメータ定義は追加せず、表示したいパラメータ定義だけを追加します。ただし、テクスチャ設定可能でないパラメータ定義が表示されてもかまわない場合や、プロパティ ページのコントロールをカスタマイズする必要がない場合は、このオブジェクトにアクセスする必要はありません。
同様に、レンダ ツリー レイアウトに明示的にアクセスする必要があるのは、シェーダ ノードの接続ポートをグループ化する必要がある場合のみです。 その場合、ShaderDef.RenderTreeLayout または ShaderDef::GetRenderTreeLayout プロパティから PPGLayout を取得できます。