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之间的话,会怎样呢,有兴趣的可以自己去尝试一下。

posted @ 2018-04-25 09:53  手握铅笔  Views(293)  Comments(0Edit  收藏  举报