System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于簇的IFC模型构件级LOD生成和使用方法技术_技高网
当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于簇的IFC模型构件级LOD生成和使用方法技术

技术编号:42860102 阅读:9 留言:0更新日期:2024-09-27 17:24
本发明专利技术公开了一种基于簇的IFC模型构件级LOD生成和使用方法。该方法适用于包含大量三角面的IFC构件模型,在离线过程中以一个固定数量的三角面为一个簇的分割方式,对构件模型进行分组减面,生成多级LOD草模,进而可在实时渲染过程中,根据渲染相机的可见范围,动态调整构件的三角面渲染数量,以避免无效渲染带来的开销。本发明专利技术也在对IFC模型进行LOD处理的过程中引入了簇的形式,提高了模型减面的操作细粒度,单体构件得以实现多级LOD的共存,从而保证了相机移动过程中,模型能够在不同LOD层级间平滑过渡;同时,本发明专利技术还结合了符合现代GPU硬件运行方式的实例化渲染与剔除算法,极大提高了渲染的帧率表现。

【技术实现步骤摘要】

本专利技术涉及工业类三维模型显示领域,尤其涉及一种基于簇的ifc模型构件级lod生成和使用方法。


技术介绍

1、随着三维计算机辅助设计(cad)在工程、建筑、制造等领域的广泛应用,对于高效、准确地表达复杂三维模型的需求日益增加。传统的三维cad模型表达方法存在一些挑战,例如模型复杂度高时,会导致数据量庞大,对计算机硬件和软件的要求也越来越高。因此,为了提高三维cad系统的性能和效率,降低数据处理和传输的负担,需要一种更加智能和有效的模型表达方法。

2、为解决这一问题,近年来,越来越多的关注和研究集中在lod(level of detail)技术上。lod技术是一种动态调整模型细节级别的方法,它允许在不同的距离或观察角度下,以不同的精细度来呈现三维模型。这一技术最早在计算机图形学领域中应用,用于实时渲染和优化模型显示,而后逐渐在cad领域得到应用。

3、通常,常规lod技术足以满足动态调整模型精细度来降低渲染开销的需求,但诸如ifc(industry foundation classes)这种bim(building information modeling)类的cad模型,往往有着不同于其他领域的交互要求。这一问题在其他领域,例如游戏中,并不是处理核心,因为在一个庞大场景中,使用者的操作单元往往不会细微到一个很小的部分,但在bim领域则完全相反,满足构件级的操作单位是必要条件,即使是一个极其复杂的给排水模型,也需要确保一个微小构件的可操作性。

4、此外,基于树状的生成结构,传统lod层级的生成较简单,但它通常无法实现单个物体上的多层级lod共存,因为模型简化便注定伴随高频信息的丢失,不同层级间的模型边缘将难以贴合,强行合并会存在很明显的边缘线问题,从而导致模型不够平滑;而假使单个模型每次仅使用一个层级,那又会导致在浏览过程中,随着观察距离和视角的变换,模型在视觉效果上会存在较明显的突变。


技术实现思路

1、本专利技术的目的在于针对现有技术的不足,在传统lod技术的基础之上,提供一种基于簇形式的lod生成和使用方法,并将其应用于ifc模型的构件单体上,使得模型在随着使用者观察状态变化而动态切换lod层级的过程中能平滑过渡,并满足了bim工业领域中构件级的操作需求。

2、本专利技术的目的是通过以下技术方案来实现的:

3、一种基于簇的ifc模型构件级lod生成和使用方法,包括以下步骤:

4、(1)读取ifc模型构件的几何信息,对构件的顶点数据进行去重;并封装更新的三角面数据,遍历该几何数据;对每个构件的三角面数和预设面数阈值进行比较,三角面数不超过阈值的构件视为简易网格构件,走常规渲染管线;三角面数超过阈值的构件视为复杂网格构件,获取该部分构件三角面之间的邻接关系,并记录为数据结构体;

5、(2)遍历模型中的建筑构件识别关于三角面邻接关系的数据结构体,并对三角面进行排序,划分为簇群,同时计算簇的邻接关系,利用该部分数据,对簇群划分为簇组,进而获得簇组群数据,并封装为数据结构体;

6、(3)遍历构件识别步骤(2)中簇组群数据,遍历每个组,提取其中所有簇的三角面数据,结合减面算法进行减面,记录该组内所有新生成的三角面数据及其邻接关系数据;

7、(4)重复步骤(2)和步骤(3),直至生成指定数量的lod层级,将新生成的几何数据存储为一个中间文件;

8、(5)读取中间文件中的几何数据,根据该几何数据所属模型中的构件网格、构件簇组、构件簇的可见性依次进行对应部分的剔除,记录可见簇的数据与对应的lod层级并进行渲染。

9、进一步地,所述步骤(1)通过以下子步骤来实现:

