Sign in to follow this  
cozzie

emittive light, add or multiply?

Recommended Posts

cozzie    5029

Hi,

 

Probaly fairly simple question, but I'm curious what the 'right' way would be to add emittive light in my lighting 'system' (specified per material).


My first approach was multiplying the output pixel by the emittive light, but logically this gives no pixel color at all when there's no emission. So I figured adding the emittive light would be the trick. Works fine, but I doubt if this is 'the way' (maybe to much lit up?).

 

Here's what I've done now:

 

	float4 amb = (AmbientColor * AmbientIntensity * MatAmb) + MatEmm;
	float4 diff = (input.Color * MatDiff) + MatEmm;

// input.color is directional light outputted from the VS
// calculate point light etc., into att_total

	return saturate((diff + amb + att_total) * textureColor);

 

Just curious if this is the right way to approach this.

 

 

Share this post


Link to post
Share on other sites
C0lumbo    4411

Adding the emissive colour makes sense. However, your code seems to add on the emissive twice (once to the ambient and once to the diffuse). I suggest you read up a little on the basic lighting model which it looks like you're trying to implement, this website looks like it offers a pretty good summary http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter05.html,

Share this post


Link to post
Share on other sites
cozzie    5029

Thanks, tutorial looks very good and readable/ understandable (first part read).

You're right, I'm adding emissive twice now, doesn't make sense to link it to specific lightsources. Looks better and to 'bright' now.

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