图像渲染方法、系统以及电子设备与流程

文档序号:14715950发布日期:2018-06-16 01:21阅读:137来源:国知局
图像渲染方法、系统以及电子设备与流程

本公开的实施例涉及一种图像渲染方法、系统以及电子设备。



背景技术:

“云渲染”这一构想提出之后,立刻引起外界的瞩目。“云渲染”,即把繁重的3D渲染搬至互联网上,用户终端通过Web软件或者直接在本地的3D程序中点击一个“云渲染”按钮并借助高速互联网接入访问资源,指令从用户终端中发出,服务器根据指令执行对应的渲染任务,而渲染结果画面则被传送回用户终端中加以显示。

“云渲染”为3D游戏工业指明了一个崭新的方向,相对于传统的本机渲染,云端的服务器会负责所有的CPU和GPU需求,所以对于用户终端的性能没有太多要求,因此无需考虑3D游戏是否支持用户终端,只要网速满足要求就可以流畅运行,这对于许多用户都有很大的诱惑力。

然而,3D游戏对于用户指令的响应高度敏感,譬如在CS之类的激烈对战游戏中,用户指令必须得到及时响应,若稍有延迟,用户所控制的游戏对象就有被一枪爆头的风险。虽然,目前在极力提升用户终端与服务器的网络接入性能,以确保云渲染所需要的快速响应,但是延迟总还是有的,无法给用户提供无间断的用户体验。

公开内容

本公开至少一个实施例提供了一种图像渲染方法、系统以及电子设备。该图像渲染系统能够结合3D游戏中的数据,对用户端将要显示的画面在云端进行提前预测渲染,这样用户端在显示时就可以直接使用该云端提前渲染出的图像,较好的为用户提供了无间断的用户体验。

根据本公开的一方面,至少一个实施例提供了一种图像渲染方法,该方法包括:根据第一时刻的第一图像,提前渲染出第二时刻的至少一个第二图像,其中,所述第二时刻晚于所述第一时刻;当所述第二时刻来临时,如果所述至少一个第二图像中的目标图像吻合于第二时刻或第二时刻之前的操作,则使用所述提前渲染出的目标图像。

根据本公开的另一方面,至少一个实施例还提供了一种电子设备,该电子设备包括:处理器;以及存储器,配置为存储计算机程序指令,所述计算机程序指令适于由所述处理器加载并执行上述图像渲染方法。

根据本公开的另一方面,至少一个实施例还提供了一种图像渲染系统,包括:上述电子设备;服务器,用于根据第一时刻的第一图像,提前渲染出至少一个第二时刻的第二图像。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1是根据本公开实施例的一种图像渲染系统系统环境示意图;

图2是根据本公开实施例的一种电子设备示意图;

图3是根据本公开实施例的一种图像渲染方法的流程图;

图4是根据本公开实施例的一种候选图像示意图;

图5是根据本公开实施例的一种提前渲染出第二时刻的至少一个第二图像示意图;

图6是根据本公开实施例的一种形成一幅完整图像的组合图像示意图;

图7是根据本公开实施例的一种没有形成一幅完整图像的组合图像示意图;以及

图8是根据本公开实施例的一种电子设备示意图。

具体实施方式

为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

目前的“云渲染”将3D游戏放在远程的服务器中渲染,渲染后的画面通过网络发送至用户终端。用户在用户终端对3D游戏进行控制,控制指令通过网络再传送至远程服务器,远程服务器根据用户的控制指令再将渲染结果传回、显示在用户终端的显示界面上。此时,用户终端只做显示和键盘鼠标输入控制功能,3D游戏的全部处理工作都在远程服务器完成。用户的控制指令的传输以及进行图像渲染等都需要耗费时间,这导致用户的控制指令总是存在延时,无法得到及时响应,严重降低了用户的使用体验。

