質問

これは、DirectX 9のことだ。

頂点シェーダとレンダリングの典型的な場合には、そこにデバイスに設定された1つのまたは複数のストリームソースだ、ソースデータのフォーマットは、頂点宣言を使用して定義されます。

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

役に立ちましたか?

解決

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

"(2009年8月)のWindowsのDirectX Graphicsドキュメント" から撮影。

コンテンツ> HLSL>プログラミングガイド> Direct3Dの9にHLSLシェーダを書く>を変化させたシェーダの入力およびセマンティクス

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top