新規グループを作成する
- グループ ビューに入るには、グループ ノードの をクリックします。
- Add ノードと Color ノードを作成するには、それぞれ、Hw Shader Nodes > Math > Add および Hw Shader Nodes > Value > Color を選択します。
- 次のようにノードを接続します。
- Color の RGB アトリビュートを Add の Value アトリビュートに接続します。
- Multiply の Result アトリビュートを Add の Value アトリビュートに接続します。
- Add の Result アトリビュートをグループ ノードの Diffuse Color アトリビュートに接続します。
- 新しく作成された Color ノードを選択します。アトリビュート エディタ(Attribute Editor)で、名前 OffsetColor と順序番号 3 を入力します。
OffsetColor がグループ ノード アトリビュート エディタ(Attribute Editor)に表示されます。
グループを関数に変換する
- Multiply と Add を選択し、Group > Create Group を選択します。
- 新しく作成されたグループで をクリックします。グループ ビューでグループ ノードを選択し、アトリビュート エディタ(Attribute Editor)の名前(Name)フィールドに MyColorFunction と入力します。
- アトリビュート エディタ(Attribute Editor)で、これらのノードの出力がシェーダ コードの関数としてカプセル化されるようにグループは関数(Group is a function)を有効にします。
- グループ ノードのポートに一意の名前を付けます。現在、すべてのポートが Value という名前であるため、シェーダは無効になり、ビューポート 2.0 で赤色で表示されます。
アトリビュート エディタ(Attribute Editor)で、次の情報を入力します。
- Active socket: 0、Active socket label: ColorA
- Active socket: 1、Active socket label: Multiplier
- Active socket: 2、Active socket label: ColorB
注: グループを関数に変換する場合、グループ ノードのすべてのポートに一意の名前がある必要があります。そうでない場合、シェーダは無効になります。
- グループ ビューを終了し、Tools > Compute Graph を選択します。
シェーダ ファイルを保存してシェーダ コードを調べる
- Material ノードを選択し、アトリビュート エディタ(Attribute Editor)でシェーダ ファイルのファイル名を入力し、 を押して HwShader/ディスクに保存(HwShader/Save to Disk)をクリックします。
シェーダ ファイルの保存先のパスは、ShaderFX エディタ ウィンドウでツールチップとして表示されます。
- シェーダ ファイルを調べ、MyColorFunction を検索します。
MyColorFunction はシェーダ ファイル内の関数として定義されています。SHADERDATA 構造体は、入力として表示されます。これは既定の設定です。
- よりクリーンなコードのためにこの設定を無効にするには、MyColorFunction グループのグループ ビューに入ってグループ ノードを選択し、アトリビュート エディタ(Attribute Editor)でDATA 構造体を関数として追加しない(Don't add DATA struct as function input)を有効にします。
シェーダ ファイルを再保存し、SHADERDATA 構造体が入力パラメータとして表示されなくなっていることを確認します。