0

実験の基礎として HLSL コードを使用しようとしていますが、uv.zw が何を表しているのかわかりません。それが示している:

float4 uv0      : TEXCOORD0
...
uv0.zw;

UVは2だけじゃないの?uvw が 3 をサポートしていることは知っていますが、4 番目のコンポーネントは何ですか? アルファ?

オンラインの例では、 ではなく値にTEXCOORD0使用されていることがわかりました。float2float4

4

2 に答える 2

0

GPU のすべての値は、実際には舞台裏で float4 です。float や float2 などを宣言すると、使用されるチャネルの数が制限されるだけです。

float2 値が .zw チャネルにアクセスする場合、技術的には未定義ですが、コンパイラはそれを受け入れる場合があります。だから用心してください。

HLSL では、「uv」という名前には固有の定義がありません。その名前で任意の型の変数を宣言できます。

于 2013-03-21T05:23:49.087 に答える
0

テクスチャは 3D にすることができるため、テクスチャ座標は 3 次元 z を持つことができます。

同次座標に精通している場合は、3D 座標でさまざまな変換を表す 1 つの方法が、「w」座標を追加する同次座標による 4D であることを知っているでしょう。

于 2013-03-21T05:13:47.817 に答える