私の現在の問題は次のとおりです。プリミティブレンダリングが統合されたSpriteBatchを作成しようとしています(スプライトとプリムティブバッチが1つになっています)。
現在、Visual Studio 11 のデバッガーは、レンダリングされた行があることを示しています。IA-Stage は正しいので、VertexShader-Stage は正しいです。しかし、出力が得られません。
デバッガーで実行したところ、シェーダーに異常な巨大な値があることがわかりました。
20,20 (位置) と 80, 80 (位置) の 2 つの頂点を渡します。どちらも黒です。ConstantBuffer には、World (手動オブジェクト変換用)、View、および Projection の 3 つのマトリックスがあります。
コードでは、それらはすべて正しいです: M11 = 0.00215749722 など。シェーダーでは、次のようになります。
位置 = x = 200000.000000000、y = 200000.000000000、z = 0.000000000、w = 0.000000000 (#1 頂点の位置)
Projection[0] = x = 22.000000000, y = 0.000000000, z = 0.000000000, w = 0.000000000
Projection[1] x = 0.000000000, y = -45.000000000, z = 0.000000000, w = 0.000000000
Projection[2] x = 0.000000000, y = 0.000000000, z = 10000.000000000, w = 0.00000 0000
Projection[3] x = 0.000000000, y = 0.000000000, z = 0.000000000, w = 10000.000000000
そして最終的に出力結果(位置)は XYZW に対して 0 になります。以前は 413、-918 などでした。理由はわかりませんが、結果は常に 0 です...
これは非常に奇妙で、私は完全に立ち往生しています :-/
ありがとうR