用于实景三维数据的数据处理方法及电子设备转让专利

申请号 : CN202210865868.2

文献号 : CN114928754B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张帅王砚泽

申请人 : 埃洛克航空科技(北京)有限公司

摘要 :

本发明公开了一种用于实景三维数据的数据处理方法及电子设备,其中方法包括:云渲染服务器获取第一实景三维数据;云渲染服务器对第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,其中,第二实景三维数据为执行第一图像渲染处理之后得到的实景三维数据;云渲染服务器对第二实景三维数据进行编码,得到第二实景三维数据对应的编码图像;以及云渲染服务器将编码图像发送至客户端。本发明由云渲染服务器进行第一图像渲染,而不是客户端,对客户端的硬件设备性能没有特别的要求,不要求客户端的硬件设备有较高的配置,任意轻量化终端或硬件性能配置较低的客户端均可获得高质量的实景三维显示效果。

权利要求 :

1.一种用于实景三维数据的数据处理方法,其特征在于,包括:

云渲染服务器获取第一实景三维数据,其中,所述第一实景三维数据为扫描数据源得到的实景三维数据;

所述云渲染服务器对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,其中,所述第二实景三维数据为执行所述第一图像渲染处理之后得到的实景三维数据;

所述云渲染服务器对所述第二实景三维数据进行编码,得到所述第二实景三维数据对应的编码图像,其中,所述编码图像包括视频和图片;以及所述云渲染服务器将所述编码图像发送至客户端,其中,所述客户端用于对所述编码图像进行解码,得到解码图像,对所述解码图像进行第二图像渲染,得到所述第二图像渲染后的渲染图像并显示所述渲染图像,其中,所述第二图像渲染包括视频渲染和图片渲染;

所述方法还包括:

多台云渲染服务器组成云渲染集群;

所述云渲染集群中的云渲染服务器,利用网络文件系统共享执行第一图像渲染处理之后的实景三维数据,得到所述云渲染集群中所有云渲染服务器之间数据一致的渲染实例;

所述云渲染集群中的云渲染服务器并发起多个渲染实例,利用所述多个渲染实例同时对相应个数的客户端执行第二图像渲染处理,得到相应个数的渲染图像,其中,每台云渲染服务器最多并发起三个渲染实例;

其中,所述利用所述多个渲染实例同时对相应个数的客户端执行第二图像渲染处理,包括:所述云渲染集群中的云渲染服务器在软件开发工具包中获取对应的客户端的图像适配信息,并将所述图像适配信息发送至对应的渲染实例,其中,所述图像适配信息包括客户端适配的图像的比例和大小;

所述云渲染服务器通过对应的渲染实例,基于所述图像适配信息执行第二图像渲染处理,得到符合所述比例和大小的渲染图像;

所述云渲染服务器接收软件开发工具包反馈的针对所述渲染图像的粒子渲染需求,通过所述渲染实例实现所述粒子渲染需求对应的粒子效果,并将所述粒子效果发送至客户端,其中,所述客户端用于将所述渲染图像的粒子渲染需求以接口形式封装在所述软件开发工具包中,通过所述接口将所述粒子渲染需求反馈到所述云渲染服务器,并显示接收的所述粒子效果,粒子效果包括三维场景中的飞行动画效果、粒子渲染和雨雪场景。

2.根据权利要求1所述的方法,其特征在于,

所述云渲染服务器对所述第二实景三维数据进行编码,得到所述第二实景三维数据对应的编码图像,包括:所述云渲染服务器在专用集成电路中,采用数字视频压缩编码格式的编码器对RAM中的第二实景三维数据进行编码压缩,得到所述第二实景三维数据对应的编码图像,其中,所述数字视频压缩编码格式包括H.264编码格式;

