- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十讲 Hidden Surface Removal
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 内容 消隐的基本概念 图像空间消隐:z缓冲器(z-buffer)算法 物体空间消隐 背面剔除算法 表优先级算法 三维物体的深度排序算法 二叉空间剖分树算法 * 二叉空间剖分树(Binary Space Partitioning) 二叉空间剖分树 (BSP树): 适用于多边形场景 如果场景中的多边形可以被一个平面分割成两部分,与视点同侧的物体不会被异侧物体遮挡 对位于分割平面两侧的多边形继续进行递归分割,直至每一个分割平面两侧或一侧只有一个多边形 分割过程可以用一个二叉树的数据结构来表示 在BSP树算法中,分割平面取作场景中的多边形 适用于视点变化场景不变的绘制 * 二叉空间剖分树 z x H. Fuchs, Z. M. Kedem and B. F. Naylor. “On Visible Surface Generation by A Priori Tree Structures.” ACM Computer Graphics, pp 124–133. July 1980. * 二叉空间剖分树实例 箭头表示多边形的正侧。在图 (a)中,首先选取1作为分割平面,2位于1的正侧,3和5位于1的负侧。4被1分割为4a和4b。其中,4a位于1的正侧,4b位于1的负侧。 * 二叉空间剖分树实例 对上述二叉树的左右两个分支进行进一步的分割。对于左侧分支,再取2所在平面为分割平面,4a位于2的正侧;对于右侧分支,取3所在的平面为分割平面,4b位于3的正侧,5位于3的负侧。至此建立了对所给场景的BSP树,树的每个叶节点是一个多边形 * 二叉空间剖分树 给定场景的BSP树不是唯一的 “最佳”的BSP树的两个标准 使BSP树尽可能平衡 尽可能减少多边形的剖分 * 二叉空间剖分树另一种实例 * 二叉空间剖分树描述性算法 BSP_Tree BSP_MakeTree(PolygonList) if PolygonList == NULL then BSPTree=NULL; else { PartitionPolygon = SelectAndRemove(PolygonList); PositiveBranch = NegativeBranch = NULL; for ( each polygon P in PolygonList) { if( P in the positive side of PartitionPolygon) AddPolygonToBSP(P, PositiveBranch); else if (P in the negative side of PartitionPolygon ) AddPolygonToBSP(P, NegativeBranch); else { SubdividePolygon(P, PartitionPolygon, PosiP, NegaP); AddPolygonToBSP(PosiP, PositveBranch); AddPolygonToBSP(NegaP, NegativeBranch); } } CombineBSPTree(PositiveBranch, PartitionPolygon, NegativeBranch); } * 二叉空间剖分树的遍历 BSP树的从后往前遍历 可以从后往前, 也可以从前往后(被绘制的象素不再绘制) 视点位于分割平面的正侧,遍历顺序: 负侧分支→根结点多边形→正侧分支 视点位于分割平面的负侧,遍历顺序: 正侧分支→根结点多边形→负侧分支 * 二叉空间剖分树的遍历算法 void showBSP(v: Viewer, T: BSPtree) { if (T is empty) return; P = root of T; if (viewer is in front of P) { showBSP(back subtree of T); draw P; showBSP(front subtree of T); } else { showBSP(front subtree of T); draw P; showBSP(back subtree of T); } } Henry Fuchs the Federico Gil Professor of Com
您可能关注的文档
最近下载
- 2025中国能建电规总院招聘(北京)笔试备考题库及答案解析.docx VIP
- 年产200吨聚烯烃催化剂技改项目环评报告书.pdf
- 上海浦东新区中小学教师考试题目汇总2024.docx VIP
- 血细胞形态识别培训课件终版.ppt VIP
- (一模)吉林市2025-2026学年度高三第一次调研测试 英语试卷(含答案解析).docx
- 《汽车维修质量检验》电子教案.pdf
- 工程勘测设计行业质量管理体系专业审核作业指导书.PDF VIP
- 2.2开通抖音直播《直播营销》教学课件.pptx VIP
- 综合实践进位制的认识与探究课件人教版七年级数学上册(1).pptx
- 千字文精选:阿尔巴尼亚电影全记录.doc VIP
原创力文档


文档评论(0)