- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
光源 一般的光源是很难处理的,因为我们需要对于在光源面上的所有点进行光强积分 点光源 由位置和颜色表示 理想的点光源向各个方向发射光 远光源即在无穷远处的光源,光线为平行线 点光源的亮度函数I(p0) = [Ir(p0), Ig(p0), Ib(p0)] 在点p接受的光亮度反比于光源与点的距离 点光源的亮度 点光源的应用 在计算机图形学中大量应用点光源,是因为它易于使用 但不能更好地反映物理现实 只有点光源的场景得到的图像中对比度比较高;对象显得要么很亮,要么很暗 而真实的光源由于尺寸较大,因此场景的结果比较柔和 聚光灯(spotlight) 具有一个比较的窄的照明范围,通常为圆锥形半无穷区域 可以给点光源加上一定的限制得到 锥的顶点在Ps, 而中心轴方向为Is。 如果θ = 180°, 聚光灯成为点光源θ 更真实的聚光灯 光亮度在照明锥内具有一定的分布 通常绝大多数光集中在照明锥的中心 因此照明强度是向量s与中心轴夹角φ的函数 聚光灯的照明强度函数 可以采用各种方式定义强度函数 通常定义为coseφ 指数e确定光强度衰减的快慢 之所以采用余弦函数,是因为在这种情况下,非常容易计算出来它的值 日光—无穷远光源 在光照计算中需要计算从光源到当前点的向量 入射方向为上述向量的相反向量,而且需要单位化 如果光源在无穷远,该向量为常数 太阳光是无穷远光源的典型代表 环境光 在场景中每个地方都具有相同的强度 严格意义上说,环境光也是来自于某个光源,但由于在光照计算中进行了某些简化,需要用环境光来模拟多次反射后的效果 环境光强是由Ia = [Iar, Iag, Iab]确定的,在每点的值完全相同 光源 在光照模型中,把每个光源的结果叠加在一起 每个光源具有不同的漫反射、镜面和环境光项,从而充分发挥各自最大的弹性,虽然这种处理并没有任何物理上的理由 对三原色中每种分量单独处理 因此每个点光源有九个系数 分别相应于三色光的三种反射系数 材料属性 材料属性与光源属性完全匹配 九个吸收系数 明亮系数α OpenGL中的明暗处理 基本内容 介绍OpenGL中的明暗处理函数 启用 光源 材料 在OpenGL中应用明暗处理的步骤 1.启用明暗处理功能,并选择模式 2. 指定法向量 3. 指定材料属性 4. 指定光源 启用 明暗处理的计算由下述命令启用 glEnable(GL_LIGHTING) 如果光照被激活,glColor()命令被忽略 必须单独激活每个光源 glEnable(GL_LIGHTi), i = 0, 1, …7 可以选择光照模型的参数 glLightModel{if}[v](参数,值) glLightModel*() 参数及其默认值,意义 GL_LIGHT_MODEL_AMBIENT, (0.2,0.2,0.2,1.0), 整个场景中的环境光强 GL_LIGHT_MODEL_LOCAL_VIEWER,0.0或 GL_FALSE, 在计算中不应用无穷远视点的假设简化计算 GL_LIGHT_MODEL_TWO_SIDED,0.0或GL_FALSE, 单独对多边形的两面进行明暗处理 法向量 在OpenGL中法向量是状态的一部分 利用glNormal*()设置,例 glNormal3d(x,y,z); ?glNormal3dv(p); 通常需要法向量为单位向量,这样余弦计算就非常直接 变换会影响其长度 注意放缩并不保持其长度 glEnable(GL_NORMALIZE)可以使OpenGL自动进行单位化,当然是以损失效率为代价 定义点光源 对于每个光源,可以设置漫反射光、镜面光和环境光的RGB值以及光源的位置 GLfloat diffuse0[]={1.0,0.0,0.0,1.0}; GLfloat ambient0[]={1.0,0.0,0.0,1.0}; GLfloat specular0[]={1.0,0.0,0.0,1.0}; GLfloat light0_pos[]={1.0,2.0,3.0,1.0}; glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_POSITION, light0_pos); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient0); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse0); glLightfv(GL_LIGHT0, GL_SPECULAR, specular0); 距离与方向 光源的颜色应当以RGBA模式定义 位置是以齐次坐标的形式给定 如果w = 1.0, 指定的是一个有限位置 如果w = 0.0, 指定的是
您可能关注的文档
最近下载
- 滁州市2017-2018年度一师一优课、一课一名师活动市级.PDF VIP
- 国家药监局关于发布免于临床评价医疗器械目录的通告(2023年第33号).pdf
- 杭州市西湖区各级文物保护单位一览表(2023版).docx VIP
- 杭州市萧山区各级文物保护单位一览表(2023版).docx VIP
- 《《亚克西巴郎》ppt课件》小学音乐苏少版二年级上册_3.ppt
- 幼儿园课件:小班数学形状《小熊饼干店》.ppt
- 杭州市上城区各级文物保护单位一览表(2023版).docx VIP
- 现代控制工程(第五版)卢伯英习题答案解析.pdf
- 2022年考研英语一必威体育精装版完整版真题.pdf
- 专业气象服务标准化工作.doc
文档评论(0)