所述云渲染服务器将所述编码图像发送至客户端包括:所述云渲染服务器将所述编码图像通过扩展总线存储至内存,其中,所述扩展总线包括PCIe通道;所述云渲染服务器通过CPU从所述内存中获取所述编码图像,以将所述云渲染服务器中的所述编码图像发送至所述客户端,其中,发送至所述客户端的编码图像为从所述内存中获取到的所述编码图像。

3.根据权利要求1所述的方法,其特征在于,所述云渲染服务器将所述编码图像发送至客户端包括:所述云渲染服务器将所述编码图像由内存传递至第一实时通信层;

所述云渲染服务器经由所述第一实时通信层,利用数据通道将所述编码图像实时发送至所述客户端的第二实时通信层,其中,所述客户端的第二实时通信层用于将所述编码图像传递至软件开发工具包,所述第二实时通信层和所述软件开发工具包均位于所述客户端。

4.根据权利要求1所述的方法,其特征在于,所述云渲染服务器上设置有第一实时通信层,所述客户端上设置有第二实时通信层,在显示所述渲染图像之后,所述方法还包括:所述云渲染服务器利用数据通道接收所述第二实时通信层实时反馈的外设输入,并通过所述第一实时通信层将所述外设输入传递至三维场景渲染软件,其中,所述外设输入为客户端针对所述渲染图像的输入操作;

所述云渲染服务器通过所述三维场景渲染软件对所述外设输入进行响应,以使所述客户端显示的渲染图像产生与所述外设输入对应的变化。

5.根据权利要求4所述的方法,其特征在于,所述通过第一实时通信层将所述外设输入传递至三维场景渲染软件包括:所述云渲染服务器通过第一实时通信层将所述外设输入传递至应用逻辑层;

所述云渲染服务器利用所述应用逻辑层,将所述外设输入传递至设备驱动;

所述云渲染服务器利用所述设备驱动,将所述外设输入传递至OS;

所述云渲染服务器通过所述OS封装的接口,将所述外设输入传递至三维场景渲染软件。

6.根据权利要求1所述的方法,其特征在于,所述云渲染服务器对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,包括:所述云渲染服务器通过GPU对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,并将所述第二实景三维数据存放至显存,其中,所述第一实景三维数据为扫描数据源得到的实景三维数据;

所述云渲染服务器通过捕获层从所述显存中获取所述第二实景三维数据;

所述云渲染服务器将所述第二实景三维数据通过扩展总线传输至RAM。

7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1‑6任意一项所述的用于实景三维数据的数据处理方法。

8.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1‑6任意一项所述的用于实景三维数据的数据处理方法。

说明书 :

用于实景三维数据的数据处理方法及电子设备

技术领域

[0001] 本发明涉及实景三维技术领域,具体涉及一种用于实景三维数据的数据处理方法及电子设备。

背景技术

[0002] 随着实景三维获取的效率越来越高,精度达到3cm的高精度实景三维数据成为现阶段应用的主要方向,每平方公里数十亿点云的数据量显示问题已成为应用的瓶颈。
[0003] 目前的端渲染架构中,数据是在客户端浏览器完成解析和渲染,渲染工作由客户端浏览器完成,三维场景的显示效果和图像质量完全取决于客户端硬件设备的性能,特别是设备的中央处理器(Central Processing Unit,简称为CPU)、图形处理器(Graphics Processing Unit,简称为GPU)、操作系统、显示设备等,高精度实景三维数据的清晰显示对客户端的硬件性能配置要求较高,导致高精度实景三维在硬件性能配置较低的客户端显示效果较差。

发明内容

