CN116048792A - 云渲染方法、装置、设备、存储介质及程序产品 - Google Patents

云渲染方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN116048792A
CN116048792A CN202211736102.0A CN202211736102A CN116048792A CN 116048792 A CN116048792 A CN 116048792A CN 202211736102 A CN202211736102 A CN 202211736102A CN 116048792 A CN116048792 A CN 116048792A
Authority
CN
China
Prior art keywords
rendering
engine
resource
terminal
task
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
Application number
CN202211736102.0A
Other languages
English (en)
Inventor
褚文辉
王贵山
蒋亮
胡成龙
蔡一新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuming Technology Hangzhou Co ltd
Original Assignee
Wuming Technology Hangzhou Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuming Technology Hangzhou Co ltd filed Critical Wuming Technology Hangzhou Co ltd
Priority to CN202211736102.0A priority Critical patent/CN116048792A/zh
Publication of CN116048792A publication Critical patent/CN116048792A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种云渲染方法、装置、设备、存储介质及程序产品,涉及云渲染技术领域。该方法包括:接收终端发送的第一渲染请求,第一渲染请求中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容;在资源剩余量符合第一渲染资源要求的情况下,基于第一渲染内容所需的资源量启动第一渲染引擎;通过第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染;向终端反馈基于第一渲染内容渲染得到的第一渲染结果。也即,通过比较当前云服务器中的资源剩余量是否满足第一渲染任务对应的第一渲染资源要求,从而为该第一渲染任务并发启动第一渲染引擎对其进行渲染,提高了云渲染效率。

Description

