MedicalVisualization
Blinn-Phong Lighting
← OpenGL Lighting | ● | OpenGL Texturing →
Standard algorithm for the lighting of vertices tailored for the GPU
- Phong in 1975, modified by Jim Blinn in 1977
- strictly local
- empirical not physically motivated
Locally reflected light consists of 4 terms:
$ I = I_{emissive} + I_{diffuse} + I_{specular} + I_{ambient} $
Constant ambient light (no emission):

Diffuse reflected light (gradual intensity change):

- The light intensity $I$ is proportional to $N \cdot L$:
- $ I = (N \cdot L) I_{L} $
- $L$ light vector to light source (normalized with unit length)
- $N$ normal vector of the surface (normalized with unit length)
- $I_{L}$ intensity of the light source (RGB components).
- $ I = (N \cdot L) I_{L} $
Specular reflected light (high-lights):

- $I = (R \cdot V)^n I_{L}$
- $R$ reflected light vector (normalized with unit length)
- $V$ view vector (normalized with unit length)
- $n$ specular exponent
- $I_{L}$ intensity of the light source (RGB components).
All 4 terms combined:

More details in chapter #5 of the OpenGL Programming Guide
← OpenGL Lighting | ● | OpenGL Texturing →