[0004] 本发明的主要目的在于提供一种用于实景三维数据的数据处理方法及电子设备,以解决相关技术中高精度实景三维在硬件性能配置较低的客户端显示效果较差的问题。
[0005] 为了实现上述目的,本发明的第一方面提供了一种用于实景三维数据的数据处理方法,包括:
[0006] 云渲染服务器获取第一实景三维数据;
[0007] 所述云渲染服务器对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,其中,所述第二实景三维数据为执行所述第一图像渲染处理之后得到的实景三维数据;
[0008] 所述云渲染服务器对所述第二实景三维数据进行编码,得到所述第二实景三维数据对应的编码图像;以及
[0009] 所述云渲染服务器将所述编码图像发送至客户端,其中,所述客户端用于对所述编码图像进行解码,得到解码图像,对所述解码图像进行第二图像渲染,得到所述第二图像渲染后的渲染图像并显示所述渲染图像。
[0010] 可选地,所述云渲染服务器对所述第二实景三维数据进行编码,得到所述第二实景三维数据对应的编码图像,包括:所述云渲染服务器在专用集成电路中,采用数字视频压缩编码格式的编码器对RAM中的第二实景三维数据进行编码压缩,得到所述第二实景三维数据对应的编码图像,其中,所述数字视频压缩编码格式包括H.264编码格式;
[0011] 所述云渲染服务器将所述编码图像发送至客户端包括:所述云渲染服务器将所述编码图像通过扩展总线存储至内存,其中,所述扩展总线包括PCIe通道;所述云渲染服务器通过CPU从所述内存中获取所述编码图像,以将所述云渲染服务器中的所述编码图像发送至所述客户端,其中,发送至所述客户端的编码图像为从所述内存中获取到的所述编码图像。
[0012] 可选地,所述云渲染服务器将所述编码图像发送至客户端包括:
[0013] 所述云渲染服务器将所述编码图像由内存传递至第一实时通信层;
[0014] 所述云渲染服务器经由所述第一实时通信层,利用数据通道将所述编码图像实时发送至所述客户端的第二实时通信层,其中,所述客户端的第二实时通信层用于将所述编码图像传递至软件开发工具包,所述第二实时通信层和所述软件开发工具包均位于所述客户端。
[0015] 可选地,所述云渲染服务器上设置有第一实时通信层,所述客户端上设置有第二实时通信层,在显示所述渲染图像之后,所述方法还包括:
[0016] 所述云渲染服务器利用数据通道接收所述第二实时通信层实时反馈的外设输入,并通过所述第一实时通信层将所述外设输入传递至三维场景渲染软件,其中,所述外设输入为客户端针对所述渲染图像的输入操作;
[0017] 所述云渲染服务器通过所述三维场景渲染软件对所述外设输入进行响应,以使所述客户端显示的渲染图像产生与所述外设输入对应的变化。
[0018] 进一步地,所述通过第一实时通信层将所述外设输入传递至三维场景渲染软件包括:
[0019] 所述云渲染服务器通过第一实时通信层将所述外设输入传递至应用逻辑层;
[0020] 所述云渲染服务器利用所述应用逻辑层,将所述外设输入传递至设备驱动;
[0021] 所述云渲染服务器利用所述设备驱动,将所述外设输入传递至OS;
[0022] 所述云渲染服务器通过所述OS封装的接口,将所述外设输入传递至三维场景渲染软件。
[0023] 可选地,所述云渲染服务器对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,包括:
[0024] 所述云渲染服务器通过GPU对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,并将所述第二实景三维数据存放至显存,其中,所述第一实景三维数据为扫描数据源得到的实景三维数据;
[0025] 所述云渲染服务器通过捕获层从所述显存中获取所述第二实景三维数据;
[0026] 所述云渲染服务器将所述第二实景三维数据通过扩展总线传输至RAM。
[0027] 可选地,所述方法还包括:
[0028] 多台云渲染服务器组成云渲染集群;
[0029] 所述云渲染集群中的云渲染服务器,利用网络文件系统共享执行第一图像渲染处理之后的实景三维数据,得到所述云渲染集群中所有云渲染服务器之间数据一致的渲染实例;
[0030] 所述云渲染集群中的云渲染服务器并发起多个渲染实例,利用所述多个渲染实例同时对相应个数的客户端执行第二图像渲染处理,得到相应个数的渲染图像,其中,每台云渲染服务器最多并发起三个渲染实例。
[0031] 进一步地,所述利用所述多个渲染实例同时对相应个数的客户端执行第二图像渲染处理,包括:
[0032] 所述云渲染集群中的云渲染服务器在软件开发工具包中获取对应的客户端的图像适配信息,并将所述图像适配信息发送至对应的渲染实例,其中,所述图像适配信息包括客户端适配的图像的比例和大小;
[0033] 所述云渲染服务器通过对应的渲染实例,基于所述图像适配信息执行第二图像渲染处理,得到符合所述比例和大小的渲染图像;
[0034] 所述云渲染服务器接收软件开发工具包反馈的针对所述渲染图像的粒子渲染需求,通过所述渲染实例实现所述粒子渲染需求对应的粒子效果,并将所述粒子效果发送至客户端,其中,所述客户端用于将所述渲染图像的粒子渲染需求以接口形式封装在所述软件开发工具包中,通过所述接口将所述粒子渲染需求反馈到所述云渲染服务器,并显示接收的所述粒子效果。
[0035] 本发明的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面任意一项提供的用于实景三维数据的数据处理方法。
[0036] 本发明的第三方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的用于实景三维数据的数据处理方法。
[0037] 在本发明实施例提供的用于实景三维数据的数据处理方法中,云渲染服务器获取第一实景三维数据;所述云渲染服务器对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,其中,所述第二实景三维数据为执行所述第一图像渲染处理之后得到的实景三维数据;第一图像渲染处理在云渲染服务器执行,由云渲染服务器进行第一图像渲染,而不是由客户端,因此对客户端的硬件设备性能没有特别的要求,不要求客户端的硬件设备有较高的配置,任意轻量化终端或硬件性能配置较低的客户端均可获得高质量的实景三维显示效果;
[0038] 所述云渲染服务器对所述第二实景三维数据进行编码,得到所述第二实景三维数据对应的编码图像;通过对第二实景三维数据进行编码,保证后续将编码后得到的编码图像发送至客户端时推流延迟低;
[0039] 所述云渲染服务器将所述编码图像发送至客户端,其中,所述客户端用于对所述编码图像进行解码,得到解码图像,对所述解码图像进行第二图像渲染,得到所述第二图像渲染后的渲染图像并显示所述渲染图像。客户端只需要对云渲染服务器发送的编码图像依次进行解码和第二图像渲染,得到渲染图像并显示,不需要执行第一图像渲染处理得到实景三维数据,因此,对客户端硬件性能配置没有特别的要求,即便是硬件性能配置较低的客户端,也可以清晰地显示高精度实景三维数据,获得高质量的实景三维显示效果,解决了相关技术中高精度实景三维在硬件性能配置较低的客户端显示效果较差的问题。