云渲染方法、装置、设备、存储介质及程序产品
技术领域
本申请涉及云渲染技术领域,特别涉及一种云渲染方法、装置、设备、存储介质及程序产品。
背景技术
云渲染是指将三维引擎放置于云服务器中执行渲染任务的过程。终端通过在目标程序中触发渲染功能向云服务器发送渲染请求,云服务器根据渲染请求对待渲染内容进行渲染后向终端反馈渲染结果进行显示。其中,云渲染的多并发过程是指云服务器对接收到的不同渲染请求分别进行渲染处理,且不同的渲染处理过程之间互不干扰。
在相关技术中,通常对图形处理器(Graphics Processing Unit,GPU)进行虚化,在云服务器上加载虚拟机后将GPU内的资源量平均分配,将分配后的GPU资源划分给不同的渲染任务对其进行渲染。
然而在相关技术中,对GPU进行虚拟化并且进行资源分配的过程实现成本较高,并且该过程的实现灵活度较低,导致云渲染效率较低。
发明内容
本申请实施例提供了一种云渲染方法、装置、设备、存储介质及程序产品,能够提高云渲染效率。所述技术方案如下。
一方面,提供了一种云渲染方法,由云服务器执行,所述方法包括:
接收终端发送的第一渲染请求,所述第一渲染请求中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,所述第一渲染资源要求用于指示渲染所述第一渲染任务对应的所述第一渲染内容所需的资源量;
在资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎;
通过所述第一渲染引擎对所述第一渲染任务对应的所述第一渲染内容进行渲染;
向所述终端反馈基于所述第一渲染内容渲染得到的第一渲染结果。
另一方面,提供了一种云渲染装置,所述装置包括:
接收模块,用于接收终端发送的第一渲染请求,所述第一渲染请求中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,所述第一渲染资源要求用于指示渲染所述第一渲染任务对应的所述第一渲染内容所需的资源量;
启动模块,用于在资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎;
渲染模块,用于通过所述第一渲染引擎对所述第一渲染任务对应的所述第一渲染内容进行渲染;
反馈模块,用于向所述终端反馈基于所述第一渲染内容渲染得到的第一渲染结果。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述云渲染方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的云渲染方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的云渲染方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
当接收到终端发送的第一渲染请求时,若当前云服务器中的资源剩余量符合第一渲染请求中针对第一渲染任务对应的第一渲染资源要求时,根据第一渲染请求中的第一渲染内容所需的资源量为该第一渲染任务启动一个第一渲染引擎,并根据该第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染,并最终向终端反馈第一渲染结果。也即,通过比较当前云服务器中的资源剩余量是否满足第一渲染任务对应的第一渲染资源要求,从而为该第一渲染任务并发启动第一渲染引擎对其进行渲染,能够避免直接对GPU进行资源划分,提高了云渲染效率及准确率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的实施环境示意图;
图2是本申请一个示例性实施例提供的云渲染方法流程图;
图3是本申请另一个示例性实施例提供的云渲染方法流程图;
图4是本申请一个示例性实施例提供的渲染引擎并发启动示意图;
图5是本申请另一个示例性实施例提供的云渲染方法流程图;
图6是本申请另一个示例性实施例提供的云渲染方法流程图;
图7是本申请一个示例性实施例提供的云渲染装置结构框图;
图8是本申请另一个示例性实施例提供的云渲染装置结构框图;
图9是本申请一个示例性实施例提供的服务器结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
首先,对本申请实施环境进行介绍。图1给出了本申请一个示例性实施例提供的实施环境示意图。该实施环境中包括:终端110、服务器120和通信网络130,其中,终端110和服务器120通过通信网络130连接。
终端110中安装有目标应用程序111,其中,目标应用程序111是具有渲染功能的程序,如:视频制作程序、模型设计程序、动画制作程序、游戏开发程序等。
当终端110运行目标应用程序111的过程中,显示内容渲染界面,当终端110接收到内容渲染界面中目标内容的渲染触发操作后,生成第一渲染请求向服务器120发送,其中,第一渲染请求用于请求渲染目标内容,第一渲染请求中包括第一渲染任务对应的第一渲染资源要求。
当服务器120接收到第一渲染请求后,判断当前服务器120中被处于运行中的至少一个渲染资源进行资源占用后的资源剩余量是否满足第一渲染资源要求,若满足第一渲染资源要求,则根据第一渲染内容所需的资源量为该第一渲染任务启动一个第一渲染引擎,用于对目标内容进行渲染,将渲染得到目标内容作为渲染结果反馈至终端110进行显示。
上述终端110可以是可选的,终端可以是台式计算机、膝上型便携计算机、手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层4)播放、智能电视、智能车载等多种形式的终端设备,本申请实施例对此不加以限定。
服务器120包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。可选地,服务器120承担主要计算工作,终端110承担次要计算工作;或者,服务器120承担次要计算工作,终端110承担主要计算工作;或者,服务器120和终端110之间采用分布式计算架构进行协同计算。
值得注意的是,上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是云服务器,对此不加以限定。
其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。在一些实施例中,上述服务器还可以实现为区块链系统中的节点。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
结合上述简介,对本申请提供的云渲染方法进行说明,示意性的,请参考图2,其示出了本申请一个示例性实施例提供的云渲染方法的流程图,该方法可以由服务器或者终端执行,也可以由服务器和终端共同执行,本申请实施例中,以该方法由云服务器执行为例进行说明,如图2所示,该方法包括如下步骤。
步骤210,接收终端发送的第一渲染请求。
其中,第一渲染请求中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,第一渲染资源要求用于指示渲染第一渲染任务对应的第一渲染内容所需的资源量。
示意性的,第一渲染请求用于请求对第一渲染任务中的第一渲染内容进行渲染。
其中,第一渲染内容包括待渲染的三维模型、待渲染的视频帧、待渲染的动画帧、待渲染的场景画面中至少一种。也即,第一渲染内容包括二维平面内容和三维立体内容。
在一些实施例中,渲染是指对渲染内容进行着色。
在一些实施例中,第一渲染资源要求是指云服务器在渲染第一渲染内容过程中所占用到的图形处理器(GPU)资源量,如:云服务器在渲染第一渲染内容a的过程中需占用到4兆图形处理器资源量。
在一些实施例中,一个云服务器搭载一个图形处理器,该图形处理器配置有可供使用的资源总量,如:图形处理器提供32兆资源总量。
其中,图形处理器配置的资源总量用于计算数据、绘制图形、内容渲染等数据处理工作中至少一种。
在一些实施例中,终端中运行有目标应用程序,终端通过目标应用程序向云服务器发送第一渲染请求。
可选地,云服务器每次接收终端发送的单个第一渲染请求,当终端同时发送多个第一渲染请求时,云服务器依次接收多个第一渲染请求;或者,当终端同时发送多个第一渲染请求时,云服务器同时接收多个第一渲染请求,对此不加以限定。
可选地,云服务器接收到的第一渲染请求中仅包括一个第一渲染任务,以及该第一渲染任务对应的第一渲染资源要求;或者,云服务器接收到的第一渲染请求中包含多个不同的第一渲染任务,每个第一渲染任务对应不同的目标渲染资源请求,对此不加以限定。
在一个示例中,云服务器不间断地接收终端发送的第一渲染请求,也即,只要当终端向云服务器发送第一渲染请求时,云服务器能够立即接收到该第一渲染请求。
在一个示例中,云服务器每隔预设时间段接收第一渲染请求,也即,若在预设时间段内终端a向云服务器发送了三个第一渲染请求时,当达到预设时间段后,云服务器将同时接收三个第一渲染请求。
步骤220,在资源剩余量符合第一渲染资源要求的情况下,基于第一渲染内容所需的资源量启动第一渲染引擎。
可选地,云服务器在接收到终端发送的第一渲染请求时,当前云服务器中存在至少一个渲染引擎正在运行中;或者,云服务器在接收到终端发送的第一渲染请求时,当前云服务器中无任何渲染引擎正在运行中。
本申请实施例中,以云服务器在接收到第一渲染请求时存在至少一个渲染引擎正在运行中为例进行说明。可选地,云服务器在接收到终端发送的第一渲染请求时,存在第二渲染引擎正在运行中,其中,第二渲染引擎可以指代一个正在运行的引擎,也可以指代一组运行中的引擎。示意性的,云服务器在接收到终端发送的第一渲染请求时,存在渲染引擎A正在运行中;或者,云服务器在接收到终端发送的第一渲染请求时,存在渲染引擎A、渲染引擎B和渲染引擎C正在运行中。其中,运行中的渲染引擎分别占用相应的渲染资源,而运行中的渲染引擎所占用的渲染资源的总和小于或者等于云服务器渲染资源的总量。而当运行中的渲染引擎所占用的渲染资源的总和小于云服务器渲染资源的总量时,则存在资源剩余量,从而能够判断资源剩余量是否符合第一渲染资源要求。
其中,运行中的渲染引擎表示该引擎当前处于启动状态,并正在对云服务器接收到的渲染任务中的内容进行渲染。
其中,渲染引擎是指对渲染内容进行内容渲染的引擎,其中,内容渲染的过程是指通过导入原始模型,在原始模型的基础上进行渲染,添加颜色、光照、阴影等内容,最后渲染到屏幕上显示最终的渲染效果。
可选地,按照图像维度划分,渲染引擎包括二维图像引擎、三维图像引擎;按照渲染内容划分,渲染引擎包括建筑渲染引擎、光线渲染引擎、人物渲染引擎、场景渲染引擎等。
其中,建筑渲染引擎用于对三维场景/二维场景中的建筑物进行渲染;光线渲染引擎用于对三维场景/二维场景中的光线进行渲染;人物渲染引擎用于对三维场景/二维场景中的人物模型进行渲染;场景渲染用于对二维场景/三维场景进行渲染。
在一些实施例中,资源剩余量是指云服务器中运行的至少一个渲染引擎占用云服务器中图形处理器的部分资源量后剩余的资源量,如:渲染引擎A占用3兆资源量,渲染引擎B占用4兆资源量,因此云服务器中的剩余资源量为25兆资源量。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量大于或者等于第一渲染任务对应的第一渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量满足第一渲染任务对应的第一渲染资源要求。
在一些实施例中,若当前云服务器中图形处理器的资源剩余量小于第一渲染任务对应的第一渲染内容所需的资源量时,视为当前云服务器中图形处理器的资源剩余量不满足第一渲染任务对应的第一渲染资源要求。
示意性的,在云服务器中的资源剩余量满足第一渲染资源要求的情况下,云服务器根据第一渲染内容所需的资源量启动一个第一渲染引擎。
在一些实施例中,根据第一渲染内容所需的资源量启动第一渲染引擎时,包括如下方式中的至少一种:1、直接根据第一渲染内容所需的资源量启动占用相应渲染资源量的第一渲染引擎;2、在第一渲染内容所需的资源量的基础上,以增加指定资源量后的资源占用量启动第一渲染引擎。
在一个示例中,一个第一渲染任务对应一个第一渲染引擎,也即,若第一渲染请求中包含多个相同的第一渲染任务时,仅需要启动一个第一渲染引擎,对多个第一渲染任务依次进行渲染。
在一个可实现的情况下,若当前运行中的至少一个渲染引擎存在一个处于空闲状态的指定渲染引擎对应的资源占用量符合目标资源占用要求,则直接将该指定渲染引擎作为第一渲染引擎,无需再并发启动一个新的第一渲染引擎。
步骤230,通过第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染。
示意性的,当云服务器中并发启动第一渲染引擎后,通过第一渲染引擎对第一渲染任务中的第一渲染内容进行渲染。
其中,当第一渲染任务中包括多个第一渲染内容时,通过第一渲染引擎对多个第一渲染内容依次进行渲染;或者,通过第一渲染引擎对多个第一渲染内容同时进行渲染,对此不加以限定。
在一些实施例中,通过第一渲染引擎对第一渲染内容进行渲染的过程中,即,将待渲染的内容进行着色,得到第一渲染内容对应的着色结果,作为第一渲染内容对应的第一渲染结果。
在一个示例中,当第一渲染内容为原始三维模型时,通过第一渲染引擎对原始三维模型进行着色渲染,从而得到渲染三维模型,作为第一渲染任务对应的第一渲染结果。
步骤240,向终端反馈基于第一渲染内容渲染得到的第一渲染结果。
其中,第一渲染结果中包括渲染得到的第一渲染内容。
示意性的,第一渲染结果即为第一渲染引擎的输出结果。
可选地,当第一渲染引擎每渲染得到一个输出结果后即向终端反馈;或者,当第一渲染引擎将多个第一渲染内容渲染完毕后再同时向终端进行反馈。
在一些实施例中,第一渲染结果包括第一渲染内容对应的着色结果。
可选地,当第一渲染引擎渲染完毕后云服务器立即将第一渲染结果反馈至终端;或者,云服务器每隔一段时间将第一渲染引擎渲染完毕得到的第一渲染结果反馈至终端,对此不加限定。
综上所述,本申请实施例提供的云渲染方法,当接收到终端发送的第一渲染请求时,若当前云服务器中的资源剩余量符合第一渲染请求中针对第一渲染任务对应的第一渲染资源要求时,根据第一渲染请求中的第一渲染内容所需的资源量为该第一渲染任务启动一个第一渲染引擎,并根据该第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染,并最终向终端反馈第一渲染结果。也即,通过比较当前云服务器中的资源剩余量是否满足第一渲染任务对应的第一渲染资源要求,从而为该第一渲染任务并发启动第一渲染引擎对其进行渲染,能够避免直接对GPU进行资源划分,提高了云渲染效率及准确率。
在一个可选的实施例中,云服务器在向终端反馈渲染的过程中,还向终端反馈端口号,示意性的,请参考图3,其示出了本申请一个示例性实施例提供的云渲染方法流程图,也即,步骤220中还包括步骤221至步骤223,步骤230之后还包括步骤240a和步骤240b,步骤240还包括步骤241,步骤240之后还包括步骤250和步骤260,如图3所示,该方法包括如下步骤。
步骤221,获取运行中的至少一个渲染引擎对应的资源占用量。
在一些实施例中,渲染引擎对应的资源占用量是指该渲染引擎在云服务器中运行所占用的图形处理器中的资源量,如:云服务器中包括正在运行的渲染引擎a,渲染引擎a对应的资源占用量为4兆,也即,当前云服务器中图形处理器中有4兆资源量被渲染引擎a占用,若存在其他渲染引擎,其他渲染引擎无法使用这4兆资源量。
可选地,云服务器中正在运行的渲染引擎对应的资源占用量在启动该渲染引擎时就是固定的,也即,渲染引擎对应的资源占用量是不会变化的;或者,云服务器中正在运行的渲染引擎对应的资源占用量能够根据配置信息进行更改,如:若云服务器对正在运行的渲染引擎S(资源占用量为8兆)发送一个配置信息,用于将渲染引擎S的资源占用量更改为16兆。
可选地,资源占用量的获取方式包括如下几种方式中至少一种:
1.云服务器中存储有资源占用量记录,当云服务器中每启动一个渲染引擎时,云服务器将更新资源占用量记录,将当前启动的渲染引擎对应的资源占用量库如该资源占用量记录,从而在需要开启新的渲染引擎的情况下,读取该资源占用量记录即获取正在运行中的至少一个渲染引擎对应的资源占用量。
2.云服务器中正在运行的每个渲染引擎都标记有自身对应的资源占用量数据,云服务器通过读取每个运行中的渲染引擎标记的资源占用量数据,从而获取渲染引擎对应的资源占用量。
值得注意的是,上述关于资源占用量的获取方式仅为示意性的举例,本申请实施例对此不加以限定。
可选地,资源占用量的表示形式包括如下几种形式中的至少一种:
1.资源占用量以实际占用量形式表示,如:渲染引擎b占用4兆资源,则渲染引擎对应的资源占用量即为4兆;
2.资源占用量以资源占比形式表示,如:云服务器中图形处理器的资源总量为32兆,渲染引擎c占用8兆资源,则渲染引擎的资源占用量为25%。
值得注意的是,上述关于资源占用量的表示形式仅为示意性的举例,本申请实施例对此不加以限定。
在一个示例中,当云服务器中包括运行中的多个渲染引擎时,渲染引擎对应的资源占用量实现为多个渲染引擎占用的资源量总和。
本实施例中,获取当前运行中的第二渲染引擎对应的资源占用量,其中,第二渲染引擎是根据其他终端发送的第二渲染请求中的第二渲染内容所需的资源量启动的渲染引擎,用于对第二渲染内容进行渲染,其中,第二渲染引擎对应的资源占用量和第一渲染资源要求对应的资源占用量不同。
步骤222,基于资源占用量确定云服务器中的资源剩余量。
示意性的,当获取云服务器中正在运行中的第二渲染引擎对应的资源占用量后,将云服务器中图形处理器的资源总量去掉第二渲染引擎对应的资源占用量后即可得到云服务器中的剩余资源量,如:云服务器中图形处理器资源总量为64兆,获取运行中的第二渲染引擎对应的资源占用量为18兆,则云服务器中的资源剩余量为46兆。
步骤223,在资源剩余量符合第一渲染资源要求的情况下,基于第一渲染内容所需的资源量启动第一渲染引擎。
示意性的,若当前云服务器中的资源剩余量大于或者等于渲染第一渲染任务对应的第一渲染内容的所需资源量,则表明当前云服务器中的资源剩余量符合第一渲染资源要求。
在一些实施例中,在资源剩余量符合所述第一渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第一渲染内容所需的资源量并发启动第一渲染引擎。
示意性的,当云服务器中的资源剩余量符合第一渲染资源要求时,在云服务器中保持正在运行的第二渲染引擎的基础上,根据第一渲染内容所需的资源量并发启动第一渲染引擎。
其中,并发启动的方式是指保持云服务器中运行中的至少一个渲染引擎的启动状态,并在这基础上启动第一渲染引擎,也即,并发启动在云服务器中能够同时运行不同的渲染引擎,但多个渲染引擎的启动时刻可能不同,从而实现多个不同的渲染引擎多线程执行渲染操作,并且多个渲染引擎在运行过程中互不干扰。
示意性的,当前云服务器中正在运行第二渲染引擎和第三渲染引擎,其中,第二渲染引擎用于对三维图像中的光线进行渲染,即,第二渲染引擎为光线渲染引擎,第三渲染引擎用于对三维图像中的建筑物进行渲染,即,第三渲染引擎为建筑渲染引擎。第二渲染引擎占用云服务器中的资源量为4兆,第三渲染引擎占用云服务器中的资源量为6兆,因此云服务器中的资源剩余为24兆-4兆-6兆=14兆,当云服务器接收到第一渲染请求后,根据第一渲染请求中第一渲染资源要求为5兆的情况下,判断第一渲染资源要求符合云服务器中资源剩余量,因此根据第一渲染请求中的第一渲染内容所需的资源量(5兆)并发启动渲染资源量为5兆的第一渲染引擎。
本实施例中,若当前云服务器中的资源剩余量符合第一渲染资源要求的情况下,保持当前云服务器中运行的至少一个渲染引擎的启动状态,并发启动一个新的渲染引擎,作为第一渲染引擎,并且为该第一渲染引擎提供图形处理器资源剩余量中与第一渲染内容对应的资源量,作为该第一渲染引擎的资源占用量。
示意性的,请参考图4,其示出了本申请一个示例性实施例提供的渲染引擎并发启动示意图,如图4所示,当前云服务器410中包括运行中的第一渲染引擎411和第二渲染引擎412,当接收到终端420发送的目标渲染请求,若云服务器410中的资源剩余量满足目标渲染请求中目标渲染任务对应的目标渲染资源要求,在云服务410中并发启动目标渲染引擎413。
从图4可以看出,云服务器410中启动的多个渲染引擎之间是相互不受干扰的。
步骤240a,生成第一渲染引擎对应的目标端口号。
在一些实施例中,当云服务器在运行中至少一个渲染引擎的基础上,并发启动第一渲染引擎后,为该第一渲染引擎配置对应的目标端口号。
其中,目标端口号用于指示该第一渲染引擎与第一渲染任务之间的对应关系,如:当云服务器为第一渲染资源要求为8兆的第一渲染任务并发启动第一渲染引擎后,为该第一渲染引擎分配目标端口号“80”,用于表示端口号为80的渲染引擎用于对渲染资源要求为8兆的渲染任务对应的内容进行渲染操作。
可选地,渲染引擎的端口号是云服务器随机生成的;或者,渲染引擎的端口号是云服务器按照渲染引擎的启动时间顺序依次生成的连续编号。
本实施例中,云服务器中每一个启动的渲染引擎都分配有一个端口号。
可选地,云服务器中的多个运行中的渲染引擎分别对应的端口号不同,也即,一个端口号与一个渲染引擎对应;或者,云服务器中的多个运行中的渲染引擎中存在至少两个渲染引擎分配有相同的端口号。
在一个示例中,当第一渲染请求中包含多个不同的第一渲染任务时,若云服务器中当前资源剩余量同时满足多个不同的第一渲染任务分别对应的第一渲染资源要求时,为多个不同的第一渲染任务分别并发启动多个第一渲染引擎,其中,每个第一渲染引擎对应一个第一渲染任务。并且,为每个第一渲染引擎都分配一个目标端口号,且多个目标端口号之间各不相同。
值得注意的是,步骤240b和步骤241属于两个并列步骤。
步骤240b,向终端反馈第一渲染引擎对应的目标端口号。
示意性的,当获取第一渲染引擎对应的目标端口号后,向终端发送第一渲染引擎的对应的目标端口号。
可选地,云服务器向终端直接反馈目标端口号对应的编号数据;或者,云服务器向终端反馈目标端口号对应的编号指示信息,对此不加限定。
步骤241,通过网络通信接口向终端反馈第一渲染结果。
示意性的,云服务器在对第一渲染任务对应的第一渲染内容进行渲染操作后,得到渲染完成的第一渲染内容,作为第一渲染结果,将第一渲染结果和上述第一渲染引擎对应的目标端口号同时向终端进行反馈。
在一个示例中,当第一渲染请求中包含多个不同的第一渲染任务时,云服务器中并发启动多个第一渲染引擎分别对多个不同的第一渲染任务对应的第一渲染内容进行渲染,得到多个不同第一渲染任务分别对应的第一渲染结果。
示意性的,云服务器和终端之间通过网络通信接口(如:Socket网络)进行数据交互,如:终端通过Socket网络向云服务器发送第一渲染请求,云服务器通过Socket网络向终端反馈第一渲染结果。
在一个示例中,第一渲染引擎对应的目标端口号和第一渲染任务对应的第一渲染结果并列向终端进行同时反馈。
在一个示例中,将第一渲染引擎对应的目标端口号包含在第一渲染结果中,将第一渲染结果反馈至终端。
在一些实施例中,接收终端发送的第二渲染请求,第二渲染请求中包括第一渲染任务对应的第二渲染内容和目标端口号;基于目标端口号确定第一渲染引擎,并通过第一渲染引擎对第一渲染任务对应的第二渲染内容进行渲染。
在一个可实现的情况下,当终端接收到第一渲染引擎对应的目标端口号后,后续若终端再次产生第一渲染任务(该第一渲染任务对应的第一渲染资源要求与前述第一渲染任务对应的第一渲染资源要求相同,但所需渲染的第一渲染内容和第二渲染内容属于不同的内容),则该终端向云服务器发送第二渲染请求时,该第二渲染请求中将包括第一渲染任务对应的第二渲染内容以及目标端口号。因此,当云服务器接收到包括第一渲染任务以及目标端口号的第一渲染请求后,直接根据目标端口号调用对应的第一渲染引擎直接对第一渲染任务对应的第二渲染内容进行渲染,也即,此时无需再启动一个新的第一渲染引擎。
步骤250,响应于第一渲染任务符合渲染结束条件,终止启动云服务器中的第一渲染引擎。
示意性的,当第一渲染任务符合渲染结束条件时,视为第一渲染引擎结束第一渲染任务。
可选地,渲染结束条件包括如下几个条件中至少一个条件:
1.终端中终止运行目标应用程序;
2.终端中运行的目标运行程序中的云渲染功能被关闭;
3.云服务器在预设时间段内未接收到终端发送的第一渲染请求;
4.云服务器接收到终端发送的渲染任务结束信息,其中,渲染任务结束信息用于指示当前终端不再产生第一渲染任务。
值得注意的是,上述关于渲染结束条件的内容仅为示意性的举例,本申请实施例对此不加以限定。
可选地,终止启动第一渲染引擎是指结束第一渲染引擎的启动状态,但未取消第一渲染引擎,也即,当前云服务器中依旧存在第一渲染引擎,但该第一渲染引擎处于启动终止状态;或者,终止启动第一渲染引擎是指取消第一渲染引擎,也即,当前云服务器中不存在第一渲染引擎,对此不加以限定。
在一些实施例中,当第一渲染任务结束时,关闭云服务器和终端之间的网络通信接口。
本实施例中,当第一渲染引擎终止启动第一渲染引擎时,断开云服务器和终端之间的Socket网络连接。
在一个可实现的情况下,当终端发送多个不同的第一渲染请求,并且云服务器为每个第一渲染请求并发启动对应的第一渲染引擎,用于对每个第一渲染请求中的第一渲染内容进行渲染的情况下,若每个第一渲染请求都符合上述渲染结束条件时,才会关闭云服务器和终端之间的网络通信接口。
步骤260,恢复云服务器中第一渲染引擎占用的资源量。
示意性的,当关闭云服务器和终端之间的网络通信接口后,第一渲染引擎终止启动的情况下,第一渲染引擎将不再占用云服务器中图形处理器的资源量,也即,第一渲染引擎占用的资源量将重新变为云服务器可提供的资源量,如:当终止启动资源占用量为4兆的第一渲染引擎后,云服务器中将恢复4兆可用的资源量。
综上所述,本申请实施例提供的云渲染方法,当接收到终端发送的第一渲染请求时,若当前云服务器中的资源剩余量符合第一渲染请求中针对第一渲染任务对应的第一渲染资源要求时,根据第一渲染请求中的第一渲染内容所需的资源量为该第一渲染任务启动一个第一渲染引擎,并根据该第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染,并最终向终端反馈第一渲染结果。也即,通过比较当前云服务器中的资源剩余量是否满足第一渲染任务对应的第一渲染资源要求,从而为该第一渲染任务并发启动第一渲染引擎对其进行渲染,能够避免直接对GPU进行资源划分,提高了云渲染效率及准确率。
本实施例中,根据云服务器中包括运行中的至少一个渲染引擎对应的资源占用量从而确定云服务器中的资源剩余量,进而为第一渲染任务并发启动对应的第一渲染引擎的方式,能够避免直接对图形处理器进行提前分配资源,能够根据终端的渲染任务需求实施分配渲染资源从而启动渲染引擎,提高了渲染的灵活度以及渲染效率。
本实施例中,通过对第一渲染引擎分配一个指定的目标端口号,能够使得后续终端之间通过端口号向云服务器发送渲染请求,而云服务器能够根据接收到的端口号调用对应的第一渲染引擎直接对渲染任务中的内容进行渲染,避免了多次启动重复的渲染引擎,提高了云渲染效率。
本实施例中,通过Socket网络连接终端和云服务器,能够提高终端和服务器之间消息传输的灵活度,便于终端和云服务器对于接收/发送消息的感知更强。
本实施例中,当第一渲染任务符合渲染结束条件后,会终止启动云服务器中的第一渲染引擎,并关闭网络通信接口,恢复云服务器中第一渲染引擎占用的资源的,能够较好地节省云服务器的数据开销。
在一个可选的实施例中,当第一渲染请求实现为对视频片段内容进行渲染的情况下,将实现动态划分端口号,从而根据划分的端口号启动对应的渲染引擎执行渲染操作,示意性的,请参考图5,其示出了本申请一个示例性实施例提供的云渲染方法流程图,如图5所示,该方法包括如下步骤。
步骤510,接收终端发送的第一渲染请求。
其中,第一渲染请求中包括多个渲染子任务分别对应的渲染资源子要求,多个渲染子任务分别用于指示渲染多个视频片段内容。
本实施例中,终端a向中间服务器发送一个第一渲染请求,其中,第一渲染请求用于对视频内容A进行视频画面渲染。其中,中间服务器用于接收终端发送的第一渲染请求,并将第一渲染请求转发至云服务器。
其中,第一渲染请求中包含多个渲染子任务,多个渲染子任务用于将视频内容A拆分多个视频片段,每个渲染子任务用于渲染其中一个视频片段。本实施例中,以三个渲染子任务为例,分别为渲染子任务1、渲染子任务2和渲染子任务3,也即,将视频内容A拆分为三个视频片段,分别为视频片段1、视频片段2和视频片段3,其中,渲染子任务1对应的内容即为视频片段1,渲染子任务2对应的内容即为视频片段2,渲染子任务3对应的内容即为视频片段3。
示意性的,每个渲染子任务对应一个渲染资源子要求,其中,由于每个渲染子任务属于不同的渲染任务,因此每个渲染子任务对应的渲染资源子要求也不同。本实施例中,渲染子任务1对应的渲染资源子要求为“渲染3兆的视频片段1”,渲染子任务2对应的渲染资源子要求为“渲染5兆的视频片段2”,渲染子任务3对应的渲染资源子要求为“渲染4兆的视频片段3”。
步骤520,在云服务器中包括运行中的至少一个渲染引擎的情况下,响应于至少一个渲染引擎进行资源占用后的资源剩余量符合多个渲染资源子要求,在至少一个渲染引擎的基础上,并发启动多个渲染子引擎。
其中,多个渲染子引擎与多个渲染子任务分别对应。
本实施例中,当云服务器接收到中间服务器转发的第一渲染请求后,对第一渲染请求中第一渲染资源要求进行资源量判断,若第一渲染资源要求符合云服务器中GPU剩余资源量,则根据第一渲染请求中第一渲染内容所需的资源量并发启动第一渲染引擎。
本实施例中,当云服务器接收到终端发送的第一渲染请求时,当前云服务器中包括运行中的渲染引擎a和渲染引擎b,其中,渲染引擎a对应的资源占用量为2兆,渲染引擎b对应的资源占用量为8兆,云服务器提供的图形处理器的资源总量为32兆,因此除去渲染引擎a和渲染引擎b分别占用的资源量后,云服务器提供的图信号处理器的资源剩余量为22兆,而22兆能够同时满足“渲染3兆的视频片段1”、“渲染5兆的视频片段2”和“渲染4兆的视频片段3”,也即,当前云服务器中的资源剩余量能够同时符合渲染子任务1对应的渲染资源子要求、渲染子任务2对应的渲染资源子要求以及渲染子任务3对应的渲染资源子要求。
本实施例中,云服务器在渲染引擎a和渲染引擎b保持启动状态的基础上,并发启动渲染子引擎A、渲染子引擎B和渲染子引擎C,其中,渲染子引擎A对应的资源占用量为3兆(即渲染子引擎A与渲染子任务1对应),渲染子引擎B对应的资源占用量为5兆(即渲染子引擎B与渲染子任务2对应),渲染子引擎C对应的资源占用量为4兆(即渲染子引擎C与渲染子任务3对应)。
本实施例中,渲染子引擎A、渲染子引擎B和渲染子引擎C之间互不干扰。
值得说明的是,上述“渲染子引擎”和“渲染引擎”仅为名称上的不同,并不存在包含关系,也即,“渲染子引擎”和“渲染引擎”都属于引擎结构相同的引擎。
步骤530,通过多个渲染子引擎分别对多个渲染子任务对应的视频片段内容进行渲染。
本实施例中,云服务器中的多个渲染引擎(包括渲染子引擎A、渲染子引擎B和渲染子引擎C)分别对各自的渲染任务进行并发云渲染。
本实施例中,渲染子引擎A对视频片段1中的视频帧进行逐帧画面渲染,渲染子引擎B对视频片段2中的视频帧进行逐帧画面渲染,渲染子引擎C对视频片段3中的视频帧进行逐帧画面渲染。
在一些实施例中,通过第一渲染引擎中的渲染层获取第一渲染内容对应的渲染图像。
另外,在云服务通过渲染子引擎对视频片段内容进行画面渲染的过程中,采用渲染子引擎中渲染层直接得到视频片段内容对应的渲染图像。
步骤540,向终端反馈多个渲染子结果,多个渲染子结果中包括渲染得到的多个视频片段内容。
本实施例中,云服务器向中间服务器发送多个渲染子结果,使得中间服务器向终端转发多个渲染子结果。
本实施例中,当渲染子引擎A对视频片段1渲染完毕,得到渲染后的视频片段1,当渲染子引擎B对视频片段2渲染完毕,得到渲染后的视频片段2,当渲染子引擎C对视频片段3渲染完毕,得到渲染后的视频片段3。
将渲染后的视频片段1作为渲染子结果1,将渲染后的视频片段2作为渲染子结果2,将渲染后的视频片段3作为渲染子结果3,将渲染子结果1、渲染子结果2和渲染子结果3分别向终端进行反馈。
在一个可实现的情况下,若渲染子结果1、渲染子结果2和渲染子结果3同时得到,则云服务器向终端同时反馈渲染子结果1、渲染子结果2和渲染子结果3。
在一个可实现的情况下,若渲染子结果1、渲染子结果2和渲染子结果3非同时得到,则云服务器在得到三个渲染子结果中最后一个渲染子结果后,再将这三个渲染子结果同时向终端进行反馈。
在一个可实现的情况下,若渲染子结果1、渲染子结果2和渲染子结果3非同时得到,则云服务器根据三个渲染子结果分别获取的时间依次向终端进行反馈。
本实施例中,云服务器向终端反馈的渲染子结果中,还包括渲染子引擎对应的端口号,如:渲染子结果1中包含渲染得到的视频片段1,以及云服务器为渲染子引擎A分配的端口号“80”;渲染子结果2中包含渲染得到的视频片段2,以及云服务器为渲染子引擎B分配的端口号“90”;渲染子结果3中包含渲染得到的视频片段3,以及云服务器为渲染子引擎C分配的端口号“100”。
若后续终端再次存在渲染子任务时,直接向云服务器发送端口号以及对应的渲染子任务,便于云服务器直接调用端口号对应的渲染子引擎对渲染子任务中的内容进行渲染。
最终,终端上将显示渲染得到的视频片段1、视频片段2和视频片段3。
综上所述,本申请实施例提供的云渲染方法,当接收到终端发送的第一渲染请求时,若当前云服务器中的资源剩余量符合第一渲染请求中针对第一渲染任务对应的第一渲染资源要求时,根据第一渲染请求中的第一渲染内容所需的资源量为该第一渲染任务启动一个第一渲染引擎,并根据该第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染,并最终向终端反馈第一渲染结果。也即,通过比较当前云服务器中的资源剩余量是否满足第一渲染任务对应的第一渲染资源要求,从而为该第一渲染任务并发启动第一渲染引擎对其进行渲染,能够避免直接对GPU进行资源划分,提高了云渲染效率及准确率。
本实施例中,当接收到终端发送的视频渲染请求时,能够根据不同的渲染子任务动态分配资源量,从而启动对应的渲染引擎执行渲染操作,提高了渲染效率。
本实施例中,通过渲染引擎中的渲染层直接获取渲染后的内容,能够兼容多媒体编程接口(DirectX 12,DX12)和绘图应用程序接口(Vulkan),不再依赖图形处理器配置,可根据终端显示器的分辨率和网络情况动态设置视频编码的码率和分辨率,提高用户体验效果。
示意性的,请参考图6,其示出了本申请一个示例性实施例提供的云渲染方法示意图,如图6所示,以该方法应用于三维游戏渲染场景下为例进行说明。
首先,第一终端620接收到对指定三维模型的第一编辑操作,其中,第一编辑操作用于对指定三维模型的第一部分进行编辑。
可选地,将指定三维模型按照结构划分,如:内部结构、外部结构,则第一模型部分为指定三维模型的指定部分结构;或者,将指定三维模型按照功能区域划分,如:功能区域a、功能区域b等,则第一模型部分为指定三维模型的指定功能区域;或者,将指定三维模型的模型生成顺序进行划分,包括构建部件元素、组合部件元素、添加部件属性、设置部件连接关系等,则第一模型部分是指指定三维模型的指定生成步骤,对此不加以限定。
可选地,指定三维模型是当前尚未生成的完整模型,也即,第一编辑操作用于构建指定三维模型的第一模型部分;或者,指定三维模型是当前已经生成的完整模型,也即,第一编辑操作用于修改指定三维模型的第一模型部分。
在一些实施例中,第一终端620的程序运行界面中显示编辑区域,在编辑区域内接收第一编辑操作。
可选地,第一终端620仅对指定三维模型的第一模型部分具有编辑操作权限,也即,第一终端持有用户仅能够对指定三维模型的第一模型部分进行编辑;或者,第一终端对指定三维模型的第一模型部分、第二模型部分和第三模型进行具有编辑操作权限。
第一终端620在接收到第一编辑操作后,向中间服务器发送第一编辑指令,当中间服务器接收到第一编辑指令后,向云服务器转发第一编辑指令,其中,第一编辑指令中包括第一渲染资源要求和第一渲染内容,其中,第一渲染资源要求是指渲染第一模型部分占用云服务器中GPU的资源量。在一个示例中,第一渲染资源要求为3兆。
其次,第二终端630接收到对指定三维模型的第二编辑操作,其中,第二编辑操作用于对指定三维模型的第二部分进行编辑。第三终端640接收到对指定三维模型的第三编辑操作,其中,第三编辑操作用于对指定三维模型的第三部分进行编辑。
第二终端630在接收到第二编辑操作后,向中间服务器发送第二编辑指令,当中间服务器接收到第二编辑指令后,向云服务器转发第二编辑指令,其中,第二编辑指令中包括第二渲染任务,即,渲染任务2。其中,第二编辑指令中包括第二渲染资源要求和第二渲染内容,其中,第二渲染资源要求是指渲染第二模型部分占用云服务器中GPU的资源量。在二个示例中,第二渲染资源要求为4兆。
第三终端640在接收到第三编辑操作后,向中间服务器发送第三编辑指令,当中间服务器接收到第三编辑指令后,向云服务器转发第三编辑指令,其中,第三编辑指令中包括第三渲染任务,即,渲染任务3。其中,第三编辑指令中包括第三渲染资源要求和第三渲染内容,其中,第三渲染资源要求是指渲染第三模型部分占用云服务器中GPU的资源量。在三个示例中,第三渲染资源要求为3兆。
当前云服务器610接收到第一终端620、第二终端630和第三终端640分别发送的渲染任务。
当前云服务器610中尚未存在渲染引擎处于运行中,且云服务器610中的图形处理器的资源总量为64兆,因此当前云服务器610同时符合渲染任务1、渲染任务2和渲染任务3分别对应的渲染资源要求。因此,云服务器610为渲染任务1启动渲染引擎611、为渲染任务2启动渲染引擎612,为渲染任务3启动渲染引擎613,其中,渲染引擎611、渲染引擎612和渲染引擎613是并发启动的。
当云服务器610并发启动了三个渲染引擎后,这三个渲染引擎分别对各自对应的渲染任务中对应的渲染内容进行渲染。其中,渲染引擎611对3兆的三维模型的第一部分进行模型渲染,得到渲染结果1,渲染引擎612对4兆的三维模型的第二部分进行画面渲染,得到渲染结果2,渲染引擎613对5兆的三维模型的第三部分进行画面渲染,得到渲染结果3。
云服务器610在启动渲染引擎的过程中,还会为渲染引擎分配一个端口号,其中,云服务器610为渲染引擎611分配端口号“80”,为渲染引擎612分配端口号“90”,为渲染引擎613分别端口号“100”。
当云服务器610渲染完成后得到渲染结果1、渲染结果2和渲染结果3时,向中间服务器发送渲染结果1、渲染结果2和渲染结果3。
其中,在一个可实现的情况下,中间服务器向第一终端620/第二终端620/第三终端640都发送渲染结果1、渲染结果2和渲染结果3,也即,上述三个终端都可以显示指定三维模型渲染后的第一模型部分、第二模型部分和第三模型部分。
在另一个可实现的情况下,中间服务器向第一终端620发送渲染结果1,渲染结果1中包含渲染得到的第一模型部分以及端口号80,第一终端620接收到渲染结果1后显示渲染后的指定三维模型的第一模型部分;中间服务器向第二终端630发送渲染结果2,渲染结果2中包含渲染得到的第二模型部分以及端口号90,第二终端630接收到渲染结果2后显示渲染后的指定三维模型的第二模型部分;中间服务器向第三终端640发送渲染结果3,,渲染结果3中包含渲染得到的游戏帧画面以及端口号100,第三终端640接收到渲染结果3后显示渲染后的指定三维模型的第三模型部分。
综上所述,本申请实施例提供的云渲染方法,当接收到终端发送的第一渲染请求时,若当前云服务器中的资源剩余量符合第一渲染请求中针对第一渲染任务对应的第一渲染资源要求时,根据第一渲染请求中的第一渲染内容所需的资源量为该第一渲染任务启动一个第一渲染引擎,并根据该第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染,并最终向终端反馈第一渲染结果。也即,通过比较当前云服务器中的资源剩余量是否满足第一渲染任务对应的第一渲染资源要求,从而为该第一渲染任务并发启动第一渲染引擎对其进行渲染,能够避免直接对GPU进行资源划分,提高了云渲染效率及准确率。
通过在云服务器中多开渲染引擎,从而通过多个渲染引擎对不同的渲染任务进行并发执行,提高了云服务器并发渲染的灵活性,以及提高了云渲染效率。另外,通过端口号区分不同渲染任务,提高了并发云渲染的准确率。
图7是本申请一个示例性实施例提供的云渲染装置的结构框图,如图7所示,该装置包括如下部分:
接收模块710,用于接收终端发送的第一渲染请求,所述第一渲染请求中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,所述第一渲染资源要求用于指示渲染所述第一渲染任务对应的所述第一渲染内容所需的资源量;
启动模块720,用于在资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎;
渲染模块730,用于通过所述第一渲染引擎对所述第一渲染任务对应的所述第一渲染内容进行渲染;
反馈模块740,用于向所述终端反馈基于所述第一渲染内容渲染得到的第一渲染结果。
在一些实施例中,如图8所示,所述启动模块720,包括:
获取单元721,用于获取运行中的至少一个渲染引擎对应的资源占用量;
确定单元722,用于基于所述资源占用量确定所述云服务器中的所述资源剩余量;
启动单元723,用于在所述资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动所述第一渲染引擎。
在一些实施例中,所述启动单元723,还用于在所述资源剩余量符合所述第一渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第一渲染内容所需的资源量并发启动所述第一渲染引擎。
在一些实施例中,所述装置还包括:
生成模块750,用于生成所述第一渲染引擎对应的目标端口号;
所述反馈模块740,还用于向所述终端反馈所述第一渲染引擎对应的目标端口号。
在一些实施例中,所述接收模块710,还用于接收所述终端发送的第二渲染请求,所述第二渲染请求中包括所述第一渲染任务对应的第二渲染内容和所述目标端口号;
所述渲染模块730,还用于基于所述目标端口号确定所述第一渲染引擎,并通过所述第一渲染引擎对所述第一渲染任务对应的所述第二渲染内容进行渲染。
在一些实施例中,所述启动模块720,还用于响应于所述第一渲染任务符合渲染结束条件,终止启动所述云服务器中的所述第一渲染引擎。
在一些实施例中,所述装置还包括:
恢复模块760,用于恢复云服务器中所述第一渲染引擎占用的资源量。
在一些实施例中,所述第一渲染请求中包括多个渲染子任务分别对应的渲染资源子要求,其中,所述多个渲染子任务分别用于指示渲染多个视频片段内容;
所述启动模块720,还用于在所述云服务器中包括运行中的至少一个渲染引擎的情况下,响应于所述至少一个渲染引擎进行资源占用后的资源剩余量符合所述多个渲染资源子要求,在所述至少一个渲染引擎的基础上,并发启动多个渲染子引擎,其中,所述多个渲染子引擎与所述多个渲染子任务分别对应;
所述渲染模块730,还用于通过所述多个渲染子引擎分别对所述多个渲染子任务对应的视频片段内容进行渲染;
所述反馈模块740,还用于向所述终端反馈多个渲染子结果,所述多个渲染子结果中包括渲染得到的多个视频片段内容。
综上所述,本申请实施例提供的云渲染装置,当接收到终端发送的第一渲染请求时,若当前云服务器中的资源剩余量符合第一渲染请求中针对第一渲染任务对应的第一渲染资源要求时,根据第一渲染请求中的第一渲染内容所需的资源量为该第一渲染任务启动一个第一渲染引擎,并根据该第一渲染引擎对第一渲染任务对应的第一渲染内容进行渲染,并最终向终端反馈第一渲染结果。也即,通过比较当前云服务器中的资源剩余量是否满足第一渲染任务对应的第一渲染资源要求,从而为该第一渲染任务并发启动第一渲染引擎对其进行渲染,能够避免直接对GPU进行资源划分,提高了云渲染效率及准确率。
需要说明的是:上述实施例提供的云渲染装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的云渲染装置与云渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
图9示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:
服务器900包括中央处理单元(Central Processing Unit,CPU)901、包括随机存取存储器(Random Access Memory,RAM)902和只读存储器(Read Only Memory,ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。服务器900还包括用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备906。
大容量存储设备906通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。大容量存储设备906及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,大容量存储设备906可以包括诸如硬盘或者紧凑型光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备906可以统称为存储器。
根据本申请的各种实施例,服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述实施例中任一所述的虚拟痕迹显示方法。
可选的,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种云渲染方法,其特征在于,由云服务器执行,所述方法包括:
接收终端发送的第一渲染请求,所述第一渲染请求中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,所述第一渲染资源要求用于指示渲染所述第一渲染任务对应的所述第一渲染内容所需的资源量;
在资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎;
通过所述第一渲染引擎对所述第一渲染任务对应的所述第一渲染内容进行渲染;
向所述终端反馈基于所述第一渲染内容渲染得到的第一渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述在资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎,包括:
获取运行中的至少一个渲染引擎对应的资源占用量;
基于所述资源占用量确定所述云服务器中的所述资源剩余量;
在所述资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动所述第一渲染引擎。
3.根据权利要求2所述的方法,其特征在于,所述在所述资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎,包括:
在所述资源剩余量符合所述第一渲染资源要求的情况下,在所述至少一个渲染引擎的基础上,基于所述第一渲染内容所需的资源量并发启动所述第一渲染引擎。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
生成所述第一渲染引擎对应的目标端口号;
向所述终端反馈所述第一渲染引擎对应的目标端口号。
5.根据权利要求4所述的方法,其特征在于,所述向所述终端反馈所述第一渲染引擎对应的目标端口号之后,还包括:
接收所述终端发送的第二渲染请求,所述第二渲染请求中包括所述第一渲染任务对应的第二渲染内容和所述目标端口号;
基于所述目标端口号确定所述第一渲染引擎,并通过所述第一渲染引擎对所述第一渲染任务对应的所述第二渲染内容进行渲染。
6.根据权利要求1至3任一所述的方法,其特征在于,所述方法,还包括:
响应于所述第一渲染任务符合渲染结束条件,终止启动所述云服务器中的所述第一渲染引擎,并恢复所述云服务器中所述第一渲染引擎占用的资源量。
7.根据权利要求1至3任一所述的方法,其特征在于,所述第一渲染请求中包括多个渲染子任务分别对应的渲染资源子要求,其中,所述多个渲染子任务分别用于指示渲染多个视频片段内容;
所述接收终端发送的第一渲染请求之后,还包括:
在所述云服务器中包括运行中的至少一个渲染引擎的情况下,响应于所述至少一个渲染引擎进行资源占用后的资源剩余量符合所述多个渲染资源子要求,在所述至少一个渲染引擎的基础上,并发启动多个渲染子引擎,其中,所述多个渲染子引擎与所述多个渲染子任务分别对应;
通过所述多个渲染子引擎分别对所述多个渲染子任务对应的视频片段内容进行渲染;
向所述终端反馈多个渲染子结果,所述多个渲染子结果中包括渲染得到的多个视频片段内容。
8.一种云渲染装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的第一渲染请求,所述第一渲染请求中包括第一渲染任务对应的第一渲染资源要求和第一渲染内容,所述第一渲染资源要求用于指示渲染所述第一渲染任务对应的所述第一渲染内容所需的资源量;
启动模块,用于在资源剩余量符合所述第一渲染资源要求的情况下,基于所述第一渲染内容所需的资源量启动第一渲染引擎;
渲染模块,用于通过所述第一渲染引擎对所述第一渲染任务对应的所述第一渲染内容进行渲染;
反馈模块,用于向所述终端反馈基于所述第一渲染内容渲染得到的第一渲染结果。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至7任一所述的云渲染方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至7任一所述的云渲染方法。
11.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机者指令被处理器执行时实现如权利要求1至7任一所述的云渲染方法。
CN202211736102.0A 2022-12-30 2022-12-30 云渲染方法、装置、设备、存储介质及程序产品 Pending CN116048792A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211736102.0A CN116048792A (zh) 2022-12-30 2022-12-30 云渲染方法、装置、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211736102.0A CN116048792A (zh) 2022-12-30 2022-12-30 云渲染方法、装置、设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN116048792A true CN116048792A (zh) 2023-05-02

Family

ID=86112738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211736102.0A Pending CN116048792A (zh) 2022-12-30 2022-12-30 云渲染方法、装置、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN116048792A (zh)

Similar Documents

Publication Publication Date Title
US10390055B1 (en) Video file processing
US20170330352A1 (en) Session Idle Optimization For Streaming Server
CN106797388B (zh) 跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品
US20200107057A1 (en) Video coding method, system and server
CN113457160B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN113542757A (zh) 云应用的图像传输方法、装置、服务器及存储介质
US20230405479A1 (en) Data processing method and apparatus, device and storage medium
CN112148489A (zh) 游戏资源调度方法、装置、设备及存储介质
WO2022242358A1 (zh) 图像处理方法、装置、计算机设备及存储介质
US8533615B1 (en) Systems and methods for order-independent rendering of graphical objects using operating system resources
CN115292020B (zh) 一种数据处理方法、装置、设备以及介质
CN113467958B (zh) 一种数据处理方法、装置、设备以及可读存储介质
CN112749022B (zh) 相机资源访问方法、操作系统、终端和虚拟相机
CN116546228B (zh) 用于虚拟场景的推流方法、装置、设备及存储介质
CN106796535B (zh) 视频显示方法、装置、电子设备和计算机程序产品
US20230141129A1 (en) Flexible slice, tile and brick partitioning
CN116048792A (zh) 云渲染方法、装置、设备、存储介质及程序产品
CN115576689A (zh) 云渲染处理方法、设备和存储介质
CN109478151B (zh) 网络可访问数据卷修改
CN115018693A (zh) 基于软件定义图形处理器的docker图像加速方法及系统
CN115396500A (zh) 基于专网的服务平台切换方法、系统及电子设备
CN115309315A (zh) Wayland环境下X应用的截图方法、系统及介质
CN117557701A (zh) 一种图像渲染方法和电子设备
CN115393490A (zh) 图像渲染方法、装置、存储介质及电子设备
CN116797438A (zh) 异构混合三维实时云渲染平台的并行渲染集群应用方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination