技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于异构算力加速的大场景消隐算法的制作方法  >  正文

一种基于异构算力加速的大场景消隐算法的制作方法

  • 国知局
  • 2025-01-17 13:06:57

本发明涉及计算机图形学,尤其涉及一种基于异构算力加速的大场景消隐算法。

背景技术:

1、目前在二维cad出图过程中,大场景的消隐处理通常是通过软件自带的消隐功能来实现的。消隐是指在绘图过程中隐藏不必要的线条和遮挡部分,以便更清晰地展示设计图纸。消隐功能可以提高绘图效率和可读性,特别是在处理大场景时更为重要。

2、cn114154223a公开了一种三维模型生成二维工程图的方法、系统、存储介质及设备,其包括:对用三维模型进行轻量化处理;确定轻量化处理后的三维模型插入基点;以插入基点作为定位点,获取三维模型各向视图并存入数据库;对三维模型进行剖切,选取需要出图的空间范围;对剖切后选取的三维模型按选取的视图方向进行二维替换,打印图纸。

3、cn118505949a公开了一种虚实遮挡关系处理方法、装置及电子设备,该方法包括基于预设的模板匹配规则确定真实目标物体的虚拟替身;对虚拟替身进行消隐;获取与真实目标物体发生遮挡的虚拟物体在遮挡区域的深度值、颜色值及对应遮挡区域的虚拟替身的深度值、颜色值;基于两者的深度值确定虚拟物体与真实目标物体的虚实遮挡关系;基于虚实遮挡关系及颜色值对消隐后的真实目标物体绘制虚实融合场景。

4、cn111467801a公开了一种模型消隐方法及装置、计算机可读存储介质及电子设备,方法包括:通过终端设备提供图形用户界面,图形用户界面包括至少部分通过虚拟摄像机提供的游戏画面,游戏画面包括至少部分游戏模型和至少部分虚拟对象,获取初始游戏模型,其中,初始游戏模型包括可消隐模型和实体模型;根据虚拟摄像机的位置信息、虚拟对象的位置信息以及可消隐模型的位置信息控制调整遮挡虚拟对象的可消隐模型的透明度。

5、在将三维模型转化为二维图纸的过程中,需要如下步骤:将三维模型沿着预定方向进行投影,以形成二维平面图,其中,在投影过程中需要消除一些线条,其中,这些线条在三维图像中原本是用于显示预定对象的,但在三维到二维的投影过程中,这些线条会因为视角转换而造成遮挡所以不可见。然而在消隐线条时,由于现有的消隐功能在处理大场景时存在消隐速度慢、效果不理想、占用大量计算资源等缺点。特别是在处理复杂的大场景时,消隐过程可能耗费大量时间,影响绘图效率。若存在大量三维模型如带有大量设备和管道的化工厂场景下,消隐过程本身就需要几分钟甚至几十分钟乃至数个小时。并且常常只能实现某个片区甚至某个设备的消隐cad出图,而难以实现详细而准确的整体场景的cad图纸生成。此外,需等待消隐过程结束之后,才能查看最终的二维平面图,因此不能监控消隐过程,使得软件操作的灵活度和受控性变差。对于大量三维模型的情况,之所以如此困难,是因为在消隐计算时,需要考虑多个三维模型之间的关系,难以实现一种优化算法来执行并行计算,且能够保持很高的容错率。因此,如何大幅度减少消隐过程所需的时间,并且在消隐过程中可以实时查看三维到二维的投影过程是本领域目前急需解决的技术问题。

6、此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于申请人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。

技术实现思路

1、现有技术存在的问题主要是由于现有消隐功能在处理大场景时所面临的算法复杂度、计算资源消耗、效率低等缺陷导致的。大场景中包含大量的线条和图形,消隐功能需要对每个线条进行计算和处理,消隐算法复杂度高,计算资源消耗大,导致消隐速度慢、效果不佳。同时,现有的消隐功能没有针对大场景的特点进行优化,无法有效处理大场景中的遮挡关系,导致消隐效果不够准确。针对现有技术之不足,本发明提供了一种基于异构算力加速的大场景消隐算法,旨在解决现有技术中存在的大场景消隐二维cad出图过程中消隐速度慢、效果不佳、计算资源消耗大等问题。本发明通过优化消隐算法,结合cpu和gpu计算资源,实现对大场景的快速消隐,提高绘图效率和质量。

2、本发明将待绘制的大场景在垂直于投影平面上分割为多个独立的区块,每个区块分配一个独立的cpu进程进行消隐处理,形成有待消隐特征线列表。这样可以将大场景分解成小块,减少每个区块的计算量,提高消隐效率。本发明采用gpu深度渲染技术,在消隐过程中进行碰撞测试,通过检测渲染图中每个像素的深度信息,可以快速判断出哪些线条或图形被遮挡,从而实现快速而准确的消隐处理,利用gpu的并行计算能力可以加速遮挡测试过程,提高消隐效率。本发明在消隐过程中充分利用cpu和gpu的计算资源,将消隐算法在两者之间进行合理分配和协同计算,其中,cpu负责管理场景分块和任务分配,gpu负责深度渲染和遮挡测试,两者相互配合,实现对大场景的高效消隐。通过以上技术方案的实施,本发明可以有效解决现有技术中大场景消隐二维cad出图过程中存在的问题,实现对大场景的快速、准确消隐,提高绘图效率和质量。

3、具体地,本发明公开了一种基于异构算力加速的大场景消隐算法,其包括如下步骤:

