OpenGL光源位置
前言
主要是介绍两种不同光源,方向性光源和位置性光源。
方向性光源
如果是方向性光源,那么就是把光源设置在无限远的地方,当光线到达物体表面的时候,所有的光线都可以认为的平行的,例如太阳就是一个方向性光源。
在OpenGL中,表示方向性光源的方法如下:
GLfloat LightPosition[4] = { 0.0f, 100.0f, 100.0f, 1.0f };
glLightfv(GL_LIGHT1, GL_POSITION, LightPosition);
只要LightPosition[3]的值等于1.0,那么就表示这个光源是方向性光源。
位置性光源
位置性光源在场景中有着准确的位置,例如家里的台灯就是一个位置性光源。
具体的表示方法如下:
GLfloat LightPosition[4] = { 0.0f, 100.0f, 100.0f, 0.0f };
glLightfv(GL_LIGHT1, GL_POSITION, LightPosition);
只要LightPosition[3]的值等于0.0,那么就表示这个光源是方向性光源。
题外
如果LightPosition[3]的值是0.0~1.0之间的话,会怎样呢,有兴趣的可以自己去尝试一下。