インスタンス化したシェーダ定義の 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 に設定します。
プロパティ ページの表示内容を制御するには、PPGLayout または PPGLayout オブジェクトを ShaderDef.PPGLayout または ShaderDef::GetPPGLayout プロパティを使用して変更します。このプロパティを使用して、表示するパラメータ定義を追加します。表示しないパラメータ定義は単に追加しません。 ただし、テクスチャ設定可能でないパラメータ定義が表示されてもかまわない場合や、プロパティ ページのコントロールをカスタマイズする必要がない場合は、このオブジェクトにアクセスする必要はありません。
同様に、レンダ ツリー レイアウトに明示的にアクセスする必要があるのは、シェーダ ノードの接続ポートをグループ化する必要がある場合のみです。 この場合、ShaderDef.RenderTreeLayout または ShaderDef::GetRenderTreeLayout プロパティから PPGLayout を取得できます。