0

私の現在の問題は次のとおりです。プリミティブレンダリングが統合された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

4

0 に答える 0