The effect can be seen here: http://cl.ly/312L0L0I3x0b0S0y301T
float2 PostProjectionSpaceToScreenSpace(float4 pos)
{
float2 screenPos = pos.xy / pos.w;
return (0.5f * (float2(screenPos.x, -screenPos.y) + 1));
}
float4 Compose_PS(PSI_Compose input) : COLOR0
{
float2 ScreenUV = PostProjectionSpaceToScreenSpace(input.ScreenPos) + (1.0f / GBufferTextureSize.xy);
// Get Albedo Color
float4 Albedo = tex2D(AlbedoSampler, input.UV);
// Get SSAO
float4 SSAO = tex2D(SSAOBuffer, ScreenUV);
// Get Lighting Equations
float Ambient = 0.08f;
if(MaterialID != 1)
{
float4 Light = tex2D(LightBuffer, ScreenUV);
float3 NLATTColor = float3(Light.x, Light.y, Light.z);
float3 Lighting = NLATTColor + Light.w;
return Ambient + (Albedo * float4(Lighting, 1)) * float4(SSAO.xyz, 1);
}
else
{
return Ambient + Albedo;
}
}