第13讲-OpenGL-光照.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13讲-OpenGL-光照.ppt

选择光照模型 全局环境光 即使没有其他光源,也可以看到场景中的物体 例:设置全局环境光颜色 GLfloat lmodel_ambient[] = { 0.2, 0.2, 0.2, 1.0 }; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); 选择光照模型 void glLightModeli(GLenum pname, GLint param); 功能: 选择光照模型 参数: pname: 光照模型的类型 param: 该类型的值 返回值:无 备注: pname可以取值为: GL_LIGHT_MODEL_LOCAL_VIEWER //观察点是否无穷远(GL_FALSE) GL_LIGHT_MODEL_TWO_SIDE //单面还是双面光照(GL_FALSE ) 选择光照模型 观察点靠近物体还是无穷远 在视点无穷远的情况下,场景中任何顶点到视点的方向都是同一常数。 否则,则不然,但效果会更加真实 例:指定观察点无穷远 glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE); 选择光照模型 单面光照或双面光照 多边形的正面和背面是否都需要光照 例:指定双面光照 glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); 内容进度 光照概述 创建光源 选择光照模型 指定材质属性 指定材质属性 启用光照时,物体顶点的颜色信息将被忽略 启用光照时,物体顶点的颜色取决于光源的颜色和物体材质的颜色 指定材质属性 材质的属性 环境颜色 散射颜色 镜面反射颜色 光洁度 发射光颜色 决定物体表面颜色的因素 材质的属性 光源的属性 光照模型 指定材质属性 指定材质属性的函数 glMaterialfv(…) 指定材质属性 void glMaterialfv(GLenum face, GLenum pname, GLfloat* param); 功能: 指定材质属性 参数: face: 指定正面或背面的材质 pname: 指定要设置哪种材质属性 param: 属性值的数组地址 返回值:无 指定材质属性 备注: face可取如下值: GL_FRONT GL_BACK GL_FRONT_AND_BACK pname可取如下值: GL_AMBIENT (0.2, 0.2, 0.2, 1.0) GL_DIFFUSE (0.8, 0.8, 0.8, 1.0) GL_AMBIENT_AND_DIFFUSE GL_SPECULAR (0.0, 0.0, 0.0, 1.0) GL_SHININESS (0.0) GL_EMISSION (0.0, 0.0, 0.1, 1.0) 指定材质属性 例:散射和环境光反射 GLfloat mat_amb_diff[] = { 0.1, 0.5, 0.8, 1.0 }; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, mat_amb_diff); 例:镜面反射材质 GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat low_shininess[] = { 5.0 }; glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_SHININESS, low_shininess); 指定材质属性 例:发射光颜色 GLfloat mat_emission[] = {0.3, 0.2, 0.2, 0.0}; glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission); 发射光材质使物体看起来发出微光,而并不是光源 要模拟光源,必须创建一个光源,并将其放在物体所在位置 例:Material 定向光源:将光源位置设置为离场景不穷远 定位光源: * 现实世界中,离光源越远,光强越弱。红皮书P129 * 3.6 OpenGL光照 光照概述 创建光源 选择光照模型 指定材质属性 光照概述 现实世界中,如果没有光,我们几乎看不到任何东西 在OpenGL中,大多数物体在没有光照的情况下,看起来甚至是二维的 有光照 没有光照 光照概述 光照通常是在纹理映射之前进行的 光照效果: 可以看到纹理(贴图) 光照可以大幅增加场景的真实感 启用光照,将看不到物体表面的颜色信息 启用光照,可以看到物

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档