1

それはDirectX 9についてです。

頂点シェーダーでレンダリングする一般的なケースでは、デバイスに 1 つ以上のストリーム ソースが設定され、頂点宣言を使用してソース データの形式が定義されます。

ここで、使用される頂点シェーダーが何らかの属性 (たとえば、D3DDECLUSAGE_NORMAL および UsageIndex 1 または 2 を持つもの) を必要とするが、提供される頂点宣言にその属性が含まれていない場合 (つまり、ストリーム ソースで提供されるデータにその属性が含まれない場合) )、DrawPrimitive が呼び出された場合、DirectX はその属性の値をどこで取得しますか?

4

2 に答える 2

0

「頂点ストリームのデータに含まれるコンポーネントが、対応するシェーダー データ タイプよりも少ない場合、不足しているコンポーネントは 0 に初期化されます (1 に初期化される w を除く)。」

「Windows DirectX Graphics ドキュメント (2009 年 8 月)」より引用

目次 > HLSL > プログラミング ガイド > Direct3D 9 での HLSL シェーダーの記述 > さまざまなシェーダー入力とセマンティクス

于 2010-10-25T01:05:56.300 に答える
0

DirectX 9 仕様では、宣言されていない属性の "デフォルト" 値 (通常は (0,0,0,1)) が定義されています。デバイス ドライバーまたは GPU のいずれかがそれらを作成します。

于 2009-07-10T17:58:25.113 に答える