《计算机图形学》(第四版)
Computer Graphics with OpenGL Fourth Edition
计算机图形学中真实感成像包括两部分
表面特性的精确表示
场景中光照效果的物理描述
表面光照效果包括光的反射,透明度,表面纹理和阴影
光源
OpenGL可以同时为我们提供8个有效的光源。也就是说,我们最多可以同时启用8个光源。它们分别是GL_LIGHT0,GL_LIGHT1,GL_LIGHT2 ……
其中,GL_LIGHT0是最特殊的一个光源,我们可以为GL_LIGHT0指定环境光成分。在默认情况下,GL_LIGHT0光源的颜色为白光,其他7个光源在默认情况下是没有颜色的,也即为黑色。
光源种类
环境光
环境光是一种无处不在的光。环境光源放出的光线被认为来自任何方向。因此,当你仅为场景指定环境光时,所有的物体无论法向量如何,都将表现为同样的明暗程度。
点光源
由这种光源放出的光线来自同一点,且方向辐射自四面八方。
平行光
平行光又称镜面光,这种光线是互相平行的。从手电筒、太阳等物体射出的光线都属于平行光。
聚光灯
这种光源的光线从一个锥体中射出,在被照射的物体上产生聚光的效果。使用这种光源需要指定光的射出方向以及锥体的顶角α。
原文链接:http://www.jianshu.com/p/1da6ae890ef3
漫反射(diffuse reflection)
粗糙或颗粒状表面会将反射光向各个方向发散出去,这种发散为漫反射。
非常粗糙,不光滑的物体的表面主要产生漫反射,因而从任何角度看表面的亮度均相同。
当有各种颜色的光混合成的白色光时,对象的漫反射光的颜色成为该对象的颜色。
例如,蓝色物体会吸收其他颜色的光,将蓝色光成分反射出去
蓝色对象在红色光下观察,则它表现为黑色,因为所有入射光均被吸收
镜面反射(specular reflection)
有些反射光会集中成醒目的或明亮的一点,成为镜面反射。这种醒目效果在光亮表面发生得比灰暗表面多得多。
例如,在从特定角度观看照亮表面如抛光的金属,苹果或人的额头时,可以看到镜面反射。
场景光(background light) 或环境光(ambient light)
从得到照明的临近对象发出的反射光,使得并不直接暴露在光源下的表面仍然是可见的
透明的(transparent)
透过该物体,可以看到其后面的物体
不透明的(opaque)
透过该物体,可以看到其后面的物体
半透明的(translucent)
例如毛玻璃和某些塑料,透过该物体,透过的光在各个方向漫射,透过半透明材料观察到的对象常常是模糊的和辨认不清的
亮度(luminance)
亮度是颜色的另一特征,有时也称为光能量。亮度给出了颜色亮或暗的程度信息,是我们在观察光照时感知亮度变化的心理上的度量