发明名称 一种三维模型渐进网格数据组织方法
摘要 本发明提出一种三维模型渐进网格数据组织方法,根据三维模型的原始网格生成渐进网格数据并进行多尺度分层组织,渐进网格数据包括基础网格和基础索引数据、各级增量数据以及各级细节层次网格索引数据;在渐进网格可视化过程中,首先将基础网格和基础索引数据传输到客户端并进行绘制,然后随着视点与模型的距离变小,传输增量数据和索引数据到客户端,绘制相应层次的细节层次网格。本发明实现了三维模型的无冗余、多尺度增量式数据组织,有利于复杂三维模型的快速传输和高效可视化。
申请公布号 CN102360515B 申请公布日期 2013.04.24
申请号 CN201110317931.0 申请日期 2011.10.19
申请人 武汉大学 发明人 陈静;李墨;李华玮
分类号 G06T17/30(2006.01)I 主分类号 G06T17/30(2006.01)I
代理机构 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人 薛玲
主权项 一种三维模型渐进网格数据组织方法,其特征在于:根据三维模型的原始网格Mn生成渐进网格数据,包括基础网格M0和基础索引数据Index0、各级增量数据{ΔData1,ΔData2,…ΔDatan},以及各级细节层次网格M1,M2,…Mn对应的索引数据{Index1,Index2,…Indexn};其中,多细节层次级别为i的细节层次网格Mi=Mi‑1+ΔDatai,i取值为1,2,…n;将基础网格M0和基础索引数据Index0存储到最顶层,随着尺度的增大,依次将各级增量几何数据{ΔData1,ΔData2,…ΔDatan}和各级细节层次网格M1,M2,…Mn对应的索引数据{Index1,Index2,…Indexn}存储到对应层次中;在渐进网格可视化过程中,首先将基础网格M0和基础索引数据Index0传输到客户端,并进行绘制;根据当前所需的多细节层次级别i,传输对应的增量数据ΔDatai和索引数据Indexi到客户端,在上一级别的细节层次网格Mi‑1基础上绘制细节层次网格Mi;所述生成渐进网格数据的具体方式包括以下步骤,步骤1,读取原始三维模型,将原始三维模型的原始网格作为细节层次网格Mn,将原始三维模型的所有顶点加入渐进网格顶点集合VertexList中,并初始化所有顶点的属性Level值为0;设置原始三维模型的所有顶点和三角形的属性Removed值为false,表示未被移除;将原始三维模型的所有三角形列入三角形链表TriangleList,遍历三角形链表TriangleList得到索引数据Indexn,将索引数据Indexn加入各级多细节层次索引LodVertexList中;设当前待简化的细节层次网格为Mk,令k=n;步骤2,将当前待简化的细节层次网格Mk简化得到上一层的细节层次网格Mk‑1,得到简化后需要移除的顶点集合Vm;设简化后顶点集合Vm中任一顶点Va由顶点Vb替代,遍历包含顶点Va的邻接三角形集合,将邻接三角形集合中所有三角形指向顶点Va的指针都指向顶点Vb,形成Va的指向三角形集合;顶点集合Vm中所有顶点的指向三角形集合构成三角形集合NT;步骤3,遍历三角形集合NT,当三角形内的三个顶点指针中任意两个指向同一顶点时,则该三角形为无效的三角形;设置所有无效的三角形属性Removed值为true,表示已移除;步骤4,在渐进网格顶点集合VertexList中标记顶点集合Vm内所有顶点的属性Removed值为true,表示已移除;设置顶点集合Vm内所有顶点的属性Level值为k,表示多细节层次 级别为k,该顶点集合Vm为第k级的增量数据ΔDatak;步骤5,遍历三角形链表TriangleList中属性Removed值为false的三角形,得到索引数据Indexk‑1,将索引数据Indexk‑1加入各级多细节层次索引LodVertexList中;步骤6,若k>0,令k=k‑1,返回步骤2继续计算增量数据ΔDatak和索引数据Indexk‑1,若如果k=0,进入步骤7;步骤7,渐进网格顶点集合VertexList中所有属性Removed值为true的顶点所构成集合即为基础网格M0,遍历三角形链表TriangleList中属性Removed值为false的三角形,所得索引数据即为基础索引数据Index0。
地址 430072 湖北省武汉市武昌区珞珈山武汉大学