0

これがHLSL頂点シェーダー入力の2つのバージョンです

struct VS_INPUTS_0 {float3 Pos:POSITION; float2 Tex0:TEXCOORD0; }

struct VS_INPUTS_1 {float3 Pos:POSITION; float3 Tex0:TEXCOORD0; }

唯一の違いは、Tex0のfloat2とfloat3です。Tex0のタイプがfloat2であるかfloat3であるかを示すために、正しいタイプのTex0を取得するDX9 APIはありますか?

4

1 に答える 1

1

DX9 の場合、私の知る限りではありませんが、DX9 はシェーダーに自動的にパッチを適用します。つまり、ピクセル シェーダーが期待float2し、頂点シェーダーが提供するfloat3場合、それは引き続き機能します。DirectX10/11 では、シェーダー リフレクションを使用して、コンパイルされたシェーダーを照会し、シェーダーが期待するものを把握できます。

質問: 「正しいタイプ」とはどういう意味ですか? それは完全にピクセル シェーダーに依存します。頂点シェーダーだけでは決定するのに十分ではありません。

于 2011-10-09T07:02:53.137 に答える