Jump to content

  • Log In with Google      Sign In   
  • Create Account

Blending Operations - Lighting


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 Migi0027   Crossbones+   -  Reputation: 2117

Like
0Likes
Like

Posted 27 January 2014 - 08:33 AM

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, 27 January 2014 - 08:39 AM.

Hi! Cuboid Zone
The Rule: Be polite, be professional, but have a plan to steal all their shaders!

Sponsor:

#2 kauna   Crossbones+   -  Reputation: 2852

Like
0Likes
Like

Posted 27 January 2014 - 12:06 PM

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!



#3 Migi0027   Crossbones+   -  Reputation: 2117

Like
0Likes
Like

Posted 27 January 2014 - 01:41 PM

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, 27 January 2014 - 01:41 PM.

Hi! Cuboid Zone
The Rule: Be polite, be professional, but have a plan to steal all their shaders!

#4 Migi0027   Crossbones+   -  Reputation: 2117

Like
0Likes
Like

Posted 27 January 2014 - 03:07 PM

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


Hi! Cuboid Zone
The Rule: Be polite, be professional, but have a plan to steal all their shaders!




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS