CN116059643A - 游戏渲染方法和渲染方法、设备及存储介质 - Google Patents
游戏渲染方法和渲染方法、设备及存储介质 Download PDFInfo
- Publication number
- CN116059643A CN116059643A CN202310041725.4A CN202310041725A CN116059643A CN 116059643 A CN116059643 A CN 116059643A CN 202310041725 A CN202310041725 A CN 202310041725A CN 116059643 A CN116059643 A CN 116059643A
- Authority
- CN
- China
- Prior art keywords
- target
- operation result
- target frame
- resource
- game
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/65—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供一种游戏渲染方法和渲染方法、设备及存储介质。在本申请实施例中,通过预热处理的方法,预先得到目标帧的资源运算结果并存储。之后,在在线加载目标游戏时,可利用预先存储的目标帧的资源运算结果,渲染目标帧。其中,直接利用已计算好的资源运算结果渲染目标帧,无需再次对目标帧进行重复资源计算,有助于提高游戏的加载速度,降低游戏加载延时。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种游戏渲染方法和渲染方法、设备及存储介质。
背景技术
云游戏(Cloud Gaming)又可称为游戏点播(Gaming on Gemand),是一种以云计算技术为基础的在线游戏技术。在云游戏场景下,游戏在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力。
为了获得更好的体验,无论是云游戏厂商还是云游戏用户,对于游戏加载时间都比较敏感。因此,如何降低云游戏加载时间成为本领域技术人员持续研究的技术问题。
发明内容
本申请的多个方面提供一种游戏渲染方法和渲染方法、设备及存储介质,用以提高云游戏的渲染速度,降低加载延时。
本申请实施例提供一种游戏渲染方法,包括:
响应于目标游戏的加载请求,创建渲染所述目标游戏的第一虚拟实例;
获取预先存储的所述目标游戏的目标帧的资源运算结果;
在所述第一虚拟实例中,运行所述目标游戏;
在所述目标游戏的运行过程中,根据所述目标帧的资源运算结果,渲染所述目标帧。
本申请实施例还提供一种渲染方法,包括:
响应于目标应用的加载请求,创建渲染所述目标应用的第一虚拟实例;
获取预先存储的所述目标应用的目标帧的资源运算结果;
在所述第一虚拟实例中,运行所述目标应用;
在所述目标应用的运行过程中,根据所述资源运算结果,渲染所述目标帧。
本申请实施例还提供一种渲染方法,适用于云服务器,所述方法包括:
响应于调用目标服务的请求,确定所述目标服务对应的处理资源;
利用所述目标服务对应的处理资源执行上述游戏渲染方法,和/或,渲染方法中的步骤。
本申请实施例还提供一种计算设备,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器及所述通信组件,用于执行所述计算机程序以用于执行上述游戏渲染方法,和/或,渲染方法中的步骤。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述游戏渲染方法,和/或,渲染方法中的步骤。
在本申请实施例中,通过预热处理的方法,预先得到目标帧的资源运算结果并存储。之后,在在线加载目标游戏时,可直接利用预先存储的目标帧的资源运算结果,渲染目标帧。其中,直接利用已计算好的资源运算结果渲染目标帧,无需再次对目标帧进行重复资源计算,有助于提高游戏的加载速度,降低游戏加载延时。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的云游戏系统的结构示意图和预热处理过程示意图;
图2为本申请实施例提供的渲染过程示意图;
图3为本申请实施例提供的着色器的计算过程示意图;
图4a和图4b为本申请实施例提供的云游戏系统进行游戏渲染的过程示意图;
图5a和图5b为本申请实施例提供的游戏渲染方法的流程示意图;
图6a和图6b为本申请实施例提供的渲染方法的流程示意图;
图7为本申请实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一些实施例中,通过预热处理的方法,预先得到目标帧的资源运算结果并存储。之后,在在线加载目标游戏时,可直接利用预先存储的目标帧的资源运算结果渲染目标帧。其中,直接利用已计算好的资源运算结果渲染目标帧,无需再次对目标帧进行重复资源计算,有助于提高游戏的加载速度,降低游戏加载延时。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图1为本申请实施例提供的云游戏系统的结构示意图。如图1所示,该云游戏系统主要包括:终端设备10和服务端设备20。
终端设备10是指用户使用的,具有用户所需通信、存储等功能的计算机设备,例如可以是手机、平板电脑、个人电脑、穿戴设备等,也可以为物联网(Internet of Things,IoT)具有通信功能的电视等。终端设备10无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力(如显示游戏画面的能力)、人机交互能力(获取操作对象的输入操作的能力),以及数据传输能力(如发送指令给云服务器的能力)等。
服务端设备20是指可以进行游戏资源管理,可响应终端设备10的服务请求,为用户提供与游戏资源处理相关的服务的计算机设备,一般具备承担服务并保障服务的能力。服务端设备20可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)。另外,服务端设备也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
其中,服务端设备20和终端设备10之间可以是无线或有线连接。可选地,终端设备10可以通过移动网络和服务端设备20通信连接。相应地,移动网络的网络制式可以为2G(如全球移动通信系统(Global System for Mobile Communications,GSM)等)、2.5G(如,通用无线分组服务(General Packet Radio Service,GPRS)等)、3G(如宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、时分同步码分多址(Time Division-Synchronous Code Division Multiple Access,TD-SCDMA)、码分多址2000(CodeDivision Multiple Access 2000,CDMA2000)、通用移动通信系统(Universal MobileTelecommunications System,UTMS)等)、4G(如长期演进(Long Term Evolution,LTE)等)、4G+(如升级版长期演进(LTE-Advanced,LTE-A)等)、5G、全球微波接入互操作性(WorldInteroperability for Microwave Access,WiMax)等中的任意一种。可选地,终端设备10和服务端设备20也可以通过蓝牙、无线保真(Wireless Fidelity,WiFi)、红外线等方式通信连接。
在本申请实施例中,目标游戏的玩家或用户,可通过终端设备10向服务端设备20发送针对目标游戏的加载请求;服务端设备20可响应于该加载请求,调用目标资源创建虚拟实例。虚拟实例是指具有数据处理功能的实例,如虚拟机(VM)、容器组(如Pod)或容器(Docker)等。服务端设备20可响应于目标游戏的加载请求,确定目标游戏对应的目标资源。目标资源可包括:计算资源和存储资源等。计算资源主要是指处理器资源,包括但不局限于:中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)和/或现场可编程门阵列(Field-Programmable Gate Array,FPGA)等。
进一步,服务端设备20可利用虚拟实例将目标游戏的游戏创建渲染为音视频流,并通过网络传输至终端设备10。终端设备10播放或显示音视频流,供目标游戏的玩家进行操作或观看等。因此,如何降低终端设备10加载云游戏时间为云游戏技术领域需要持续研究的技术问题。服务端设备20对游戏的画面的渲染计算的耗时,为影响游戏加载速度的重要环节。
本申请发明人研究发现,游戏加载阶段的渲染计算是固定不变的。游戏加载阶段的渲染计算主要是针对目标游戏的目标帧进行渲染的。目标帧是指游戏加载过程中固定不变的图画,包括但不局限于:开机动画及进入游戏的首帧画面等,一般是指游戏从登录操作之后显示的画面,至进入游戏显示的首帧画面。
基于上述研究发现,在本申请实施例中,为了提高游戏加载速度,服务端设备20可对目标游戏进行预热加载,即预热渲染目标帧。具体操作如下:
结合图1和图2,服务端设备20可在预热渲染阶段,调用目标资源创建虚拟实例。虚拟实例可为虚拟机、容器组或容器等。目标资源包括:CPU、GPU等计算资源及内存等存储资源等。
服务端设备20可在虚拟实例中运行目标游戏;并在目标游戏的运行过程中,获取目标帧的资源数据。目标帧的资源数据是指虚拟实例对应的GPU的着色器(Shader)进行资源运算所需的资源,包括但不局限于:顶点数据、纹理数据及、着色器常量(如入射光方向、入射光颜色等)等。
具体地,服务端设备20可在目标游戏的运行过程中,模拟目标游戏的登录操作和启动操作。可选地,服务端设备20可在目标游戏的运行过程中,使用LUA自动化脚本操作目标游戏执行登录操作和启动操作等。其中,LUA是脚本语言的名称。
之后,可获取响应登录操作显示的动画的资源数据和响应启动操作显示的首帧画面的资源数据,作为目标帧的资源数据。相应地,目标帧可包括:响应登录操作显示的动画及响应启动操作显示的首帧画面。
虚拟实例可利用目标资源(CPU和GPU等)来渲染目标帧。CPU和GPU执行渲染处理的流程可至少包括:应用阶段、几何阶段和光栅化阶段。其中,应用阶段可由CPU执行,是开发者进行场景开发的阶段。在应用阶段可以设置目标帧中的摄像机以及灯光等,形成渲染图像所需的点、线、面以及纹理等资源数据。在应用阶段得到渲染图像所需的数据后,可将数据从CPU转移至GPU,由GPU基于资源数据执行几何阶段。
几何阶段可由GPU执行,GPU在几何阶段可将CPU在应用阶段发来的资源数据进行进一步处理。如图3所示,GPU中包含渲染管线,渲染管线是GPU中负责给图像配上颜色的一组通道。渲染管线可被划分为几个阶段,每个阶段会把前一个阶段的输出作为当前阶段的输入,使得渲染管线类似于流水线一样执行工作。
由于渲染管线上各个阶段具有并行执行的特性,因此显卡(包含GPU的设备)中的小处理器可以在GPU上为每一个阶段运行各自的小程序,从而在渲染管线中快速处理数据,这些小程序可以叫做着色器(Shader)。不同着色器可实现不同功能。如图3所示的渲染管线中包括顶点着色器、细分着色器、几何着色器及片元着色器等,后一着色器的输入为前一个着色器的输出。
顶点着色器通常用于实现顶点的空间变换等功能,用于将顶点数据转换为顶点在屏幕上的坐标(即顶点坐标)。细分着色器是一个可选着色器,用于描述目标帧中物体的形状,生成几何体处理模型。几何着色器同样是可选着色器,用于对几何体处理模型的原坐标进行修改。渲染管线还可进行裁剪,这一阶段的目的是将那些不在摄像机视野内的顶点裁剪掉,剔除某些三角图元的面片。之后,渲染管线还可进行屏幕映射,负责把每个图元的坐标转换到屏幕坐标系中。
光栅化阶段也可由GPU主导,在此阶段可接收上一阶段(即几何阶段)传输的数据,并基于接收到的数据产生屏幕上的像素(即屏幕对应的位置像素片元),并利用片元着色器对片元涂色,进而渲染出最终的图像(或画面)。光栅化阶段的主要任务是确定每个渲染图元(即图像中的元素)中的哪些像素应该被绘制在显示屏幕上,以实现将数据或信息渲染显示为终端屏幕中的图像。
本申请发明人研究发现,对于目标帧的渲染过程,上述几何阶段的资源运算是固定的,即图3中光栅化处理之前的操作是固定的。因此,服务端设备20可利用虚拟实例对应的GPU的着色器对资源数据进行资源运算,以得到目标帧的资源运算结果。在本实施具体资源运算过程可参见上述几何阶段的主要实施方式,即图3中光栅化之前的操作,在此不再赘述。目标帧的资源运算结果可包括:顶点的屏幕坐标及图元的屏幕坐标等。
由于虚拟实例对应有缓存目录,因此,可将目标帧的资源运算结果,重定向到虚拟实例的GPU的着色器的缓存目录下。这样,可利用虚拟实例从缓存目录下的目标帧的资源运算结果,渲染目标帧。根据目标帧的资源运算结果,渲染目标帧的实施方式,可参见上述光栅化阶段的描述,在此不再赘述。
由于GPU着色器对目标帧的资源数据进行资源运算的过程和结果是相同的,在本申请实施例中,为了避免渲染资源重复计算,提高云游戏启动速度,可存储上述预热阶段虚拟实例的GPU的着色器的缓存目录下的资源运算结果。
具体地,可从虚拟实例对应的GPU的着色器的缓存目录下,读取资源运算结果;并对资源运算结果进行持久化存储。可选地,可将资源运算结果存储于数据库中,或者存储于虚拟实例所在物理机的磁盘中等。
在本申请实施例中,为了降低存储数据对存储空间的占用,降低存储数据量,在存储预热阶段的虚拟实例的GPU的着色器的缓存目录下的资源运算结果时,还可对该缓存目录下的资源运算结果进行压缩处理,以得到资源运算结果的压缩数据;之后,可存储资源运算数据的压缩数据。
上述实施例示出了对目标游戏进行预热处理的过程,得到目标帧的资源运算结果。在预热处理完成之后,即将目标帧的资源运算结果持久化存储之后,可注销上述对目标游戏进行预热处理的虚拟实例,并释放该虚拟实例占用的目标资源等。上述对目标游戏进行预热处理的过程针对同一版本的游戏可执行一次。
由于着色器对目标帧的资源计算过程和结果是相同的,因此,预先存储预热阶段得到的目标帧的资源运算结果,后续在用户在线加载目标游戏时,可直接利用预先存储的目标帧的资源运算结果渲染目标帧,提高目标帧的加载速度。下面具体对在线加载目标游戏的过程进行示例性说明。
结合图2、图4a和图4b,目标游戏的玩家或用户在线玩游戏时,可通过终端设备10向服务端设备20发送针对目标游戏的加载请求;服务端设备20可响应于该加载请求,创建渲染目标游戏的虚拟实例。在本申请实施例中,为了便于描述和区分,将此处用于目标游戏实时渲染的虚拟实例,定义为第一虚拟实例;将上述预热处理阶段的虚拟实例,定义为第二虚拟实例。
可选地,服务端设备20可响应于加载请求,确定满足目标游戏的资源需求的目标资源;并调用目标资源创建第一虚拟实例。关于目标资源的描述可参见上述预热处理阶段的相关内容,在此不再赘述。可选地,服务端设备20可获取第一虚拟实例的镜像文件,并对镜像文件进行解压缩处理,以得到解压缩后的镜像文件;之后,可调用目标资源根据解压缩后的镜像文件,创建第一虚拟实例。
由于预热处理阶段的第二虚拟实例对应的GPU的着色器预先对目标帧进行了资源运算,因此,在本实施例中,结合图2、图4a和图4b,服务端设备20可获取上述预先存储的目标游戏的目标帧的资源运算结果。
对于上述对资源运算结果进行压缩存储的实施例,服务端设备20可获取预先存储的目标帧的资源运算结果的压缩数据;之后,可对资源运算结果的压缩数据进行解压缩处理,得到目标帧的资源运算结果。
进一步,如图4a所示,服务端设备20可在第一虚拟实例中,运行目标游戏;并在目标游戏的运行过程中,根据目标帧的资源运算结果,渲染目标帧。
由于虚拟实例对应有缓存目录,且虚拟实例是从其缓存目录下读数据进行画面渲染的。因此,如图4b所示,服务端设备20可将获取的目标帧的资源运算结果,复制到第一虚拟实例对应的GPU的着色器的缓存目录下。之后,服务端设备20可在第一虚拟实例中,运行目标游戏;并在目标游戏的运行过程中,根据第一虚拟实例对应的GPU的着色器的缓存目录下的资源运算结果,渲染目标帧。
具体地,可根据目标帧的资源运算结果,产生屏幕上的像素,并根据屏幕上的像素,渲染出目标帧的图像。在渲染出目标帧之后,结合图4a和图4b,服务端设备20以视频流方式将目标帧传输至终端设备10。终端设备10可展示目标帧。终端设备10的用户可基于展示的目标帧对目标游戏进行观看或操作等。
在本申请实施例中,目标游戏的服务端通过预热处理的方法,预先得到对目标帧的资源运算结果并存储。之后,在在线加载目标游戏时,可利用预先存储的目标帧的资源运算结果渲染目标帧。其中,直接利用已计算好的资源运算结果渲染目标帧,无需再次对目标帧进行重复资源计算,有助于提高游戏的加载速度,降低游戏加载延时。
除了上述实施例提供的云游戏系统之外,本申请实施例还提供游戏渲染方法。下面结合图5a进行示例性说明。
图5a为本申请实施例提供的游戏渲染方法的流程示意图。如图5a所示,该游戏渲染方法主要包括:
501、响应于目标游戏的加载请求,创建渲染目标游戏的第一虚拟实例。
502、获取预先存储的目标游戏的目标帧的资源运算结果。
503、在第一虚拟实例中,运行目标游戏。
504、在目标游戏的运行过程中,根据目标帧的资源运算结果,渲染目标帧。
在本实施例中,目标帧主要是指目标游戏的同一版本中不因用户操作而变化的画面,可包括:开机动画及游戏内容的首帧画面等。目标帧的资源运算结果为预热处理阶段的虚拟实例(虚拟机或容器等)在运行目标游戏的过程中,虚拟实例对应的GPU的着色器对目标帧进行资源运算的结果,即着色器的输出结果。
下面对预热处理阶段进行示例性说明。在预热渲染阶段,调用目标资源创建虚拟实例(定义为第二虚拟实例)。虚拟实例可为虚拟机、容器组或容器等。目标资源包括:CPU、GPU等计算资源及内存等存储资源等。
进一步,可在第二虚拟实例中运行目标游戏;并在目标游戏的运行过程中,获取目标帧的资源数据。目标帧的资源数据是指虚拟实例对应的GPU的着色器(Shader)进行资源运算所需的资源,包括但不局限于:顶点数据、纹理数据及、着色器常量(如入射光方向、入射光颜色等)等。
具体地,可在目标游戏的运行过程中,模拟目标游戏的登录操作和启动操作。之后,可获取响应登录操作显示的动画的资源数据和响应启动操作显示的首帧画面的资源数据,作为目标帧的资源数据。相应地,目标帧可包括:响应登录操作显示的动画及响应启动操作显示的首帧画面。
由于虚拟实例对应有缓存目录,因此,可将目标帧的资源运算结果,重定向到虚拟实例的GPU的着色器的缓存目录下。这样,可利用虚拟实例从缓存目录下的目标帧的资源运算结果,渲染目标帧。根据目标帧的资源运算结果,渲染目标帧的实施方式,可参见上述光栅化阶段的描述,在此不再赘述。
GPU着色器对目标帧的资源数据进行资源运算的过程和结果是相同的。关于GPU着色器对目标帧的资源数据进行资源运算的过程可参见上述图3的相关内容,在此不再赘述。因此,在本申请实施例中,为了避免渲染资源重复计算,提高云游戏启动速度,可存储上述预热阶段虚拟实例的GPU的着色器的缓存目录下的资源运算结果。
具体地,可从虚拟实例对应的GPU的着色器的缓存目录下,读取资源运算结果;并对资源运算结果进行持久化存储。可选地,可将资源运算结果存储于数据库中,或者存储于虚拟实例所在物理机的磁盘中等。
在本申请实施例中,为了降低存储数据对存储空间的占用,降低存储数据量,在存储预热阶段的虚拟实例的GPU的着色器的缓存目录下的资源运算结果时,还可对该缓存目录下的资源运算结果进行压缩处理,以得到资源运算结果的压缩数据;之后,可存储资源运算数据的压缩数据。
上述实施例示出了对目标游戏进行预热处理的过程,得到目标帧的资源运算结果。在预热处理完成之后,即将目标帧的资源运算结果持久化存储之后,可注销上述对目标游戏进行预热处理的虚拟实例,并释放该虚拟实例占用的目标资源等。上述对目标游戏进行预热处理的过程针对同一版本的游戏可执行一次。在游戏发生版本更新时,若目标帧进行了更新,可采用上述实施例提供的目标游戏的预热处理方式,对目标帧进行预处理,得到目标帧的资源运算数据。
由于着色器对目标帧的资源计算过程和结果是相同的,因此,预先存储预热阶段得到的目标帧的资源运算结果,后续在用户在线加载目标游戏时,可直接利用预先存储的目标帧的资源运算结果渲染目标帧,提高目标帧的加载速度。下面具体对在线加载目标游戏的过程进行示例性说明。
目标游戏的玩家或用户在线玩游戏时,可通过终端设备向服务端设备发送针对目标游戏的加载请求。针对目标游戏的服务端,如图5a中步骤501所示,可响应于该加载请求,创建渲染目标游戏的虚拟实例(定义为第一虚拟实例)。
可选地,可响应于加载请求,确定满足目标游戏的资源需求的目标资源;并调用目标资源创建第一虚拟实例。关于目标资源的描述及调用目标资源创建第一虚拟实例的具体实施方式,可参见上述预热处理阶段的相关内容,在此不再赘述。
由于预热处理阶段的第二虚拟实例对应的GPU的着色器预先对目标帧进行了资源运算,因此,在步骤502中,可获取上述预先存储的目标游戏的目标帧的资源运算结果。
对于上述对资源运算结果进行压缩存储的实施例,可获取预先存储的目标帧的资源运算结果的压缩数据;之后,可对资源运算结果的压缩数据进行解压缩处理,得到目标帧的资源运算结果。
进一步,在步骤503中,可在第一虚拟实例中,运行目标游戏;并在步骤504中,在目标游戏的运行过程中,根据第一虚拟实例对应的GPU的着色器的缓存目录下的资源运算结果,渲染目标帧。
由于虚拟实例对应有缓存目录,且虚拟实例是从其缓存目录下读数据进行画面渲染的。因此,在步骤503之前,还可将获取的目标帧的资源运算结果,复制到第一虚拟实例对应的GPU的着色器的缓存目录下。相应地,步骤504可实现为:在目标游戏的运行过程中,根据第一虚拟实例对应的GPU的着色器的缓存目录下的资源运算结果,渲染目标帧。
具体地,可根据目标帧的资源运算结果,产生屏幕上的像素,并根据屏幕上的像素,渲染出目标帧的图像。在渲染出目标帧之后,以视频流方式将目标帧传输至终端设备。终端设备可展示目标帧。终端设备的用户可基于展示的目标帧对目标游戏进行观看或操作等。
在本申请实施例中,通过预热处理的方法,预先得到目标帧的资源运算结果并存储。之后,在在线加载目标游戏时,可利用预先存储的目标帧的资源运算结果渲染目标帧。其中,直接利用已计算好的资源运算结果渲染目标帧,无需再次对目标帧进行重复资源计算,有助于提高游戏的加载速度,降低游戏加载延时。
本申请实施例提供的游戏渲染方法可部署于任意计算设备。可选地,本申请实施例提供的游戏渲染方法还可部署于云服务器,作为一种软件即服务(Software as aService,SaaS)应用。对于部署有该SaaS应用的云服务器,可响应于调用目标服务的请求,执行上述游戏渲染方法中的步骤。具体实施方式如图5b所示,该方法适用于云服务器,主要包括:
S51、响应于调用目标服务的请求,确定目标服务对应的处理资源。
S52、利用目标服务对应的处理资源,响应于目标游戏的加载请求,创建渲染目标游戏的第一虚拟实例。
S53、利用目标服务对应的处理资源,获取预先存储的目标游戏的目标帧的资源运算结果。
S54、利用目标服务对应的处理资源在第一虚拟实例中,运行目标游戏。
S55、在目标游戏的运行过程中,利用目标服务对应的处理资源根据目标帧的资源运算结果,渲染目标帧。
在本实施例中,目标服务是指提供上述游戏渲染方法的服务。目标服务对应的处理资源是指执行上述游戏渲染方法所需的处理资源,包括但不局限于:处理器资源、内存资源及输入/输出(Input/Output,IO)资源等。
本实施例提供的游戏渲染方法,可部署于云服务器,向用户提供游戏渲染服务,即目标服务。用户可为游戏服务方,也可为游戏玩家等。可选地,云服务端可向使用方提供应用编程接口(Application Program Interface,API)。服务请求方(即用户)可调用该API调用目标服务。相应地,调用目标服务的请求实现为调用API所产生的调用事件。服务请求方(即用户)也可通过远程过程调用(Remote Procedure Call,RPC)或远程直接数据存取(Remote Direct Memory Access,RDMA)技术调用目标服务。
针对云服务器,可响应于调用目标服务的请求,确定目标服务对应的处理资源;并利用目标服务对应的处理资源执行步骤S52-步骤S55的步骤,实现目标帧的渲染。关于步骤S52-S55的具体实施方式,可参见上述图5a的相关内容,在此不再赘述。
在本实施例中,通过预热处理的方法,预先得到对目标帧的资源运算结果并存储。之后,云服务器可响应调用目标服务的请求,在在线加载目标游戏时,可直接利用预先存储的目标帧的资源运算结果,渲染目标帧。其中,直接利用已计算好的资源运算结果渲染目标帧,无需再次对目标帧进行重复资源计算,有助于提高游戏的加载速度,降低游戏加载延时。
值得说明的是,上述实施例仅以云游戏应用场景为例,对本申请实施例提供的渲染方法进行了示例性说明。本申请实施例提供的渲染方法除了适用于上述云游戏场景之外,还适用于其它渲染场景。例如,虚拟现实(Virtual Reality,VR)渲染场景、元宇宙渲染场景、导航渲染场景、云模拟或仿真场景等。下面重点对本申请实施例提供的渲染方法进行示例性说明。
图6a为本申请实施例提供的渲染方法的流程示意图。如图6a所示,该渲染方法主要包括:
601、响应于目标应用的加载请求,创建渲染目标应用的第一虚拟实例。
602、获取预先存储的目标应用的目标帧的资源运算结果。
603、在第一虚拟实例中,运行目标应用。
604、在目标应用的运行过程中,根据资源运算结果,渲染目标帧。
在本实施例中,目标帧主要是指目标应用中不因用户操作而变化的画面等。例如,目标应用的首帧等。目标帧的资源运算结果为预热处理阶段的虚拟实例(虚拟机或容器等)在运行目标应用的过程中,虚拟实例对应的GPU的着色器对目标帧进行资源运算的结果,即着色器的输出结果。
下面对预热处理阶段进行示例性说明。在预热渲染阶段,调用目标资源创建虚拟实例(定义为第二虚拟实例)。虚拟实例可为虚拟机、容器组或容器等。目标资源包括:CPU、GPU等计算资源及内存等存储资源等。
进一步,可在虚拟实例中运行目标应用;并在目标应用的运行过程中,获取目标帧的资源数据。目标帧的资源数据是指虚拟实例对应的GPU的着色器(Shader)进行资源运算所需的资源,包括但不局限于:顶点数据、纹理数据及、着色器常量(如入射光方向、入射光颜色等)等。
由于虚拟实例对应有缓存目录,因此,可将目标帧的资源运算结果,重定向到虚拟实例的GPU的着色器的缓存目录下。这样,可利用虚拟实例从缓存目录下的目标帧的资源运算结果,渲染目标帧。根据目标帧的资源运算结果,渲染目标帧的实施方式,可参见上述光栅化阶段的描述,在此不再赘述。
由于GPU着色器对目标帧的资源数据进行资源运算的过程和结果是相同的,在本申请实施例中,为了避免渲染资源重复计算,提高云应用启动速度,可存储上述预热阶段虚拟实例的GPU的着色器的缓存目录下的资源运算结果。
具体地,可从虚拟实例对应的GPU的着色器的缓存目录下,读取资源运算结果;并对资源运算结果进行持久化存储。可选地,可将资源运算结果存储于数据库中,或者存储于虚拟实例所在物理机的磁盘中等。
在本申请实施例中,为了降低存储数据对存储空间的占用,降低存储数据量,在存储预热阶段的虚拟实例的GPU的着色器的缓存目录下的资源运算结果时,还可对该缓存目录下的资源运算结果进行压缩处理,以得到资源运算结果的压缩数据;之后,可存储资源运算数据的压缩数据。
上述实施例示出了对目标应用进行预热处理的过程,得到目标帧的资源运算结果。在预热处理完成之后,即将目标帧的资源运算结果持久化存储之后,可注销上述对目标应用进行预热处理的虚拟实例,并释放该虚拟实例占用的目标资源等。上述对目标应用进行预热处理的过程针对同一版本的应用可执行一次。在目标应用发生版本更新时,若目标帧进行了更新,可采用上述实施例提供的目标帧的预热处理方式,对目标帧进行预处理,得到目标帧的资源运算数据。
由于着色器对目标帧的资源计算过程和结果是相同的,因此,预先存储预热阶段得到的目标帧的资源运算结果,后续在用户在线加载目标应用时,可直接利用预先存储的目标帧的资源运算结果渲染目标帧,提高目标帧的加载速度。下面具体对在线加载目标应用的过程进行示例性说明。
目标应用的用户在线操作目标应用时,可通过终端设备向服务端设备发送针对目标应用的加载请求。针对目标应用的服务端,如图6a步骤601所示,可响应于该加载请求,创建渲染目标应用的虚拟实例(定义为第一虚拟实例)。
可选地,可响应于加载请求,确定满足目标应用的资源需求的目标资源;并调用目标资源创建第一虚拟实例。关于目标资源的描述可参见上述预热处理阶段的相关内容,在此不再赘述。
由于预热处理阶段的第二虚拟实例对应的GPU的着色器预先对目标帧进行了资源运算,因此,在步骤602中,可获取上述预先存储的目标应用的目标帧的资源运算结果。
对于上述对资源运算结果进行压缩存储的实施例,可获取预先存储的目标帧的资源运算结果的压缩数据;之后,可对资源运算结果的压缩数据进行解压缩处理,得到目标帧的资源运算结果。
进一步,在步骤603中,可在第一虚拟实例中,运行目标应用;并在步骤604中,在目标应用的运行过程中,根据目标帧的资源运算结果,渲染目标帧。
由于虚拟实例对应有缓存目录,且虚拟实例是从其缓存目录下读数据进行画面渲染的。因此,在步骤603之前,可将获取的目标帧的资源运算结果,复制到第一虚拟实例对应的GPU的着色器的缓存目录下。之后,在步骤603中,可在第一虚拟实例中,运行目标应用。相应地,步骤604可实现为:在目标应用的运行过程中,根据第一虚拟实例对应的GPU的着色器的缓存目录下的资源运算结果,渲染目标帧。
具体地,可根据目标帧的资源运算结果,产生屏幕上的像素,并渲染出目标帧的图像。在渲染出目标帧之后,以视频流方式将目标帧传输至终端设备。终端设备可展示目标帧。终端设备的用户可基于展示的目标帧对目标应用进行观看或操作等。
在本申请实施例中,通过预热处理的方法,预先得到目标帧的资源运算结果并存储。之后,在在线加载目标应用时,可利用预先存储的目标帧的资源运算结果渲染目标帧。其中,直接利用已计算好的资源运算结果目标帧,无需再次对目标帧进行重复资源计算,有助于提高应用的加载速度,降低应用加载延时。
同样地,本申请实施例提供的渲染方法可部署于任意计算设备。可选地,本申请实施例提供的渲染方法还可部署于云服务器,作为一种SaaS应用。对于部署有该SaaS应用的云服务器,可响应于调用目标服务的请求,执行上述渲染方法中的步骤。具体实施方式如图6b所示,该方法适用于云服务器,主要包括:
S61、响应于调用目标服务的请求,确定目标服务对应的处理资源。
S62、利用目标服务对应的处理资源,响应于目标应用的加载请求,创建渲染目标游戏的第一虚拟实例。
S63、利用目标服务对应的处理资源,获取预先存储的目标应用的目标帧的资源运算结果。
S64、利用目标服务对应的处理资源在第一虚拟实例中,运行目标应用。
S65、在目标应用的运行过程中,利用目标应用对应的处理资源根据目标帧的资源运算结果,渲染目标帧。
在本实施例中,目标服务是指提供目标应用的渲染方法的服务。目标服务对应的处理资源是指执行上述渲染方法所需的处理资源,包括但不局限于:处理器资源、内存资源及IO资源等。目标应用可为任意需要渲染的应用,如网络游戏、VR场景(如VR看房、VR装修等)、电子地图的导航渲染、云宇宙渲染应用、云模拟或云仿真场景等。
本实施例提供的渲染方法,可部署于云服务器,向用户提供目标应用的渲染服务,即目标服务。用户可为目标应用的服务方,也可为目标应用的用户或客户等。关于目标服务的用户调用目标服务的实施方式,可参见上述调用游戏渲染服务的相关内容,在此不再赘述。
针对云服务器,可响应于调用目标服务的请求,确定目标服务对应的处理资源;并利用目标服务对应的处理资源执行步骤S62-步骤S65的步骤,实现目标帧的渲染。关于步骤S62-S65的具体实施方式,可参见上述图6a的相关内容,在此不再赘述。
在本实施例中,通过预热处理的方法,预先得到对目标帧的资源运算结果并存储。之后,云服务器可响应调用目标服务的请求,在在线加载目标应用时,可直接利用预先存储的目标帧的资源运算结果,渲染目标帧。其中,直接利用已计算好的资源运算结果渲染目标帧,无需再次对目标帧进行重复资源计算,有助于提高目标应用的加载速度,降低目标应用加载延时。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤501和502的执行主体可以为设备A;又比如,步骤501的执行主体可以为设备A,步骤502的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如501、502等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述游戏渲染方法和/或渲染方法中的步骤。
图7为本申请实施例提供的计算设备的结构示意图。如图7所示,该计算设备主要包括:存储器70a、处理器70b和通信组件70c。其中,存储器70a,用于存储计算机程序。
处理器70b耦合至存储器70a及通信组件70c,用于执行计算机程序以用于:通过通信组件70c获取目标游戏的加载请求;响应于目标游戏的加载请求,创建渲染目标游戏的第一虚拟实例;获取预先存储的目标游戏的目标帧的资源运算结果;在第一虚拟实例中,运行目标游戏;并在目标游戏的运行过程中,根据目标帧的资源运算结果,渲染目标帧。
在一些实施例中,处理器70b还用于:将目标帧的资源运算结果,复制到第一虚拟实例对应的第一GPU的着色器的缓存目录下。相应地,处理器70b在根据目标帧的资源运算结果,渲染目标帧时,具体用于:在目标游戏的运行过程中,根据第一GPU的着色器的缓存目录下的资源运算结果,渲染目标帧。
在一些实施例中,处理器70b还用于:在第二虚拟实例中运行目标游戏;在目标游戏的运行过程中,获取目标帧的资源数据;利用第二虚拟实例对应的第二GPU的着色器对资源数据进行资源运算,以得到目标帧的资源运算结果;将目标帧的资源运算结果,重定向至第二GPU的着色器的缓存目录下;以及,存储第二GPU的着色器的缓存目录下的资源运算结果,作为预先存储的目标游戏的目标帧的资源运算结果。
可选地,处理器70b在存储第二GPU的着色器的缓存目录下的资源运算结果时,具体用于:对第二GPU的着色器的缓存目录下的资源运算结果进行压缩处理,以得到资源运算结果的压缩数据;并存储资源运算结果的压缩数据。
可选地,处理器70b在目标游戏的运行过程中,获取目标帧的资源数据时,具体用于:在目标游戏的运行过程中,模拟目标游戏的登录操作和启动操作;获取响应登录操作显示的动画的资源数据和响应启动操作显示的首帧画面的资源数据,作为目标帧的资源数据。
可选地,处理器70b在获取预先存储的目标游戏的目标帧的资源运算结果时,具体用于:获取预先存储的目标帧的资源运算结果的压缩数据;并对资源运算结果的压缩数据进行解压缩处理,得到目标帧的资源运算结果。
可选地,处理器70b还用于:通过通信组件70c以视频流方式将目标帧传输至提供加载请求的终端设备,以供终端设备展示目标帧。
在本申请一些实施例中,处理器70b还用于:响应于调用目标服务的请求,确定目标服务对应的处理资源;利用目标服务对应的处理资源执行以下步骤:
响应于目标游戏的加载请求,创建渲染目标游戏的第一虚拟实例;获取预先存储的目标游戏的目标帧的资源运算结果;利用目标服务对应的处理资源在第一虚拟实例中,运行目标游戏;以及,在目标游戏的运行过程中,利用目标服务对应的处理资源根据目标帧的资源运算结果,渲染目标帧。
关于处理器70b利用目标服务对应的处理资源执行的步骤的具体实施方式,可参见上述实施例的相关内容,在此不再赘述。
在一些实施例中,处理器70b还用于:响应于目标应用的加载请求,创建渲染目标应用的第一虚拟实例;获取预先存储的目标应用的目标帧的资源运算结果;资源运算结果为第二虚拟实例对应的第二GPU的着色器预先对目标帧进行资源运算得到的;将目标帧的资源运算结果,复制到第一虚拟实例对应的第一GPU的着色器的缓存目录下;在第一虚拟实例中,运行目标应用;并在目标应用的运行过程中,根据第一GPU的着色器的缓存目录下的资源运算结果,渲染目标帧。
可选地,处理器70b还用于:在第二虚拟实例中运行目标应用;在目标应用的运行过程中,获取目标帧的资源数据;利用第二GPU的着色器对资源数据进行资源运算,以得到目标帧的资源运算结果;将目标帧的资源运算结果,重定向至第二GPU的着色器的缓存目录下;以及,存储第二GPU的着色器的缓存目录下的资源运算结果,作为预先存储的目标帧的资源运算结果。
在本申请一些实施例中,处理器70b还用于:响应于调用目标服务的请求,确定目标服务对应的处理资源;利用目标服务对应的处理资源执行以下步骤:
响应于调用目标服务的请求,确定目标服务对应的处理资源;利用目标服务对应的处理资源,响应于目标应用的加载请求,创建渲染目标游戏的第一虚拟实例;利用目标服务对应的处理资源,获取预先存储的目标应用的目标帧的资源运算结果;利用目标服务对应的处理资源在第一虚拟实例中,运行目标应用;并在目标应用的运行过程中,利用目标应用对应的处理资源根据目标帧的资源运算结果,渲染目标帧。
关于处理器70b利用目标服务对应的处理资源执行的步骤的具体实施方式,可参见上述实施例的相关内容,在此不再赘述。
在一些可选实施方式中,如图7所示,该计算设备还可以包括:电源组件70d等组件。在一些实施例中,计算设备可实现为电脑等终端设备,还可包括:显示组件70e、音频组件70f等可选组件。图7中仅示意性给出部分组件,并不意味着计算设备必须包含图7所示全部组件,也不意味着计算设备只能包括图7所示组件。
在本实施例中,通过预热处理的方法,预先得到目标帧的资源运算结果并存储。之后,在在线加载目标应用(如目标游戏)时,可利用预先存储的目标帧的资源运算结果渲染目标帧。其中,直接利用已计算好的资源运算结果渲染,无需再次对目标帧进行重复资源计算,有助于提高目标应用(如游戏)的加载速度,降低目标应用(如游戏)加载延时。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random-Access Memory,SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM),可擦除可编程只读存储器(Electrical Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable Read Only Memory,PROM),只读存储器(Read Only Memory,ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(Reduced Instruction Set Compute,RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip,SoC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还可基于近场通信(Near Field Communication,NFC)技术、射频识别(Radio Frequency Identification,RFID)技术、红外数据协会(Infrared Data Association,IrDA)技术、超宽带(Ultra WideBand,UWB)技术、蓝牙(Bluetooth,BT)技术或其他技术来实现。
在本申请实施例中,显示组件可以包括液晶显示器(Liquid Crystal Display,LCD)和触摸面板(Touch Panel,TP)。如果显示组件包括触摸面板,显示组件可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(Microphone,MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的设备,可通过音频组件实现与用户的语音交互等。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU等)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(Random-Access Memory,RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(Digital Video Disc,DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种游戏渲染方法,其特征在于,包括:
响应于目标游戏的加载请求,创建渲染所述目标游戏的第一虚拟实例;
获取预先存储的所述目标游戏的目标帧的资源运算结果;
在所述第一虚拟实例中,运行所述目标游戏;
在所述目标游戏的运行过程中,根据所述目标帧的资源运算结果,渲染所述目标帧。
2.根据权利要求1所述的方法,其特征在于,在所述第一虚拟实例中运行所述目标游戏之前,所述方法还包括:
将所述目标帧的资源运算结果,复制到所述第一虚拟实例对应的第一图形处理器GPU的着色器的缓存目录下;
所述根据所述目标帧的资源运算结果,渲染所述目标帧,包括:
根据所述第一GPU的着色器的缓存目录下的资源运算结果,渲染所述目标帧。
3.根据权利要求2所述的方法,其特征在于,还包括:
在第二虚拟实例中运行所述目标游戏;
在所述目标游戏的运行过程中,获取所述目标帧的资源数据;
利用所述第二虚拟实例对应的第二GPU的着色器对所述资源数据进行资源运算,以得到所述目标帧的资源运算结果;
将所述目标帧的资源运算结果,重定向至所述第二GPU的着色器的缓存目录下;
存储所述第二GPU的着色器的缓存目录下的资源运算结果,作为所述预先存储的所述目标游戏的目标帧的资源运算结果。
4.根据权利要求3所述的方法,其特征在于,所述存储所述第二GPU的着色器的缓存目录下的资源运算结果,包括:
对所述第二GPU的着色器的缓存目录下的资源运算结果进行压缩处理,以得到所述资源运算结果的压缩数据;
存储所述资源运算结果的压缩数据。
5.根据权利要求3所述的方法,其特征在于,所述在所述目标游戏的运行过程中,获取所述目标帧的资源数据,包括:
在所述目标游戏的运行过程中,模拟所述目标游戏的登录操作和启动操作;
获取响应所述登录操作显示的动画的资源数据和响应所述启动操作显示的首帧画面的资源数据,作为所述目标帧的资源数据。
6.根据权利要求4所述的方法,其特征在于,所述获取预先存储的所述目标游戏的目标帧的资源运算结果,包括:
获取预先存储的所述目标帧的资源运算结果的压缩数据;
对所述资源运算结果的压缩数据进行解压缩处理,得到所述目标帧的资源运算结果。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
以视频流方式将所述目标帧传输至提供所述加载请求的终端设备,以供所述终端设备展示所述目标帧。
8.一种渲染方法,其特征在于,包括:
响应于目标应用的加载请求,创建渲染所述目标应用的第一虚拟实例;
获取预先存储的所述目标应用的目标帧的资源运算结果;
在所述第一虚拟实例中,运行所述目标应用;
在所述目标应用的运行过程中,根据所述资源运算结果,渲染所述目标帧。
9.根据权利要求8所述的方法,其特征在于,在所述第一虚拟实例中运行所述目标应用之前,所述方法还包括:
将所述目标帧的资源运算结果,复制到所述第一虚拟实例对应的第一图形处理器GPU的着色器的缓存目录下;
所述根据所述目标帧的资源运算结果,渲染所述目标帧,包括:
根据所述第一GPU的着色器的缓存目录下的资源运算结果,渲染所述目标帧。
10.根据权利要求9所述的方法,其特征在于,还包括:
在第二虚拟实例中运行所述目标应用;
在所述目标应用的运行过程中,获取所述目标帧的资源数据;
利用所述第二GPU的着色器对所述资源数据进行资源运算,以得到所述目标帧的资源运算结果;
将所述目标帧的资源运算结果,重定向至所述第二GPU的着色器的缓存目录下;
存储所述第二GPU的着色器的缓存目录下的资源运算结果,作为所述预先存储的所述目标帧的资源运算结果。
11.一种渲染方法,适用于云服务器,其特征在于,所述方法包括:
响应于调用目标服务的请求,确定所述目标服务对应的处理资源;
利用所述目标服务对应的处理资源执行权利要求1-10任一项所述方法中的步骤。
12.一种计算设备,其特征在于,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器及所述通信组件,用于执行所述计算机程序以用于执行权利要求1-11任一项所述方法中的步骤。
13.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-11任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310041725.4A CN116059643A (zh) | 2023-01-12 | 2023-01-12 | 游戏渲染方法和渲染方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310041725.4A CN116059643A (zh) | 2023-01-12 | 2023-01-12 | 游戏渲染方法和渲染方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116059643A true CN116059643A (zh) | 2023-05-05 |
Family
ID=86169412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310041725.4A Pending CN116059643A (zh) | 2023-01-12 | 2023-01-12 | 游戏渲染方法和渲染方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116059643A (zh) |
-
2023
- 2023-01-12 CN CN202310041725.4A patent/CN116059643A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9928637B1 (en) | Managing rendering targets for graphics processing units | |
US11711563B2 (en) | Methods and systems for graphics rendering assistance by a multi-access server | |
KR20210151114A (ko) | 하이브리드 렌더링 | |
CN108876887B (zh) | 渲染方法和装置 | |
US20100060652A1 (en) | Graphics rendering system | |
US20170186243A1 (en) | Video Image Processing Method and Electronic Device Based on the Virtual Reality | |
CN111722885B (zh) | 程序运行方法、装置以及电子设备 | |
CN111414225A (zh) | 三维模型远程展示方法、第一终端、电子设备及存储介质 | |
CN116302366B (zh) | 面向终端开发的xr应用开发系统与方法、设备及介质 | |
CN115546377B (zh) | 一种视频融合方法、装置、电子设备及存储介质 | |
EP4290464A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
CN112307403A (zh) | 页面渲染方法、装置、存储介质以及终端 | |
CN113141511A (zh) | 一种图形渲染方法及设备 | |
CN113411660B (zh) | 视频数据的处理方法、装置和电子设备 | |
CN116339737B (zh) | Xr应用编辑方法、设备及存储介质 | |
CN117009029A (zh) | Xr应用与内容运行方法、设备及存储介质 | |
CN117065357A (zh) | 媒体数据处理方法、装置、计算机设备和存储介质 | |
CN116059643A (zh) | 游戏渲染方法和渲染方法、设备及存储介质 | |
CN115988265A (zh) | 一种显示画面的渲染方法、装置和终端设备 | |
CN108876925B (zh) | 虚拟现实场景处理方法和装置 | |
CN114327790A (zh) | 基于Linux系统Android容器的渲染方法 | |
CN111862342A (zh) | 增强现实的纹理处理方法、装置、电子设备及存储介质 | |
Nam et al. | Performance Comparison of 3D File Formats on a Mobile Web Browser | |
RU2810701C2 (ru) | Гибридный рендеринг | |
US20240177371A1 (en) | Display method and apparatus for virtual desktop |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |