1

HLSL シェーダー パラメーターを設定するための DirectX API は、それぞれのパラメーターが占有するスロットの引数を取ります。これらのスロット番号はすべてのリソース タイプ間でグローバルに共有されていますか、それとも各タイプに固有のスロット番号のセットがありますか。「タイプ」とは、cbuffer、テクスチャ、サンプラーなどの組み込み HLSL 構造を意味します。

これは、私の質問を説明する架空の HLSL シェーダー ファイルです。

// Note the order I declare things here is for the purpose of the question,
// not how I would declare them in a real shader file.

// First constant buffer and first item, definitely at index 0.
cbuffer PerFrameData
{
// stuff
};

// Is this texture at index 0 because its the first texture
// declared, or index 1 because it's the second item declared?
Texture2D firstTexture;

// Second cbuffer, third declared - index 1 or 2?
cbuffer PerObjectData
{
// stuff
};

// Second texture, fourth declared - index 1 or 3?
Texture2D secondTexture;

// This sampler is declared last, do I use index 0 or 4?
SamplerState texSampler;
4

1 に答える 1

1

タイプ別です。

たとえばPerFrameData、スロット0、スロット1などにあり、XXをパイプラインステージとしてPerObjectData使用して設定します。XXSetConstantBuffers

ステージでさまざまなタイプを設定するためのすべての方法を確認するには、男性を確認してください。

于 2012-12-08T11:35:59.830 に答える