System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机绘图,尤其涉及一种实体绘制方法、装置、计算机设备和存储介质。
技术介绍
1、随着信息技术的不断发展,cad(computer aided design)图形系统软件已经成为绘图人员或者设计师们不可缺少的制图工具。在cad中,实心填充实体是一种较为常见的实体,而存储在cad数据库中的实心填充实体不能直接向用户展示。因此,需要经过重生成流程将实心填充实体转换为显示数据,再经过光栅化过程得到可以在屏幕上展示实心填充实体。而传统技术在上述流程中常常存在效率低下、耗时较多等问题。
技术实现思路
1、本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中存在的效率低下、耗时较多的问题。
2、第一方面,本申请提供了一种实体绘制方法,包括:
3、获取目标实心填充实体的轮廓;
4、确定轮廓的绘制复杂度;
5、若绘制复杂度小于或等于第一阈值,则通过cpu将轮廓三角化,得到多个三角面,并在光栅化阶段调用gpu对各三角面进行平面绘制;
6、若绘制复杂度大于第一阈值,则通过cpu生成填充轮廓的多条扫描线,并在光栅化阶段调用gpu对各扫描线进行线段绘制。
7、在其中一个实施例中,确定轮廓的绘制复杂度,包括:
8、获取轮廓的多个复杂特征参数;
9、根据各复杂特征参数的预设权重,对各复杂特征参数进行加权求和,得到绘制复杂度。
10、在其中一个实施例中,复杂特征参数包括轮廓的顶点数量、
11、在其中一个实施例中,在光栅化阶段调用gpu对各三角面进行绘制,包括:
12、通过cpu将各三角面转换为对应的第一显示数据,并将各第一显示数据上传到gpu的缓存;
13、响应于针对目标实心填充实体的展示指令,在光栅化阶段,调用gpu从缓存中读取第一显示数据进行平面绘制。
14、在其中一个实施例中,在光栅化阶段调用gpu对各扫描线进行绘制,包括:
15、通过cpu将轮廓转换为第二显示数据,并将第二显示数据保存在内存中;
16、响应于针对目标实心填充实体的展示指令,在光栅化阶段,从内存中读取第二显示数据,在每一帧内,将第二显示数据转换到当前的屏幕空间,并根据转换后的第二显示数据,生成多条扫描线对应的显示数据;
17、将各扫描线的显示数据实时上传到gpu,并调用gpu对各扫描线进行实时线段绘制。
18、在其中一个实施例中,在将第二显示数据转换到当前的屏幕空间,并根据转换结果生成多条扫描线之前,还包括:
19、获取轮廓的包围盒;
20、将包围盒与当前视口进行比较;
21、若包围盒与当前视口相离,则停止光栅化阶段。
22、在其中一个实施例中,将第二显示数据转换到当前的屏幕空间,并根据转换结果生成多条扫描线,包括:
23、判断包围盒的大小是否小于第二阈值;
24、若是,则调用gpu对包围盒进行绘制;
25、若否,则将第二显示数据转换到当前的屏幕空间,并根据转换结果生成多条扫描线。
26、第二方面,本申请提供了一种实体绘制装置,包括:
27、轮廓获取模块,用于获取目标实心填充实体的轮廓;
28、复杂度确定模块,用于确定轮廓的绘制复杂度;
29、第一绘制模块,用于若绘制复杂度小于或等于第一阈值,则通过cpu将轮廓三角化,得到多个三角面,并在光栅化阶段调用gpu对各三角面进行平面绘制;
30、第二绘制模块,用于若绘制复杂度大于第一阈值,则通过cpu生成填充轮廓的多条扫描线,并在光栅化阶段调用gpu对各扫描线进行线段绘制。
31、第三方面,本申请提供了一种计算机设备,包括一个或多个处理器,以及存储器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,执行上述任一实施例中的实体绘制方法的步骤。
32、第四方面,本申请提供了一种存储介质,存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例中的实体绘制方法的步骤。
33、从以上技术方案可以看出,本申请实施例具有以下优点:
34、基于上述任一实施例,首先,获取目标实心填充实体的轮廓信息。然后,评估轮廓的绘制复杂度,并根据复杂度高低选择不同的光栅化策略。对于复杂度较低的简单轮廓,进行三角化处理,以拼合目标实心填充实体的三角面作为基本单元进行后续绘制。对于复杂度较高的复杂轮廓,以填充轮廓的扫描线作为基本单元进行后续绘制。该方法基于绘制复杂度为目标实心填充实体选择合适的策略,在对cad图纸进行展示时,由于各种复杂度的实体可同时存在,分别使用两种绘制策略,以充分发挥了各自的特点进行优缺点互补,不管是简单还是复杂实体的绘制都得到性能优化,充分利用硬件性能,综合考虑cpu、gpu、内存、显存的使用率,极大的提升了填充实体的绘制效率。
本文档来自技高网...【技术保护点】
1.一种实体绘制方法,其特征在于,包括:
2.根据权利要求1所述的实体绘制方法,其特征在于,所述确定所述轮廓的绘制复杂度,包括:
3.根据权利要求2所述的实体绘制方法,其特征在于,所述复杂特征参数包括所述轮廓的顶点数量、所述轮廓内部的空洞数量和凸多边形表示参数。
4.根据权利要求1所述的实体绘制方法,其特征在于,所述在光栅化阶段调用GPU对各所述三角面进行绘制,包括:
5.根据权利要求1-4任一项所述的实体绘制方法,其特征在于,所述在所述光栅化阶段调用GPU对各所述扫描线进行绘制,包括:
6.根据权利要求5所述的实体绘制方法,其特征在于,在所述将所述第二显示数据转换到当前的屏幕空间,并根据转换结果生成多条所述扫描线之前,还包括:
7.根据权利要求6所述的实体绘制方法,其特征在于,所述将所述第二显示数据转换到当前的屏幕空间,并根据转换结果生成多条所述扫描线,包括:
8.一种实体绘制装置,其特征在于,包括:
9.一种计算机设备,其特征在于,包括一个或多个处理器,以及存储器,所述存储器中存储
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1-7任一项所述的实体绘制方法的步骤。
...【技术特征摘要】
1.一种实体绘制方法,其特征在于,包括:
2.根据权利要求1所述的实体绘制方法,其特征在于,所述确定所述轮廓的绘制复杂度,包括:
3.根据权利要求2所述的实体绘制方法,其特征在于,所述复杂特征参数包括所述轮廓的顶点数量、所述轮廓内部的空洞数量和凸多边形表示参数。
4.根据权利要求1所述的实体绘制方法,其特征在于,所述在光栅化阶段调用gpu对各所述三角面进行绘制,包括:
5.根据权利要求1-4任一项所述的实体绘制方法,其特征在于,所述在所述光栅化阶段调用gpu对各所述扫描线进行绘制,包括:
6.根据权利要求5所述的实体绘制方法,其特征在于,在所述将所述第二显示数据转换到当前的屏幕空间,并根据...
【专利技术属性】
技术研发人员:夏峰,胡巨振,孙凌云,
申请(专利权)人:广州中望龙腾软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。