Sign in to follow this  

Overlaying images in deferred rendering

Recommended Posts

Hy there,
i'm working on a small techdemo and i implemented the deferred renderer by cansin. Everything is working well so far. So i decided to modify it. I added a skysphere which is rendering onto a separate RenderTarget.

The final compositing shader overlays every drawn element on to the SkyMap.

float4 Color = tex2D(Diffuse, input.UV); //gets DiffuseMap
float alpha = 1; //calculate alpha
if (Color.a < 1)
alpha = 0;
float4 Lighting = tex2D(LightMap, input.UV); //gets LightMap
float4 Sky = tex2D(SkyMap, input.UV); //gets SkyMap
//float4 output = float4( * + Lighting.w, 1);
float4 output = float4( * + Lighting.w, 1) * (1 - alpha) + tex2D(SkyMap, input.UV) * alpha;
output = float4(, 1) * (1-alpha) + tex2D(SkyMap, input.UV) * alpha;
return output;

As you can see i dont allow smooth alphavalues. They just can be 0 or 1. This kind of masking produces some outlines around every drawn object. I dont want that. You can see this behaviour on the attached screenshot. I know from blender, that this could be a problem with premultiplied values. But i dont know how i can do that in HLSL. So please give me some advices. Thats disturbing me..

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this