- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 真实感图形的生成技术 6.1 消隐技术 6.2 光照技术 6.3 物体表面细节的模拟 6.4 阴影的生成 6.5 图形反走样技术 6.6 用OpenGL生成真实感图形 6.1 消隐技术 6.2 光照技术 光学反射模型 兰伯特反射光照模型 Phong 光照模型 光照效果图 明暗处理 光线跟踪与辐射度方法介绍 光线跟踪 6.3 物体表面细节的模拟 颜色纹理映射技术 几何纹理映射技术 6.5 图形反走样技术 6.6 用OpenGL生成真实感图形 OpenGL的光照环境设置方法 OpenGL的纹理映射方法 * * 真实感图形绘制:借助数学、物理、计算机等学科的知识在计算机二维显示屏上产生三维场景的真实逼真图像、图形。 应用:计算机辅助设计、多媒体教育、虚拟现实系统、科学计算可视化、动画制作、电影特技模拟、计算机游戏等。 图6-1 图形具有二义性 (a)线框图 (b)从右上往下看 (c)从左下往上看) 将三维场景绘制在计算机二维显示屏上必须经过投影变换,投影变换将三维信息变换到二维平面上,这个过程中深度信息被丢失,生成的图形往往具有二义性 ,早期判别可见面的算法有消除隐藏线、消除隐藏面算法。现在有画家算法、Z缓冲器算法、扫描线缓算法、光线追踪算法等等。 物空间算法是在定义、描述物体的世界坐标系中实现的,以场景中的物体为处理单元: for(场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; } 像空间算法是在观看物体的屏幕坐标系下实现的,它以窗口内的每个像素为处理单元: for(窗口内的每一个像素) { 确定与此像素对应的距离视点最近的物体, 以该物体表面该处的颜色来显示像素; } 判别可见面算法通常按它们在实现时所基于的坐标系分为两类:物空间算法和像空间算法。 理论上讲,物空间算法的计算量少于像空间算法的计算量,但实际上物体到视点距离的排序与遮挡判别比较复杂,算法效率很大程度上取决于排序的效率。而以扫描线的方式实现像空间算法时容易利用连贯性质从而使得像空间算法更具效率。 (1)将线段和多边形投影到投影平面上得到线段 和多边形 。 (2)计算线段 和多边形 各条边的交点。 (3)交点将 分成若干个子线段,特别地当交点不存在时, 子线段只有一个,即自身。现在每个子线段上的所有点具有 相同的隐藏性。 (4)分别判断各个子线段的隐藏性。 多面体隐藏线消除 隐藏线的产生是因为在给定的观察方向下,某些棱(或棱的一部分)被表面多边形的遮挡成为不可见,因此多面体隐藏线消除可以归结为一个根本问题:在给定的观察方向下,给定一条空间线段 和一个多边形 ,判断线段是否被多边形遮挡。如果遮挡,求出遮挡部分。步骤如下: 取子线段的中点,判断该点是否在多边形 内。 如不在多边形内,子线段与多边形 不存在隐藏关系,子线段是可见的。 如在多边形内,从子线段中点向视点引射线,如果射线与多边形 相交,则该子线段被多边形隐藏,否则该子线段可见。 消除自隐藏线、隐藏面 利用多面体表面多边形的法矢判别“朝后的面”,即不可见面。 深度测试 在观察坐标系下判断线段与多边形的前后关系。如多边形完全在线段之后,则线段完全可见,无需就线段和多边形的遮挡关系进行进一步判断。 包围盒测试 包围盒不相交,线段和多边形也不相交,线段完全可见,无需就线段和多边形的遮挡关系进行进一步判断。 线段和一个多边形进行隐藏性判断时,涉及到的运算包括投影变换,平面上线段和多边形的求交,判断点是否在多边形内,空间中射线和平面求交。如果将多面体的每条棱与每个多边形都按上面的方法消除隐藏线,那么计算量将非常大。采取如下措施可以减少计算量: Z缓冲器消隐算法 Z缓冲器消隐算法是最简单的消除隐藏面算法之一。在这个算法里,除了有一个帧缓冲区用来存放每个像素的亮度值,还要有一个Z缓冲区用来存放每个像素的深度值。帧缓冲区和Z缓冲区的存储单元数目相同,并且都等于屏幕上像素的个数,见图。 for(各个多边形) { 扫描转换该多边形; for(多边形所覆盖的每个像素(x,y)) { 计算该像素所对应多边形上的点在观察坐标系下的z坐标值Z(x,y); if(Z(x,y)大于Z缓冲区在(x,y)处的值) { Z缓冲区中(x,y)处深度值替换为Z(
您可能关注的文档
- 搭配不当的原因和类型.ppt
- 第01讲地下水文学.ppt
- 工业建筑的保护和再利用.ppt
- 技术的性质及其巨大作用.ppt
- 第3课古代希腊和罗马.ppt
- 第5课灿烂的青铜文明()()精品课件.ppt
- 第28课-国运兴衰-系于教育.ppt
- 古玉13-新石器玉器.ppt
- 清华四大导师.ppt
- 第二节生物进化的证据济南版.ppt
- 3.3DNA的复制课件-高一下学期生物人教版(2019)必修2.pptx
- 2.2逻辑思维的基本要求课件-高中政治统编版选择性必修三逻辑与思维(2).pptx
- 9.2解析三大诉讼课件-高中政治统编版选择性必修二法律与生活.pptx
- 4.2我国的社会保障 课件高中政治统编版必修二经济与社会.pptx
- 第17课 中国古代的户籍制度与社会治理 课件高二上学期历史统编版(2019)选择性必修1国家制度与社会治理.pptx
- 5.1人民代表大会:我国的国家权力机关 课件高中政治统编版必修三政治与法治.pptx
- 评析类 主观题课件-高考政治二轮复习统编版.pptx
- 1.1 公有制为主体 多种所有制经济共同发展 课件高中政治统编版必修二经济与社会.pptx
- 第7课 近代殖民活动和人口的跨地域转移 课件-高二下学期历史统编版(2019)选择性必修3文化交流与传播.pptx
- 4.2 基因表达与性状的关系课件 -高一下学期生物人教版(2019)必修2.pptx
文档评论(0)