计算机图形学——OpenGL之光照
1、光照系统
光照系统可以分为三部分:
- 光源就是光的来源,可以是太阳或者电灯等。
材质是指接受光照的各种物体的表面,由于物体如何反射光线只由物体表面决定(OpenGL中没有考虑光的折射),材质特点就决定了物体反射光线的特点。
光照环境是指一些额外的参数,它们将影响最终的光照画面,比如一些光线经过多次反射后,已经无法分清它究竟是由哪个光源发出,这时,指定一个“环境亮度”参数,可以使最后形成的画面更接近于真实情况。
相关概念:
- 镜面反射:光线入射理想的光滑平面,反射后的光线是很规则的
- 漫反射:光线入射粗糙的、不光滑的平面,反射后的光线是杂乱的
2、设置光源
在OpenGL中,仅仅支持有限数量的光源。 使用GL_LIGHT0表示第0号光源,GL_LIGHT1表示第1号光源,依次类推。 OpenGL至多会支持8个光源,即GL_LIGHT0到GL_LIGHT7。 使用glEnable函数可以开启它们。例如,glEnable(GL_LIGHT0);可以开启第0号光源。 使用glDisable函数则可以关闭光源。每一个光源都可以设置其属性,这一动作是通过glLight*函数完成的。glLight*函数具有三个参数,第一个参数指明是设置哪一个光源的属性,第二个参数指明是设置该光源的哪一个属性