您的位置:首页 > 运维架构

OpenGL系统设计-光照与材质(1)

2009-10-30 19:36 246 查看

光照与材质

光照是计算机图形学的重要组成部分,没有光照,任何物体看起来就象是塑料作成的,还是缺少真实感。
在大自然中,光也是最重要的组成要素之一。籍于光,我们才能认识世界。能够产生光的物体称为光源。对人类来说,太阳就是最大、最重要的光源,其他小如燃烧的蜡烛,发光的二极管也是光源。有光就有阴影,在光照不到的地方就形成了阴影。
当光照在物体上时,不论是什么物体,都会反射光,但是反射光的强弱和物体的属性相关。透明的物体还会透射光,将一部分光透射出去。因为光的本质是能量,所以透射和反射的都是能量,并且任何物体都会吸收光。

(修改)反射光通常可以分成三部分:环境反射、漫反射、镜面反射。环境反射光假定入射光均匀地从周围环境入射至景物表面并等量地向各个方向反射出去,通常物体表面还会受到从周围环境来的反射光(如来自地面、天空、墙壁等的反射光)的照射,这些光常统称为环境光(Ambient Light);漫反射分量表示特定光源在景物表面的反射光中那些向空间各方向均匀反射出去的光,这些光常称为漫射光(Diffuse Light);镜面反射光为朝一定方向的反射光,如一个点光源照射一个金属球时会在球面上形成一块特别亮的区域,呈现所谓“高光(Highlight)”,它是光源在金属球面上产生的镜面反射光(Specular Light)。对于较光滑物体,其镜面反射光的高光区域小而亮;相反,粗糙表面的镜面反射光呈发散状态,其高光区域大而不亮。

OpenGL中的光应用分为三部分:光源属性、材质属性和全局光属性。
光照也有RGBA和颜色索引表两种模式。相对于颜色索引表模式,RGBA模式更加灵活,更少的约束。因此,RGBA模式在OpenGL中应用广泛的多。

OpenGL光照是基于Phone光照模型的。在几何体的每一个顶点,颜色值是由几何体的材质属性和光源属性共同决定的。顶点颜色的最终值是要叠加四个分量,这四个分量就是OpenGL的四种光:环境光(Ambient Light)、漫射光(Diffuse Light)、镜面光(Specular Light)和辐射光(Emission Light)。
辐射光是最简单的一种光,它直接从物体发出并且不受任何光源影响。环境光是由场景中所有不能确定方向的光。
漫射光来自一个方向,当照射到物体上,则在各个方向上均匀地发散出去。所以,视点的位置不影响看到的漫射光的亮度。漫射光是当前光照下表现出来的最基本的部分。基本上所有的光都有漫射成分,聚焦能力越强的光,其漫射成分就越小,如激光速,聚焦能力越弱的光,其漫射成分就越大,如手电筒发出的光。
镜面光来自固定方向并沿另一方向反射出去,一个平行激光束在高质量的镜面上产生100%的镜面反射。光亮的金属和塑料具有很高非反射成分,而象粉笔和地毯等几乎没有反射成分。因此,从某种意义上讲,物体的反射程度等同于其上的光强(或光亮度)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: