06OpenglPrograming-5new2016-11-20.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
06OpenglPrograming-5new2016-11-20

OPENGL编程基础-5光照颜色材质主讲人:张慧杰Email: zhanghj167@nenu.edu.cn本章内容颜色光照概述光源属性创建光源选择光照模型指定材质属性内容进度颜色光照概述光源属性创建光源选择光照模型指定材质属性颜色RGB屏幕上的像素发出不同比例的红(Red)、绿(Green)、蓝(Blue)光,这三个值通常组合在一起,统称为RGBR、G、B的取值范围〔0.0,1.0〕0.0强度最小1.0强度最大常用的颜色RGB(0,0,0)黑色 RGB(1,1,1) 白色RGB(1,1,0) 黄色 RGB(1,0,1) 紫色RGB(0,1,1) 青色颜色空间颜色设置颜色的函数glColor3f(…);glColor4f(…);指定着色模式纯色(恒定着色)多种颜色(平滑着色)设置着色模式函数:glShadeModel(…);设置颜色函数void glColor3f(GLfloat r, GLfloat g, GLfloat b);功能:设置当前颜色参数:r:红色分量的值g:绿色分量的值b:蓝色分量的值返回值:无备注:r、g、b的值的范围在区间〔0,1〕内 0.0强度最小1.0强度最大设置颜色函数void glColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat alpha);功能:设置当前颜色参数:r:红色分量的值g:绿色分量的值b:蓝色分量的值alpha:alpha分量的值,用作混合返回值:无备注:r、g、b、alpha的值的范围在区间〔0,1〕内 指定着色模式void glShadeModel(GLenum mode);功能:指定着色模式参数:mode:着色模式返回值:无备注:mode可以取下列值:GL_FLAT 恒定着色GL_SMOOTH 平滑着色指定着色模式参见:Cubecolor.cpp恒定着色 平滑着色观察参见:Jet.cpp观察有光照没有光照内容进度颜色光照概述光源属性创建光源选择光照模型指定材质属性光照概述现实世界中,如果没有光,我们几乎看不到任何东西;在OpenGL中,大多数物体在没有光照的情况下,看起来甚至是二维的.光照概述光照效果:可以看到纹理(贴图)光照可以大幅增加场景的真实感启用光照,将看不到物体表面的颜色信息启用光照,可以看到物体表面的材质信息光照概述光照的类型环境光散射光(漫反射光)镜面反射光光照概述环境光:在环境中进行了充分的散射,无法分辨其方向的光当环境光撞击表面时,它会从所有方向均匀散射在室内场景中环境光的成分大一些,对于室外场景,环境光很少光照概述散射光(漫反射光)理想的漫反射表面向各个方向上散射的光线强度相等,因此不同位置的观察者看到的反射光线都是一样的。光照概述镜面反射光理想的镜面反射的反射方向是几乎一致的镜面反射可以使物体看起来闪闪发光不同的角度,镜面反射的效果是不一样的光照概述光照方程:Itotal = IAmbient + IDiffuse + ISpecular简单光照模型?简单光照模型:环境光+漫反射光+镜面反射光色彩的三分量:L为光线方向,N为法线方向,R为反射光线防线,V是观察者的方向,指数是高光(Shininess)系数。Ka,Kd,Ks分别是环境光反射系数,漫反射系数,镜面反射系数;分别体现各种光中有多少被反射出去,其他被表面吸收了。明暗绘制技术?物体表面的法线,将决定光的反射方向光照模型:均匀着色(GL_FLAT)每个多边形只需要进行一次明暗计算,并且多边形上所有点的颜色值都相同,这种明暗绘制技术称为均匀着色。Gouraud着色方法共用一个顶点的多边形的法向量取平均值,把归一化的平均值定义为该顶点的法向量,计算出每个顶点的I,然后通过插值计算出多边形内部其他的I。Phong着色方法每个多边形内对法向量进行插值,即对N进行插值,然后计算I。glShadeModel函数会影响法线例:光照犹他壶void glShadeModel(GLenum mode);GL_FLAT GL_SMOOTH 光照概述光照颜色环境光颜色散射光颜色镜面反射光颜色发射光颜色改变环境光颜色改变散射光颜色改变镜面反射光颜色改变发射光颜色光照概述光源类型平行光点光聚光光照概述点光平行光聚光内容进度颜色光照概述光源属性创建光源选择光照模型指定材质属性光源属性光源的属性颜色位置衰减聚光灯多光源设置光源属性的函数glLightfv(…)glLightf(…)光源的属性颜色环境光颜色散射光颜色镜面反射光颜色例: GLfloat LightAmbient[]={0.5f,0.5f,0.5f,1.0f}; GLfloat LightDiffuse[]={1.0f,1.0f,1.0f,1.0f}; GLfloat LightSpecular[]={0.5f,0.5f,

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档