System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及bim模型数据处理,尤其涉及一种基于gpu高性能计算的bim模型快速轻量化方法。
技术介绍
1、建筑信息模型bim(building information modeling)是建筑学、工程学及土木工程的新工具。建筑信息模型bim是来形容那些以三维图形为主、物件导向、建筑学有关的电脑辅助设计。随着建筑信息模型bim技术的广泛应用,其在工程建筑的全生命周期中发挥着越来越重要的作用。
2、当前,bim模型轻量化处理主要依赖于cpu计算,处理效率低下,无法满足大型、复杂bim模型的处理需求,而bim模型通常包含大量的几何和属性信息,导致模型文件体积庞大,不利于存储、传输和实时处理。因此,bim模型的轻量化成为了一个亟待解决的问题。
技术实现思路
1、本专利技术针对现有技术存在的不足,旨在利用cuda并行计算平台和gpu加速技术,实现bim模型的高效处理,以满足实际应用需求,提高bim模型的处理速度和效率,降低模型在存储、传输和使用过程中的资源占用。
2、本专利技术提供如下技术方案,一种基于gpu高性能计算的bim模型快速轻量化方法,包括以下步骤:
3、s1、输入模型数据:从文件或输入源获取bim模型的数据;
4、s2、读取数据:读取解析后的bim模型数据;
5、s3、建立模型:将顶点和面片数据组合成三角形网络模型;
6、s4、模型初始化:初始化模型的数据结构,包括顶点、边和面的信息;
7、s
8、s6、收集所有用于迭代的顶点对:标识并收集所有可能进行顶点对收缩的顶点对;这些顶点对需要进行迭代收缩操作;
9、s7、计算每个顶点对的收缩:为每个顶点对计算收缩操作,这包括确定收缩后的新顶点位置以最小化误差;
10、s8、收缩迭代:迭代地进行顶点对收缩操作,执行顶点对的收缩,将两个顶点合并为一个顶点,更新模型的拓扑结构,确保新的顶点位置减少误差并保持模型细节,当检测到两个面的角相交于一点时,将这两个面定义为共享一个顶点,而不是使用两个独立的顶点,以避免冗余;
11、s9、测量误差:在每次迭代后,重新计算并测量模型的误差,确保简化过程不会导致显著的几何失真,避免模型中出现不必要的重复顶点,提高模型简化效果和渲染性能;
12、s10、改进连通性:当模型中存在未连通区域,进行任意顶点的收缩以有效地连接这些区域,提高模型的连通性和一致性;
13、s11、生成输出模型:生成一个结构更简洁和轻量化的输出模型,同时保持足够的准确性和细节;
14、s12、输出数据模型:将简化后的模型数据输出,确保其适合在gpu上进行实时渲染和交互式应用。
15、作为上述技术方案的改进,在s9中测量误差,其中的具体设计有二次曲面设计、二次误差设计、网格简化设计。
16、作为上述技术方案的改进,在二次曲面设计中:
17、二次曲面方程:
18、ax2+by2+cz2+dxy+exz+fyz+gx+hy+iz+j=0;
19、转化为三维表达式:
20、vtrv+vtp+r=0 v=[vx,vy,vz];
21、
22、作为上述技术方案的改进,在二次误差设计中:
23、三维平面方程:
24、ax+by+cz+d=0
25、a2+b2+c2=1;
26、平面参数:p=[a,b,c,d]t;
27、任意一点到平面距离为
28、任意一点到一系列平面p1,p2,p3…;
29、距离平方和:
30、
31、作为上述技术方案的改进,网格简化包括选择迭代点、计算迭代点收缩代价、根据二次误差值简直最小堆、迭代。
32、作为上述技术方案的改进,选择迭代点,遍历三角网格中所有顶点,如果v1和v2满足以下两个条件,便可以组成一对迭对点:
33、(v1,v2)是一条边;
34、||v1-v2||<t,t为选定的阈值。
35、作为上述技术方案的改进,计算迭代点收缩代价,对上一步选出的每一个(v1,v2),构造收缩成一个点后的二次误差:
36、δ(v)=vt(qv1+qv2)v;
37、选取使得误差δ(v)最小的收缩点v作为最优收缩点*,收缩代价为δ(v);
38、如果最优收缩点不存在,可以选择v1,v2或(v1+v2)/2。
39、作为上述技术方案的改进,迭代,从当前最小堆中取出代价最小的迭代点进行合并:
40、v←(v1,v2);
41、更新v的qv矩阵:
42、qv=qv1+qv2;
43、重新计算最小堆中所有和v1或v2有连接的迭代点的二次误差,维护最小堆。
44、作为上述技术方案的改进,还包括利用cuda并行计算平台和gpu加速技术,实现高效能的方法:gpu加速的核心原理是通过gpu的大量处理核心来并行处理计算任务,从而提高计算效率和性能,gpu的处理核心可以同时处理大量的并行任务。
45、作为上述技术方案的改进,1个cuda程序可以分为3个步骤,第一个步骤是从主机端cpu申请内存,然后再把主机中内存的内容拷贝到设备端gpu,第二个步骤是设备端的核函数进行计算,第三个步骤是把设备端内存的内容拷贝到主机,最后释放显存和内存;
46、具体步骤如下:
47、a1.将计算任务分解为多个并行任务,并将这些并行任务分配给gpu的处理核心;
48、a2.使用cuda编程接口编写gpu程序,并将程序编译成可执行文件;
49、a3.将数据加载到gpu的内存中,并将计算结果存储到gpu的内存中;
50、a4.运行gpu程序,并在gpu上执行计算任务;
51、a5.将计算结果从gpu的内存中加载到cpu的内存中,并进行后续处理。
52、本专利技术的有益效果:
53、1、该算法利用顶点对的迭代收缩来高效地简化模型,并通过维护表面误差的近似值使用二次矩阵进行优化;这种方法不仅限于简单的边收缩,而是能够在需要的情况下收缩任意顶点,从而有效地连接模型中的未连通区域,提高模型整体的连通性和一致性。
54、2、在该算法中,输入的bim模型被转换为由三角形构成的多边形模型,这有助于后续的高效处理和优化;当算法检测到两个面的角相交于一点时,它将这两个面定义为共享一个顶点,而不是简单地使用两个独立的顶点,这样可以避免模型中出现不必要的重复顶点,进一步提升模型的简化效果和渲染性能。
55、3、通过这种方法,从一个复杂的多边形bim模型作为输入,可以生成一个结构更本文档来自技高网...
【技术保护点】
1.一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:在S9中测量误差,其中的具体设计有二次曲面设计、二次误差设计、网格简化设计。
3.根据权利要求2所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:在二次曲面设计中:
4.根据权利要求2所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:在二次误差设计中:
5.根据权利要求2所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:网格简化包括选择迭代点、计算迭代点收缩代价、根据二次误差值简直最小堆、迭代。
6.根据权利要求5所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:选择迭代点,遍历三角网格中所有顶点,如果v1和v2满足以下两个条件,便可以组成一对迭对点:
7.根据权利要求5所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:计算迭代点收缩代价,对
8.根据权利要求5所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:迭代,从当前最小堆中取出代价最小的迭代点进行合并:
9.根据权利要求1-8任一项所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:还包括利用CUDA并行计算平台和GPU加速技术,实现高效能的方法:GPU加速的核心原理是通过GPU的大量处理核心来并行处理计算任务,从而提高计算效率和性能,GPU的处理核心可以同时处理大量的并行任务。
10.根据权利要求9所述的一种基于GPU高性能计算的BIM模型快速轻量化方法,其特征在于:1个CUDA程序可以分为3个步骤,第一个步骤是从主机端CPU申请内存,然后再把主机中内存的内容拷贝到设备端GPU,第二个步骤是设备端的核函数进行计算,第三个步骤是把设备端内存的内容拷贝到主机,最后释放显存和内存;
...【技术特征摘要】
1.一种基于gpu高性能计算的bim模型快速轻量化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于gpu高性能计算的bim模型快速轻量化方法,其特征在于:在s9中测量误差,其中的具体设计有二次曲面设计、二次误差设计、网格简化设计。
3.根据权利要求2所述的一种基于gpu高性能计算的bim模型快速轻量化方法,其特征在于:在二次曲面设计中:
4.根据权利要求2所述的一种基于gpu高性能计算的bim模型快速轻量化方法,其特征在于:在二次误差设计中:
5.根据权利要求2所述的一种基于gpu高性能计算的bim模型快速轻量化方法,其特征在于:网格简化包括选择迭代点、计算迭代点收缩代价、根据二次误差值简直最小堆、迭代。
6.根据权利要求5所述的一种基于gpu高性能计算的bim模型快速轻量化方法,其特征在于:选择迭代点,遍历三角网格中所有顶点,如果v1和v2满足以下两个条件,便可以组成一对迭对点:
7.根据权利要求5所述的一种基于gp...
【专利技术属性】
技术研发人员:李韬,罗明,
申请(专利权)人:长沙眸瑞网络科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。