根据本公开的至少一个实施例,提供了一种图像渲染系统,例如用于基于“云渲染”给用户提供无间断的用户体验,可至少解决目前3D游戏“云渲染”所存在的上述缺陷。该图像渲染系统包括如图1所示环境,该环境可以包括硬件环境和网络环境。上述硬件环境包括:电子设备101,例如用于本地临时接手渲染;与电子设备101网络连接(如有线网络连接和/或无线网络连接)的服务器集群102,例如用于进行云端远程渲染。应当注意,图1所示的硬件环境和结构只是示例性的,而非限制性的;根据需要,硬件环境也可以具有其他组件和结构,并且例如可以包括网关等。

该无线网络包括但不限于:广域网、城域网、局域网或移动数据网络。典型地,该移动数据网络包括但不局限于:全球移动通信(GSM)网络、码分多址(CDMA)网络、宽带码分多址(WCDMA)网络、5G移动通信网络、长期演进(LTE)通信网络、WIFI网络、ZigBee网络、基于蓝牙技术的网络等。不同类型的通信网络可能由不同的运营商运营。通信网络的类型不构成对本公开实施例的限制。

典型的,电子设备101例如移动电话机、平板计算机和笔记本计算机等拥有一般性能处理器的移动终端,该移动终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,该移动终端可以作为用户端。可选的,该电子设备101包括显示器,该显示器可以为各种适用的类型,例如可以液晶显示器、有机发光显示器、阴极射线管(CRT)显示器等;该电子设备101包括输入设备,该输入设备可以为鼠标、键盘、触摸屏或触摸面板等,该触摸屏和触摸面板包括但不局限于电阻式、电容式、红外式和表面声波式。本公开的实施例对此不作限制。

典型的,服务器集群102对外作为一个整体,该服务器拥有高性能处理器和高端图形技术,具备构建云渲染平台的实力。该高性能处理器包括高性能的图形处理器(GPU,Graphics Processing Unit)和高性能的中央处理器(CPU,Central Processing Unit)。该高端图形技术包括但不局限于有硬体T&L、立方环境材质贴图与顶点混合、纹理压缩及凹凸映射贴图、双重纹理四像素256位渲染引擎等技术。

以3D游戏的“云渲染”为例,如图1所示,服务器集群102提前渲染出电子设备101将要显示的画面图像,并将提前渲染出的画面图像在其将被电子设备101显示之前传输给电子设备101。用户在电子设备101对3D游戏进行控制,倘若电子设备101所接收的提前渲染出的画面图像与其要显示的实际图像吻合,则电子设备101直接使用并显示该提前渲染出的图像;倘若电子设备101所接收的提前渲染出的画面图像与其要显示的实际图像不吻合,则电子设备101在本地临时接手渲染,或者将控制指令通过网络再传送至服务器集群102,服务器集群102根据用户的控制指令再将渲染结果传回、显示在电子设备101的显示界面上。

可以看出,本公开实施例主要将3D游戏放在服务器集群102中预测渲染,预测渲染后的画面图像通过网络发送至电子设备101。如果服务器集群102预测渲染出的画面图像与电子设备101要显示的实际图像不吻合,则再由电子设备101本机或者服务器集群102临时接手渲染,以提供无间断的用户体验。这里,电子设备101可以仅做显示和键盘鼠标输入控制功能,额外的还可以做图像渲染处理工作。

通过上述方式,能够结合3D游戏中的数据,对用户端将要显示的画面在云端进行提前预测渲染,这样用户端在显示时就可以直接使用该云端提前渲染出的图像,较好的为用户提供了无间断的用户体验。

在上述运行环境下,本公开的至少一个实施例提供了一种电子设备101,如图2所示,该电子设备101包括:

处理器201,该处理器201可以为各种适用的处理器,至少包括中央处理器CPU和图形处理器GPU,例如实现为中央处理器、微处理器、嵌入处理器、张量处理器、图形处理器等形式或任意组合,可以采用X86、ARM等架构;以及

存储器202,配置为存储计算机程序指令,计算机程序指令适于由处理器201加载并执行图像渲染方法(后续将进行详细介绍),该存储器202可以为各种适用的存储装置,包括但不限于磁存储装置、半导体存储装置、光存储装置等。本公开的实施例对这些不作限制。

运行电子设备101,本公开的至少一个实施例提供了如图3所示的图像渲染方法的流程图,该方法适于由电子设备101的处理器201加载并执行。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。如图3所示,该实施例的图像渲染方法可以包括如下步骤:

步骤S301,根据第一时刻的第一图像,获取提前渲染出第二时刻的至少一个第二图像,其中,第二时刻晚于第一时刻;

步骤S302,当第二时刻来临时,如果至少一个第二图像中的目标图像吻合于第二时刻或第二时刻之前的操作,则使用提前渲染出的目标图像。

例如,用户从电子设备101中启动应用程序(以3D游戏为例),该电子设备101的显示界面显示该3D游戏的游戏画面图像。此时,服务器集群102根据电子设备101当前显示的游戏画面图像,提前渲染出电子设备101将要显示的游戏画面图像。这里,将电子设备101显示当前画面图像的当前时刻视作第一时刻,将晚于该第一时刻的其他时刻视作第二时刻,例如,该第二时刻为该当前画面图像的下一帧(不局限于下一帧)画面图像所对应的时刻。

需要强调的是,服务器集群102必然要根据3D游戏中的数据(如当前显示的游戏画面图像)进行预测,可以预测的是电子设备101第二时刻或第二时刻之前的操作,该操作包括用户的输入操作以及系统自动生成的操作,进而根据该预测的操作提前渲染出电子设备101将要显示的游戏画面图像。此外,服务器集群102可以多分支预测电子设备101将要显示的游戏画面图像,并可以根据多分支预测结果提前渲染出至少一个电子设备101可能将要显示的游戏画面图像。例如,当3D游戏中的人物正在向前跑,我们可以假设下一个0.1秒人物还在继续向前跑,或者假设下一个0.1秒人物停止跑动,那么可以在服务器集群102将这几种情况都渲染出来,并将该多个渲染结果传送给电子设备101。

这样,在步骤S301中,根据第一时刻的第一图像,可以获取提前渲染出的第二时刻的至少一个第二图像。也就是说,根据当前显示的第一图像,电子设备101可以从服务器集群102获取服务器集群102所提前渲染出第二时刻的至少一个第二图像。当第二时刻来临时,如果至少一个第二图像中的目标图像吻合于电子设备101第二时刻或第二时刻之前的操作,该操作包括用户的输入操作以及系统自动生成的操作,该操作可以紧接第二时刻,或者处于第一时刻与第二时刻之间的操作,则在步骤S302中使用该服务器集群102所提前渲染出的目标图像,该使用例如显示。

这里,服务器集群102根据第一时刻的第一图像,提前渲染出第二时刻的至少一个第二图像,并将至少一个第二图像传给电子设备。

当第二时刻来临时,如果至少一个第二图像没有吻合于第二时刻或第二时刻之前的操作的目标图像,则电子设备101在本地第二时刻进行渲染,得到并显示第三图像。需要说明的是,虽然可以采用电子设备101本机临时接手渲染,或者采用服务器集群102再根据第二时刻或第二时刻之前的操作进行渲染这两种方式,但是由于将第二时刻或第二时刻之前的操作所对应的控制指令传输至服务器集群102,以及服务器集群102进行渲染以及将渲染结果传出给电子设备101都需要时间,综合下来会浪费较多时间。因此,本公开的实施例,当第二时刻来临时,如果至少一个第二图像没有吻合于第二时刻或第二时刻之前的操作的目标图像,推荐电子设备101在第二时刻临时接手渲染得到并显示第三图像,通过将“云渲染”与本机渲染相结合,为用户提供更好的视觉体验。

这里,由于第三图像是电子设备101在第二时刻临时接手渲染的,而第二图像中的目标图像是提前已经渲染好的,所以电子设备101从第一图像切换到第三图像的时长势必要大于从第一图像切换到目标图像的时长。

在一个可选的实施例中,电子设备101在第二时刻临时接手进行渲染,得到并显示第三图像可以包括:选取至少一个第二图像中的候选图像;比对候选图像,对在第二时刻需渲染的待渲染图像进行局部渲染;利用局部渲染出的局部图像替换候选图像中不吻合于第二时刻或第二时刻之前的操作的部分图像,以形成第三图像并显示第三图像。

该候选图像可以是提前渲染出的至少一个第二图像中的任意一幅图像,例如是与第二时刻或第二时刻之前的操作吻合度最高的一幅图像,候选图像中的部分图像可以是候选图像中的一部分图像区域中的图像。该第二时刻需渲染的待渲染图像可以是第二时刻或第二时刻之前的操作所对应的控制指令要求渲染的渲染对象,对该待渲染图像进行整体渲染,可以渲染出第二时刻实际要显示的实际图像。可以看出,候选图像是已经提前渲染出的图像;该待渲染图像是渲染前所需准备的将要进行渲染的渲染对象,该待渲染图像可以包括候选图像。

当待渲染图像包括候选图像时,比对候选图像和实际要显示的实际图像,直接将该候选图像与实际图像不同的部分进行渲染,以局部渲染出一局部图像;并利用该局部渲染出的局部图像替换候选图像中不吻合于第二时刻或第二时刻之前的操作的部分图像,以形成第三图像并显示第三图像。

当待渲染图像不包括候选图像时,比对候选图像和实际要显示的实际图像,以确定待渲染区域;将待渲染图像的该待渲染区域进行渲染,以获得该待渲染区域的渲染结果;将除待渲染区域之外的其他区域的渲染结果直接从候选图像中复制获得,以此利用该局部渲染出的局部图像替换候选图像中不吻合于第二时刻或第二时刻之前的操作的部分图像,以形成第三图像并显示第三图像。

这里,该局部渲染包括:获取待渲染图像;依据新的几何、视点、纹理以及照明信息,来对待渲染图像对应于区别区域中的图像进行临时接手渲染,以临时接手渲染出区别区域中的图像。

例如,3D游戏中当前游戏画面中人物正在向前跑,所获取的提前渲染出第二时刻的至少一个第二图像包括:人物还在继续向前跑的图像以及人物停止跑动的图像。当第二时刻来临时,倘若第二时刻实际要显示的实际图像为“人物还在继续跑,但跑的方向为左前”。这样,本公开可以选取“人物还在继续向前跑的图像”为候选图像,将实际图像与候选图像进行区别比对,倘若实际图像与候选图像区别仅仅在于“人物所在区域的图像的不同”,则仅对该区别区域进行临时渲染,以利用该临时接手渲染出的区别区域中的图像替换候选图像中的区别区域中的图像,即可得到要显示的第三图像。这样,电子设备101临时接手的局部渲染不会太多处理量。因此,电子设备101也可以快速显示第三图像,也较好的提供了无间断的用户体验。

可选的,例如,比对候选图像,对在第二时刻需渲染的待渲染图像进行局部渲染可以包括:获取在第二时刻需渲染的待渲染图像;确定候选图像中不吻合于第二时刻或第二时刻之前的操作的部分图像在待渲染图像中的位置;依据部分图像在待渲染图像中的位置,将待渲染图像的局部区域进行局部渲染。

也就是说,建立候选图像与需渲染的待渲染图像之间的位置关系,依据该位置关系对待渲染图像进行局部渲染。比如,如图4所示,候选图像包括A、B、C、D四个图像区域,其中A区域中的图像不吻合于第二时刻或第二时刻之前的操作,则仅将待渲染图像A区域中所需渲染的图像进行局部渲染。也即,通过比较候选图像,仅对待渲染图像局部区域A进行渲染;对待渲染图像局部区域A之外的其他部分(如B、C、D)不再进行渲染,而是直接选取候选图像中与待渲染图像的图像区域B、C、D位置对应的图像区域中的图像,作为待渲染图像的图像区域B、C、D已经渲染出的图像。

在另一个可选的实施例中,电子设备101在第二时刻进行渲染,得到并显示第三图像还可以包括:提取至少一个第二图像中吻合于第二时刻或第二时刻之前的操作的至少一个图像区域中的图像;将至少一个图像区域中的图像进行组合以形成组合图像;如果组合图像形成了一幅完整的图像,则将组合图像作为第三图像并显示第三图像;如果组合图像没有形成一幅完整的图像,则比对该组合图像将待渲染图像进行局部渲染;利用局部渲染出的局部图像弥补该组合图像中的缺失,以形成第三图像并显示第三图像。

例如,如图5所示,提前渲染出第二时刻的至少一个第二图像包括图像T1、图像T2和图像T3,其中,图像T1包括A1、B1、C1、D1四个图像区域,图像T2包括A2、B2、C2、D2四个图像区域,图像T3包括A3、B3、C3、D3四个图像区域。

倘若,仅有图像区域A1、B1、C2和D3中的图像吻合于第二时刻或第二时刻之前的操作,则提取图像区域A1、B1、C2、D3中的图像组合以形成第三图像,该第三图像如图6所示,并显示该第三图像。

倘若,仅有图像区域A1、B1、C2和C3中的图像吻合于第二时刻或第二时刻之前的操作,则提取图像区域A1和B1,以及C2或C3中的图像组合以形成组合图像,这时该组合图像对应待渲染图像D区域的D’区域(如图7阴影所示)存在缺失。即该组合图像没有形成一幅完整的图像,则比对该D’区域存在缺失的组合图像将待渲染图像位于D区域中的图像进行局部渲染;利用该局部渲染出的D区域中的局部图像弥补该组合图像中的缺失,以形成第三图像并显示第三图像。也即,比对组合图像,仅对与组合图像缺失区域D’对应的待渲染图像D区域中的图像渲染;对待渲染图像局部区域D之外的其他部分(如A、B、C)不再进行渲染,而是直接提取至少一个第二图像中吻合于第二时刻或第二时刻之前的操作的A、B、C图像区域中的图像,作为待渲染图像的图像区域A、B、C已经渲染出的图像。

本公开上述实施例,能够结合3D游戏中的数据,对用户端将要显示的画面进行提前预测渲染,这样用户端就可以直接使用提前渲染出的图像,较好的为用户提供了无间断的用户体验。

在上述运行环境下,本公开的至少一个实施例提供了一种电子设备101,如图8所示,该电子设备101包括:

预测单元801,用于根据第一时刻的第一图像,获取提前渲染出第二时刻的至少一个第二图像,其中,第二时刻晚于第一时刻;

使用单元802,用于当第二时刻来临时,如果至少一个第二图像中的目标图像吻合于第二时刻或第二时刻之前的操作,则使用提前渲染出的目标图像。

本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备101还可包括比图8中所示更多或者更少的组件、如通信单元,或者具有与图8所示不同的配置。另外,图8所示的电子设备的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元可借助于软件加必需的硬件平台的方式来实现,当然也可以全部采用硬件的形式实现,或全部采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,对于上述的方法、电子设备、系统实施例,为了简单描述,故将其都表述为一系列的动作或模块组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序或模块连接的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行,某些模块可以采用其他连接方式。

本领域技术人员也应该知悉,说明书中所描述的实施例均属于一个实施例,上述实施例序号仅仅为了描述,所涉及的动作和模块并不一定是本公开所必须的。在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本公开所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的电子设备实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1