Я пишу программу с использованием DirectX11, и я написал базовый класс камеры, который управляет матрицей вида.Когда я тестирую программу, получается, что сцена не двигается, но когда я перемещаю камеру, она обрезает то, что видно в произвольном месте.Я приложил несколько фотографий, чтобы показать, что я имею в виду.
Я оставил свой пиксельный шейдер на данный момент только с выводом красных пикселей.
Мой вершинный шейдер основан на примере SDK:
cbuffer cbChangeOnResize : register(b1)
{
matrix Projection;
};</p>
<pre><code>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 показывает, что матрицы мира, вида и проекции, кажется, существуют и применяются, хотя очевидно, что что-то не так.
Спасибо.