OpenGL图形编程8颜色光照材质陈永强

OpenGL图形编程8颜色光照材质陈永强

ID:38569028

大小:502.50 KB

页数:44页

时间:2019-06-15

OpenGL图形编程8颜色光照材质陈永强_第1页
OpenGL图形编程8颜色光照材质陈永强_第2页
OpenGL图形编程8颜色光照材质陈永强_第3页
OpenGL图形编程8颜色光照材质陈永强_第4页
OpenGL图形编程8颜色光照材质陈永强_第5页
资源描述:

《OpenGL图形编程8颜色光照材质陈永强》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1OpenGL图形编程武汉纺织大学数学与计算机学院授课教师:陈永强教授29.颜色/光照/材质9.1颜色9.2光照9.3材质9.4透明处理(混合)9.5纹理映射9.1颜色OpenGL颜色模式RGB(RGBA)模式在RGB模式下,所有的颜色定义全用R、G、B三个值来表示,有时也加上Alpha值(与透明度有关),即RGBA模式。颜色表模式在颜色表模式下,每一个象素的颜色是用颜色表中的某个颜色索引值表示,而这个索引值指向了相应的R、G、B值。9.1颜色OpenGL颜色模式RGB(RGBA)模式用glColor*()来定义

2、当前颜色,其函数形式为:voidglColor(red,green,blue,alpha);函数名中的x表示参数的数目,当它等于3的时候,三个参数分别代表R、G、B值,alpha值缺省为1.0;当它等于4的时候,还包括了Alpha值,其范围从0.0到1.0。函数名中的t指定参数数据的类型,可以取b、d、f、i、s、ub、ui或us,它们分别代表字节型、双精度型、浮点型、整型、短整型、无符号字节型和无符号短整型。9.1颜色OpenGL颜色模式RGB(RGBA)模式常用的指定颜色的函数是glColor3f

3、,其中每个颜色分量的值在[0.0,1.0]范围内。还有一个函数glColor3ub,这个版本使用的颜色分量的取值范围是0到255之间的无符号数。9.1颜色OpenGL颜色模式颜色表模式在颜色表模式(Color_IndexMode)下,可以调用glIndex*()函数从颜色表中选取当前颜色,其函数形式为:voidglIndex{sifd}(TYPEc);voidglIndex{sifd}v(TYPE*c);参数值c用于设置当前颜色索引值,即调色板号,若值大于颜色位面数时则取模。9.1颜色着色模型绘制线框或填充多边形

4、时,可用纯色(恒定着色)和平滑(Gouraud着色)两种着色模型。voidglShadeModel(GLenummode)参数mode取:纯色GL_SMOOTH(默认)平滑GL_FLAT9.1颜色例子红皮书smooth.c9.2光照场景中的光类型点光源全局光照添加光照步骤9.2光照场景中的光类型环境光(AmbientLight)散射光(DiffuseLight)镜面光(SpecularLight)辐射光(EmittedLight)9.2光照场景中的光类型环境光环境光有光源,但是由于被周围的环境,如地面、天空、墙壁

5、等多次反射,变得无法确定其方向。环境光均匀地从周围环境入射至景物表面并等量地向各个方向反射出去。一般说来,房间里的环境光成分要多些,户外的相反要少得多,因为大部分光按相同的方向照射,而在户外很少有其他物体反射的光。9.2光照场景中的光类型散射光漫射光来自某个方向,它垂直于物体时比倾斜时更明亮。一旦它照射到物体上,则在各个方向上均匀地发散出去。于是,无论视点在哪里它都一样亮。来自特定位置和特定方向的任何光,都可能有散射成分。9.2光照场景中的光类型镜面光镜面光也具有方向性,但被物体强烈地反射到另一个特定的方向。如一

6、个点光源照射一个金属球时会在球面上形成一块特别亮的区域,呈现所谓“高光(Highlight)”,它是光源在金属球面上产生的镜面反射光。对于较光滑物体,其镜面反射光的高光区域小而亮;相反,粗糙表面的镜面反射光呈发散状态,其高光区域大而不亮。9.2光照场景中的光类型辐射光辐射光是最简单的一种光,它直接从物体发出并且不受任何光源影响。9.2光照场景中的光类型在OpenGL中,任何一种光源都由三种光照成分组成:环境光、散射光和镜面光,当然光源本身还有可能发出辐射光。光是一种波,而颜色仅仅是我们可以看见的一种光波,每种光照

7、成分都是由RGBA值定义的。169.2光照点光源在OpenGL场景描述中可以包含多个点光源,光源的各种属性设置使用下面的函数指定。voidglLight{if}(GLenumlight,GLenumpname,TYPEparam);voidglLight{if}v(GLenumlight,GLenumpname,TYPE*param);第一个参数是一个符号常数,指定设置的是哪个光源的参数。第二个参数指定了设置的是哪一个参数。第三个参数是一个类型数组,用于指定相应的参数。179.2光照pname取值默认值含义GL_

8、AMBIENT(0.0,0.0,0.0,1.0)光源中环境光分量GL_DIFFUSE(1.0,1.0,1.0,1.0)或(0.0,0.0,0.0,1.0)光源中漫反射光分量GL_SPECULAR(1.0,1.0,1.0,1.0)或(0.0,0.0,0.0,1.0)光源中镜面光分量GL_POSITION(0.0,0.0,1.0,0.0)光源的坐标位置GL_SPOT_DIRE

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

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

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