OpenGL中启用光照前的准备——指定法线
我们在使用光源时,除了强度和颜色之外,还需要指定光源的位置和方向,并且这些光源的位置和方向将会极大地影响场景的外观。
OpenGL至少支持8种独立的光源。当我们指定一个光源时,便要告诉OpenGL这个光源的位置以及它的照射方向。光源经常向四周照射,但也可以向一个方向照射。无论在哪种情况下,对于我们所绘制的任何物体,来自任何光源的光线(除了纯粹的环境光源之外)都将根据一个角度撞击组成这个物体的多边形的表面。为了计算围绕多边形表面的着色效果,OpenGL必须能够计算光线与多边形表面之间的角度。
设想一下,一个多边形被一束来自某个光源的光线所照射,当这束光线照射到多边形的表面时,它与平面会形成一个角度(A);然后,光线按照一个角度(B)向观察者反射(观察者不一定能够看到它)。通过这些角度,再加上我们之前所讨论的光照参数和材料属性,就可以计算这个位置的外观颜色了,如图所示