日期:2012-03-05  浏览次数:20448 次

三维图形处理很大程度上就是光与影的艺术。光照会在物体表面形成明暗过渡,计算机图形只有模拟出这种效果才会有真实感。

OpenGL支持光照计算,而且新一代的显卡(如GeForce256)硬件支持光照甚至动态光源。在OpenGL中用glEnable(GL_LIGHTING);打开光照计算。

打开光照计算之后,如果场景中没有光源,那么什么也看不见。OpenGL中同时支持GL_MAX_LIGHTS个光源,它们的名字是:GL_LIGHT0、GL_LIGHT1、GL_LIGHT2……。用glEnable/Disable(GL_LIGHTx) 开关这些光源。

每一盏灯(即光源)都有位置、方向、材质、照射范围、衰减因子等许多参数,默认参数值得到的是沿-Z轴方向的平行有指向性光源。这些参数基本的用法如下:

位置:决定是否计算背面的光照效果。