void VS(
in float4 vPos : POSITION,
out float2 OutTex : TEXCOORD0,
out float3 npPos : TEXCOORD1,
out float4 Pos : POSITION
)
{
Pos.xyzw = float4(vPos.xy, 1.f, 1.f);
float2 XY = tan(radians(30)) * float2(1, vecViewPort.y * vecViewPort.z);
npPos = mul(float4((vPos.xy) * XY, 1, 0), matViewInv).xyz;
OutTex.xy = Pos.xy * float2(1,-1) * 0.5 + 0.5;
OutTex.xy += vecViewPort.zw * 0.5f;
}
void PS(
in float2 Tex : TEXCOORD0,
in float3 npPos : TEXCOORD1,
//in float4 vPos : TEXCOORD2,
out float4 COL :COLOR0
)
{
float Depth = tex2Dlod(DSmp, float4(Tex.xy, 0, 0)).x;
COL.xyz = npPos.xyz * Depth + vecViewPos.xyz;
// COL.xyz = tex2D(WPosSmp, Tex).xyz;
COL.xyz = length(COL.xyz - tex2Dlod(WPosSmp, float4(Tex.xy, 0, 0)).xyz) * 1000;
COL.w=1;
}
technique Shading
{
pass P0
{
VertexShader = compile vs_3_0 VS();
PixelShader = compile ps_3_0 PS();
}
}