多显卡大模型渲染方法技术

技术编号:30644984 阅读:24 留言:0更新日期:2021-11-04 00:49
本发明专利技术属于工业和BIM渲染领域,尤其是多显卡大模型渲染方法,针对现有的硬件支持的多显卡技术只能叠加运算能力,无法叠加存储空间,且对显卡型号和渲染接口的限制非常大的问题,现提出如下方案,其包括以下步骤:S1、在具体的图形API接口上封装一层图形渲染接口RenderProxy;S2、将模型根据显卡的个数按照任意空间结构划分为与显卡数量相同多的子场景;S3、每个子场景用对应显卡的RenderProxy提供的接口进行渲染,本发明专利技术可以同时利用多张显卡来进行渲染,提升实时渲染的模型的体量,相较于单张显卡,多显卡渲染由于是并发渲染,因此性能能够得到很大提升,不限于一台机器上的显卡。卡。

【技术实现步骤摘要】
多显卡大模型渲染方法


[0001]本专利技术涉及工业和BIM渲染
,尤其涉及一种多显卡大模型渲染方法。

技术介绍

[0002]在实时工业渲染领域常常需要渲染高精度和大体量的模型,比如工厂模型和建筑群。由于单张显卡运算能力和存储容量的限制,对于大模型的实时渲染常常需要根据显卡的运算能力和存储容量对模型进行轻量化。轻量化可以程序自动化或者手动完成,自动化的处理可能导致一部分细小且关键的构件的缺失以及整体模型的精度损耗,人工干预的预处理则需要耗费大量的人力。
[0003]目前显卡厂商比如Nvidia和Amd已经在硬件层面支持多显卡渲染。但是这种硬件支持的多显卡技术只能叠加运算能力,无法叠加存储空间,且对显卡型号和渲染接口的限制非常大,因此并没有得到非常广泛的使用。

技术实现思路

[0004]本专利技术的目的是为了解决现有技术中存在硬件支持的多显卡技术只能叠加运算能力,无法叠加存储空间,且对显卡型号和渲染接口的限制非常大的缺点,而提出的多显卡大模型渲染方法。
[0005]为了实现上述目的,本专利技术采用了如下技术方案:
[0006]多显卡大模型渲染方法,包括以下步骤:
[0007]S1、在具体的图形API接口上封装一层图形渲染接口RenderProxy;
[0008]S2、将模型根据显卡的个数按照任意空间结构划分为与显卡数量相同多的子场景;
[0009]S3、每个子场景用对应显卡的RenderProxy提供的接口进行渲染,为了实现并发渲染,不同RenderProxy的渲染代码需要用不同的线程执行;
[0010]S4、主显卡完成自身子场景的渲染之后,使用线程的同步机制等待其他显卡渲染;
[0011]S5、其他的显卡渲染完成之后,先把渲染结果和深度缓存拷贝到CPU内存,拷贝完成之后,再把渲染结果和深度缓存从CPU内存拷贝到主显卡的显存,拷贝功能的接口由RenderProxy提供。
[0012]S6、完成拷贝之后,将多张显卡的渲染结果合并。
[0013]优选的,所述S1中,接口需要包括图形渲染、资源管理、数据拷贝、同步的功能,该接口的底层实现可以Vulkan、D3D12、OpenGL,为了实现多台机器进行渲染,并且保持统一的接口,RenderProxy的一种实现方式可以借助gRPC来把渲染指令转发到其他机器上。
[0014]优选的,所述S2中,每个子场景分配一张显卡,选择其中一张显卡作为主显卡,其他显卡作为副显卡。
[0015]优选的,所述S3中,完成拷贝之后,主显卡基于RenderProxy的接口渲染一张覆盖整个屏幕的四边形或者三角形,把其他显卡的渲染结果和深度缓存作为纹理输入到片元着
色器中,片元着色器分别将这两个纹理作为颜色和深度进行输出,实现多张显卡的渲染结果合并。
[0016]优选的,所述S4中,主显卡完成自身子场景的渲染之后,使用线程的同步机制等待其他显卡渲染,与此同时,进行计时,计算等待时间,将等待时间与预设的等待时间进行对比,当大于预设等待时间时,进行报警,预设等待时间为50

