Followers 0

# emittive light, add or multiply?

## 2 posts in this topic

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.

0

##### Share on other sites

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,

0

##### Share on other sites

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.

0

## Create an account

Register a new account

Followers 0

• 15
• 11
• 15
• 13
• 19