2
私はこれをしばらく理解していませんでしたが、奥行きマップが台無しです。私は地面で100x1x100の正方形に向かって歩き、その中を歩いて(99、0、および99の座標に達する)、深度マップ全体が変わります白。これは、各ピクセルがfar clipping planeにあることを示しています。これは私が望むものではありません!C#/ XNA/HLSL - 奥行きマップが壊れています
GraphicsDevice.Clear(Color.White);
effect.MainEffect.CurrentTechnique = effect.MainEffect.Techniques["DepthProcess"];
GraphicsDevice.SetVertexBuffer(line);
effect.MainEffect.CurrentTechnique.Passes[0].Apply();
GraphicsDevice.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 2);
そしてHLSLコード(頂点シェーダ、ピクセルシェーダ):example
この は、深度マップレンダリング処理するコードである
DVOut DVShader(VIn _in)
{
DVOut o;
o.position = mul(_in.position, WorldViewProjection);
float a = o.position.z/o.position.w;
o.color = float4(a,a,a,1);
return o;
}
float4 DPShader(DVOut _in) : COLOR
{
return _in.color;
}
technique DepthProcess
{
pass Pass0
{
ZEnable = TRUE;
ZWriteEnable = TRUE;
AlphaBlendEnable = FALSE;
VertexShader = compile vs_2_0 DVShader();
PixelShader = compile ps_2_0 DPShader();
}
}
のためのこれを1/0エラー?または行列との乗算に何か問題がありますか?またはw/e?