OpenGL中的光照模型

OpenGL中的光照模型

ID:44912135

大小:62.00 KB

页数:4页

时间:2019-11-04

OpenGL中的光照模型_第1页
OpenGL中的光照模型_第2页
OpenGL中的光照模型_第3页
OpenGL中的光照模型_第4页
资源描述:

《OpenGL中的光照模型》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、OpenGL中的光照模型一、OpenGL的光照模型在OpenGL的简单光照模型中反射光可以分成三个分量,环境反射光(AmbientLight)、漫反射光(DiffuseLight)和镜面反射光(SpecularLight):a、环境光Ambient,是由光源发出经环境多次散射而无法确定其入射方向的光,即似乎来自所有方向。当环境光照到曲面上时,它在各个方向上均等地发散(类似于无影灯光)。特征:入射方向和出射方向均为任意方向。b、漫射光Diffuse,来自特定方向,它垂直于物体时比倾斜时更明亮。一旦它照

2、射到物体上,则在各个方向上均匀地发散出去,效果为无论视点在哪里它都一样亮。特征:入射方向唯一、出射方向为任意方向。c、镜面光Specular,来自特定方向并沿另一方向反射出去,一个平行激光束在高质量的镜面上产生100%的镜面反射。特征:入射方向和出射方向均唯一。二、创建光源定义光源特性的函数:glLight*(light,pname,param)其中第一个参数light指定所创建的光源号,如GL_LIGHT0、GL_LIGHT1、...、GL_LIGHT7;第二个参数pname指定光源特性,这个参数

3、的辅助信息见表1所示;最后一个参数设置相应的光源特性值。pname参数名缺省值说明GL_AMBIENT(0.0,0.0,0.0,1.0)RGBA模式下环境光GL_DIFFUSE(1.0,1.0,1.0,1.0)RGBA模式下漫反射光GL_SPECULAR(1.0,1.0,1.0,1.0)RGBA模式下镜面光GL_POSITION(0.0,0.0,1.0,0.0)光源位置齐次坐标(x,y,z,w)GL_SPOT_DIRECTION(0.0,0.0,-1.0)点光源聚光方向矢量(x,y,z)GL_SPO

4、T_EXPONENT0.0点光源聚光指数GL_SPOT_CUTOFF180.0点光源聚光截止角GL_CONSTANT_ATTENUATION1.0常数衰减因子GL_LINER_ATTENUATION0.0线性衰减因子GL_QUADRATIC_ATTENUATION0.0平方衰减因子表1函数glLight*()参数pname说明注意:以上列出的GL_DIFFUSE和GL_SPECULAR的缺省值只能用于GL_LIGHT0,其他几个光源的GL_DIFFUSE和GL_SPECULAR缺省值为(0.0,0.

5、0,0.0,1.0)。三、启用光源和明暗处理如果光照无效,则只是简单地将当前颜色映射到当前顶点上去,不进行法向、光源、材质等复杂计算。要启用光照或关闭光照,调用函数:glEnable(GL_LIGHTING)或glDisable(GL_LIGHTING)。启用光照后必须调用函数glEnable(GL_LIGHT0),使所定义的光源有效。其它光源类似,只是光源号不同而已。在OpenGL中,用单一颜色处理的称为平面明暗处理(FlatShading),用许多不同颜色处理的称为光滑明暗处理(SmoothSh

6、ading),也称为Gourand明暗处理(GourandShading)。设置明暗处理模式的函数为:glShadeModel(mode)函数参数mode为GL_FLAT或GL_SMOOTH,分别表示平面明暗处理和光滑明暗处理。四、光源的颜色、位置与衰减光源的颜色由AMBIENT、DIFFUSE、SPECULAR决定。其中DIFFUSE(漫反射光)与光源的颜色最紧密;要实现真实感,应将属性SPECULAR的值设置成与DIFFUSE相同。光源位置坐标采用齐次坐标(x,y,z,w)设置。w为0.0,相应

7、的光源是定向光,(x,y,z)描述光源的方向,该方向将根据模型视点矩阵进行变换;w为1.0,光源为定位光源。(x,y,z,w)指定光源在齐次坐标系下的具体位置,该位置根据模型视点矩阵进行变换,保存为视点坐标系下的坐标。离光源越远则光强越弱。由于定向光源是无穷远光源,根据距离衰减光强无意义,因此对于定向光源将禁用衰减;对于定位光源有衰减,OpenGL的光衰减是通过光源的发光量乘以衰减因子以实现衰减。衰减系数=1/(K0+K1*D+K2*D2)其中:D=光源位置与顶点之间的距离K0=GL_CONSTAN

8、T_ATTENUATIONK1=GL_LINER_ATTENUATIONK1=GL_QUADRATIC_ATTENUATION环境光、漫反射光和镜面光的强度都衰减,只有辐射光和全局环境光的强度不会衰减。由于每次计算颜色时,使用衰减的光源会增加额外的计算而可能降低应用程序的性能。五、聚光灯定位光源可以进一步定义成聚光灯形式,即将光的形状限制在一个圆锥内。(1)、定义聚光截止角:参数GL_SPOT_CUTOFF给定光锥的轴与中心线的夹角,也可说成是光锥顶角的一半。缺省时,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。