Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Phong reflection model
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Inverse model == The Phong reflection model in combination with [[Phong shading]] is an approximation of shading of objects in real life. This means that the Phong equation can relate the shading seen in a [[photograph]] with the surface normals of the visible object. Inverse refers to the wish to estimate the surface normals given a rendered image, natural or computer-made. The Phong reflection model contains many parameters, such as the surface diffuse reflection parameter ([[albedo]]) which may vary within the object. Thus the normals of an object in a photograph can only be determined, by introducing additional information such as the number of lights, light directions and reflection parameters. For example, we have a cylindrical object, for instance a finger, and wish to compute the normal <math>N=[N_x, N_z]</math> on a line on the object. We assume only one light, no specular reflection, and uniform known (approximated) reflection parameters. We can then simplify the Phong equation to: :<math>I_p(x) = C_a + C_d (L(x) \cdot N(x)) </math> With <math>C_a</math> a constant equal to the ambient light and <math>C_d</math> a constant equal to the diffusion reflection. We can re-write the equation to: :<math>( I_p(x)- C_a ) / C_d = L(x) \cdot N(x) </math> Which can be rewritten for a line through the cylindrical object as: :<math>( I_p- C_a ) / C_d = L_x N_x + L_z N_z </math> For instance if the light direction is 45 degrees above the object <math>L=[0.71, 0.71]</math> we get two equations with two unknowns. :<math>( I_p- C_a ) / C_d = 0.71 N_x + 0.71 N_z </math> :<math>1 = \sqrt{(N_x^2 + N_z^2)}</math> Because of the powers of two in the equation there are two possible solutions for the normal direction. Thus some prior information of the geometry is needed to define the correct normal direction. The normals are directly related to angles of inclination of the line on the object surface. Thus the normals allow the calculation of the relative surface heights of the line on the object using a line integral, if we assume a continuous surface. If the object is not cylindrical, we have three unknown normal values <math>N=[N_x, N_y, N_z]</math>. Then the two equations still allow the normal to rotate around the view vector, thus additional constraints are needed from prior geometric information. For instance in [[facial recognition system|face recognition]] those geometric constraints can be obtained using [[principal component analysis]] (PCA) on a database of depth-maps of faces, allowing only surface normals solutions which are found in a normal population.<ref>{{cite book| title=Model-Based Illumination Correction for Face Images in Uncontrolled Scenarios|date=September 2009|last1=Boom |first1= B.J. |last2=Spreeuwers|first2= L.J. |last3=Veldhuis|first3= R.N.J.| volume=5702| pages=33β40| doi=10.1007/978-3-642-03767-2 | issue=2009| series=Lecture Notes in Computer Science| editor1-last=Jiang| editor1-first=Xiaoyi| editor2-last=Petkov| editor-link2= Nicolai Petkov| editor2-first=Nicolai| isbn=978-3-642-03766-5| url=https://halshs.archives-ouvertes.fr/halshs-00420059/document| bibcode=2009LNCS.5702.....J| hdl=11693/26732| hdl-access=free}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)