10、(1.1)解析ifc模型的几何数据,获取每个构件的顶点属性和对应的索引标号,遍历所有索引标号对应的顶点,并进行比较,若两个标号指向同一顶点属性,则进行去重,存储更新后的数据;

11、(1.2)默认每个三角面片的边存在方向,通过步骤(1.1)获得的顶点和索引数据,遍历所有边,当任意两条边顶点相同,方向相反时,则这两条边存在对边关系,记录该关系于数据结构体中;

12、(1.3)识别步骤(1.2)关于对边关系的数据结构体,读取其中的每组对边,通过该边的索引标号计算得到其所在三角面片的索引标号,进而可获得三角面的邻接关系,将其封装为一个数据结构体。

13、进一步地,所述步骤(2)通过以下子步骤来实现:

14、(2.1)识别记录三角面邻接关系的数据结构体,利用三角面片的索引标号大小与邻接关系作为权重,进行索引标号排序,随后以一个固定大小进行分割,按序依次封装为簇,并记录簇的边缘数据信息;

15、(2.2)结合半边数据结构算法中,每条无向边可拆分为两条顶点相同,但方向相反的半边的逻辑,可默认每条边存在方向,通过步骤(2.1)获得的簇的边缘数据,遍历所有边,当任意两条边顶点相同,方向相反时,则这两条边存在对边关系,记录该对边关系于数据结构体中;

16、(2.3)识别包含对边关系的数据结构体,读取其中的每组对边,通过该边的索引标号可映射回其所在簇的索引标号,进而可获得簇的邻接关系,将其封装为一个数据结构体;

17、(2.4)识别步骤(2.3)中簇的邻接关系,其数据利用簇的索引标号大小与邻接关系作为权重,进行索引标号排序,随后以一个固定大小进行分割,按序依次封装为簇组,并记录簇组的边缘数据信息。

18、进一步地,所述步骤(3)通过以下子步骤来实现:

19、(3.1)识别簇组的几何数据,遍历每个组,获取其中所有簇的三角面片的顶点属性和索引数据,分别存入一个数据结构体中;

20、(3.2)读取该组的边缘数据,并识别步骤(3.1)生成的顶点属性和索引数据,将边缘对应的顶点标记为“锁定”,以保证在减面过程中其不会被改动;

21、(3.3)识别步骤(3.1)生成的顶点属性和索引数据,结合减面算法,依次遍历每一条边所对应的减面累计误差,对于存在步骤(3.2)所设“锁定”顶点的边,则其减面累计误差设一个最大值,随后将该误差存入一个最小堆数据结构;

22、(3.4)识别步骤(3.3)最小堆数据结构,依次提取出减面累计误差最小的边,对该边进行坍缩,调整其邻接三角面片的顶点数据,并将减面后生成的新边计算减面累计误差,同时存入最小堆中;

23、(3.5)重复步骤(3.4),直至现有边的数量符合预设的条件,随后对现有的顶点属性和索引标号进行去重,利用去重后获得的新顶点属性与索引标号构建新的三角面几何数据,并将结果封装为数据结构体;

24、(3.6)识别步骤(3.5)获得的新的三角面几何数据,遍历所有边,当任意两条边顶点相同,方向相反时,则这两条边存在对边关系,记录所有对边关系于数据结构体,进而利用该数据获得三角面的邻接关系。

25、进一步地,所述步骤(4)通过以下子步骤来实现:

本文档来自技高网...

【技术保护点】

1.一种基于簇的IFC模型构件级LOD生成和使用方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于簇的IFC模型构件级LOD生成和使用方法,其特征在于,所述步骤(1)通过以下子步骤来实现:

3.根据权利要求1所述的一种基于簇的IFC模型构件级LOD生成和使用方法,其特征在于,所述步骤(2)通过以下子步骤来实现:

4.根据权利要求1所述的一种基于簇的IFC模型构件级LOD生成和使用方法,其特征在于,所述步骤(3)通过以下子步骤来实现:

5.根据权利要求1所述的一种基于簇的IFC模型构件级LOD生成和使用方法,其特征在于,所述步骤(4)通过以下子步骤来实现:

6.根据权利要求1所述的一种基于簇的IFC模型构件级LOD生成和使用方法,其特征在于,所述步骤(5)通过以下子步骤来实现:

【技术特征摘要】

1.一种基于簇的ifc模型构件级lod生成和使用方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于簇的ifc模型构件级lod生成和使用方法,其特征在于,所述步骤(1)通过以下子步骤来实现:

3.根据权利要求1所述的一种基于簇的ifc模型构件级lod生成和使用方法,其特征在于,所述步骤(2)通过以下子步骤来实现:

4.根据权利要...

【专利技术属性】
技术研发人员:陈浩华任重聂琳董士崇王文广张泽林
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1