4、s1、在加载三维文件时,先将该三维文件中的三维模型按照其所在的位置进行分区,其中每个分区分别包括至少一个三维模型,其中,各个三维模型分别被指定到至少一个分区;

5、s2、将带有至少一个三维模型的各个分区分别指定给至少一个cpu进行计算,按照分区计算的方式将该三维文件所包含的各个三维模型转换为二维平面对象,其中,在将各个分区的三维模型转换为二维平面对象的过程中,在各个分区内分别计算确定在沿投影方向进行投影时被遮挡的线条;

6、s3、将转换得到的所有二维平面对象进行合并,其中,针对分别被指定到两个或以上的分区的三维模型,将其转换得到的二维平面对象的分属于不同分区的线段进行连接。

7、根据一种优选实施方式,在执行步骤s2的分区计算时,其分区计算过程包括构建场景八叉树,其中,构建场景八叉树的步骤包括:

8、加载与三维文件对应的场景文件,其中,在加载场景文件时,获取该场景文件所定义的场景中的所有实体;

9、在场景内计算包围盒,遍历场景中的每一个实体列表,合并所有实体的包围盒,得到整个场景的包围盒;

10、用整个场景的包围盒来生成八叉树根节点;

11、确定八叉树深度;

12、绑定实体到八叉树节点;

13、当所有的实体都被正确地绑定到八叉树节点上之后,表示八叉树已经构建完成。

14、根据一种优选实施方式,在执行步骤s2的分区计算时,其分区计算过程包括提取特征线,其中,提取特征线的步骤包括:

15、遍历由投影方向所确定的视野内的场景八叉树节点,其中,在遍历场景八叉树的所有节点时,识别出位于当前视野内的节点;

16、访问节点上的每一个实体,其中,在视野内的每个节点中,逐一访问绑定在其上的实体;

17、根据实体类型提取三维特征线,并将所述三维特征线转换为二维特征线,其包括轴线、轮廓线或外轮廓线;

18、存储所识别的基本体特征线和非基本体特征线,以形成特征线列表。

19、根据一种优选实施方式,在执行提取特征线的步骤时,对于基本体特征线,通过插值算法单独构建不同基本体的特征线,每一段多段线作为一个元素存放到特征线列表中,然后将列表中相交的多段线进行布尔运算,以生成如外轮廓线这样的特征线。

20、根据一种优选实施方式,在执行提取特征线的步骤时,对于非基本体特征线,加载不是基本几何形状的实体的mesh数据;根据三角形顶点坐标,构建相邻三角形公共边列表;遍历公共边,根据其上两个三角形的法线判断是否是特征线;最后合并所有识别出来的特征线。

21、根据一种优选实施方式,在执行步骤s2的分区计算时,其分区计算过程包括生成消隐线,其中,生成消隐线的步骤包括:

22、遍历消隐实体列表;

23、根据实体尺寸计算遍历步长;

24、遍历每个实体的特征线列表;

25、对于每个实体的每条特征线的每一根线段,按照确定的步长进行遍历;

26、执行特征线的端点可见性的初步判断,其中,将“不可见的特征线”存入有待消隐特征线列表;

27、以特征线的按步长划分得到的线段端点为起点,沿投影方向的反向形成用于场景碰撞测试的射线;

28、通过利用场景碰撞测试来确定“作为场景碰撞测试用射线的起点”的各个线段端点的可见或不可见状态;

29、根据“作为场景碰撞测试用射线的起点”的端点的状态,确定线段的状态并存入对应的列表中,其中,不可见列表内的线段均存入有待消隐特征线列表。

30、根据一种优选实施方式,在确定各个线段端点的可见或不可见状态时,通过迭代判断各个线段端点为起点的射线与场景中其他实体之间是否存在交点,从而确定出在投影方向上观察的实体特征线之间的交点。

31、根据一种优选实施方式,在确定线段状态时,将端点状态均为可见的线段确定为可见状态并存入可见列表,将端点状态均为不可见的线段确定为不可见状态并存入不可见列表,并针对“其中一个端点状态为可见,而另一个端点为不可见的线段”的部分可见线段,通过确定所述部分可见线段与存在碰撞关系的实体的外轮廓线之间的交点来确定所述部分可见线段的晨昏分割点,并以该晨昏分割点为界,将部分可见线段拆分成可见的线段和不可见的线段,以存入对应的状态列表。

32、根据一种优选实施方式,步骤s1包括如下子步骤:

33、设定消隐参数:在各个三维模型完成分区之后或之前,设定消隐参数,其中,消隐参数包括投影方向、分割分区数量、分割分区id;

34、生成场景四叉树:根据分区数量来生成与三维文件之场景对应的四叉树;

35、基于四叉树分割场景:根据所述四叉树来确定分区的范围以及其所包含的三维模型;

36、存储分割后的场景:将分区数量、所确定的分区范围、分区id以及各分区所包含的三维模型以分区id为索引进行存储。

37、根据一种优选实施方式,在进行场景碰撞测试的过程中,通过如下步骤完成gpu加速:

38、加载所需的网格模型数据并利用gpu图形api(如opengl),将深度信息按照消隐投影方向渲染到一张深度贴图上,并记录内存;

39、在需要进行射线与网格模型碰撞测试的场景中,直接查询射线对应的深度贴图上的像素点深度值,进行深度测试,以判断遮挡关系,

40、其中,使用对应的深度图读取对应像素点的深度信息,比较射线起始点的深度值,判定是否遮挡。

本文地址:https://www.jishuxx.com/zhuanli/20250117/356210.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。