I am currently learning about Phong's reflection model as part of a graphics module at university.
I've managed to find a copy of Phong's original 1973 paper in which he describes his model, and also a copy of the article he wrote in 1975 for ACM summerising his work.
But there is a major difference between the two equations he presents. The first -- and original -- description (found as equation 4.5) is written as:
/* Sp: ... */
float Sp(float Cp, float i, float d, float s, float n)
{
return Cp * (cos(i) + d) + W(i) * pow(cos(s), n);
}
But, is then different in it's second appearance (found as equation 3); written as:
/* Sp: ... */
float Sp(float Cp, float i, float d, float s, float n)
{
return Cp * (cos(i) * (1 - d) + d) + W(i) * pow(cos(s), n);
}
The difference being the interaction between the environmental diffuse light, d
, (that I'm assuming translates to ambient in modern representations), and the diffuse light reflected at an incident angle i
.
In his original paper Phong steps through his reasoning and presents d
, as a ratio of the overall energy from the light in a scene: d = ed / ei
(moving from equation 3.7, to 3.8). This makes it quite clear how cos(i) + d
is generated from the commonly seen Er = Edr + Esr + Ed
.
However, in his 1975 the equation is presented without explaination, which is understandable, but is changed without clarification.
What am I missing, why was this change made, and how does this affect the overall calculation?
Aucun commentaire:
Enregistrer un commentaire