emittive light, add or multiply?

Started by
1 comment, last by cozzie 11 years, 1 month ago

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.

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

Advertisement

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,

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.

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

This topic is closed to new replies.

Advertisement