一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法、设备、存储介质及计算机程序产品与流程

2022-12-07 20:25:29 来源:中国专利 TAG:


1.本技术涉及计算机应用领域中的渲染技术,尤其涉及一种数据处理方法、设备、存储介质及计算机程序产品。


背景技术:

2.在渲染过程中,为了提升渲染效率,常常采用异步的方式将计算和渲染分布在不同设备上执行;比如,由主控设备进行数据计算,由渲染设备进行渲染;如此,主控设备需要向渲染设备发送渲染指令,以使渲染设备采用基于渲染指令实现渲染。然而,渲染指令中常常携带着各种用于渲染的资源,数据传输量较大,影响了渲染效率。


技术实现要素:

3.本技术实施例提供一种基于渲染资源的数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提升渲染效率。
4.本技术实施例的技术方案是这样实现的:本技术实施例提供一种基于渲染资源的数据处理方法,包括:响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令;响应于所述第一管线配置指令,通过虚拟管线接口进行虚拟管线配置,得到虚拟管线配置信息,其中,所述虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和所述待渲染资源的待渲染资源标识;向渲染设备发送所述虚拟管线配置信息,以使所述渲染设备基于所述虚拟管线配置信息生成第二管线配置指令,并通过真实管线接口响应于所述第二管线配置指令进行真实管线配置,以及基于真实管线配置结果进行渲染。
5.本技术实施例还提供一种基于渲染资源的数据处理方法,包括:接收主控设备发送的虚拟管线配置信息,其中,所述虚拟管线配置信息为所述主控设备响应于第一管线配置指令进行虚拟管线配置获得的,所述第一管线配置指令为所述主控设备响应于渲染触发事件生成的,所述虚拟管线配置通过虚拟管线接口实现,所述虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和待渲染资源标识;基于所述待渲染管线阶段、所述待渲染资源位置、以及与所述待渲染资源标识对应的待渲染资源,生成第二管线配置指令;响应于所述第二管线配置指令,通过真实渲染管线进行真实管线配置,得到真实管线配置结果;基于所述真实管线配置结果进行渲染,得到渲染结果。
6.本技术实施例提供一种第一数据处理装置,包括:渲染触发模块,用于响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令;
虚拟配置模块,用于响应于所述第一管线配置指令,通过虚拟管线接口进行虚拟管线配置,得到虚拟管线配置信息,其中,所述虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和所述待渲染资源的待渲染资源标识;信息同步模块,用于向渲染设备发送所述虚拟管线配置信息,以使所述渲染设备基于所述虚拟管线配置信息生成第二管线配置指令,并通过真实管线接口响应于所述第二管线配置指令进行真实管线配置,以及基于真实管线配置结果进行渲染。
7.在本技术实施例中,所述第一数据处理装置还包括资源发送模块,用于接收所述渲染设备发送的渲染资源请求,其中,所述渲染资源请求中携带有所述待渲染资源标识;响应于所述渲染资源请求,从渲染资源集合中获取与所述待渲染资源标识对应的至少一个渲染资源,并将至少一个所述渲染资源确定为所述待渲染资源,其中,所述渲染资源集合包括各种所述渲染资源;将所述待渲染资源发送至所述渲染设备,以使所述渲染设备基于所述待渲染资源对所述虚拟管线配置信息进行解析。
8.在本技术实施例中,所述资源发送模块,还用于向所述渲染设备发送渲染资源集合,以使所述渲染设备基于所述渲染资源集合对所述虚拟管线配置信息进行解析。
9.在本技术实施例中,所述渲染触发模块,还用于当所述渲染资源集合发送成功时,响应于所述渲染触发事件,生成针对所述待渲染资源的所述第一管线配置指令。
10.在本技术实施例中,所述第一数据处理装置还包括数据请求模块,用于在响应于所述渲染触发事件进行虚拟管线配置的过程中,确定数据计算所关联的渲染数据标识;向所述渲染设备发送携带所述渲染数据标识的渲染数据请求,以使所述渲染设备基于所述渲染数据标识从渲染结果中获取目标渲染数据;接收所述渲染设备响应于所述渲染数据请求所发送的所述目标渲染数据;基于所述目标渲染数据进行数据计算。
11.在本技术实施例中,所述第一数据处理装置还包括画面显示模块,用于接收所述渲染设备针对所述虚拟管线配置信息所发送的渲染视频信息,其中,所述渲染视频信息为所述渲染设备基于渲染结果生成的;播放所述渲染视频信息。
12.在本技术实施例中,所述第一数据处理装置还包括设备更新模块,用于获取所述主控设备中每个中央处理器的第一计算力,并基于所述第一计算力确定第一总计算力;当所述第一总计算力低于第一计算力阈值时,生成所述中央处理器对应的第一更新提示信息,其中,所述第一更新提示信息用于提示所述中央处理器的计算力待增加。
13.本技术实施例提供一种第二数据处理装置,包括:信息接收模块,用于接收主控设备发送的虚拟管线配置信息,其中,所述虚拟管线配置信息为所述主控设备响应于第一管线配置指令进行虚拟管线配置获得的,所述第一管线配置指令为所述主控设备响应于渲染触发事件生成的,所述虚拟管线配置通过虚拟管线接口实现,所述虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和待渲染资源标识;指令还原模块,用于基于所述待渲染管线阶段、所述待渲染资源位置、以及与所述待渲染资源标识对应的待渲染资源,生成第二管线配置指令;管线配置模块,用于响应于所述第二管线配置指令,通过真实渲染管线进行真实管线配置,得到真实管线配置结果;信息渲染模块,用于基于所述真实管线配置结果进行渲染,得到渲染结果。
14.在本技术实施例中,所述指令还原模块,还用于在渲染资源库中,基于所述待渲染资源标识进行渲染资源获取,其中,所述渲染资源库包括所述渲染设备中的渲染资源;当渲染资源获取结果表示所述渲染资源库中包括与所述待渲染资源标识匹配的渲染资源时,将所述匹配的渲染资源确定为所述待渲染资源;当所述渲染资源获取结果表示所述渲染资源库中不包括与所述待渲染资源标识匹配的渲染资源时,向所述主控设备发送携带所述待渲染资源标识的渲染资源请求,并接收所述主控设备针对所述渲染资源请求所发送的所述待渲染资源,以及将所述待渲染资源更新至所述渲染资源库中。
15.在本技术实施例中,所述指令还原模块,还用于接收所述主控设备发送的渲染资源集合,其中,所述渲染资源集合包括各种渲染资源;从所述渲染资源集合中,获取与所述待渲染资源标识对应的至少一个所述渲染资源,并将至少一个所述渲染资源确定为所述待渲染资源。
16.在本技术实施例中,所述第二数据处理装置还包括数据回传模块,用于接收所述主控设备发送的渲染数据请求,其中,所述渲染数据请求中携带有所述主控设备进行数据计算所关联的渲染数据标识;响应于所述渲染数据请求,从所述渲染结果中获取与所述渲染数据标识对应的目标渲染数据;将所述目标渲染数据发送至所述主控设备,以使所述主控设备基于所述目标渲染数据进行数据计算。
17.在本技术实施例中,所述信息渲染模块,还用于获取渲染设备的设备资源占用比;当所述设备资源占用比低于指定设备资源占用比时,检测待渲染请求;响应于所述待渲染请求,执行对应的目标渲染。
18.本技术实施例提供一种用于数据处理的主控设备,包括:第一存储器,用于存储计算机可执行指令;第一处理器,用于执行所述第一存储器中存储的计算机可执行指令时,实现本技术实施例提供的应用于主控设备的数据处理方法。
19.本技术实施例提供一种用于数据处理的渲染设备,包括:第二存储器,用于存储计算机可执行指令;第二处理器,用于执行所述第二存储器中存储的计算机可执行指令时,实现本技术实施例提供的应用于渲染设备的数据处理方法。
20.本技术实施例提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于被第一处理器执行时,实现本技术实施例提供的应用于主控设备的数据处理方法;或者,所述计算机可执行指令用于被第二处理器执行时,实现本技术实施例提供的应用于渲染设备的数据处理方法。
21.本技术实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被第一处理器执行时,实现本技术实施例提供的应用于主控设备的数据处理方法;或者,所述计算机程序或计算机可执行指令被第二处理器执行时,实现本技术实施例提供的应用于渲染设备的数据处理方法。
22.本技术实施例至少具有以下有益效果:由于在响应于渲染触发事件获得了针对待渲染资源的第一管线配置指令之后,先通过虚拟管线接口获得虚拟管线配置信息,向渲染设备发送该虚拟管线配置信息,再在渲染设备上通过解析虚拟管线配置信息恢复出第二管线配置指令,并通过真实虚拟管线接口响应该第二管线配置指令进行真实管线配置,进而
基于真实管线配置结果进行渲染;如此,使得渲染是通过独立于主控设备的渲染设备实现的,且通过构建虚拟管线接口响应第一管线配置指令,使得向渲染设备发送的为虚拟管线配置信息,而虚拟管线配置信息表示渲染管线阶段、资源渲染位置和渲染资源标识的对应关系,降低了异步渲染过程的数据传输量,因此,能够提升渲染效率。
附图说明
23.图1是本技术实施例提供的数据处理系统的架构示意图;图2是本技术实施例提供的图1中的一种终端的组成结构示意图;图3是本技术实施例提供的图1中的一种服务器的组成结构示意图;图4是本技术实施例提供的数据处理方法的流程示意图一;图5是本技术实施例提供的数据处理方法的流程示意图二;图6是本技术实施例提供的数据处理方法的流程示意图三;图7是本技术实施例提供的一种示例性的云渲染的架构示意图;图8是本技术实施例提供的一种示例性的虚拟管线接口的结构示意图;图9是本技术实施例提供的一种示例性的渲染服务器集群的结构示意图;图10是本技术实施例提供的一种示例性的渲染服务器集群的混布示意图;图11是本技术实施例提供的一种示例性的游戏渲染架构示意图。
具体实施方式
24.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
25.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
26.在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
27.除非另有定义,本技术实施例所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本技术实施例中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
28.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
29.1)人工智能(artificial intelligence,ai),是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
30.2)机器学习(machine learning,ml),是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析和算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能;重新组织已有的知识结构使之不断改善自身的性能。机
器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习通常包括人工神经网络、置信网络、强化学习、迁移学习和归纳学习等技术。
31.3)人工神经网络,是一种模仿生物神经网络结构和功能的数学模型,本技术实施例中人工神经网络的示例性结构包括图卷积网络(graph convolutional network,gcn,一种用于处理图结构的数据的神经网络)、深度神经网络(deep neural networks,dnn)、卷积神经网络(convolutional neural network,cnn)和循环神经网络(recurrent neural network,rnn)、神经状态机(neural state machine,nsm)和相位函数神经网络(phase-functioned neural network,pfnn)等。本技术实施例中,主控设备可通过人工神经网络对应的模型实现数据计算,比如,通过神经网络模型确定虚拟对象的运动信息等。
32.4)渲染管线,是指通过图形处理器(graphics processing unit,gpu)进行计算以实现渲染的功能模块;在本技术实施例中还称为真实渲染管线。
33.5)资源创建,用于将存储于文件中的压缩的或打包的资源从存储格式转化为渲染管线所采用的用于渲染的格式。
34.6)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
35.7)虚拟场景,是通过包括云端服务器针对自身运行的应用程序发送的音视频信息所显示的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本技术实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。本技术实施例中的渲染视频信息可以是虚拟场景,也可以是动画,等等。
36.8)虚拟对象,虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象,亦或虚拟场景中的虚拟道具。其中,该可活动对象可以是虚拟人物、虚拟动物和动漫人物等,例如在虚拟场景中显示的人物和动物等。该虚拟对象可以是虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
37.9)客户端,设备中运行的用于提供各种服务的应用程序,例如游戏客户端,仿真客户端,视频客户端,等等。
38.10)云计算(cloud computing),是一种计算模式,通过将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务;其中,为资源池提供资源的网络被称为“云”,“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。本技术实施例提供的基于渲染资源的数据处理方法,是采用云计算实现的。
39.11)云游戏(cloud gaming),又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使得图形处理与数据运算能力低于指定能力的轻端设备(thin client)能够流畅地运行游戏。在云游戏场景下,游戏并不在玩家游戏终端运行,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为音视频流,以通过网
络传输给玩家游戏终端。玩家游戏终端的图形运算与数据处理能力低于指定能力,也能通过基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力来运行游戏。本技术实施例提供的基于渲染资源的数据处理方法,可以应用于云游戏场景中。
40.需要说明的是,在渲染过程中,为了提升渲染效率,常常采用异步的方式将数据计算和渲染分布在不同设备上执行;比如,由主控设备进行数据计算,由渲染设备进行渲染;如此,主控设备需要向渲染设备发送渲染指令,以使渲染设备采用基于渲染指令实现渲染。然而,渲染指令中常常携带着各种用于渲染的资源,数据传输量较大,影响了渲染效率。
41.示例性地,通过将开放图形库(opengl)的渲染指令流化,将流化后的指令流通过以太网传输到渲染服务器上进行渲染的过程中,由于所传输的流化后的指令流中携带有所有的渲染资源,导致数据传输量较大,影响了渲染效率。
42.另外,为了提升渲染效率,还可以采用外置渲染盒子等渲染硬件的方式实现数据计算和渲染的异步。其中,外置渲染盒子是通过雷电接口或者通用串行总线(universal serial bus,usb)等高速接口将底层的渲染请求传输到的渲染硬件上,而该底层的渲染请求为传输层中与雷电协议匹配的传输数据,携带有所有的渲染资源,数据传输量较大,影响了渲染效率。
43.基于此,本技术实施例提供一种基于渲染资源的数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够降低数据传输量,提升渲染效率。下面说明本技术实施例提供的设备的示例性应用,本技术实施例提供的主控设备可以实施为智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能家电、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、智能语音交互设备、便携式游戏设备和智能音箱等各种类型的终端,也可以实施为服务器;以及,本技术实施例提供的渲染设备可以实施为智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能家电、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、智能语音交互设备、便携式游戏设备和智能音箱等各种类型的终端,也可以实施为服务器。下面,将说明主控设备实施为终端、以及渲染设备实施为服务器时的示例性应用。
44.参见图1,图1是本技术实施例提供的数据处理系统的架构示意图;如图1所示,为支撑一个数据处理应用,在数据处理系统100中,终端300(称为主控设备)通过网络400和服务器600连接服务器200(称为渲染设备),网络400可以是广域网或者局域网,又或者是二者的组合。另外,该数据处理系统100中还包括数据库500,用于向服务器600提供数据支持;并且,图1中示出的为数据库500独立于服务器600的一种情况,此外,数据库500还可以集成在服务器600中,本技术实施例对此不作限定。
45.终端300,用于响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令;响应于第一管线配置指令,通过虚拟管线接口进行虚拟管线配置,得到虚拟管线配置信息,其中,虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和待渲染资源的待渲染资源标识;通过网络400和服务器600向服务器200发送虚拟管线配置信息。还用于通过网络400和服务器600接收服务器200发送的渲染视频信息,在图形界面上播放渲染视频信息(示例性示出了图形界面310-1)。
46.服务器200,用于通过网络400和服务器600接收终端300发送的虚拟管线配置信息;基于待渲染管线阶段、待渲染资源位置、以及与待渲染资源标识对应的待渲染资源,生
成第二管线配置指令;响应于第二管线配置指令,通过真实渲染管线进行真实管线配置,得到真实管线配置结果;基于真实管线配置结果进行渲染,得到渲染结果。还用于基于渲染结果通过网络400和服务器600向终端300发送渲染视频信息。
47.在一些实施例中,服务器200和服务器600可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端300可以是智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备和智能音箱等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不作限制。
48.参见图2,图2是本技术实施例提供的图1中的一种终端的组成结构示意图,图2所示的终端300包括:至少一个第一处理器310、第一存储器350、至少一个第一网络接口320和第一用户接口330。终端300中的各个组件通过第一总线系统340耦合在一起。可理解,第一总线系统340用于实现这些组件之间的连接通信。第一总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为第一总线系统340。
49.第一处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
50.第一用户接口330包括使得能够呈现媒体内容的一个或多个第一输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。第一用户接口330还包括一个或多个第一输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
51.第一存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第一存储器350可选地包括在物理位置上远离第一处理器310的一个或多个存储设备。
52.第一存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的第一存储器350旨在包括任意适合类型的存储器。
53.在一些实施例中,第一存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
54.第一操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;第一网络通信模块352,用于经由一个或多个(有线或无线)第一网络接口320到达其他计算机设备,示例性的第一网络接口320包括:蓝牙、无线相容性认证(wi-fi)、和通用串行总线(usb,universal serial bus)等;
第一显示模块353,用于经由一个或多个与第一用户接口330相关联的第一输出装置331(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);第一输入处理模块354,用于对一个或多个来自一个或多个第一输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
55.在一些实施例中,本技术实施例提供的一种第一数据处理装置可以采用软件方式实现,图2示出了存储在第一存储器350中的第一数据处理装置355,其可以是程序和插件等形式的软件,包括以下软件模块:渲染触发模块3551、虚拟配置模块3552、信息同步模块3553、资源发送模块3554、数据请求模块3555、画面显示模块3556和设备更新模块3557,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
56.参见图3,图3是本技术实施例提供的图1中的一种服务器的组成结构示意图,图3所示的服务器200包括:至少一个第二处理器210、第二存储器250和至少一个第二网络接口220。服务器200中的各个组件通过第二总线系统240耦合在一起。可理解,第二总线系统240用于实现这些组件之间的连接通信。第二总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为第二总线系统240。
57.第二处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
58.第二存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第二存储器250可选地包括在物理位置上远离第二处理器210的一个或多个存储设备。
59.第二存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器,易失性存储器可以是随机存取存储器。本技术实施例描述的第二存储器250旨在包括任意适合类型的存储器。
60.在一些实施例中,第二存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
61.第二操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;第二网络通信模块252,用于经由一个或多个(有线或无线)第二网络接口220到达其他计算机设备,示例性的第二网络接口220包括:蓝牙、无线相容性认证、和通用串行总线等;在一些实施例中,本技术实施例提供的一种第二数据处理装置可以采用软件方式实现,图3示出了存储在第二存储器250中的第二数据处理装置255,其可以是程序和插件等形式的软件,包括以下软件模块:信息接收模块2551、指令还原模块2552、管线配置模块2553、信息渲染模块2554和数据回传模块2555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
62.在一些实施例中,本技术实施例提供的装置可以采用硬件方式实现,作为示例,本
申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的基于渲染资源的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
63.在一些实施例中,终端或服务器可以通过运行计算机程序来实现本技术实施例提供的基于渲染资源的数据处理方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,如游戏app、视频app或者即时通信app;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
64.下面,将结合本技术实施例提供的设备的示例性应用和实施,说明本技术实施例提供的基于渲染资源的数据处理方法。另外,本技术实施例提供的基于渲染资源的数据处理方法应用于云技术、人工智能、智慧交通、车载和游戏等各种渲染场景。
65.参见图4,图4是本技术实施例提供的数据处理方法的流程示意图一,将结合图4示出的步骤进行说明。
66.步骤401、主控设备响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令。
67.在本技术实施例中,当主控设备检测到用于触发渲染的事件时,也就获得了渲染触发事件;此时,主控设备响应于该渲染触发事件,开始渲染处理,首先是生成用于指示进行管线配置的指令,这里称为第一管线配置指令。
68.需要说明的是,主控设备是运行客户端的设备,比如运行游戏应用的终端,又比如运行云游戏应用的云服务器,等等;并且所运行的客户端涉及基于渲染资源的渲染处理,其中,渲染资源是指用于进行渲染的资源,包括模型、贴图、材质和着色器等。渲染触发事件是指用于触发渲染的事件,比如,接收到用户进行渲染的操作,游戏客户端或动画客户端的启动,检测到指定的用于触发渲染的事件,接收到其他设备发送的指示渲染的指令等。管线配置是指将在渲染阶段将渲染资源配置在资源位置上的过程,比如,在渲染阶段为几何阶段时,将各个纹理等渲染资源配置在分别对应的指定位置(称为资源位置)的过程;另外,第一管线配置指令,可以是运行在主控设备上的渲染引擎响应于渲染触发事件而生成的。
69.还需要说明的是,待渲染资源通过资源创建获得,其中,资源创建是主控设备响应于渲染触发事件触发的,并且,资源创建表示将存储格式的资源转换为管线格式的资源的过程,其中,管线格式为渲染管线所采用的格式;从而,主控设备响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令,包括:主控设备响应于渲染触发事件,将存储格式的资源转换为渲染管线格式的待渲染资源,并生成针对待渲染资源的第一管线配置指令。
70.步骤402、主控设备响应于第一管线配置指令,通过虚拟管线接口进行虚拟管线配置,得到虚拟管线配置信息,其中,虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和待渲染资源标识。
71.在本技术实施例中,由于第一管线配置指令用于指示进行管线配置,因此,主控设
备生成了第一管线配置指令之后,响应于第一管线配置指令进行管线配置;这里,由于主控设备中设置有虚拟管线接口,以及渲染是在渲染设备上进行的,因此,主控设备通过虚拟管线接口响应于第一管线配置指令而进行虚拟管线配置,所获得的结果的为虚拟管线配置信息。其中,渲染设备是独立于主控设备的、且用于渲染的设备,也就是说,渲染设备为主控设备之外的、且用于为主控设备的客户端提供渲染服务的设备;另外,渲染设备可以是单个设备,还可以是设备集群,本技术实施例对此不作限定。
72.需要说明的是,虚拟管线接口是指用于响应第一管线配置指令的虚拟的管线接口,是基于真实管线接口模拟出的;与真实管线接口相同的是均能够执行管线配置指令(即为用于指示进行管线配置的指令);与真实管线接口不同的是,虚拟管线接口所执行的为虚拟管线配置,即为响应于第一管线配置指令而获取待渲染管线阶段、待渲染资源位置和待渲染资源的待渲染资源标识三者的对应关系;从而,通过虚拟管线接口进行虚拟管线配置所得到的虚拟管线配置信息为管线配置的结构信息,包括以下三者的对应关系:待渲染管线阶段、待渲染资源位置和待渲染资源的待渲染资源标识;其中,待渲染管线阶段为待渲染的管线阶段,比如,几何阶段,光栅化阶段等;待渲染资源为待渲染的至少一个渲染资源,也就是说,待渲染资源为当前渲染所涉及的至少一个渲染资源,比如,纹理,贴图,模型等;待渲染资源位置为待渲染资源中的每个渲染资源在渲染时对应的渲染位置,比如,几何阶段的待渲染资源为16个纹理,待渲染资源位置为每个纹理所对应的渲染位置。
73.可以理解的是,第一管线配置指令包括用于指示进行管线配置的动作,还包括待渲染资源,并且,第一管线配置指令所包括的内容是固定的,这是由渲染引擎确定的。本技术实施例在异步渲染的场景中,通过在主控设备设立虚拟管线接口来响应第一管线配置指令,实现了对动作和待渲染资源的拆解,为降低向渲染设备传输的数据量、以及渲染资源的复用提供了可行性。
74.步骤403、主控设备向渲染设备发送虚拟管线配置信息。
75.在本技术实施例中,由于渲染是由渲染设备执行的,因此主控设备获得了虚拟管线配置信息之后,将该虚拟管线配置信息发送至渲染设备,以使渲染设备基于虚拟管线配置信息执行渲染。
76.需要说明的是,当完成步骤403的执行之后,也就是说,当主控设备向渲染设备发送了虚拟管线配置信息之后,渲染设备也就接收到了主控设备发送的虚拟管线配置信息;其中,虚拟管线配置信息为主控设备响应于第一管线配置指令进行虚拟管线配置获得的,第一管线配置指令为主控设备响应于渲染触发事件生成的,虚拟管线配置通过虚拟管线接口实现。
77.还需要说明的是,渲染的过程包括管线配置和基于管线配置结果执行渲染的两个过程;其中,管线配置的过程通过管线配置指令触发,基于管线配置执行渲染的过程通过管线启动指令触发;从而,主控设备在获得了第一管线配置指令之后,还能够获得管线启动指令(比如,绘制(draw)指令和发送(dispatch)指令);从而,步骤403中主控设备向渲染设备发送虚拟管线配置信息主控设备,包括:主控设备响应于管线启动指令,向渲染设备发送虚拟管线配置信息。也就是说,管线启动指令是主控设备向渲染设备同步虚拟管线配置信息的触发指令,在接收到管线启动指令时主控设备才向渲染设备发送虚拟管线配置信息。
78.步骤404、渲染设备基于待渲染管线阶段、待渲染资源位置、以及与待渲染资源标
识对应的待渲染资源,生成第二管线配置指令。
79.在本技术实施例中,渲染设备获得了虚拟管线配置信息之后,通过解析虚拟管线配置信息来恢复出管线配置指令;这里,渲染设备所恢复出的管线配置指令称为第二管线配置指令;以及解析虚拟管线配置信息来恢复出管线配置指令的过程包括:渲染设备先获取与虚拟管线配置信息中的待渲染资源标识对应的待渲染资源,再基于虚拟管线配置信息中的待渲染管线阶段和待渲染资源位置、以及获得的待渲染资源,来生成第二管线配置指令。
80.需要说明的是,管线配置指令包括指定的信息和指定的信息对应的结构,其中,该指定的信息包括待渲染管线阶段、待渲染资源位置、以及待渲染资源,基于指定的信息对应的结构,对待渲染管线阶段、待渲染资源位置、以及待渲染资源进行组合,也就获得了第二管线配置指令;另外,第二管线配置指令和第一管线配置指令的作用相同,均是用于执行管线配置,所不同的是第一管线配置指令是主控设备通过响应渲染触发事件生成的,第二渲染设备是渲染设备通过解析虚拟管线配置信息生成的。
81.步骤405、渲染设备响应于第二管线配置指令,通过真实渲染管线进行真实管线配置,得到真实管线配置结果。
82.在本技术实施例中,第二管线配置指令用于触发渲染设备执行管线配置;从而,渲染设备在获得了第二管线配置指令之后,响应于该第二管线配置指令,在真实渲染管线上进行管线配置(又称为真实管线配置);这里,渲染设备在真实渲染管线上执行管线配置,所获得的结果为真实管线配置结果。
83.需要说明的是,渲染管线的管线配置是在渲染设备上执行的,主控设备上所执行的为虚拟管线配置,用于获取虚拟管线配置信息,以触发渲染设备上的真实管线配置。
84.步骤406、渲染设备基于真实管线配置结果进行渲染,得到渲染结果。
85.在本技术实施例中,渲染设备在真实渲染管线上完成管线配置,并获得了真实管线配置结果之后,就可以基于该真实管线配置结果执行渲染处理了,所获得的结果为渲染结果。其中,该渲染结果可以为用于显示画面的渲染数据。
86.需要说明的是,主控设备通过在主控设备自身上执行虚拟管线配置,获得虚拟管线配置信息,并向渲染设备发送该虚拟管线配置信息,以使渲染设备基于虚拟管线配置信息生成第二管线配置指令,并通过真实管线接口响应于第二管线配置指令进行真实管线配置,以及基于真实管线配置结果进行渲染。
87.可以理解的是,由于在响应于渲染触发事件获得了针对待渲染资源的第一管线配置指令之后,先通过虚拟管线接口获得虚拟管线配置信息,向渲染设备发送该虚拟管线配置信息,再在渲染设备上通过解析虚拟管线配置信息恢复出第二管线配置指令,并通过真实虚拟管线接口响应该第二管线配置指令进行真实管线配置,进而基于真实管线配置结果进行渲染;如此,使得渲染是通过独立于主控设备的渲染设备实现的,且通过构建虚拟管线接口响应第一管线配置指令,使得向渲染设备发送的为虚拟管线配置信息,而虚拟管线配置信息表示渲染管线阶段、资源渲染位置和渲染资源标识的对应关系,降低了异步渲染过程的数据传输量,因此,能够提升渲染效率。
88.参见图5,图5是本技术实施例提供的数据处理方法的流程示意图二;如图5所示,步骤404之前还包括步骤407至步骤412;也就是说,在本技术实施例的步骤404中,渲染设备
基于待渲染管线阶段、待渲染资源位置、以及与待渲染资源标识对应的待渲染资源,生成第二管线配置指令之前,该基于渲染资源的数据处理方法还包括步骤407至步骤412,下面对各步骤分别进行说明。
89.步骤407、渲染设备在渲染资源库中,基于待渲染资源标识进行渲染资源获取。
90.在本技术实施例中,渲染设备在基于待渲染资源标识获取对应的待渲染资源时,先基于待渲染资源标识在渲染设备自身的渲染资源库中进行获取。其中,渲染资源库包括渲染设备中的渲染资源,并且,渲染资源库包括截止到当前时刻所有主控设备发送至渲染设备的渲染资源。
91.步骤408、当渲染资源获取结果表示渲染资源库中包括与待渲染资源标识匹配的渲染资源时,渲染设备将匹配的渲染资源确定为待渲染资源。
92.在本技术实施例中,渲染设备在渲染资源库中,基于待渲染资源标识进行渲染资源获取,所获得的结果为渲染资源获取结果;该渲染资源获取结果可以表示渲染设备从渲染资源库中获取到了与待渲染资源标识匹配的渲染资源,此时,渲染设备从渲染资源库中获取到的与待渲染资源标识匹配的渲染资源,即为待渲染资源;也就是说,待渲染资源此时是从渲染设备中获得的,该待渲染资源是主控设备截止到当前时刻之前向渲染设备发送的,如此,实现了渲染资源的复用,提升了资源利用率。
93.需要说明的是,在渲染资源库中,每个渲染资源对应一个资源标识,其中,资源标识用于唯一标识一个渲染资源;从而,渲染设备将待渲染资源标识与渲染资源库中的每个资源标识进行对比,以在渲染资源库中对比出与待渲染资源标识一致的资源标识,而所对比出的资源标识所对应的渲染资源,即为与待渲染资源标识匹配的渲染资源。
94.步骤409、当渲染资源获取结果表示渲染资源库中不包括与待渲染资源标识匹配的渲染资源时,渲染设备向主控设备发送携带待渲染资源标识的渲染资源请求。
95.在本技术实施例中,渲染资源获取结果还可以表示渲染设备从渲染资源库中未获取到与待渲染资源标识匹配的渲染资源,也就是说,渲染资源库中不包括与待渲染资源标识匹配的渲染资源,从而此时,渲染设备向主控设备发送携带待渲染资源标识的渲染资源请求,以向主控设备请求待渲染资源;故此时,待渲染资源是渲染设备从主控设备获得的。其中,渲染资源请求用于向主控设备请求与待渲染资源标识匹配的待渲染资源。
96.步骤410、主控设备响应于渲染资源请求,从渲染资源集合中获取与待渲染资源标识对应的至少一个渲染资源,并将至少一个渲染资源确定为待渲染资源。
97.在本技术实施例中,当步骤409执行完时,也就是说,渲染设备向主控设备发送携带待渲染资源标识的渲染资源请求之后,主控设备也就接收到了渲染设备发送的渲染资源请求,并且,该渲染资源请求表示渲染设备中不包括与待渲染资源标识对应的待渲染资源;由于渲染资源请求中携带有待渲染资源标识,从而此时,主控设备响应于该渲染资源请求,在主控设备自身的渲染资源集合中获取与待渲染资源标识对应的待渲染资源,该待渲染资源为渲染资源集合中与待渲染资源标识对应的至少一个渲染资源。
98.需要说明的是,步骤410是在步骤403之后执行的,也就是说,步骤410是在主控设备向渲染设备发送虚拟管线配置信息之后执行的;其中,渲染资源集合包括各种渲染资源,是整个渲染阶段(比如,一局游戏,一个动画场景等)中待使用的所有渲染资源。
99.步骤411、主控设备将待渲染资源发送至渲染设备。
100.在本技术实施例中,主控设备响应于渲染资源请求,获得了待渲染资源之后,将该待渲染资源发送至渲染设备,也就完成了对渲染资源请求的响应;这里,主控设备将待渲染资源发送至渲染设备,以使渲染设备基于待渲染资源对虚拟管线配置信息进行解析,进而获得第二管线配置指令。
101.需要说明的是,当步骤411执行完时,也就是说,主控设备将待渲染资源发送至渲染设备之后,渲染设备也就接收到了主控设备针对渲染资源请求所发送的待渲染资源。
102.步骤412、渲染设备将待渲染资源更新至渲染资源库中。
103.在本技术实施例中,由于渲染资源库中不包括待渲染资源时,渲染设备才从主控设备获得待渲染资源;因此,渲染设备从主控设备获得待渲染资源之后,将待渲染资源更新至渲染资源库中,以基于更新后的渲染资源库进行下一次的渲染资源获取,实现对待渲染资源的复用。
104.需要说明的是,待渲染资源可以是渲染设备从渲染设备自身中获得的,也可以是渲染设备从主控设备获得的,又可以是两者的结合;这里,当待渲染资源是渲染设备从渲染设备自身中获得的时,表明渲染设备自身的渲染资源库中包括待渲染资源;当待渲染资源是渲染设备从渲染设备自身的渲染资源库和主控设备中获得的时,表明渲染设备自身的渲染资源库中包括待渲染资源的部分渲染资源。
105.在本技术实施例中,步骤401中主控设备响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令之前,该基于渲染资源的数据处理方法还包括:主控设备向渲染设备发送渲染资源集合,以使渲染设备基于渲染资源集合对虚拟管线配置信息进行解析,进而获得第二管线配置指令。从而,渲染设备接收主控设备发送的虚拟管线配置信息之前,该基于渲染资源的数据处理方法还包括:渲染设备接收主控设备发送的渲染资源集合。
106.相应地,在本技术实施例中,步骤401中主控设备响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令,包括:当渲染资源集合发送成功时或发送过程中,主控设备响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令。以及,步骤404中渲染设备基于待渲染管线阶段、待渲染资源位置、以及与待渲染资源标识对应的待渲染资源,生成第二管线配置指令之前,该基于渲染资源的数据处理方法还包括:渲染设备从渲染资源集合中,获取与待渲染资源标识对应的至少一个渲染资源,并将至少一个渲染资源确定为待渲染资源。
107.需要说明的是,主控设备可以在渲染准备阶段一次性将整个渲染阶段所涉及的渲染资源集合发送至渲染设备,以在渲染设备解析时直接从主控设备发送的渲染资源集合中获取待渲染资源,降低了渲染执行过程中从主控设备获取渲染资源的时间效率,能够提升渲染效率。
108.在本技术实施例中,该基于渲染资源的数据处理方法还包括渲染设备向主控设备回传渲染数据的过程,渲染数据的回传是在主控设备基于渲染数据进行数据计算的情况下触发的。该回传渲染数据的过程包括:主控设备在响应于渲染触发事件进行虚拟管线配置的过程中,确定数据计算所关联的渲染数据标识;向渲染设备发送携带渲染数据标识的渲染数据请求,以使渲染设备基于渲染数据标识从渲染结果中获取目标渲染数据;接收渲染设备响应于渲染数据请求所发送的目标渲染数据;基于目标渲染数据进行数据计算。
109.需要说明的是,当主控设备向渲染设备发送渲染数据请求时,渲染设备也就接收
到了主控设备发送的渲染数据请求,其中,渲染数据请求中携带有主控设备进行数据计算所关联的渲染数据标识,渲染数据标识用于确定数据计算所关联的渲染数据,即为目标渲染数据;从而,渲染设备响应于渲染数据请求,从渲染结果中获取与渲染数据标识对应的目标渲染数据;将目标渲染数据发送至主控设备,以使主控设备基于目标渲染数据进行数据计算。
110.可以理解的是,由于主控设备在运行客户端以进行数据处理的过程中,存在基于渲染数据进行数据处理的情况;因此,渲染设备通过向主控设备发送所涉及的渲染数据,能够实现所运行客户端的应用功能。比如,主控设备基于水面波动数据计算虚拟对象浮力的情况下,可以通过从渲染设备中获取水面波动数据进行浮力计算,其中,水面波动数据即为回传的渲染数据。
111.参见图6,图6是本技术实施例提供的数据处理方法的流程示意图三;如图6所示,步骤403之后还包括步骤413和步骤414;也就是说,主控设备向渲染设备发送虚拟管线配置信息之后,该基于渲染资源的数据处理方法还包括步骤413和步骤414,下面对各步骤分别进行说明。
112.步骤413、主控设备接收渲染设备针对虚拟管线配置信息所发送的渲染视频信息。
113.需要说明的是,渲染视频信息为渲染设备基于渲染结果生成的,比如,用于显示虚拟场景画面的视频数据,用于显示动画的视频数据。
114.步骤414、主控设备播放渲染视频信息。
115.需要说明的是,主控设备获得了渲染设备发送的渲染视频信息之后,在主控设备自身播放该渲染视频信息,以显示对应的视频画面,比如,虚拟场景画面,动画画面,等等。
116.在本技术实施例中渲染设备获得了渲染结果之后,可以通过离屏方式基于该渲染结果显示视频画面,还可以通过虚拟渲染应用模块(比如,虚拟游戏进程)在渲染设备自身中基于该渲染结果显示视频画面,又可以是两者的结合,等等,本技术实施例对此不作限定。
117.需要说明的是,由于渲染的执行是由独立于主控设备的渲染设备实现的,而数据计算是由主控设备实现的,以及渲染的执行是由渲染设备的图形处理器(graphics processing unit,gpu)实现的,数据计算是由主控设备实现的中央处理器实现的;因此,通过异步地执行数据计算和渲染,本技术实施例中还能够实现中央处理器和图形处理器的池化;从而,中央处理器和图形处理器均可以实现混布;也就是说,各个中央处理器以自身的算力存在于中央处理器池中,使得因使用时长大于指定时长导致计算力低于指定计算力的中央处理器,仍能够作为中央处理器池中算力较低的中央处理器;以及,各个图形处理器以自身的算力存在于图形处理器池中,使得因使用时长大于指定时长导致计算力低于指定计算力的图形处理器,仍能够作为图形处理器池中算力较低的图形处理器;从而,提升了资源利用率。
118.需要说明的是,数据计算是指在客户端的应用过程中,由主控设备所执行的除渲染之外的处理,比如,虚拟对象的状态值的计算,虚拟海面上的虚拟对象的浮力计算等。
119.在本技术实施例中,该基于渲染资源的数据处理方法还包括:主控设备获取主控设备中每个中央处理器的第一计算力,并基于第一计算力确定第一总计算力;当第一总计算力低于第一计算力阈值时,生成中央处理器对应的第一更新提示信息,其中,第一更新提
示信息用于提示中央处理器的计算力待增加,可以是语音信息,还可以是待发送的消息,又可以是显示的信息,以及上述的结合,等等。同理,渲染设备获取渲染设备中每个图形处理器的第二计算力,并基于第二计算力确定第二总计算力;当第二总计算力低于第二计算力阈值时,生成图形处理器对应的第二更新提示信息,其中,第二更新提示信息用于提示图形处理器的计算力待增加。
120.可以理解的是,本技术实施例在针对中央处理器和图形处理器进行计算力增加时,中央处理器和图形处理器两者是独立进行的,解决了一个设备上由于中央处理器和图形处理器的数量配比固定而导致的资源消耗问题,降低了资源更新过程中的资源消耗。
121.在本技术实施例中,渲染设备可以是包括各种图形处理器的设备集群,用于执行不同的渲染任务,以实现对渲染设备的复用,提升资源效率。从而,在本技术实施例的步骤406中,渲染设备基于真实管线配置结果进行渲染,得到渲染结果之后,该基于渲染资源的数据处理方法还包括:渲染设备获取渲染设备的设备资源占用比(比如,内存使用率,cpu使用率等);当设备资源占用比低于指定设备资源占用比时,表明当前渲染设备还可以用于执行其他的渲染处理,从而,渲染设备检测待渲染请求;并在检测到待渲染请求时,响应于待渲染请求,执行于待渲染请求对应的目标渲染。
122.在本技术实施例中,虚拟管线接口包括多个子虚拟管线接口;从而,步骤402中主控设备响应于第一管线配置指令,通过虚拟管线接口进行虚拟管线配置,得到虚拟管线配置信息,包括:主控设备响应于第一管线配置指令,通过每个子虚拟管线接口进行虚拟管线配置,得到子虚拟管线配置信息,并得到与虚拟管线接口对应的多个子虚拟管线配置信息;对多个子虚拟管线配置信息进行序列化,得到虚拟管线配置信息。其中,不同的子虚拟管线接口用于实现不同的虚拟管线配置;序列化是指转化为待传输格式的数据的过程。
123.可以理解的是,由于虚拟管线接口包括多个子虚拟管线接口,而每个子虚拟管线接口用于实现不同的虚拟管线配置,因此,虚拟管线配置具有多样性,进而能够响应于不同的渲染指令,以提升针对渲染指令进行虚拟管线配置的全面性。
124.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。该示例性应用描述了游戏场景下通过同步管线配置信息进行云渲染的过程。其中,云渲染是指在远程的云服务器中进行渲染的过程;终端通过向服务器发送游戏的业务指令,使得云服务器根据业务指令执行对应的渲染任务;并且,云服务器在执行渲染任务时,通过在自身中设置虚拟管线接口来向另一服务器发送虚拟管线配置信息,以在另一服务器上基于虚拟管线配置信息进行渲染。在云渲染过程中,上述的主控设备包括终端和云服务器,渲染设备为另一服务器;以及在游戏的云渲染过程中,客户端为游戏客户端。
125.参见图7,图7是本技术实施例提供的一种示例性的云渲染的架构示意图;如图7所示,在设备7-1上启动游戏7-11时,也就获得了渲染指令(称为第一管线配置指令),该渲染指令用于调用多媒体编程接口(比如,directx,opengl)中的多个应用程序接口(application programming interface,api),以实现资源创建和管线配置。从而,所调用的多个api包括用于实现资源创建的资源创建api,还包括用于实现管线配置的管线配置api(称为管线接口);其中,资源创建api用于将存储于文件中的压缩的或打包的渲染资源从存储格式转换为渲染管线采用的管线格式,得到的为创建好的渲染资源,资源创建发生在渲染之前;管线配置api用于基于创建好的渲染资源进行管线配置,以在完成管线配置之
后基于管线配置结果进行渲染。
126.需要说明的是,该示例性的云渲染架构中包括设备7-1和渲染服务器集群7-3(又称为另一服务器),并且,设备7-1包括终端和云服务器;其中,终端用于接收操作(比如,用户的操作,智能体触发的操作等),并响应于接收到的操作向云服务器发送业务指令;云服务器用于基于业务指令确定接收到渲染触发事件,进而响应于渲染触发事件,通过虚拟管线接口进行虚拟管线配置,得到虚拟管线配置信息,以及向渲染服务器集群7-3发送虚拟管线配置信息;渲染服务器集群7-3用于基于虚拟配置信息进行渲染,并向设备7-1的云服务器发送渲染出的视频信息,以及由云服务器向终端转发该视频信息,并在终端上播放该视频信息。
127.继续参见图7,设备7-1中包括虚拟管线接口7-12,该虚拟管线接口7-12是基于多媒体编程接口中的管线配置接口构建的,同多媒体编程接口中的管线配置接口,是一种执行管线配置指令的模块,且虚拟管线接口7-12用于基于接收到的管线配置指令生成管线配置信息(称为虚拟管线配置信息);设备7-1在调用管线配置api时,作用在虚拟管线接口7-12上,由虚拟管线接口7-12响应于管线配置api的调用,生成管线配置信息7-2(称为虚拟管线配置信息),该管线配置信息7-2包括管线阶段(称为待渲染管线阶段)、资源位置(称为待渲染资源位置)和渲染资源哈希值(称为待渲染资源标识)三者的结构信息。这里,设备7-1将管线配置信息7-2同步至渲染服务器集群7-3(示例性地示出了渲染服务器a、渲染服务器b、渲染服务器c和渲染服务器d,称为渲染设备)。渲染服务器集群7-3对接收到的管线配置信息7-2进行解析,以转换为对真实渲染管线的调用指令(称为第二管线配置指令),进而基于转换的调用指令在真实渲染管线上再次进行管线配置(称为真实管线配置),最后基于管线配置结果(称为真实管线配置结果)进行渲染。
128.下面对设备7-1中的虚拟管线接口7-12进行详细说明。基于图7,参见图8,图8是本技术实施例提供的一种示例性的虚拟管线接口的结构示意图;如图8所示,虚拟管线接口7-12包括输入装配(input assembler,ia)配置接口8-1、顶点着色(vertex shader,vs)配置接口8-2、外壳着色(hull shader,hs)/域着色(domain shader,ds)/几何着色(geometry shader,gs)配置接口8-3、顶点数据输出(stream out,so)配置接口8-4、光栅化阶段(rasterize stage,rs)配置接口8-5、像素着色(pixel shader,ps)配置接口8-6、输出合并(output merge,om)配置接口8-7和三角形阶段(tessellation stage,ts)配置接口8-8(称为多个子虚拟管线接口)。虚拟管线接口7-12响应于管线配置接口的调用指令,基于虚拟管线接口7-12中的8个配置接口8-1至8-8生成8种配置结构信息(称为多个子虚拟管线配置信息),并将8种配置结构信息序列化,也就得到了管线配置信息7-2。
129.下面对渲染服务器集群7-3进行详细说明。参见图9,图9是本技术实施例提供的一种示例性的渲染服务器集群的结构示意图;如图9所示,渲染服务器集群7-3中包括虚拟游戏进程9-1,用于接收设备7-1同步过来的管线配置信息7-2,并调用解析与配置模块9-2中的虚拟管线配置模块9-21对管线配置信息7-2进行反序列化,以还原出配置管线接口的调用指令9-3(称为第二管线配置指令);接着,虚拟游戏进程9-1基于调用指令9-3,调用解析与配置模块9-2中的真实管线配置模块9-22(称为真实管线配置接口),在渲染管线9-4上进行真实的管线配置;最后,基于真实的管线配置结果进行渲染,以在窗口9-5中显示渲染的游戏画面,或者将渲染结果发送至设备7-1进行离屏渲染。
130.需要说明的是,在窗口9-5中显示渲染的游戏画面,能够提升调试效率,简化调试复杂度。
131.在本技术实施例中,渲染服务器集群7-3可以为渲染硬件混布的方式。参见图10,图10是本技术实施例提供的一种示例性的渲染服务器集群的混布示意图;如图10所示,渲染服务器集群7-3包括图形处理器10-1、图形处理器10-2、图形处理器10-3和图形处理器10-4。如此,渲染服务器集群7-3可以为不同游戏客户端提供渲染服务,比如,接收游戏客户端10-51的虚拟管线接口10-52发送的管线配置信息,来为游戏客户端10-51渲染游戏画面;接收游戏客户端10-53的虚拟管线接口10-54发送的管线配置信息,来为游戏客户端10-53渲染游戏画面;接收游戏客户端10-55的虚拟管线接口10-56发送的管线配置信息,来为游戏客户端10-55渲染游戏画面。
132.在本技术实施例中,通过在渲染服务器集群上执行渲染过程,使得游戏客户端可以应用在无图形处理器的设备上,简化了游戏客户端的运行复杂度,提升了渲染应用范围。参见图11,图11是本技术实施例提供的一种示例性的游戏渲染架构示意图;如图11所示,渲染服务器集群7-3可以为多个无图形处理器的设备(示例性地示出了设备11-1至设备11-3)提供渲染服务。
133.需要说明的是,当设备7-1(比如,游戏客户端)进行计算时,虚拟管线接口7-12能够确定出关联的渲染数据标识,并基于关联的渲染数据标识从渲染服务器集群7-3中拉取对应的渲染数据(称为目标渲染数据)。由于渲染管线中的所有渲染数据均可以通过directx的api获得,进而拷贝到渲染服务器的cpu内存中,所以当游戏客户端基于渲染数据进行计算时,向渲染服务器集群7-3上的虚拟游戏进程请求渲染数据,并将获得到的渲染数据传输至运行游戏客户端的设备的cpu。
134.可以理解的是,一方面,通过将管线配置信息同步至渲染服务器集群,以在渲染服务器集群进行渲染,实现了cpu计算和gpu渲染的分离,使得游戏运行过程中,降低了等待gpu渲染结束后再执行cpu计算的时长,提升了渲染效率;并且,cpu计算和gpu渲染异步地在不同设备上执行,能够提高帧率,进而提升画面显示的流畅度。另一方面,在云游戏应用场景中,通过将计算服务器集群和渲染服务器集群进行拆分,解决在同一个设备上由于存在cpu于gpu配比固定的问题所导致的资源浪费问题,使得不同算力的硬件在集群中被统一调度计算,提升了资源利用率。再一方面,通过渲染服务器集群实现渲染,可以实游戏画面的渲染,还可以实现动画画面的渲染等其他渲染处理,实现了对gpu的复用,提升了资源利用率。
135.下面继续说明本技术实施例提供的第一数据处理装置355的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在第一存储器350的第一数据处理装置355中的软件模块可以包括:渲染触发模块3551,用于响应于渲染触发事件,生成针对待渲染资源的第一管线配置指令;虚拟配置模块3552,用于响应于所述第一管线配置指令,通过虚拟管线接口进行虚拟管线配置,得到虚拟管线配置信息,其中,所述虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和所述待渲染资源的待渲染资源标识;信息同步模块3553,用于向渲染设备发送所述虚拟管线配置信息,以使所述渲染
设备基于所述虚拟管线配置信息生成第二管线配置指令,并通过真实管线接口响应于所述第二管线配置指令进行真实管线配置,以及基于真实管线配置结果进行渲染。
136.在本技术实施例中,所述第一数据处理装置355还包括资源发送模块3554,用于接收所述渲染设备发送的渲染资源请求,其中,所述渲染资源请求中携带有所述待渲染资源标识;响应于所述渲染资源请求,从渲染资源集合中获取与所述待渲染资源标识对应的至少一个渲染资源,并将至少一个所述渲染资源确定为所述待渲染资源,其中,所述渲染资源集合包括各种所述渲染资源;将所述待渲染资源发送至所述渲染设备,以使所述渲染设备基于所述待渲染资源对所述虚拟管线配置信息进行解析。
137.在本技术实施例中,所述资源发送模块3554,还用于向所述渲染设备发送渲染资源集合,以使所述渲染设备基于所述渲染资源集合对所述虚拟管线配置信息进行解析。
138.在本技术实施例中,所述渲染触发模块3551,还用于当所述渲染资源集合发送成功时,响应于所述渲染触发事件,生成针对所述待渲染资源的所述第一管线配置指令。
139.在本技术实施例中,所述第一数据处理装置355还包括数据请求模块3555,用于在响应于所述渲染触发事件进行虚拟管线配置的过程中,确定数据计算所关联的渲染数据标识;向所述渲染设备发送携带所述渲染数据标识的渲染数据请求,以使所述渲染设备基于所述渲染数据标识从渲染结果中获取目标渲染数据;接收所述渲染设备响应于所述渲染数据请求所发送的所述目标渲染数据;基于所述目标渲染数据进行数据计算。
140.在本技术实施例中,所述第一数据处理装置355还包括画面显示模块3556,用于接收所述渲染设备针对所述虚拟管线配置信息所发送的渲染视频信息,其中,所述渲染视频信息为所述渲染设备基于渲染结果生成的;播放所述渲染视频信息。
141.在本技术实施例中,所述第一数据处理装置355还包括设备更新模块3557,用于获取所述主控设备中每个中央处理器的第一计算力,并基于所述第一计算力确定第一总计算力;当所述第一总计算力低于第一计算力阈值时,生成所述中央处理器对应的第一更新提示信息,其中,所述第一更新提示信息用于提示所述中央处理器的计算力待增加。
142.下面继续说明本技术实施例提供的第二数据处理装置255的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在第二存储器250的第二数据处理装置255中的软件模块可以包括:信息接收模块2551,用于接收主控设备发送的虚拟管线配置信息,其中,所述虚拟管线配置信息为所述主控设备响应于第一管线配置指令进行虚拟管线配置获得的,所述第一管线配置指令为所述主控设备响应于渲染触发事件生成的,所述虚拟管线配置通过虚拟管线接口实现,所述虚拟管线配置信息表示以下三者的对应关系:待渲染管线阶段、待渲染资源位置和待渲染资源标识;指令还原模块2552,用于基于所述待渲染管线阶段、所述待渲染资源位置、以及与所述待渲染资源标识对应的待渲染资源,生成第二管线配置指令;管线配置模块2553,用于响应于所述第二管线配置指令,通过真实渲染管线进行真实管线配置,得到真实管线配置结果;信息渲染模块2554,用于基于所述真实管线配置结果进行渲染,得到渲染结果。
143.在本技术实施例中,所述指令还原模块2552,还用于在渲染资源库中,基于所述待渲染资源标识进行渲染资源获取,其中,所述渲染资源库包括所述渲染设备中的渲染资源;
当渲染资源获取结果表示所述渲染资源库中包括与所述待渲染资源标识匹配的渲染资源时,将所述匹配的渲染资源确定为所述待渲染资源;当所述渲染资源获取结果表示所述渲染资源库中不包括与所述待渲染资源标识匹配的渲染资源时,向所述主控设备发送携带所述待渲染资源标识的渲染资源请求,并接收所述主控设备针对所述渲染资源请求所发送的所述待渲染资源,以及将所述待渲染资源更新至所述渲染资源库中。
144.在本技术实施例中,所述指令还原模块2552,还用于接收所述主控设备发送的渲染资源集合,其中,所述渲染资源集合包括各种渲染资源;从所述渲染资源集合中,获取与所述待渲染资源标识对应的至少一个所述渲染资源,并将至少一个所述渲染资源确定为所述待渲染资源。
145.在本技术实施例中,所述第二数据处理装置255还包括数据回传模块2555,用于接收所述主控设备发送的渲染数据请求,其中,所述渲染数据请求中携带有所述主控设备进行数据计算所关联的渲染数据标识;响应于所述渲染数据请求,从所述渲染结果中获取与所述渲染数据标识对应的目标渲染数据;将所述目标渲染数据发送至所述主控设备,以使所述主控设备基于所述目标渲染数据进行数据计算。
146.在本技术实施例中,所述信息渲染模块2554,还用于获取渲染设备的设备资源占用比;当所述设备资源占用比低于指定设备资源占用比时,检测待渲染请求;响应于所述待渲染请求,执行对应的目标渲染。
147.本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。主控设备的第一处理器从计算机可读存储介质读取该计算机可执行指令,第一处理器执行该计算机可执行指令,使得该主控设备执行本技术实施例上述的应用于主控设备的数据处理方法;或者,渲染设备的第二处理器从计算机可读存储介质读取该计算机可执行指令,第二处理器执行该计算机可执行指令,使得该渲染设备执行本技术实施例上述的应用于渲染设备的数据处理方法。
148.本技术实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被第一处理器执行时,将引起第一处理器执行本技术实施例提供的应用于主控设备的数据处理方法;或者,当计算机可执行指令被第二处理器执行时,将引起第二处理器执行本技术实施例提供的应用于渲染设备的数据处理方法。例如,如图4示出的基于渲染资源的数据处理方法。
149.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
150.在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
151.作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个
文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
152.作为示例,计算机可执行指令可被部署为在位于一个地点的多个电子设备上执行(此时,位于一个地点的多个电子设备即为主控设备和渲染设备),又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行(此时,分布在多个地点且通过通信网络互连的多个电子设备即为主控设备和渲染设备)。
153.可以理解的是,在本技术实施例中,涉及到操作和渲染资源等相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
154.综上所述,本技术实施例由于在响应于渲染触发事件获得了针对待渲染资源的第一管线配置指令之后,先通过虚拟管线接口获得虚拟管线配置信息,向渲染设备发送该虚拟管线配置信息,再在渲染设备上通过解析虚拟管线配置信息恢复出第二管线配置指令,并通过真实虚拟管线接口响应该第二管线配置指令进行真实管线配置,进而基于真实管线配置结果进行渲染;如此,使得渲染是通过独立于主控设备的渲染设备实现的,且通过构建虚拟管线接口响应第一管线配置指令,使得向渲染设备发送的为虚拟管线配置信息,而虚拟管线配置信息表示渲染管线阶段、资源渲染位置和渲染资源标识的对应关系,降低了异步渲染过程的数据传输量,因此,能够提升渲染效率。
155.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献