我一直在用directx11編寫一個程序,並且我已經編寫了一個基本的攝像頭類來處理視圖矩陣。當我測試程序時,結果是場景不移動,但是當我移動相機時,它具有切斷在任意位置可見的效果。我附上了一些照片來展示我的意思。 攝像頭不尋常的行爲,DX11
我已經離開我的像素着色器,現在只輸出紅色像素。
我的頂點着色器是基於SDK的例子:
cbuffer cbChangeOnResize : register(b1) { matrix Projection; };
cbuffer cbChangesEveryFrame : register(b2)
{
matrix View;
matrix World;
};
struct VS_INPUT
{
float4 Pos : POSITION;
float2 Tex : TEXCOORD0;
};
struct PS_INPUT
{
float4 Pos : SV_POSITION;
float2 Tex : TEXCOORD0;
};
PS_INPUT TEX_VS(VS_INPUT input)
{
PS_INPUT output = (PS_INPUT)0;
output.Pos = mul(input.Pos, World);
output.Pos = mul(output.Pos, View);
output.Pos = mul(output.Pos, Projection);
output.Tex = input.Tex;
return output;
}
我一直在抓我的頭一對夫婦對這個問題的天,但我不知道是什麼原因造成這一點,或甚至哪些代碼是相關的。 PIX表明,世界,視圖和投影矩陣似乎存在並且正在被應用,雖然很明顯某些事情是不正確的。
謝謝。
移動是其渲染的場景的一部分似乎是正確的相機時,我注意到,那就是,有可能確定觀看平截頭體似乎在移動。這就是爲什麼在我的第二張照片中部分場景被切斷。但是,場景渲染不正確。這就好像觀看平截頭體與相機的位置是分開的,儘管我認爲兩者都鎖定在原點上。 – fabspro 2012-01-31 11:30:18
數學失敗,我已經將視圖矩陣而不是它的轉置發送給着色器。 – fabspro 2012-01-31 11:42:46