How do I reconstruct depth in deferred rendering using an orthographic projection?
        Posted  
        
            by 
                Jeremie
            
        on Game Development
        
        See other posts from Game Development
        
            or by Jeremie
        
        
        
        Published on 2012-09-27T05:35:48Z
        Indexed on 
            2012/09/27
            9:51 UTC
        
        
        Read the original article
        Hit count: 289
        
I've been trying to get my world space position of my pixel but I4m missing something.
I'm using a orthographic view for a 2.5d game. My depth is linear and this is my code.
    float3 lightPos  = lightPosition;
    float2 texCoord = PostProjToScreen(PSIn.lightPosition)+halfPixel;
    float depth = tex2D(depthMap, texCoord);
    float4 position; 
    position.x = texCoord.x *2-1;
    position.y = (1-texCoord.y)*2-1;
    position.z = depth.r;
    position.w = 1;
    position = mul(position, inViewProjection);
    //position.xyz/=position.w; // I comment it but even without it it doesn't work
    float4 normal = (tex2D(normalMap, texCoord)-.5f) * 2;
    normal = normalize(normal);
    float3 lightDirection = normalize(lightPos-position);
    float att = saturate(1.0f - length(lightDirection) /attenuation);
    float lightning = saturate (dot(normal, lightDirection));
    lightning*= brightness;
    return float4(lightColor* lightning*att, 1);
I'm using a sphere but it's not working the way I want. I reproject the texture properly onto the sphere but the light coordinates in the pixel shader seems to be stuck at zero even if when I move the light volume update properly.
© Game Development or respective owner