附图说明

[0040] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041] 图1为本发明实施例提供的用于实景三维数据的数据处理方法流程示意图;
[0042] 图2为本发明实施例提供的数据压缩编码推流过程图;
[0043] 图3为本发明实施例提供的云渲染的示意图;
[0044] 图4为本发明实施例提供的渲染能力的概览图;
[0045] 图5为本发明实施例提供的电子设备框图。

具体实施方式

[0046] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0047] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0048] 在本发明中,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0049] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0050] 目前的端渲染架构中,数据是在客户端浏览器完成解析和渲染,渲染工作由客户端浏览器完成,三维场景的显示效果和图像质量完全取决于客户端硬件设备的性能,特别是CPU、GPU、操作系统、显示设备等,高精度实景三维数据的清晰显示对客户端的硬件性能配置要求较高,导致高精度实景三维在硬件性能配置较低的客户端显示效果较差。
[0051] 为了解决上述问题,本发明实施例使用沉浸式串流技术,三维场景渲染在云渲染服务器完成,并采用视频串流技术将渲染画面实时传送至客户端的浏览器,支持终端用户和云端应用的实时交互。沉浸式串流技术需要专业的云渲染服务器,但对客户端的硬件设备性能没有特别的要求,任意轻量化终端均可获得高质量的三维渲染效果。同时,客户端接收到的渲染图像或渲染画面是视频或图片,数据可以做到绝对的安全。
[0052] 本发明实施例提供了一种用于实景三维数据的数据处理方法,如图1所示,该方法包括如下的步骤S101至步骤S104:
[0053] 步骤S101:云渲染服务器获取第一实景三维数据;第一实景三维数据为扫描数据源得到的实景三维数据,可以是无人机航拍采集数据源后扫描得到的实景三维数据,例如分辨率1.5cm、每平方公里20GB数据以上的实景三维数据,或者精度3cm、每平方公里数十亿点云数据量的实景三维数据,云渲染服务器可以主动获取或被动接收第一实景三维数据,有效支持高精度实景大数据。
[0054] 步骤S102:所述云渲染服务器对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,其中,所述第二实景三维数据为执行所述第一图像渲染处理之后得到的实景三维数据;
[0055] 第一图像渲染处理包括三维场景渲染,云渲染服务器对第一实景三维数据进行三维场景渲染,得到第二实景三维数据,第二实景三维数据为三维场景渲染完成后的实景三维数据。
[0056] 本发明实施例中,第一图像渲染处理在云渲染服务器执行,由云渲染服务器进行第一图像渲染,而不是由客户端,因此对客户端的硬件设备性能没有特别的要求,不要求客户端的硬件设备有较高的配置,任意轻量化终端或硬件性能配置较低的客户端均可获得高质量的实景三维显示效果。
[0057] 具体的,所述步骤S102包括:
[0058] 所述云渲染服务器通过GPU对所述第一实景三维数据执行第一图像渲染处理,得到第二实景三维数据,并将所述第二实景三维数据存放至显存,其中,所述第一实景三维数据为扫描数据源得到的实景三维数据;
[0059] 所述云渲染服务器通过捕获层从所述显存中获取所述第二实景三维数据;
[0060] 所述云渲染服务器将所述第二实景三维数据通过扩展总线传输至RAM,其中,所述扩展总线包括PCIe通道,PCIe属于高速串行点对点双通道高带宽传输。
[0061] 步骤S103:所述云渲染服务器对所述第二实景三维数据进行编码,得到所述第二实景三维数据对应的编码图像;对于第二实景三维数据对应的编码图像,图像包括视频和图片。
[0062] 具体的,所述步骤S103包括:所述云渲染服务器在专用集成电路中,采用数字视频压缩编码格式的编码器对RAM中的第二实景三维数据进行编码压缩,得到所述第二实景三维数据对应的编码图像,其中,所述数字视频压缩编码格式包括H.264编码格式;H.264编码格式的编码器可以保证推流延迟低,并且,与H.265编码格式或其他数字视频压缩编码格式相比,H.264编码格式与WebRTC兼容。
[0063] 步骤S104:所述云渲染服务器将所述编码图像发送至客户端,其中,所述客户端用于对所述编码图像进行解码,得到解码图像,对所述解码图像进行第二图像渲染,得到所述第二图像渲染后的渲染图像并显示所述渲染图像。第二图像渲染包括视频渲染和图片渲染,客户端对解码图像进行视频渲染或图片渲染后,得到渲染图像或或渲染画面并显示;其中,客户端包括web、IOS和安卓。
[0064] 本发明实施例中,客户端只需要对云渲染服务器发送的编码图像依次进行解码和第二图像渲染,得到渲染图像并显示,不需要执行第一图像渲染处理得到实景三维数据,因此,对客户端硬件性能配置没有特别的要求,即便是硬件性能配置较低的客户端,也可以清晰地显示高精度实景三维数据,获得高质量的实景三维显示效果;并且,无论客户端是web网页浏览器,还是IOS或安卓移动设备,都能清晰显示高质量画面,显示效果较好,解决了相关技术中高精度实景三维在硬件性能配置较低的客户端显示效果较差的问题。
[0065] 对于客户端处理的编码图像、解码图像和渲染图像等图像,图像包括视频和图片;传统技术中,客户端接收到的是卫星影像数据切片,需要在客户端组合切片才能形成图片,数据的安全保障较低;与传统技术相比,本发明实施例中,客户端直接接收三维场景渲染后的视频和图片,数据可以做到绝对的安全,提高数据的安全保障,解决了数据应用的安全问题。
[0066] 具体的,所述步骤S104包括:所述云渲染服务器将所述编码图像通过扩展总线存储至内存,其中,所述扩展总线包括PCIe通道;所述云渲染服务器通过CPU从所述内存中获取所述编码图像,以将所述云渲染服务器中的所述编码图像发送至所述客户端,其中,发送至所述客户端的编码图像为从所述内存中获取到的所述编码图像。
[0067] 本发明实施例提供的数据压缩编码推流过程如图2所示,其中,P为画面或图像,云渲染服务器通过采集端采集到画面,对画面进行编码后传输至客户端,再在客户端做解码和图像渲染处理。其中,云渲染服务器进行采集和编码时,利用GPU将三维场景渲染后的实景三维数据存在显存,通过PCIe通道从显存取出实景三维数据后,利用专用集成电路ASIC进行编码压缩得到编码图像,并将编码图像通过PCIe通道存放在内存,基于CPU指令从内存中获取编码图像,以将从内存中获取额编码图像发送到客户端。
[0068] 在本发明一种可选的实施方式中,所述步骤S104包括:
[0069] 所述云渲染服务器将所述编码图像由内存传递至第一实时通信层;
[0070] 所述云渲染服务器经由所述第一实时通信层,利用数据通道将所述编码图像实时发送至所述客户端的第二实时通信层,其中,所述客户端的第二实时通信层用于将所述编码图像传递至软件开发工具包(Software Development Kit,简称为SDK),所述第二实时通信层和所述软件开发工具包均位于所述客户端。第一实时通信层和第二实时通信层均为网页实时通信(Web Real‑Time Communication,简称为WebRTC),位于云渲染服务器上的WebRTC和位于客户端上的WebRTC通过数据通道进行实时通信。
[0071] 在本发明一种可选的实施方式中,所述云渲染服务器上设置有第一实时通信层,所述客户端上设置有第二实时通信层,在步骤S104中的显示所述渲染图像之后,所述方法还包括:
[0072] 所述云渲染服务器利用数据通道接收所述第二实时通信层实时反馈的外设输入,并通过所述第一实时通信层将所述外设输入传递至三维场景渲染软件,其中,所述外设输入为客户端针对所述渲染图像的输入操作,包括鼠标、键盘和手机触摸屏对渲染图像的交互;
[0073] 所述云渲染服务器通过所述三维场景渲染软件对所述外设输入进行响应,以使所述客户端显示的渲染图像产生与所述外设输入对应的变化。三维场景渲染软件对外设操作进行真实响应,响应后,客户端显示的渲染画面就会产生相应的变化。
[0074] 进一步的,所述通过第一实时通信层将所述外设输入传递至三维场景渲染软件包括:
[0075] 所述云渲染服务器通过第一实时通信层将所述外设输入传递至应用逻辑层;
[0076] 所述云渲染服务器利用所述应用逻辑层,将所述外设输入传递至设备驱动;
[0077] 所述云渲染服务器利用所述设备驱动,将所述外设输入传递至OS,其中,所述OS为操作系统;
[0078] 所述云渲染服务器通过所述OS封装的接口,将所述外设输入传递至三维场景渲染软件。
[0079] 本发明实施例提供的云渲染的示意图如图3所示,其中,左半部分是整体云渲染的层次,位于云渲染服务器,右半部分是应用SDK的层次,位于客户端;位于底层的GPU,通过捕获层采集三维场景渲染后的实景三维数据,再通过编码器编码出来的编码图像传递给WebRTC,WebRTC通过视频数据流发送给SDK接口,SDK接口获取编码图像后,通过解码器解码,得到解码图像,再对解码图像执行图像渲染处理,得到渲染图像并在客户端平台中显示;其中,WebRTC为实时音视频通讯技术,用于实时通信,延时较低;客户端平台包括web、IOS和安卓。
[0080] 底层能力平台相关内容,例如三维场景中的飞行动画效果、粒子渲染和雨雪场景,以接口形式封装在客户端的SDK里,将SDK接口传送到云渲染服务器,在云渲染实例中进行操作实现,再将实现效果返回给客户端;其中,SDK作为发送命令的接口,通过SDK发送命令。
[0081] 客户端显示渲染图像后,针对渲染图像互动的交互过程,比如鼠标、键盘和手机触摸屏等事件的反馈,通过数据通道向WebRTC回传,应用逻辑层获取外设操作后,将外设输入发送至设备驱动,设备驱动收到信息后传递给OS的,OS最终以封装好的接口传给三维场景渲染软件,三维场景渲染软件对外设操作进行真实响应,响应后,客户端显示的渲染画面就会产生相应的变化。
[0082] 在本发明一种可选的实施方式中,所述方法还包括:
[0083] 多台云渲染服务器组成云渲染集群;其中,多台包括至少两台;
[0084] 所述云渲染集群中的云渲染服务器,利用网络文件系统(Network File System,简称为NFS)共享执行第一图像渲染处理之后的实景三维数据,得到所述云渲染集群中所有云渲染服务器之间数据一致的渲染实例;
[0085] 利用NFS共享三维场景渲染后的实景三维数据,多台云渲染服务器之间数据高效共享调度,得到渲染实例,多台云渲染服务器之间数据一致,方便数据的更新;并且,利用NFS可以对实景三维数据进行存储和管理,支撑渲染实例的调度。
[0086] 所述云渲染集群中的云渲染服务器并发起多个渲染实例,利用所述多个渲染实例同时对相应个数的客户端执行第二图像渲染处理,得到相应个数的渲染图像,其中,每台云渲染服务器最多并发起三个渲染实例。
[0087] 多台云渲染服务器并发起多个渲染实例,同时对多个客户端分别进行视频渲染或图片渲染,得到多个渲染图像;
[0088] 例如,对于云渲染集群中的3台云渲染服务器,假设每台云渲染服务器并发起2个渲染实例,则云渲染集群中的云渲染服务器并发起6个渲染实例,利用这6个渲染实例同时对6个客户端分别执行视频渲染处理或图片渲染处理,得到6个渲染图像。通过多台云渲染服务器并发的多个渲染实例,可以同时对多个不同的客户端对应进行视频渲染或图片渲染,得到多个渲染图像,使数据高效处理。
[0089] 进一步的,所述利用所述多个渲染实例同时对相应个数的客户端执行第二图像渲染处理,包括:
[0090] 所述云渲染集群中的云渲染服务器在软件开发工具包中获取对应的客户端的图像适配信息,并将所述图像适配信息发送至对应的渲染实例,其中,所述图像适配信息包括客户端适配的图像的比例和大小;例如,客户端适配的图像的比例可以是16:9,图像的大小可以是10K;
[0091] 所述云渲染服务器通过对应的渲染实例,基于所述图像适配信息执行第二图像渲染处理,得到符合所述比例和大小的渲染图像;
[0092] 所述云渲染服务器接收软件开发工具包反馈的针对所述渲染图像的粒子渲染需求,通过所述渲染实例实现所述粒子渲染需求对应的粒子效果,并将所述粒子效果发送至客户端,其中,所述客户端用于将所述渲染图像的粒子渲染需求以接口形式封装在所述软件开发工具包中,通过所述接口将所述粒子渲染需求反馈到所述云渲染服务器,并显示接收的所述粒子效果,粒子效果包括三维场景中的飞行动画效果、粒子渲染和雨雪场景。
[0093] 本发明实施例提供的渲染能力的概览图如图4所示,其中,一方面包括基础平台能力,由底层的支撑系统和资源管理提供,进行整体的管理和调度;其中,支撑系统包括运营系统和监控服务,资源管理包括CPU资源管理、GPU资源管理、存储资源管理和边缘节点资源管理;
[0094] 另一方面包括云渲染能力,是云渲染交互中的功能,通过云渲染集群管理实现,包括渲染实例、数据透传、软件预热和分辨率自适应,其中,每台云渲染服务器最多并发起三个渲染实例,多台云渲染服务器并发多个渲染实例,图4中并发两个渲染实例,即渲染实例1和渲染实例2,数据透传是指多台云渲染服务器之间透明传输渲染实例;分辨率自适应是指,渲染实例通过对应的客户端中的SDK获取该客户端的图像适配信息,根据图像适配信息进行视频渲染或图片渲染,以使得到的渲染图像适应该客户端的配置。
[0095] 从以上的描述中,可以看出,本发明实现了如下技术效果:
[0096] 本发明中,第一图像渲染处理在云渲染服务器执行,由云渲染服务器进行第一图像渲染,而不是由客户端,因此对客户端的硬件设备性能没有特别的要求,不要求客户端的硬件设备有较高的配置,任意轻量化终端或硬件性能配置较低的客户端均可获得高质量的实景三维显示效果;
[0097] 客户端只需要对云渲染服务器发送的编码图像依次进行解码和第二图像渲染,得到渲染图像并显示,不需要执行第一图像渲染处理得到实景三维数据,因此,对客户端硬件性能配置没有特别的要求,即便是硬件性能配置较低的客户端,也可以清晰地显示高精度实景三维数据,获得高质量的实景三维显示效果,解决了相关技术中高精度实景三维在硬件性能配置较低的客户端显示效果较差的问题;
[0098] 客户端直接接收三维场景渲染后的视频和图片,数据可以做到绝对的安全,提高数据的安全保障,解决了数据应用的安全问题;
[0099] 利用NFS共享三维场景渲染后的实景三维数据,多台云渲染服务器之间数据高效共享调度,得到渲染实例,多台云渲染服务器之间数据一致,方便数据的更新;并且,利用NFS可以对实景三维数据进行存储和管理,支撑渲染实例的调度。
[0100] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0101] 本发明实施例还提供了一种电子设备,如图5所示,该电子设备包括一个或多个处理器51以及存储器52,图5中以一个处理器51为例。
[0102] 该控制器还可以包括:输入装置53和输出装置54。
[0103] 处理器51、存储器52、输入装置53和输出装置54可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0104] 处理器51可以为中央处理器(Central Processing Unit,简称为CPU),处理器51还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,简称为DSP)、专用集成电路(Application Specific Integrated Circuit,简称为ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,简称为FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合,通用处理器可以是微处理器或者任何常规的处理器。
[0105] 存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的控制方法对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的用于实景三维数据的数据处理方法。
[0106] 存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0107] 输入装置53可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。
[0108] 一个或者多个模块存储在存储器52中,当被一个或者多个处理器51执行时,执行如图1所示的方法。
[0109] 本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,简称为ROM)、随机存储记忆体(Random Access Memory,简称为RAM)、快闪存储器(Flash Memory,简称为FM)、硬盘(Hard Disk Drive,简称为HDD)或固态硬盘(Solid‑State Drive,简称为SSD)等;存储介质还可以包括上述种类的存储器的组合。
[0110] 虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。