これまでは、UV、ColorPerVertex、および頂点単位のユーザ データは、インデックスによって参照されていました。インデックスの使用は困難なため、パイプラインに課題が生じます。
今回、デフォルトで、各データの名前を提供する各シェイプ ノードにデータ ブロックが追加されました(UV、CVP、および頂点単位のカスタム データ)。シェーダにパスされる string 値の読み出しと分析のために、シェーダ API からこのテーブルを照会できます。
シェーディング ネットワークを多数のオブジェクトに割り当てることができ、Maya シーン内で明示的にコネクションを作成しなくても、レンダー時に ColorPerVertex と UV を割り当てることができます。レンダー時に、シェーダは名前のリファレンスをインスタンス単位または shapeNode 単位のインデックスに変換します。
data "pPlaneShape1:PerVertexNomenclature"
"PerVertexNomenclature"
(
"magicnumber" 5149248936,
"tex" // texture space or Maya UVs
[
{ "name" "uvset1", "index" 0 }
{ "name" "myUVset", "index" 1 }
{ "name" "bakeUV", "index" 2 }
],
"cpv" // color per vertex (RGB only)
[
{ "name" "ColorSet1", "index" 3 }
{ "name" "CPV_DirtMask", "index" 4 }
{ "name" "CPV_WetMask", "index" 5 }
],
"cudpv" //custom data per vertex
[
{ "name" "LightIndexField", "index" 6 }
]
)
object "pPlaneShape1"
visible on
shadow 3
transparency 3
reflection 3
refraction 3
finalgather 3
face both
tagged
trilist vertex 4 p n t 2 b 2 u 3 triangle 2
[
vertex data goes here
]
[
0 0 1 3
0 3 1 2
]
end trilist
data "pPlaneShape1:PerVertexNomenclature"
end object
shader "DirtMapCPVLookup1" "myCustomVertexColor" ( "cpvname" "CPV_Dirtmask", .... )