60S。
[0017]优选的,所述S5中,先把渲染结果和深度缓存拷贝到CPU内存,拷贝完成之后,计算拷贝用时,将拷贝用时与历史用时进行对比,超过历史数据最大值时,进行预警。
[0018]优选的,所述S5中,把渲染结果和深度缓存从CPU内存拷贝到主显卡的显存,同时计算拷贝用时,将拷贝用时与历史用时进行对比,超过历史数据最大值时,进行预警。
[0019]优选的,所述S6中,完成拷贝之后,将多张显卡的渲染结果合并,合并完成后,对合并用时进行记录。
[0020]与现有技术相比,本专利技术的有益效果在于:
[0021]本专利技术可以同时利用多张显卡来进行渲染,提升实时渲染的模型的体量,相较于单张显卡,多显卡渲染由于是并发渲染,因此性能能够得到很大提升,不限于一台机器上的显卡。
附图说明
[0022]图1为本专利技术提出的多显卡大模型渲染方法的英文流程图;
[0023]图2为本专利技术提出的多显卡大模型渲染方法的中文流程图。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。
[0025]实施例一
[0026]参照图1,多显卡大模型渲染方法,包括以下步骤:
[0027]S1、在具体的图形API接口上封装一层图形渲染接口RenderProxy;
[0028]S2、将模型根据显卡的个数按照任意空间结构划分为与显卡数量相同多的子场景;
[0029]S3、每个子场景用对应显卡的RenderProxy提供的接口进行渲染,为了实现并发渲染,不同RenderProxy的渲染代码需要用不同的线程执行;
[0030]S4、主显卡完成自身子场景的渲染之后,使用线程的同步机制等待其他显卡渲染;
[0031]S5、其他的显卡渲染完成之后,先把渲染结果和深度缓存拷贝到CPU内存,拷贝完成之后,再把渲染结果和深度缓存从CPU内存拷贝到主显卡的显存,拷贝功能的接口由RenderProxy提供。
[0032]S6、完成拷贝之后,将多张显卡的渲染结果合并。
[0033]本实施例中,S1中,接口需要包括图形渲染、资源管理、数据拷贝、同步的功能,该接口的底层实现可以Vulkan、D3D12、OpenGL,为了实现多台机器进行渲染,并且保持统一的接口,RenderProxy的一种实现方式可以借助gRPC来把渲染指令转发到其他机器上。
[0034]本实施例中,S2中,每个子场景分配一张显卡,选择其中一张显卡作为主显卡,其
他显卡作为副显卡。
[0035]本实施例中,S3中,完成拷贝之后,主显卡基于RenderProxy的接口渲染一张覆盖整个屏幕的四边形,把其他显卡的渲染结果和深度缓存作为纹理输入到片元着色器中,片元着色器分别将这两个纹理作为颜色和深度进行输出,实现多张显卡的渲染结果合并。
[0036]本实施例中,S4中,主显卡完成自身子场景的渲染之后,使用线程的同步机制等待其他显卡渲染,与此同时,进行计时,计算等待时间,将等待时间与预设的等待时间进行对比,当大于预设等待时间时,进行报警,预设等待时间为50S。
[0037]本实施例中,S5中,先把渲染结果和深度缓存拷贝到CPU内存,拷贝完成之后,计算拷贝用时,将拷贝用时与历史用时进行对比,超过历史数据最大值时,进行预警。
[0038]本实施例中,S5中,把渲染结果和深度缓存从CPU内存拷贝到主显卡的显存,同时计算拷贝用时,将拷贝用时与历史用时进行对比,超过历史数据最大值时,进行预警。
[0039]本实施例中,S6中,完成拷贝之后,将多张显卡的渲染结果合并,合并完成后,对合并用时进行记录。
[0040]实施例二
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.多显卡大模型渲染方法,其特征在于,包括以下步骤:S1、在具体的图形API接口上封装一层图形渲染接口RenderProxy;S2、将模型根据显卡的个数按照任意空间结构划分为与显卡数量相同多的子场景;S3、每个子场景用对应显卡的RenderProxy提供的接口进行渲染,为了实现并发渲染,不同RenderProxy的渲染代码需要用不同的线程执行;S4、主显卡完成自身子场景的渲染之后,使用线程的同步机制等待其他显卡渲染;S5、其他的显卡渲染完成之后,先把渲染结果和深度缓存拷贝到CPU内存,拷贝完成之后,再把渲染结果和深度缓存从CPU内存拷贝到主显卡的显存,拷贝功能的接口由RenderProxy提供;S6、完成拷贝之后,将多张显卡的渲染结果合并。2.根据权利要求1所述的多显卡大模型渲染方法,其特征在于,所述S1中,接口需要包括图形渲染、资源管理、数据拷贝、同步的功能,该接口的底层实现可以Vulkan、D3D12、OpenGL,为了实现多台机器进行渲染,并且保持统一的接口,RenderProxy的一种实现方式可以借助gRPC来把渲染指令转发到其他机器上。3.根据权利要求1所述的多显卡大模型渲染方法,其特征在于,所述S2中,每个子场景分配一张显卡,选择其中一张显卡作为主显卡,其他显卡作为副显卡。4.根据权利要求1所述的...

【专利技术属性】
技术研发人员:马文斌
申请(专利权)人:象无形上海信息科技有限公司
类型:发明
国别省市:

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

1