CN109087392A - 一种动态细节层次模型实现方法 - Google Patents

一种动态细节层次模型实现方法 Download PDF

Info

Publication number
CN109087392A
CN109087392A CN201810751900.8A CN201810751900A CN109087392A CN 109087392 A CN109087392 A CN 109087392A CN 201810751900 A CN201810751900 A CN 201810751900A CN 109087392 A CN109087392 A CN 109087392A
Authority
CN
China
Prior art keywords
vertex
tri
model
point
num
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810751900.8A
Other languages
English (en)
Inventor
谢珏
吴含前
李露
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kelbot Information Technology (kunshan) Co Ltd
Original Assignee
Kelbot Information Technology (kunshan) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kelbot Information Technology (kunshan) Co Ltd filed Critical Kelbot Information Technology (kunshan) Co Ltd
Priority to CN201810751900.8A priority Critical patent/CN109087392A/zh
Publication of CN109087392A publication Critical patent/CN109087392A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种动态细节层次模型实现方法。该技术主要包括对模型的预处理和对自定义文件解析两部分,模型的预处理部分主要对顶点按重要程度排序并保存折叠序列,生成自定义文件,通过对自定义文件的解析能够快速生成任意比例的模型,符合实现动态细节层次模型的要求。

Description

一种动态细节层次模型实现方法
技术领域
本发明涉及三维模型可视化,特别涉及大规模场景、模型数量较多三维模型可视化技术领域,具体的,其展示一种动态细节层次模型实现方法。
背景技术
在三维空间地理信息可视化系统中,大规模三维模型的可视化作为其重要的组成部分,广泛应用在数字城市、数字交通、数字海洋等领域中。三维模型具有灵活度高、展示性好等优点,能够极大的增加可视化的真实感和沉浸感。但是,一方面,三维模型的真实性往往取决于模型网格的精细程度和纹理的分辨率,一个精细的模型往往拥有百万级别的三角面片和数百兆大小的纹理贴图。另一方面,三维空间地理信息可视化系统往往具有场景范围大、模型数量多等特点,一个数字城市可能需要展示十万级数量的楼宇,一个数字交通应用有可能需要展示百万级数目的车辆。
在大规模场景下,显示海量的精细三维空间模型对系统的渲染能力、存储能力、网络传输能力等都带来了极大的挑战,甚至会由于内存、I/O、计算等方面的限制导致系统的卡顿和崩溃。
细节层次模型,也称LOD模型,是一种实时的三维计算机图形技术。细节层次模型能够做到当用户视点离物体较近时,能观察到模型的细节,当用户视点逐渐远离模型时,观察到的细节逐渐模糊。细节层次模型可以避免因绘制意义相对不大的细节而造成的时间浪费,提高复杂场景的生成和显示速度。细节层次模型在交互式可视化、虚拟现实等领域得到了广泛的应用,细节层次模型有静态和动态之分。
静态细节层次模型是一种较简单的细节层次模型。它通过模型网格简化算法预先生成一个或一组独立的、有不同精细度的简化模型。这些简化模型一般按照由精细到粗糙的顺序排列,互相之间没有外在的联系。系统根据不同场合的需要,从这组静态模型中选用一个最合适的模型供绘制使用。
静态细节层次模型可以减少可视化时CPU的计算压力,使用方便,绘制快捷。但是静态细节层次模型不能得到任意分辨率的模型,静态细节层次模型的层数越多,存储压力也越大。而且,由于不同精细度的逼近模型中三角形数目往往相差很大,因此在层次之间切换就会产生“跳跃”的视觉效果,影响用户体验。
动态细节层次模型则需要事先创建适当的数据结构,在实际应用的时候,按用户的需求从该数据结构中提取相应的层次细节,并生成适合当前需要的简化模型。动态次节层次模型中每个模型的简化程度不是预处理的时候固定的,而是由模型之外的因素决定,例如用户的视点距离。
由于动态细节层次模型可以实时地得到任意分辨率的近似模型,所以动态细节层次模型不需要保存多个副本,可以大大减轻存储压力,并且在用户浏览时做到层次平滑切换,增强用户体验。但是动态层次模型对模型实时生成的速度却有着较高的要求。
因此有必要提供一种动态细节层次模型实现方法来解决上述问题。
发明内容
为实现上述目的,发明提供一种动态细节层次模型实现方法。
具体方案如下:
一种动态细节层次模型实现方法,包括如下步骤:
预处理:
S1)找出最小度量误差的顶点序列,如u->v,称u为被删除顶点,v为代替顶点;
S1-1)使用二次误差进行度量误差的度量:
假设顶点u折叠到顶点v,则基于二次误差的半边折叠的度量误差为u到所有包含顶点v的三角平面的距离之和;
一个三维空间中的三角平面可以用方程ax+by+zc+d=0(其中a2+b2+ c2=1)来表示,令p=[a b c d]T代表包含顶点v的一个平面,点u的坐标为[x y z 1]T,则点u到三角平面p距离的平方为:
其中:
为点v的二次误差测度矩阵,其中planes(v)为所有包含顶点v的三角面的集合:
度量误差为:
S2)保存被删除点旧id和新id的对应permutation[vertex[i]->id]=vertex.num-1;
S3)保存替代顶点的旧id到map[vertex.num-1];
S4)对折叠代价或度量误差最小的顶点序列进行半边折叠,并更新被删除点的邻居点的度量误差;
S4-1)对顶点对uv进行半边折叠,去除既包含顶点u又包含顶点v的三角形或以uv为边的三角形;后更新所有剩下的三角形,把所有用到顶点u 的地方都用顶点v代替,移除顶点u;更新顶点u邻居点的度量误差;
S5)循环步骤S1)-S4),循环次数为vertex.num次;
S6)利用permutation数组将map中的替代顶点的旧id替换为新id, map[i]=permutation[map[i]];
S7)利用permutation数组对顶点按重要度进行排序,将三角形三元组的旧id替换为新id;
S8)定义文件写入:预处理后,顶点id和重要度是一致的,顶点是有序的;越重要的顶点,顶点编号越小;越不重要的顶点,顶点编号越大;而 map中则记录着折叠序列;对顶点数组按id写入自定义文件,并将三角形三元组和map数组写入自定义文件;
S9)解析自定义文件:
S9-1)用原模型顶点数vert.num乘以精简度percent得到新模型的顶点数vert.num*percent,取出前vert.num*percent个顶点;
S9-2)对三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).t[1], tri.at(i).t[2],分别根据map折叠数组快速找到替代顶点序号;
S9-3)如果三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).tri[1],tri.at(i).tri[2]有相同的,则表示这个三角形无效。
S9-4)根据前vert.num*percent个顶点和有效三角形得到任意比例的模型。
与现有技术相比,本发明通过预处理对顶点按重要程度排序并保存折叠序列,能快速生成任意比例的模型,符合实现动态细节层次模型的要求。
附图说明
图1为本发明的实施例的原模型、剩余50%点的简化结果和剩余15%点的简化结果。
具体实施方式
实施例:
本实施例展示一种动态细节层次模型实现方法,包括如下步骤:
S1)预处理:找出最小度量误差的顶点序列,如u->v,称u为被删除顶点, v为代替顶点;
S1-1)使用二次误差进行度量误差的度量:
假设顶点u折叠到顶点v,则基于二次误差的半边折叠的度量误差为u到所有包含顶点v的三角平面的距离之和;一个三维空间中的三角平面可以用方程 ax+by+zc+d=0(其中a2+b2+c2=1)来表示,令p=[a b c d]T代表包含顶点v的一个平面,点u的坐标为[x y z1]T,则点u到三角平面p距离的平方为:
其中:
为点v的二次误差测度矩阵,其中planes(v)为所有包含顶点v的三角面的集合:
度量误差为:
S2)保存被删除点旧id和新id的对应permutation[vertex[i]->id]=vertex.num-1;
S3)保存替代顶点的旧id到map[vertex.num-1];
S4)对折叠代价或度量误差最小的顶点序列进行半边折叠,并更新被删除点的邻居点的度量误差;
S4-1)对顶点对uv进行半边折叠,去除既包含顶点u又包含顶点v的三角形或以uv为边的三角形;后更新所有剩下的三角形,把所有用到顶点u 的地方都用顶点v代替,移除顶点u;更新顶点u邻居点的度量误差;
S5)循环步骤S1)-S4),循环次数为vertex.num次;
S6)利用permutation数组将map中的替代顶点的旧id替换为新id, map[i]=permutation[map[i]];
S7)利用permutation数组对顶点按重要度进行排序,将三角形三元组的旧id替换为新id;
S8)定义文件写入:预处理后,顶点id和重要度是一致的,顶点是有序的;越重要的顶点,顶点编号越小;越不重要的顶点,顶点编号越大;而 map中则记录着折叠序列;对顶点数组按id写入自定义文件,并将三角形三元组和map数组写入自定义文件;
S9)解析自定义文件:
S9-1)用原模型顶点数vert.num乘以精简度percent得到新模型的顶点数vert.num*percent,取出前vert.num*percent个顶点;
S9-2)对三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).t[1], tri.at(i).t[2],分别根据map折叠数组快速找到替代顶点序号;
S9-3)如果三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).tri[1],tri.at(i).tri[2]有相同的,则表示这个三角形无效。
S9-4)根据前vert.num*percent个顶点和有效三角形得到任意比例的模型。
通过对本实施例进行实施,具体可参照图1所展示的原模型、剩余50%点的简化结果和剩余15%点的简化结果,可得出结论:本实施例通过预处理对顶点按重要程度排序并保存折叠序列,能快速生成任意比例的模型,符合实现动态细节层次模型的要求。
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (1)

1.一种动态细节层次模型实现方法,其特征在于:包括如下步骤:
S1)预处理:找出最小度量误差的顶点序列,如u->v,称u为被删除顶点,v为代替顶点;
S1-1)使用二次误差进行度量误差的度量:
假设顶点u折叠到顶点v,则基于二次误差的半边折叠的度量误差为u到所有包含顶点v的三角平面的距离之和;
一个三维空间中的三角平面可以用方程ax+by+zc+d=0(其中a2+b2+c2=1)来表示,令p=[a b c d]T代表包含顶点v的一个平面,点u的坐标为[x y z 1]T,则点u到三角平面p距离的平方为:
其中:
为点v的二次误差测度矩阵,其中planes(v)为所有包含顶点v的三角面的集合:
度量误差为:
S2)保存被删除点旧id和新id的对应permutation[vertex[i]->id]=vertex.num-1;
S3)保存替代顶点的旧id到map[vertex.num-1];
S4)对折叠代价或度量误差最小的顶点序列进行半边折叠,并更新被删除点的邻居点的度量误差;
S4-1)对顶点对uv进行半边折叠,去除既包含顶点u又包含顶点v的三角形或以uv为边的三角形;后更新所有剩下的三角形,把所有用到顶点u的地方都用顶点v代替,移除顶点u;更新顶点u邻居点的度量误差;
S5)循环步骤S1)-S4),循环次数为vertex.num次;
S6)利用permutation数组将map中的替代顶点的旧id替换为新id,map[i]=permutation[map[i]];
S7)利用permutation数组对顶点按重要度进行排序,将三角形三元组的旧id替换为新id;
S8)定义文件写入:预处理后,顶点id和重要度是一致的,顶点是有序的;越重要的顶点,顶点编号越小;越不重要的顶点,顶点编号越大;而map中则记录着折叠序列;对顶点数组按id写入自定义文件,并将三角形三元组和map数组写入自定义文件;
S9)解析自定义文件:
S9-1)用原模型顶点数vert.num乘以精简度percent得到新模型的顶点数vert.num*percent,取出前vert.num*percent个顶点;
S9-2)对三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).t[1],tri.at(i).t[2],分别根据map折叠数组快速找到替代顶点序号;
S9-3)如果三角形序列的三个顶点序号tri.at(i).t[0],tri.at(i).tri[1],tri.at(i).tri[2]有相同的,则表示这个三角形无效。
S9-4)根据前vert.num*percent个顶点和有效三角形得到任意比例的模型。
CN201810751900.8A 2018-07-10 2018-07-10 一种动态细节层次模型实现方法 Pending CN109087392A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810751900.8A CN109087392A (zh) 2018-07-10 2018-07-10 一种动态细节层次模型实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810751900.8A CN109087392A (zh) 2018-07-10 2018-07-10 一种动态细节层次模型实现方法

Publications (1)

Publication Number Publication Date
CN109087392A true CN109087392A (zh) 2018-12-25

Family

ID=64837511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810751900.8A Pending CN109087392A (zh) 2018-07-10 2018-07-10 一种动态细节层次模型实现方法

Country Status (1)

Country Link
CN (1) CN109087392A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111738903A (zh) * 2020-05-18 2020-10-02 完美世界(北京)软件科技发展有限公司 物体分层材质的优化方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751694A (zh) * 2008-12-10 2010-06-23 中国科学院自动化研究所 一种对复杂叶片的快速简化和绘制方法
CN106447778A (zh) * 2016-11-09 2017-02-22 苏州希格玛科技有限公司 一种动态细节层次模型实现的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751694A (zh) * 2008-12-10 2010-06-23 中国科学院自动化研究所 一种对复杂叶片的快速简化和绘制方法
CN106447778A (zh) * 2016-11-09 2017-02-22 苏州希格玛科技有限公司 一种动态细节层次模型实现的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111738903A (zh) * 2020-05-18 2020-10-02 完美世界(北京)软件科技发展有限公司 物体分层材质的优化方法、装置及设备
CN111738903B (zh) * 2020-05-18 2024-05-10 完美世界(北京)软件科技发展有限公司 物体分层材质的优化方法、装置及设备

