私は、directx11 を使用してプログラムを作成しており、ビュー マトリックスを操作する基本的なカメラ クラスを作成しました。プログラムをテストすると、シーンは動かないという結果になりましたが、カメラを動かすと、任意の場所で見えるものを切り取る効果があります。私が何を意味するかを示すために、いくつかの写真を添付しました。
今のところ、ピクセル シェーダーは赤のピクセルのみを出力するようにしています。
私の頂点シェーダーは、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 は、ワールド、ビュー、およびプロジェクション マトリックスが存在し、適用されているように見えますが、何かが正しくないことは明らかです。
ありがとうございました。