Sign in to follow this  

Blending Operations - Lighting

This topic is 1450 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys wink.png .

 

So, with my pipeline I render the albedo, normal, depth ( etc... ) to different individual render targets for each object, then later, I process this information, and generate a result. Now, I'm changing my pipeline a bit, but I've collided with a problem, about the blending of lighting. [ Change: I'm taking the diffuse color into account in the lighting shaders ]

 

What blending operations could be suitable for this pipeline: (?) [ Not actual code ]

..Render GBuffer
..

SetLightingDiffRT();
EnableLBlendMode();

for all directional_lights
    renderDirLScreenQuad(GBuffer);

for all point_lights
    renderPointLScreenQuad(GBuffer);

 
So the diffuse color is taken into account in the lighting calculations. Now what I would think of doing would to simply add the colors, with the blending operations, but, I'm not sure whether this is the correct approach...

 

What I did before worked ok, but, it was more of a hack, and I'd rather avoid it.

 

What blending operations do you use for this situation? What should I use? ( Could you give me an example? )

 

Thank you for your time, as always.

-MIGI0027

Edited by Migi0027

Share this post


Link to post
Share on other sites

Either, you accumulate all the lighting together in one render target and after modulate that render target with the albedo.

 

Or, read the albedo while processing each different lighting type, modulate with the lighting value and accumulate to one render target.

 

Both will produce the same result. The first one has less texture reads. However, nothing prevents you from accumulating all the lighting at once inside one shader. 

 

Cheers!

Share this post


Link to post
Share on other sites

So if I'd accumulate everything to one render target, taking in the albedo color at the place, I'd need some kind of additive blending, right?

 

Like if you have two pixels (RGBA) [ (0, 0.5, 0, 1) and (0, 0.5, 0, 1), it'd become (0,1,0,1).

 

Is this the correct way to look at things?

 

EDIT. And thanks btw!

Edited by Migi0027

Share this post


Link to post
Share on other sites

It seems like I've misunderstood a few things, thank you for your input.

 

So because of some limitations, I've chosen the compute shader for my lighting calculations, and doing the blending manually in there. ( Thanks Bacterius for the suggestion )

 

Again, thank you.

-MIGI0027

Share this post


Link to post
Share on other sites

This topic is 1450 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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