Similar Documents

Publication Publication Date Title
Wyvill et al. Soft objects
Carr et al. Fast GPU ray tracing of dynamic meshes using geometry images.
Ma Parallel volume ray-casting for unstructured-grid data on distributed-memory architectures
US8253730B1 (en) System and method for construction of data structures for ray tracing using bounding hierarchies
Kumar et al. Interactive display of large-scale NURBS models
Ernst et al. Early split clipping for bounding volume hierarchies
De Floriani et al. A survey on data structures for level-of-detail models
CN108230439B (zh) 一种用于web端三维模型轻量化方法、电子设备及存储介质
Weiss et al. Simplex and diamond hierarchies: Models and applications
DeCoro et al. XFastMesh: Fast view-dependent meshing from external memory
Pajarola et al. Efficient implementation of real-time view-dependent multiresolution meshing
WO2011035800A2 (en) Direct ray tracing of 3d scenes
Livnat et al. Interactive point-based isosurface extraction
JP3034483B2 (ja) オブジェクト探索方法およびその方法を用いた装置
CN115222806B (zh) 多边形处理方法、装置、设备及计算机可读存储介质
US20030112239A1 (en) Method of mesh simplification via ununiform spatial division
CN109087392A (zh) 一种动态细节层次模型实现方法
Erikson et al. Simplification culling of static and dynamic scene graphs
CN113591208B (zh) 一种基于舰船特征提取的超大模型轻量化方法及电子设备
CN114590366B (zh) 一种船舶结构有限元分析结果虚拟可视化系统
CN106447778A (zh) 一种动态细节层次模型实现的方法
CA2357940A1 (en) Apparatus, system, and method for simplifying annotations of a geometric surface
Taubin Constructing hamiltonian triangle strips on quadrilateral meshes
Gröller Fractals and solid modeling
Gooch Silhouette extraction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181225

WD01 Invention patent application deemed withdrawn after publication