実験の基礎として HLSL コードを使用しようとしていますが、uv.zw が何を表しているのかわかりません。それが示している:
float4 uv0 : TEXCOORD0
...
uv0.zw;
UVは2だけじゃないの?uvw が 3 をサポートしていることは知っていますが、4 番目のコンポーネントは何ですか? アルファ?
オンラインの例では、 ではなく値にTEXCOORD0
使用されていることがわかりました。float2
float4
GPU のすべての値は、実際には舞台裏で float4 です。float や float2 などを宣言すると、使用されるチャネルの数が制限されるだけです。
float2 値が .zw チャネルにアクセスする場合、技術的には未定義ですが、コンパイラはそれを受け入れる場合があります。だから用心してください。
HLSL では、「uv」という名前には固有の定義がありません。その名前で任意の型の変数を宣言できます。
テクスチャは 3D にすることができるため、テクスチャ座標は 3 次元 z を持つことができます。
同次座標に精通している場合は、3D 座標でさまざまな変換を表す 1 つの方法が、「w」座標を追加する同次座標による 4D であることを知っているでしょう。