Half Lambert: Difference between revisions
No edit summary |
SirYodaJedi (talk | contribs) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[ | [[File:Alyx_lambert_half_lambert.jpg|right|200px|thumb|Alyx model showing Lambertian lighting (left) and Half Lambert lighting (right)]] | ||
'''Half Lambert lighting''' is a technique designed to prevent the rear of an object losing its shape and looking too flat. | '''Half Lambert lighting''' is a technique designed to prevent the rear of an object losing its shape and looking too flat. | ||
Line 9: | Line 9: | ||
==Implementation== | ==Implementation== | ||
[[ | [[File:Lambert vs halflambert.png|right|200px|thumb|The Lambertian dot product lobe (red) vs. the Half Lambertian dot product lobe (blue)]] | ||
To soften the diffuse contribution from local lights, the dot product from the [[wikipedia:Lambert's cosine law|Lambertian model]] is scaled by ½, add ½ and squared. The result is that this dot product, which normally lies in the range of -1 to +1, is instead in the range of 0 to 1 and has a more pleasing falloff. | To soften the diffuse contribution from local lights, the dot product from the [[wikipedia:Lambert's cosine law|Lambertian model]] is scaled by ½, add ½ and squared. The result is that this dot product, which normally lies in the range of -1 to +1, is instead in the range of 0 to 1 and has a more pleasing falloff. | ||
In the original | In the original {{hl1|4.1}}, where this diffuse Half Lambert term was the only term in most of the model lighting, it kept the characters in particular from being lit exclusively by a constant ambient term on the back side with respect to a given light source. | ||
In | In {{src|4.1}}, Half Lambert lighting can most often be seen being used on the characters face materials. It is enabled by the use of {{mono|[[$halflambert]]}} within a material's [[VMT]] file, and is forced on when {{mono|[[$phong]]}} is used in most games. | ||
==See | ==See also== | ||
* [[$halflambert]] - [[VMT]] shader parameter to enable Half-Lambert lighting. | * [[$halflambert]] - [[VMT]] shader parameter to enable Half-Lambert lighting. | ||
Latest revision as of 11:38, 9 April 2025
Half Lambert lighting is a technique designed to prevent the rear of an object losing its shape and looking too flat.
Half Lambert is a completely non-physical technique[Clarify] and gives a purely percieved visual enhancement and is an example of a forgiving lighting model.
Games
Implementation
To soften the diffuse contribution from local lights, the dot product from the Lambertian model is scaled by ½, add ½ and squared. The result is that this dot product, which normally lies in the range of -1 to +1, is instead in the range of 0 to 1 and has a more pleasing falloff.
In the original Half-Life, where this diffuse Half Lambert term was the only term in most of the model lighting, it kept the characters in particular from being lit exclusively by a constant ambient term on the back side with respect to a given light source.
In Source, Half Lambert lighting can most often be seen being used on the characters face materials. It is enabled by the use of $halflambert within a material's VMT file, and is forced on when $phong is used in most games.
See also
- $halflambert - VMT shader parameter to enable Half-Lambert lighting.