OpenGL中设置光照的镜面反射效果
在上一篇笔记中,我们记述了光线的方向与多边形表面的角度计算关系,除此之外,我们还有光源的位置需要指定。我们在ChangeSize函数的内部指定光源的位置:
// 指定光源的位置
GLfloat lightPos[] = {-50.0f, 50.0f, 100.0f, 1.0f};
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
在此,lightPos数组包含了光源的坐标位置。这个数组的最后一个值是1.0,表示指定的坐标是光源的位置;如果这个数组的最后一个值是0.0,则表示光是从无限远处沿这个数组所指定的方向向量照射过来的。同样地,光就像几何物体一样,它们也可以根据模型视图矩阵进行移动。
接下来,我们设置光照的镜面亮点效果。
镜面亮点