2D のワールド、ビュー、およびプロジェクションをセットアップするには? [XNA 3.1、C#]
必要なシェーダーを使用しようとしています
float4x4 World;
float4x4 View;
float4x4 Projection;
しかし、2D エンジンでそれらをセットアップする方法がわかりません。つまり、2D で計算する正しい Vertex Shader にどの値を渡す必要があるのか よくわかりません。
コード:
efs[ObjShaders[i].ShaderID].effect.Parameters["World"].SetValue(Matrix.Identity);
efs[ObjShaders[i].ShaderID].effect.Parameters["View"].SetValue(Matrix.CreateLookAt(new Vector3(0, 0, 0), new Vector3(0, 0, 0), new Vector3(0, 0, 0)));
efs[ObjShaders[i].ShaderID].effect.Parameters["Projection"].SetValue(Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f),aspectRatio,1.0f, 10.0f));
efs[ObjShaders[i].ShaderID].effect.Parameters["EyePos"].SetValue(new Vector3(0,0,0));
シェーダー部分:
VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
VertexShaderOutput output;
float4 worldPosition = mul(float4(input.Position), World);
float4 viewPosition = mul(worldPosition, View);
output.Position = mul(viewPosition, Projection);
output.texCoord = input.texCoord*100;
output.worldPos = worldPosition.xyz;
return output;
}
問題: VertexShader = compile vs_2_0 VertexShaderFunction(); でこれを使用しようとすると 何も表示されないだけです。しかし、PixelShader を使用すると、テクスチャが描画されますが、少しバグがあり、配置が間違っているように感じます。