CN103299347A - 基于云应用的在线渲染方法和离线渲染方法及相关装置 - Google Patents

基于云应用的在线渲染方法和离线渲染方法及相关装置 Download PDF

Info

Publication number
CN103299347A
CN103299347A CN2011800032280A CN201180003228A CN103299347A CN 103299347 A CN103299347 A CN 103299347A CN 2011800032280 A CN2011800032280 A CN 2011800032280A CN 201180003228 A CN201180003228 A CN 201180003228A CN 103299347 A CN103299347 A CN 103299347A
Authority
CN
China
Prior art keywords
rendering
frame
unit
display unit
playing sequence
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.)
Granted
Application number
CN2011800032280A
Other languages
English (en)
Other versions
CN103299347B (zh
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103299347A publication Critical patent/CN103299347A/zh
Application granted granted Critical
Publication of CN103299347B publication Critical patent/CN103299347B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开了一种基于云应用的在线渲染方法和离线渲染方法及相关装置,用于提高渲染效率。本发明实施例包括:接收渲染任务请求;根据渲染任务请求确定需要渲染的模型文件;按照模型文件中各帧的播放顺序,将该模型文件划分为N1个显示单元,显示单元是压缩和传输的最小单位,其中,每个显示单元中包含若干个播放顺序相邻的帧,其中至少有N1-1个显示单元中包含W个帧;将各显示单元中单元内播放顺序相同的帧组成渲染单元,以得到W个渲染单元,其中,显示单元中每个帧的单元内播放顺序为该帧相对于其所属显示单元中其它帧的播放顺序;将W个渲染单元分别分配给W个不同的渲染节点进行渲染。

Description

基于云应用的在线渲染方法和离线渲染方法及相关装置 技术领域
本发明涉及渲染云应用领域,尤其是一种基于云应用的在线渲染方法和离 线渲染方法及相关装置。
背景技术
近年来, 云计算的出现与渲染服务应用的需求不谋而合, 诞生了渲染云。 云计算通过对硬件资源和网络存储的高度虚拟化 ,具有高效资源利用率和动态 特性, 可以很容易地完成渲染所需的高性能计算。 渲染云加速渲染任务的内部 处理方式与渲染集群类似,也是将渲染任务分解为小单元,再利用云的强大计 算能力来执行这些任务单元。
渲染云的应用方式主要分为两类: 一是自助式渲染服务, 用户可以自己递 交、控制渲染任务, 目的是借助渲染云的强大计算能力快速完成大量的渲染工 作, 也可称为离线渲染 (Offline Rendering) , 通常用在 3D动画制作、 电影特 效等领域, 可以为了追求真实感而消耗大量计算资源和时间; 二是支持各 种在线的渲染应用, 称为实时渲染(Real-time Rendering)或在线渲染, 由于 在线渲染应用的业务形式非常丰富,并且随着人们在各个领域对特效等视觉效 果的更高追求, 其应用范围将急速扩张。 例如在线的三维(3D, 3-Dimensions ) 设计、 3D导航、 3D展示, 甚至随着网络的能力提升也可以支持实时的 3D游 戏等。
可是目前基于云应用的渲染, 其渲染效率不高, 用户体验较差。
发明内容
本发明实施例提供了一种基于云应用的在线渲染方法和离线渲染方法及 相关装置, 用于提高渲染效率。
有鉴于此, 本发明实施例提供:
一种基于云应用的在线渲染方法, 包括:
接收渲染任务请求;
根据渲染任务请求确定需要渲染的模型文件;
按照模型文件中各帧的播放顺序, 将该模型文件划分为 ^个显示单元, 显示单元是压缩和传输的最小单位, 其中,每个显示单元中包含若干个播放顺 序相邻的帧, 其中至少有 Nrl个显示单元中包含 W个帧;
将各显示单元中单元内播放顺序相同的帧组成渲染单元, 以得到 W个渲 染单元, 其中,显示单元中每个帧的单元内播放顺序为该帧相对于其所属显示 单元中其它帧的播放顺序;
将 W个渲染单元分别分配给 W个不同的渲染节点进行渲染。
一种基于云应用的在线渲染装置, 包括:
第一接收模块, 用于接收渲染任务请求;
第一确定模块, 用于根据渲染任务请求确定需要渲染的模型文件; 第一分解模块, 用于按照模型文件中各帧的播放顺序,将该模型文件划分 为 ^个显示单元, 显示单元是压缩和传输的最小单位; 其中, 每个显示单元 中包含若干个播放顺序相邻的帧,其中至少有 Nrl个显示单元中包含 W个帧; 第一组合模块 ,用于将各显示单元中单元内播放顺序相同的帧组成渲染单 元以得到 W个渲染单元; 其中, 显示单元中每个帧的单元内播放顺序为该帧 相对于其所属显示单元中其它帧的播放顺序;
第一分配模块,用于将 W个渲染单元分别分配给 W个不同的渲染节点进 行渲染。
一种基于云应用的离线渲染方法, 包括:
接收渲染任务请求;
根据渲染任务请求确定需要渲染的模型文件;
按照模型文件中各帧的播放顺序, 将该模型文件划分为 N2个组, 其中至 少有 N2-l个组中包含 Z个帧, Z大于 0且小于可用渲染节点数目;
将各组内播放顺序相同的帧组成渲染单元, 以得到 Z个渲染单元, 其中, 各组中每个帧的组内播放顺序为该帧相对于其所属的组中其它帧的播放顺序; 将 Z个渲染单元分别分配给 Z个不同的渲染节点进行渲染。
一种基于云应用的离线渲染装置, 包括:
第二接收模块, 用于接收渲染任务请求;
第三确定模块, 用于根据渲染任务请求确定需要渲染的模型文件; 第二分解模块, 用于按照模型文件中各帧的播放顺序,将该模型文件划分 为 N2个组, 其中至少有 N2-l个组中包含 Z个帧, Z大于 0且小于可用渲染 节点数目;
第二组合模块, 用于将各组内播放顺序相同的帧组成渲染单元, 以得到 Z 个渲染单元, 其中, 各组中每个帧的组内播放顺序为该帧相对于其所属的组中 其它帧的播放顺序;
第二分配模块, 用于将 Z个渲染单元分别分配给 Z个不同的渲染节点进 行渲染。
从以上技术方案可以看出,本发明实施例提供了一种基于云应用的在线渲 染方法和离线渲染方法及相关装置,在在线渲染中,根据需要渲染的模型文件 中帧的播放顺序,将该模型文件划分为若干个显示单元, 进而将显示单元内播 放顺序相同的帧组成渲染单元, 其中, 各渲染单元具有了关于播放顺序的不同 的优先级, 然后将各渲染单元分别分配给不同的渲染节点, 实现了每个显示单 元的帧并行渲染,各显示单元之间可以按照播放时间顺序进行渲染; 在离线渲 染中, 为了节约渲染时间, 合理利用资源, 在渲染前进行任务的分解, 有效地 提高了渲染的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要 使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一 些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还 可以根据这些附图获得其他的附图。
图 1为本发明实施例提供的一种基于云应用的在线渲染方法的流程图; 图 2为本发明实施例提供的一种基于云应用的在线渲染方法的流程图; 图 3为本发明实施例提供的在线渲染方法的过程示意图;
图 4为本发明实施例提供的在线渲染方法的另一过程示意图;
图 5 为本发明实施例提供的一种基于云应用的在线渲染装置的结构示意 图;
图 6为本发明实施例提供的另一种在线渲染装置的结构示意图; 图 7为本发明实施例提供的一种基于云应用的离线渲染方法的流程图; 图 8为本发明实施例提供的离线渲染方法的过程示意图;
图 9为一种现有的离线渲染方法的示意图; 图 10为本发明实施例提供的一种基于云应用的离线渲染装置的结构示意 图;
图 11为本发明实施例提供的另一种离线渲染装置的结构示意图。
具体实施方式
本发明实施例提供了一种基于云应用的在线渲染方法和离线渲染方法及 相关装置, 用于提高渲染效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其它实施例, 都属于本发明保护的范围。
以下分别进行详细说明。
本发明实施例提供了一种基于云应用的在线渲染方法,其方法流程请参考 图 1 , 该方法包括:
S101、 接收渲染任务请求;
S102、 根据渲染任务请求确定需要渲染的模型文件;
在某些实施方式中, 步骤 S101与步骤 S102可以为: 用户触发一个在线 3D应用, 相当于向后台递交一个在线渲染任务请求, 根据该在线渲染任务请 求确定出所要渲染的模型文件, 或称场景文件;
该模型文件可以是预先得到的 ,也可以由模型文件中帧的信息根据触发条 件实时演算得到的; 此处不作具体限定。
S103、 按照模型文件中各帧的播放顺序, 将该模型文件划分为 ^个显示 单元, 显示单元是压缩和传输的最小单位, 其中, 每个显示单元中包含若干个 播放顺序相邻的帧, 其中至少有 Nr l个显示单元中包含 W个帧;
由步骤 S101、 S102可以知道, 若所要渲染的模型文件包含 帧; 按照 模型文件中各帧的播放顺序,将模型文件中的 M 划分为 个显示单元;显 示单元是压缩和传输的最小单位;每个显示单元中包含若干个播放顺序相邻的 帧, 即每个显示单元内的帧是按其播放顺序进行排列的帧的集合, 且在 ^个 显示单元中至少有 Nr l个显示单元中包含 W个帧。
在某些实施方式中, 可以设定渲染的模型文件中总帧数为 帧, 由于显 示单元是压缩和传输的最小单位,若已知此时保证流畅显示所需的显示单元内 帧数为 W, 则显示单元的个数 N1 = ― ;
W 其中, 该式子表示, 当 能被 W整除, 则显示单元为 个, 且每个显 示单元中都含有 W个帧; 当 不能被 W整除, 则将结果中小数部分舍去, 整数部分 +1得出显示单元的个数为 Nl 其中, 可以是前 Nrl个显示单元中含 有 W个帧, 则最后一个显示单元中有 (M Ni- x W ) 帧。
5104、 将各显示单元中单元内播放顺序相同的帧组成渲染单元, 以得到 W个渲染单元, 其中, 显示单元中每个帧的单元内播放顺序为该帧相对于其 所属显示单元中其它帧的播放顺序;
针对各显示单元, 将单元内第一个播放的帧组成一个渲染单元, 同理, 将 单元内第二个播放的帧组成一个渲染单元, 以此类推, 将单元内第 W个播放 的帧组成一个渲染单元, 这样, 以得到 W个渲染单元。
需要说明的是,显示单元中每个帧的单元内播放顺序为该帧相对于其所属 显示单元中其它帧的播放顺序;
例如: 按照模型文件中各帧的播放顺序,对于第一个显示单元中第一个播 放的帧是模型文件全部帧的第一个播放的帧, 若该模型文件 ^个显示单元内 均含 W个帧,则该单元内最后一个播放的帧是模型文件全部帧的第 W个播放 的帧; 若对于最后一个显示单元中第一个播放的帧, 则是模型文件全部帧的第 ( ( Nrl ) x W+1 )个播放的帧, 该单元内最后一个播放的帧是模型文件全部 帧的第 X W个播放的帧。
5105、 将 W个渲染单元分别分配给 W个不同的渲染节点进行渲染; 可以理解的是,每个渲染单元都需要分配给一个渲染节点进行渲染,同时, 为了保证一个显示单元的所有帧同时产生,因此参与渲染的节点数目也是为 W 个。
需要说明的是,本实施例提供的基于云应用的在线渲染方法, 不仅适用于 可以预先得到需要渲染的如 3D动画模型文件, 还可以适用于需要通过人工智 能等运算来实时计算各帧场景的内容和参数的模型文件,即该模型文件由其中 帧的信息根据触发条件实时演算得到的; 若针对第一种情形下的模型文件, 则根据总的帧数 Ml 以及显示单元的 大小 W, 根据帧的播放顺序, 可以先将 帧划分为若干个显示单元, 再分解 成 W个渲染单元, 分配给 W个不同的渲染节点进行渲染; 若针对第二种情形 下的模型文件, 则根据总的帧数 Ml 以及显示单元的大小 W, 按照帧的播放 顺序实时计算得到每一帧, 并依次逐帧分配给 W个渲染单元, 并分配给 W个 不同的渲染节点进行渲染。 实质上, 它们都是将各显示单元中单元内播放顺序 相同的帧组成渲染单元来进行渲染的。
以上实施例提供的一种基于云应用的在线渲染方法,根据需要渲染的模型 文件中帧的播放顺序,将该模型文件划分为若干个显示单元, 进而将显示单元 内播放顺序相同的帧组成渲染单元, 其中,各渲染单元具有了关于播放顺序的 不同的优先级, 然后将各渲染单元分别分配给不同的渲染节点, 即在渲染前进 行了任务的分解, 实现了每个显示单元的帧并行渲染,尽量保证它们同时完成 渲染; 并且各显示单元之间可以按照播放时间顺序进行渲染,有效地提高了渲 染的效率。
本发明实施例还提供一种基于云应用的在线渲染方法,对分配的渲染节点 进行渲染能力强弱的评估, 以承担不同优先级的渲染单元的渲染任务。 如图 2 所示, 该方法包括:
5201、 接收渲染任务请求;
5202、 根据渲染任务请求确定需要渲染的模型文件;
可以理解的是,步骤 S201与步骤 S101的内容相同,步骤 S202与步骤 S102 内容相同, 可参考相关描述, 此处不再作具体阐述。
5203、 按照模型文件中各帧的播放顺序, 将该模型文件划分为 个显示 单元, 显示单元是压缩和传输的最小单位, 其中, 每个显示单元中包含若干个 播放顺序相邻的帧, 其中至少有 Nr l个显示单元中包含 W个帧;
由步骤 S201、 S202可以知道, 若在在线渲染中, 所要渲染的模型文件可 以是一个包含 帧的 3D动画序列; 按照模型文件中各帧的播放顺序, 将模 型文件中的 M 划分为 个显示单元; 显示单元是压缩和传输的最小单位; 每个显示单元中包含若干个播放顺序相邻的帧 ,即每个显示单元是按其内的帧 的播放顺序进行排列的帧的集合,且在 个显示单元中至少有 Nr l个显示单 元中包含 W个帧, 其中可以是前 Nrl个显示单元中包含 W个帧, 第N1个显 示单元中含有 ( M ( N l ) W )个帧。
在某些实施方式中, 可以设定渲染的模型文件中总帧数为 帧, 由于显 示单元是压缩和传输的最小单位, 若已知此时保证流畅显示所需的帧数为 W, 则显示单元的个数 Nl =「 i] ;
W 其中, 该式子表示, 当 Mi能被 W整除, 则显示单元为 个, 且每个显 示单元中都含有 W个帧; 当 不能被 W整除, 则将结果中小数部分舍去, 整数部分 +1得出显示单元的个数为 N 其中, 可以是 个显示单元中含 有 W个帧, 则最后一个显示单元中有 (M Ni- x W ) 帧。
需要说明的是, 保证流畅显示所需的帧数 W, 可以根据以下式子推出:
W≥ {[max(ti(res), t2(res), · . - ti(res), · . - tw(res)) + TcT(res, B, W, R) + Ttoi] x f} ( 1 ) , 其中, t es)为所分配的渲染节点 i渲染一帧需要的时间, i取值为 1到 W 的整数; 主要与分辨率 res相关; max ^res), t2(res), ...ti(res), ... tw(res))则为最 大的单帧渲染时间; TCT为差值压缩 (Compression )和传输(Transmission ) W帧需要的总时间, 与分辨率 res、 网速 B、 显示单元大小 W以及所釆用的差 值编码压缩率 R有关; Ttol为容忍时间, 即完成一个显示单元中最后一帧渲染 后系统等待时间和缺帧补偿时间之和; f为帧率,单位为 s( frames per second ), 即每秒播放的帧数。
通常地, 3D动画模型文件的渲染结果为图像序列, 渲染完成后得到的图 像序列需要经过差值编码和网络传输差值编码后的图像,其中差值编码是指渲 染出来的一系列图像(相当于视频中的一帧一帧)进行压缩的过程中, 当完成 第一幅图像的压缩后,后面的其他图像可以和第一幅图像做差值, 然后将差值 图像, 也就是两幅图像不同的部分进行压缩, 这样可以得到更好的压缩效果; 另外, 分辨率 res ( resolution ) , 也可称为解析度, 就是屏幕图像的精密度, 是指显示器所能显示的像素的多少;
缺帧补偿就是指对在等待时间内未完成的帧不能不处理,需要用其播放顺 序前后的已得到的帧进行运动预测、 插值等图像处理方法来估算出该帧图像。 比如, 若一个显示单元中第 10帧没有在等待时间内完成, 就可以用第 9帧和 第 11帧来估算出第 10帧, 这样才算是一个显示单元的所有帧都完成。 当然, 向前和向后参考的帧数是可以变动的, 不一定是一帧, 可以是两帧、 三帧, 此 处不作具体限定。
一般地, 当用户递交一个渲染任务请求并进入系统后, 其总帧数 Ml 分 辨率 res, 帧率 f 可以认为已给定。 系统内部可以收集到当前或一段时间内的 平均网速 B , 差值编码压缩率 R 和容忍时间 Ttol。 而最大的单帧渲染时间 max(t!(res), t2(res), ...ti(res), ...tw(res))与 W的相关性不强, 因此可以使用系统 经验值估计的最大渲染时间来代表;也可以由用户提供本地配置和渲染时间作 为参考, 并结合当前渲染节点的配置, 综合估计出这个最大单帧渲染时间。
关于压缩和传输的最小单位, 即显示单元的大小 W, 通常地, 可以釆取 以下步骤获得: 第一步, 根据系统内可用的渲染节点数目, 给定一个 W的初 始值 Wo, Wo的取值为大于零且小于系统内可用的渲染节点数目之间的整数; 其中,可用的渲染节点可以理解为空闲或渲染节点的能力分值高于预设阈值的 渲染节点; 第二步, 将 WQ代入公式(1 )的右边, 计算得到一个值 West(1), 如 果 Wo≥ West(l) , 则令 W=W。, 至此完成了 W的计算; 如果 WQ < West(l) , 则需 要以一定步长△ W减小 W。的取值,得到 WfW。-△ W,并记录 = West(l) - Wo , 然后重复第二步的计算得到 West(2),如果 Wi≥ West( , 则令 w=Wl 完成 W的 计算; 如果 Wl < West(2) , 则继续以步长 Δ w减小 , 得到 W2=Wr Δ w, 记录 ^W2 = West(2) - Wl 0 依次类推, 直到得到 W的值。
如果在大于等于 1且小于 WQ的正整数里无法得到合适的 W的值, 则说 明无法保证用户端流畅的显示效果, 并选择使得 取值最小的 的最大 值作为 W, 其中, j=l, 2, 3, ... ^ 。
S204、 将各显示单元中单元内播放顺序相同的帧组成渲染单元, 以得到 W个渲染单元, 其中, 显示单元中每个帧的单元内播放顺序为该帧相对于其 所属显示单元中其它帧的播放顺序;
在某些实施方式中, 可以认为按照各显示单元中帧的播放先后顺序,给各 显示单元中的帧赋予一个帧序号;
例如: 对于各显示单元中的第一个帧, 可以赋予帧序号 "1" , 相应的, 对 于各显示单元中的第二个帧, 可以赋予帧序号 "2" , 以此类推, 对于显示单元 中的第 i个帧, i=l,2,3,...,W, 可以赋予帧序号 "i" , 对于显示单元中的最后一 个帧, 即第 W个帧, 可以赋予帧序号 "W" , 这样就可以得到各显示单元中单 元内播放顺序相同的帧赋予了一个相同的帧序号。
其中,将各显示单元中单元内播放顺序相同的帧组成渲染单元,可以是将 各个显示单元内赋予了相同帧序号的帧组成一个渲染单元;
例如: 对于各显示单元中赋予了帧序号 "1" 的帧组成一个渲染单元, 为 便于理解, 可以将赋予了帧序号 "1" 的帧组成的渲染单元记为渲染单元 1 , 同理, 可以将赋予了帧序号 "2" 的帧组成的渲染单元记为渲染单元 2, 以此 类推, 可以将赋予了帧序号 "i" 的帧组成的渲染单元记为渲染单元 i, 赋予了 帧序号 "W" 的帧组成的渲染单元可记为渲染单元 W, 这样就可以将各显示 单元中单元内播放顺序相同的帧组成渲染单元, 以得到了 W个渲染单元。
需要说明的是,显示单元中每个帧的单元内播放顺序为该帧相对于其所属 显示单元中其它帧的播放顺序;
例如: 按照模型文件中各帧的播放顺序,对于第一个显示单元中的赋予了 帧序号 "1" 的帧是模型文件全部帧的第一个播放的帧, 其赋予了帧序号 "W" 的帧是模型文件全部帧的第 W个播放的帧, 但是对于第二个显示单元中赋予 了帧序号 "1" 的帧是第二个显示单元内最先播放的帧, 但该帧是模型文件全 部帧的第 W+1个帧, 其赋予了帧序号 "W" 的帧是模型文件全部帧的第 2 x W个播放的帧; 因此, 对于第二个以及后续的第 k个显示单元, k为大于 1且 小于 ^的整数,其单元内赋予了帧序号" 1 "的帧是模型文件全部帧的第(( k- 1 ) X W+1 )个播放的帧, 其赋予了帧序号 "W" 的帧是模型文件全部帧的第 k x W个播放的帧, 如图 3所示, 可以按照播放顺序给每个显示单元内的帧赋予 帧序号,如图中帧内编号, 而这些帧在整个模型文件中的顺序是下面横轴所示 的编号; 如图 3所示, 可以认为, 该模型文件中的帧是釆用交叉分解来实现渲 染的。
S205、通过渲染节点的硬件配置信息和实时负载统计信息评估渲染节点渲 染能力的强弱,确定出渲染能力最强的 w个渲染节点参与 w个渲染单元的渲 染;
由步骤 S203与步骤 S204可知,可以根据帧的播放顺序,被分解到同一渲 染单元中的帧赋予了相同的帧序号; 可以理解的是,被分解的各渲染单元具有 了关于播放顺序的不同的优先级,由于各渲染单元的优先级是由其包含的帧的 播放时间顺序决定的, 没有同时播放的两个帧, 所以播放时间是一定有先后顺 序的, 因此各渲染单元也一定有不同优先级。
另外, 由于每个显示单元中, 帧序号越小的帧需要越早播放, 并且也是后 续播放的帧的参考对象, 此处可以联系关于差值图像压缩过程的相关描述,表 示后面播放的帧的压缩是要以前面的帧为参考对象进行的。
因此, 应该保证帧序号越小的帧被最先渲染出来。 基于此, 包含帧序号小 的帧的渲染单元可以认为具有高的优先级,包含帧序号大的帧的渲染单元可以 认为具有低的优先级。
这样在任务调度的角度上看,对高优先级的渲染单元需要交给渲染能力强 的渲染节点来处理,对低优先级的渲染单元需要交给渲染能力弱的渲染节点来 处理。 在本实施例中, 即根据渲染单元的优先级从高到低, 依次分配到渲染能 力从强到弱的渲染节点。
渲染节点的渲染能力的强弱,可以通过从硬件配置信息和实时负载统计信 息来评估确定。在本领域中,渲染节点的硬件配置信息主要可以包括以下参数: 内存大小、 交换区 SWAP大小、 中央处理器( CPU, Central Processing Unit ) 核数和其处理速度、 文件系统大小、 网络带宽等; 而实时负载统计信息可以包 括以下参数: 内存、 交换区、 CPU 和文件系统的占用率, 进程、 线程数目, 网络传输速率等。 将这些参数进行综合打分, 计算出各渲染节点的能力分值, 比如以 0至 100分进行标示渲染能力的强弱,分值最高的渲染节点说明该渲染 节点当前渲染能力最强。
在本实施例中, 优选地, 选取系统中渲染能力最强的 W个渲染节点参与 W个渲染单元的渲染;若按照渲染能力的强弱标示参与渲染的 W个渲染节点, 可以将渲染能力最强的渲染节点记为渲染节点 1 , 以此类推, 可以将渲染能力 最弱的渲染节点记为渲染节点 W。 S206、将 W个渲染单元分别分配给确定出渲染能力最强的 W个渲染节点 进行渲染,依次将所属显示单元内播放顺序较前的帧组成的渲染单元分配给渲 染能力较强的渲染节点进行渲染,将所属显示单元内播放顺序较后的帧组成的 渲染单元分配给渲染能力较弱的渲染节点进行渲染;
可以理解的是,将所属显示单元内播放顺序较前的帧组成的渲染单元分配 给渲染能力较强的渲染节点进行渲染; 由步骤 S204可知, 可以将赋予了帧序 号 "1" 的帧组成渲染单元记为渲染单元 1 , 而赋予了帧序号 "1" 的帧在其所 属的显示单元内则可表示为第一个播放的帧,因此可以认为将渲染单元 1分配 给渲染能力最强的渲染节点 1进行渲染;
同理, 将渲染单元 2分配给渲染节点 2进行渲染; 以此类推, 将所属显示 单元内播放顺序较后的帧组成的渲染单元分配给渲染能力较弱的渲染节点进 行渲染, 即将赋予了帧序号 "W" 的帧在其所属的显示单元内可认为是最后一 个播放的帧, 则将渲染单元 W分配给渲染能力最弱的渲染节点 W进行渲染。
优选地, 当每个显示单元中最后一帧完成渲染后,会在等待时间内对该显 示单元中未完成的帧所属的渲染单元分配的渲染节点的渲染能力进行再一次 打分, 该等待时间为步骤 S203中的容忍时间内的等待时间, 其中容忍时间是 指完成一个显示单元中最后一帧渲染后系统的等待时间和缺帧补偿的时间之 和。
如果存在未参与此次任务而分值高于当前未完成渲染任务的渲染节点的 渲染节点, 则进行渲染节点替换, 由新的渲染节点来完成所替换的渲染节点原 本渲染的渲染单元的后续帧的渲染任务。 如果存在多个渲染节点均需要替换, 则按照渲染单元的优先级分配相应渲染能力的渲染节点。
需要说明的是,本实施例提供的基于云应用的在线渲染方法, 不仅适用于 可以预先得到需要渲染的如 3D动画模型文件, 还可以适用于需要通过人工智 能等运算来实时计算各帧场景的内容和参数的模型文件,即该模型文件由其中 帧的信息根据触发条件实时演算得到的;
若针对第一种情形下的模型文件, 则根据总的帧数 Ml 以及显示单元的 大小 W, 根据帧的播放顺序, 可以先将 帧划分为若干个显示单元, 再分解 成 W个渲染单元, 分配给 W个不同的渲染节点进行渲染, 请参考图 3; 若针 对第二种情形下的模型文件, 则根据总的帧数 Ml 以及显示单元的大小 W, 按照帧的播放顺序实时计算得到每一帧, 并依次逐帧分配给 W个渲染单元, 并分配给 W个不同的渲染节点进行渲染, 请参考图 4。 实质上, 它们都是将 各显示单元中单元内播放顺序相同的帧组成渲染单元来进行渲染的。
本实施例提供的一种基于云应用的在线渲染方法,根据需要渲染的模型文 件中帧的播放顺序,将该模型文件划分为若干个显示单元, 进而将显示单元内 播放顺序相同的帧组成渲染单元, 其中,各渲染单元具有了关于播放顺序的不 同的优先级, 然后根据渲染单元的优先级从高到低,依次分配到渲染能力从强 到弱的渲染节点。 不仅在进行渲染前对任务进行分解, 实现了每个显示单元的 帧并行渲染, 有效地提高了渲染的效率, 还针对分解的结果进行了任务调度, 在分配渲染节点之前对渲染节点的渲染能力进行强弱评估,使得渲染更具有合 理性。
以下实施例以一个在线 3D动画设计的渲染云应用为例的应用场景, 对本 发明提出的在线渲染方法进行具体阐述。
本实施例可以是专业动画设计人员的网络工作情形,或是面向大众的自我
3D创意的娱乐情况。 当完成一定的动画设计后, 用户需要在线即时预览自己 的创作效果, 此时用户向渲染云服务端发出渲染指定动画的请求,服务端根据 用户的模型文件 /场景文件及其他素材, 可以分析获取需要渲染的总帧数、 帧 率、 分辨率等信息, 然后釆用本发明提出的方法进行渲染。
若假设系统中共有 50个可用的渲染节点, 且硬件配置相同。 按照各渲染 节点的渲染能力进行打分, 并根据渲染能力由强到弱进行排列和命名, 即渲染 节点 1打分最高, 表示渲染能力最强, 渲染节点 50的渲染能力最弱。
设渲染一帧的最大时间 max res t^res tiOes),••• wOes))为 500ms,已知 系统内可用渲染节点数为 50, 帧率 f为 24φδ, 根据前述 W的推算方法, 可以 4 设经过若干次尝试估计得出显示单元的大小为 24, 此时差值压缩和传输的 时间 TCT和容忍时间 Ttol合计为 100ms。
为方便计算和理解, 假设本实施例中总渲染帧数为 2400帧, 则有 100个 显示单元, 且每个显示单元均为 24帧, 由此可以推出, 渲染单元为 100个, 所需要同时参与渲染的渲染节点为 24个,一个渲染单元的大小也就为 100帧。 按照本发明提供的一种基于云应用的在线渲染方法,可参照图 3的方法过 程示意图, 针对该实施例应用场景, 其任务分解结果可参照表一:
表一
由表一数据可知, 第 1、 25、 49、 73 2353、 2377帧为第一个渲染 单元; 第 2、 26、 50、 74 2354、 2378帧为第二个渲染单元; 以此类推, 这样从第 1到第 2400帧, 交叉分解为 24个渲染单元,按帧的播放顺序被分为 24帧一组的 100个显示单元。
由前述的 50个渲染节点渲染能力的强弱, 可以将渲染单元 1分配给渲染 节点 1来渲染, 以此类推, 将渲染单元 24分给渲染节点 24渲染。
如果在第一个显示单元中最后一帧, 即第 24 帧渲染完成后, 发现第 20 帧在容忍时间中的等待时间内仍未完成渲染,则对渲染节点 20进行重新打分, 并与其他未参与的渲染节点 25〜50的当前分数进行对比。如果发现此时渲染节 点 25的分值高于渲染节点 20, 那么就釆用渲染节点 25来代替渲染节点 20, 进行渲染单元 20的后续渲染任务, 也就是渲染第 44、 68 2396帧。
在本例中釆用本发明提出的基于云应用的在线渲染方法,根据需要渲染的 模型文件中帧的播放顺序,将该模型文件中的 2400帧划分为 100个显示单元, 进而将显示单元内播放顺序相同的帧组成渲染单元,以得到了 24个渲染单元。 其中,各渲染单元具有了关于播放顺序的不同的优先级, 然后根据渲染单元的 优先级从高到低, 依次分配到渲染能力从强到弱的渲染节点, 即将渲染单元 1〜24依次分配到渲染节点 1〜24。 这样, 用户在发出预览请求后, 最多需要等 待 600ms, 即可看到连续流畅的渲染后的动画播放结果。
该实施例釆用了本发明提出的基于云应用的在线渲染方法,不仅根据帧的 播放顺序,在进行渲染前对任务进行分解,实现了每个显示单元的帧并行渲染, 有效地提高了渲染的效率,还针对分解的结果进行了任务调度, 即优先级越高 的渲染单元分配的渲染节点渲染能力越强,使得渲染更具有合理性; 符合了在 线渲染实时的需求, 时效性高, 用户体验好。
另外, 在网络传输、 I/O存储、 渲染的速度能够达到游戏实时交互需求的 前提下, 也可以釆用本发明的方法应用于在线 3D游戏场景。
当用户触发一个关卡或情节时,如果通过游戏引擎可以预先得到需要渲染 的 3D动画模型文件, 则可釆用本发明实施例提供的方法进行任务分解和调度 来实现渲染, 其过程示意图可参考图 3 , 其具体过程可参考方法实施例相关步 骤的内容, 此处不再具体描述;
如果通过游戏引擎的逻辑需要通过人工智能等运算来实时演算各帧场景 现渲染, 如图 4所示, 其具体过程可参考方法实施例相关步骤的内容, 此处不 再作具体描述。
同样地, 该实施例釆用了本发明提出的在线渲染方法,有效地提高了渲染 的效率, 符合了在线渲染实时的需求, 时效性高, 用户体验好。
为便于更好的实施本发明实施例的技术方案,本发明实施例还提供用于实 施上述方案的相关装置。
本发明实施例提供了一种基于云应用的在线渲染装置,其结构示意图请看 考图 5, 该装置包括:
第一接收模块 101 , 用于接收渲染任务请求;
第一确定模块 102, 用于根据渲染任务请求确定需要渲染的模型文件; 第一分解模块 103 , 用于按照模型文件中各帧的播放顺序, 将该模型文件 划分为 个显示单元, 显示单元是压缩和传输的最小单位; 其中, 每个显示 单元中包含若干个播放顺序相邻的帧, 其中至少有 Nrl个显示单元中包含 W 个帧;
第一组合模块 104, 用于将各显示单元中单元内播放顺序相同的帧组成渲 染单元以得到 W个渲染单元; 其中, 显示单元中每个帧的单元内播放顺序为 该帧相对于其所属显示单元中其它帧的播放顺序;
第一分配模块 105 , 用于将 W个渲染单元分别分配给 W个不同的渲染节 点进行渲染。
以上实施例提供的一种基于云应用的在线渲染装置,根据需要渲染的模型 文件中帧的播放顺序,将该模型文件划分为若干个显示单元, 进而将显示单元 内播放顺序相同的帧组成渲染单元, 其中,各渲染单元具有了关于播放顺序的 不同的优先级, 然后将各渲染单元分别分配给不同的渲染节点, 即在渲染前进 行了任务的分解, 实现了每个显示单元的帧并行渲染,尽量保证它们同时完成 渲染; 并且各显示单元之间可以按照播放时间顺序进行渲染,有效地提高了渲 染的效率。
请参考图 6,本发明实施例还提供一种基于云应用的在线渲染装置,包括: 第一接收模块 101 , 第一确定模块 102, 第一分解模块 103 , 第一组合模 块 104, 评估模块 106, 第二确定模块 107, 第一分配模块 105 , 其中, 第一接 收模块 101 , 第一确定模块 102, 第一分解模块 103可以根据上述装置实施例 中的功能模块功能描述具体实现, 此处不再具体阐述。
其中, 本实施例中第一组合模块 104可以包括:
第一赋帧序号子模块 1041 , 用于按照各显示单元中帧的播放先后顺序, 给各显示单元中单元内播放顺序相同的帧赋予一个相同的帧序号;
第一组合子模块 1042, 用于将各个显示单元内赋予了相同帧序号的帧组 成一个渲染单元。
本发明实施例中的评估模块 106, 用于通过渲染节点的硬件配置信息和实 时负载统计信息评估渲染节点渲染能力的强弱;
第二确定模块 107, 用于确定出渲染能力最强的 W个渲染节点参与第一 组合模块 104得到的 W个渲染单元的渲染。
在评估模块 106与第二确定模块 107动作完成后, 指示第一分配模块 105 执行动作, 此时, 第一分配模块 105可以包括: 第一分配子模块 1051 ,用于将 W个渲染单元分别分配给第二确定模块 206 确定出的渲染能力最强的 W个渲染节点进行渲染;
第二分配子模块 1052, 用于依次将所属显示单元内播放顺序较前的帧组 成的渲染单元分配给渲染能力较强的渲染节点进行渲染,将所属显示单元内播 放顺序较后的帧组成的渲染单元分配给渲染能力较弱的渲染节点进行渲染。
可以理解的是, 本实施例提供的基于云应用的在线渲染装置, 其各个功能 模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可以 参照上述方法实施例的相关描述, 此处不再赘述。
以上实施例提供的一种基于云应用的在线渲染装置,在渲染前进行了任务 的分解, 实现了每个显示单元的帧并行渲染, 尽量保证它们同时完成渲染; 并 且各显示单元之间可以按照播放时间顺序进行渲染, 有效地提高了渲染的效 率。
本发明实施例提供了一种基于云应用的离线渲染方法,其方法流程请参考 图 7, 该方法包括:
S301、 接收渲染任务请求;
5302、 根据渲染任务请求确定需要渲染的模型文件;
在某些实施方式中,步骤 S301与步骤 S302可以为: 用户触发一个自助式 渲染服务,相当于向后台递交一个离线渲染任务请求,根据该离线渲染任务请 求确定出所要渲染的模型文件, 或称场景文件;
该模型文件可以是自助式渲染或渲染农场等对应的模型文件,此处不作具 体限定。
5303、 按照模型文件中各帧的播放顺序, 将该模型文件划分为 N2个组, 其中至少有 N2-l个组中包含 Z个帧, Z大于 0且小于可用渲染节点数目; 由步骤 S301、 S302可以知道, 若所要渲染的模型文件包含 M2帧; 按照 模型文件中各帧的播放顺序,将模型文件中的 M2帧划分为 N2个组;每个组包 含若干个播放顺序相邻的帧,即每个组是按其内的帧的播放顺序进行排列的帧 的集合, 且在 N2个组中至少有 N2-l个组中包含 Z个帧。 在某些实施方式中, 可以设定渲染的模型文件中总帧数为 M2帧并将其 组, 若设定组内含有 Z个帧, 其中 Z大于 0且小于可用渲染节点数目, 则 组的个数 N2 =
其中, 该式子表示, 当 M2能被 Z整除, 则分为 N2组, 且每个组中都含 有 Z个帧; 当 M2不能被 Z整除, 则将结果中小数部分舍去, 整数部分 +1得 出分组的个数为 N2, 其中, 可以是前 N2- l个组中含有 Z个帧, 则最后一组中 有 (M2-( N2- l) x Z ) 帧。
S304、 将各组内播放顺序相同的帧组成渲染单元, 以得到 Z个渲染单元, 其中,各组中每个帧的组内播放顺序为该帧相对于其所属的组中其它帧的播放 顺序;
针对各个组, 将组内第一个播放的帧组成一个渲染单元, 同理, 将组内第 二个播放的帧组成一个渲染单元,以此类推,将组内第 Z个播放的帧组成一个 渲染单元, 这样, 以得到 Z个渲染单元。
需要说明的是,各组中每个帧的组内播放顺序为该帧相对于其所属的组中 其它帧的播放顺序;
例如: 按照模型文件中各帧的播放顺序,对于第一个组内第一个播放的帧 是模型文件全部帧的第一个播放的帧, 若该模型文件 N2个组内均含 Z个帧, 则该组内最后一个播放的帧是模型文件全部帧的第 Z个播放的帧;若对于最后 一个组内第一个播放的帧, 则是模型文件全部帧的第((N2- l ) χ Ζ+1 )个播放 的帧, 该组内最后一个播放的帧是模型文件全部帧的第 N2 x Z个播放的帧。
优选地, 在某些实施方式中, 可以认为按照各组中帧的播放先后顺序, 给 各组中的帧赋予一个帧序号;
例如: 对于各组中的第一个帧, 可以赋予帧序号 "1" , 相应的, 对于各组 中的第二个帧,可以赋予帧序号" 2" ,以此类推,对于组中的第 X个帧, x=l,2,3,...: Z, 可以赋予帧序号 "X" , 对于各组中的最后一个帧, 即第 Z个帧, 可以赋予 帧序号 "Z" ,这样就可以得到各组内播放顺序相同的帧赋予了一个相同的帧序 号。 其中,将各组内播放顺序相同的帧组成渲染单元可以是将各个组内赋予了 相同帧序号的帧组成一个渲染单元;
例如: 对于各组中赋予了帧序号 "1" 的帧组成一个渲染单元, 为便于理 解, 可以将赋予了帧序号 "1" 的帧组成的渲染单元记为渲染单元 1, 同理, 可以将赋予了帧序号 "2" 的帧组成的渲染单元记为渲染单元 2, 以此类推, 可以将赋予了帧序号 "X" 的帧组成的渲染单元记为渲染单元 X, 赋予了帧序 号 "Ζ" 的帧组成的渲染单元可记为渲染单元 Ζ, 这样就可以将各组内播放顺 序相同的帧组成渲染单元, 以得到了 Ζ个渲染单元。
例如: 按照模型文件中各帧的播放顺序,对于第一个组中的赋予了帧序号 "1" 的帧是模型文件全部帧的第一个播放的帧, 其赋予了帧序号 "Ζ" 的帧是 模型文件全部帧的第 Ζ个播放的帧, 但是对于第二个组中赋予了帧序号 "Γ 的帧是第二个组内最先播放的帧, 但该帧是模型文件全部帧的第 Z+1 个帧, 其赋予了帧序号 "Ζ" 的帧是模型文件全部帧的第 2χΖ个播放的帧; 因此, 对于第二个以及后续的第 y个组, y为大于 1且小于 N2的整数, 其组内赋予 了帧序号 "1" 的帧是模型文件全部帧的第 ((y-1 ) xZ+1 )个播放的帧, 其赋 予了帧序号 "Z" 的帧是模型文件全部帧的第 yxZ个播放的帧, 如图 8所示, 可以按照播放顺序给每个组内的帧赋予帧序号, 如图中帧内编号, 而这些帧在 整个模型文件中的顺序是下面横轴所示的编号; 由图 8所示, 可以认为, 该模 型文件中的帧是釆用交叉分解来实现渲染的。
S305、 将 Z个渲染单元分别分配给 Z个不同的渲染节点进行渲染; 可以理解的是,每个渲染单元都需要分配给一个渲染节点进行渲染, 因此 参与渲染的节点数目也是为 Z个。
优选地, 由步骤 S304可知, 可以将各组中赋予了帧序号 "1" 的帧组成的 渲染单元记为渲染单元 1, 同理, 可以将赋予了帧序号 "2" 的帧组成的渲染 单元可记为渲染单元 2, 以此类推, 赋予了帧序号 "Z" 的帧组成的渲染单元 可记为渲染单元 Z; 为便于理解, 可以将对渲染单元 1进行渲染的渲染节点记 为渲染节点 1, 同理, 可以将对渲染单元 2进行渲染的渲染节点记为渲染节点 2, 以此类推, 可以将对渲染单元 Z进行渲染的渲染节点记为渲染节点 Z。
本发明提出的基于云应用的离线渲染方法,根据需要渲染的模型文件中帧 的播放顺序,将该模型文件划分为若干个组, 进而将组内播放顺序相同的帧组 成渲染单元, 然后将各渲染单元分别分配给不同的渲染节点, 该方法可以使得 其渲染任务分解更合理,提高了渲染效率,从而缩短完成整个任务的渲染时间。
以下实施例以一个 3D动画模型文件的渲染云应用为例的应用场景, 对本 发明提出基于云应用的离线渲染方法进行具体阐述。
对模型文件来说, 可能存在各个帧的复杂度和渲染效果不同的问题, 这导 致在一段动画中各帧需要的渲染时间可能不同。以现有技术中一种离线渲染方 法进行说明, 如图 9, 为一种现有的离线渲染任务分解方式的示意图。 若支设 总共有 M2帧需要渲染, 以每 N2帧分为一片作为一个渲染单元, 其中若 M2能 被 N2整除,则可分为 Z个渲染单元,分别由 Z个渲染节点参与任务, 即 M2=Z x N2, 令 l≤x≤Z , x代表第 x个渲染单元或者第 x个渲染节点。 当所有分片 即所有渲染单元均完成渲染,则可以打包下载这些序列图片。这里渲染单元(分 片)的产生是按照帧的时间顺序逐段实现的, 并且各分片是以同等概率随机选 择渲染节点进行渲染。
需要说明的是,在该实施例中, 此处主要是以参与渲染的渲染节点数目相 实施例中, 设定渲染节点的个数为 。
若假设需要渲染的总帧数 M2为 2400, 参与渲染的节点数 Z为 24, —个 渲染单元的大小 N2为 100; 可以设定渲染节点 1渲染渲染单元 1 , 即第 1〜第 100帧, 渲染节点 2渲染渲染单元 2, 即第 101〜第 200帧, 以此类推。 由于动 画模型文件的各帧的复杂度和设置不同, 可以假设大部分帧平均需要每帧 20s 来完成, 但是第 505〜第 600帧平均每帧需要 50s来完成。 由此可推算, 渲染 节点 1可以在 2000s完成所分配的渲染单元 1的渲染任务,渲染节点 2也是可 以在 2000s完成所分配的渲染单元 2的渲染任务, 以此类推; 可是由于渲染节 点 6需要渲染第 505〜第 600帧, 需要 20x4+50x96=4880s。 这样, 完成整个动 画模型文件的渲染需要的时间为各渲染节点渲染所分配的渲染单元的最大渲 染时间, 即 4880s。 由此可以发现, 此时另外 23个渲染节点都在 2000s完成了 任务, 然后都在等待渲染节点 6, 所以延误了整个任务的完成。 如果釆用本发明提出的基于云应用的离线渲染方法, 可参照图 8。 同样对 2400帧进行渲染, 参与渲染节点为 24个, 渲染单元大小为 100。 其任务的分 解结果可以参考表二:
表二
根据表二数据可知: 第 1 25 49 73 2353 2377帧为第一个渲 染单元, 分配给渲染节点 1 ; 第 2 26 50 74 2354 2378帧为第二 个渲染单元, 分配给渲染节点 2; 以此类推。 这样渲染时间较长的第 506〜第 600帧被分散到了全部 24个渲染节点来处理。 此时, 渲染节点 1渲染的渲染 单元 1中包含第 505、 第 529、 第 553和第 577这四个复杂帧, 因此完成渲染 单元 1的总时间为 20x96+50x4=2120s; 同样地, 渲染节点 2渲染的渲染单元 2中包含第 506、 第 530、 第 554、 第 578这四个复杂帧, 总用时也是 2120s, 依此类推。 这样, 所有渲染节点都是用 2120s完成所分配的渲染单元, 整个任 务的总用时也就是 2120s, 相比于釆用现有技术中方法使用的 4880s, 渲染用 时得到大幅减少。
本发明实施例提出的基于云应用的离线渲染方法,可以使得其渲染任务分 解更合理, 提高了渲染效率, 从而缩短完成整个任务的渲染时间。
在实际应用中,在线渲染云应用中也会面临各帧渲染时间不同的问题,但 是考虑到由于邻近的连续帧之间复杂度存在较大差异的可能性较低;而且渲染 过程中的容忍时间,也是有考虑到连续帧间的复杂度可能存在的微小差异带来 的影响而设置的。 另夕卜,针对离线渲染的应用场景中,对渲染时间的假设只是用一种简单明 了的方法模拟实际情况, 而在实际情况下各帧渲染时间是连续浮动和变化的, 不会这样简单的一分为二。 不过, 这种假设是近似符合实际情况的, 可以充分 说明面临的问题。
为便于更好的实施本发明实施例的技术方案,本发明实施例还提供用于实 施上述方案的相关装置。
本发明实施例提供了一种基于云应用的离线渲染装置,其结构示意图请看 考图 10, 该装置包括:
第二接收模块 301 , 用于接收渲染任务请求;
第三确定模块 302, 用于根据渲染任务请求确定需要渲染的模型文件; 第二分解模块 303 , 用于按照模型文件中各帧的播放顺序, 将该模型文件 划分为 N2个组, 其中至少有 N2-l个组中包含 Z个帧, Z大于 0且小于可用渲 染节点数目;
第二组合模块 304, 用于将各组内播放顺序相同的帧组成渲染单元, 以得 到 Z个渲染单元,其中,各组中每个帧的组内播放顺序为该帧相对于其所属的 组中其它帧的播放顺序;
第二分配模块 305,用于将 Z个渲染单元分别分配给 Z个不同的渲染节点 进行渲染。
优选地,请参考图 11 , 本实施例提供的离线渲染装置中第二组合模块 304 可以包括:
第二赋帧序号子模块 3041 , 用于按照各组中帧的播放先后顺序, 给各组 内播放顺序相同的帧赋予一个相同的帧序号;
第二组合子模块 3042, 用于将各个组内赋予了相同帧序号的帧组成一个 渲染单元。
可以理解的是, 本实施例提供的基于云应用的离线渲染装置, 其各个功能 模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可以 参照上述方法实施例的相关描述, 此处不再赘述。
本发明实施例提出的基于云应用的离线渲染装置,可以使得其渲染任务分 解更合理, 提高了渲染效率, 从而缩短完成整个任务的渲染时间。 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可 以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存 储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述的存储 介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种基于云应用的在线渲染方法和离线渲染方法 及相关装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例 的思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书 内容不应理解为对本发明的限制。

Claims (13)

  1. 权 利 要 求
    1、 一种基于云应用的在线渲染方法, 其特征在于, 包括:
    接收渲染任务请求;
    根据所述渲染任务请求确定需要渲染的模型文件;
    按照所述模型文件中各帧的播放顺序, 将该模型文件划分为 ^个显示单 元, 所述显示单元是压缩和传输的最小单位, 其中, 每个显示单元中包含若干 个播放顺序相邻的帧, 其中至少有 Nr l个显示单元中包含 W个帧;
    将各显示单元中单元内播放顺序相同的帧组成渲染单元, 以得到 W个渲 染单元, 其中,显示单元中每个帧的单元内播放顺序为该帧相对于其所属显示 单元中其它帧的播放顺序;
    将所述 W个渲染单元分别分配给 W个不同的渲染节点进行渲染。
  2. 2、 根据权利要求 1所述的方法, 其特征在于, 所述将所述 W个渲染单元 分别分配给 W个不同的渲染节点进行渲染之前进一步包括:
    通过渲染节点的硬件配置信息和实时负载统计信息评估渲染节点渲染能 力的强弱;确定出渲染能力最强的 W个渲染节点参与所述 W个渲染单元的渲 染。
  3. 3、 根据权利要求 2所述的方法, 其特征在于, 所述将所述 W个渲染单元 分别分配给 W个不同的渲染节点进行渲染, 包括:
    将所述 W个渲染单元分别分配给所述确定出的渲染能力最强的 W个渲染 节点进行渲染,依次将所属显示单元内播放顺序较前的帧组成的渲染单元分配 给渲染能力较强的渲染节点进行渲染,将所属显示单元内播放顺序较后的帧组 成的渲染单元分配给渲染能力较弱的渲染节点进行渲染。
  4. 4、 根据权利要求 1所述的方法, 其特征在于, 所述将各显示单元中单元 内播放顺序相同的帧组成渲染单元, 包括:
    按照各显示单元中帧的播放先后顺序,给各显示单元中单元内播放顺序相 同的帧赋予一个相同的帧序号;
    将各个显示单元内赋予了相同帧序号的帧组成一个渲染单元。
    5、 根据权利要求 1至 4任一项所述的方法, 其特征在于, 所述 W满足: W≥ |[max(ti(res), t2(res), · .. ti(res), · . . tw(res)) + TcT(res, B, W, R) + Tt。i] x f| , 其中, t es) 为所分配的渲染节点 i渲染一帧需要的时间, i取值为 1到 W的整数; TCT为差值压缩和传输 W帧的总时间; Ttol为容忍时间, 所述容 忍时间为完成一个显示单元中最后一帧渲染后的等待时间和缺帧补偿时间之 和; f为帧率, 所述帧率为每秒播放的帧数; res为分辨率、 B为网速、 R为差 值编码压缩率。
  5. 6、 一种基于云应用的在线渲染装置, 其特征在于, 包括:
    第一接收模块, 用于接收渲染任务请求;
    第一确定模块, 用于根据所述渲染任务请求确定需要渲染的模型文件; 第一分解模块, 用于按照所述模型文件中各帧的播放顺序,将该模型文件 划分为 个显示单元, 所述显示单元是压缩和传输的最小单位; 其中, 每个 显示单元中包含若干个播放顺序相邻的帧, 其中至少有 Nr l个显示单元中包 含 W个帧;
    第一组合模块 ,用于将各显示单元中单元内播放顺序相同的帧组成渲染单 元以得到 W个渲染单元; 其中, 显示单元中每个帧的单元内播放顺序为该帧 相对于其所属显示单元中其它帧的播放顺序;
    第一分配模块,用于将所述 W个渲染单元分别分配给 W个不同的渲染节 点进行渲染。
  6. 7、 根据权利要求 6所述的装置, 其特征在于, 该装置还包括:
    评估模块,用于通过渲染节点的硬件配置信息和实时负载统计信息评估渲 染节点渲染能力的强弱;
    第二确定模块, 用于确定出渲染能力最强的 W个渲染节点参与所述第一 组合模块得到的 W个渲染单元的渲染。
  7. 8、 根据权利要求 7所述的装置, 其特征在于, 所述第一分配模块包括: 第一分配子模块, 用于将 W个渲染单元分别分配给所述第二确定模块确 定出的渲染能力最强的 W个渲染节点进行渲染;
    第二分配子模块,用于依次将所属显示单元内播放顺序较前的帧组成的渲 染单元分配给渲染能力较强的渲染节点进行渲染,将所属显示单元内播放顺序 较后的帧组成的渲染单元分配给渲染能力较弱的渲染节点进行渲染。
  8. 9、 根据权利要求 6所述的装置, 其特征在于, 所述第一组合模块包括: 第一赋帧序号子模块, 用于按照各显示单元中帧的播放先后顺序,给各显 示单元中单元内播放顺序相同的帧赋予一个相同的帧序号;
    第一组合子模块,用于将各个显示单元内赋予了相同帧序号的帧组成一个 渲染单元。
  9. 10、 根据权利要求 6至 9任一项所述的装置, 其特征在于, 所述 W满足:
    W≥ |[max(ti(res), t2(res), · .. ti(res), · . . tw(res)) + TcT(res, B, W, R) + Tt。i] x f| , 其中, t es)为所分配的渲染节点 i渲染一帧需要的时间, i取值为 1到 W 的整数; TCT为差值压缩和传输 W帧的总时间; Ttol为容忍时间, 所述容忍时 间为完成一个显示单元中最后一帧渲染后的等待时间和缺帧补偿时间之和; f 为帧率, 所述帧率为每秒播放的帧数; res为分辨率、 B为网速、 R为差值编 码压缩率。
  10. 11、 一种基于云应用的离线渲染方法, 其特征在于, 包括:
    接收渲染任务请求;
    根据所述渲染任务请求确定需要渲染的模型文件;
    按照所述模型文件中各帧的播放顺序, 将该模型文件划分为 N2个组, 其 中至少有 N2-l个组中包含 Z个帧, 所述 Z大于 0且小于可用渲染节点数目; 将各组内播放顺序相同的帧组成渲染单元, 以得到 Z个渲染单元, 其中, 各组中每个帧的组内播放顺序为该帧相对于其所属的组中其它帧的播放顺序; 将所述 Z个渲染单元分别分配给 Z个不同的渲染节点进行渲染。
  11. 12、 根据权利要求 11所述的方法, 其特征在于, 所述将各组内播放顺序 相同的帧组成渲染单元, 包括:
    按照各组中帧的播放先后顺序,给各组内播放顺序相同的帧赋予一个相同 的帧序号;
    将各个组内赋予了相同帧序号的帧组成一个渲染单元。
  12. 13、 一种基于云应用的离线渲染装置, 其特征在于, 包括:
    第二接收模块, 用于接收渲染任务请求;
    第三确定模块, 用于根据所述渲染任务请求确定需要渲染的模型文件; 第二分解模块, 用于按照所述模型文件中各帧的播放顺序,将该模型文件 划分为 N2个组,其中至少有 N2-l个组中包含 Z个帧,所述 Z大于 0且小于可 用渲染节点数目;
    第二组合模块, 用于将各组内播放顺序相同的帧组成渲染单元, 以得到 Z 个渲染单元, 其中, 各组中每个帧的组内播放顺序为该帧相对于其所属的组中 其它帧的播放顺序;
    第二分配模块, 用于将所述 Z个渲染单元分别分配给 Z个不同的渲染节 点进行渲染。
  13. 14、 根据权利要求 13所述的装置, 其特征在于, 所述第二组合模块包括: 第二赋帧序号子模块, 用于按照各组中帧的播放先后顺序,给各组内播放 顺序相同的帧赋予一个相同的帧序号;
    第二组合子模块,用于将各个组内赋予了相同帧序号的帧组成一个渲染单 元。
CN201180003228.0A 2011-12-31 2011-12-31 基于云应用的在线渲染方法和离线渲染方法及相关装置 Active CN103299347B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/085117 WO2013097210A1 (zh) 2011-12-31 2011-12-31 基于云应用的在线渲染方法和离线渲染方法及相关装置

Publications (2)

Publication Number Publication Date
CN103299347A true CN103299347A (zh) 2013-09-11
CN103299347B CN103299347B (zh) 2016-11-02

Family

ID=48696267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180003228.0A Active CN103299347B (zh) 2011-12-31 2011-12-31 基于云应用的在线渲染方法和离线渲染方法及相关装置

Country Status (2)

Country Link
CN (1) CN103299347B (zh)
WO (1) WO2013097210A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214978A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 滤镜效果的加速处理方法、存储介质、电子设备及系统
CN112473130A (zh) * 2020-11-26 2021-03-12 成都数字天空科技有限公司 场景渲染方法、装置、集群、存储介质及电子设备
CN112598568A (zh) * 2020-12-28 2021-04-02 航天科技控股集团股份有限公司 全液晶仪表动态渲染方法
CN116389831A (zh) * 2023-06-06 2023-07-04 湖南马栏山视频先进技术研究院有限公司 一种基于云原生的离线渲染系统及方法
CN116680086A (zh) * 2023-07-25 2023-09-01 联通沃音乐文化有限公司 一种基于离线渲染引擎的调度管理系统
CN112598568B (zh) * 2020-12-28 2024-05-31 航天科技控股集团股份有限公司 全液晶仪表动态渲染方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104740873A (zh) * 2015-04-13 2015-07-01 四川天上友嘉网络科技有限公司 游戏中的图像渲染方法
WO2021249358A1 (zh) * 2020-06-08 2021-12-16 华为技术有限公司 渲染方法、设备以及系统
CN116012506A (zh) * 2021-10-22 2023-04-25 华为技术有限公司 一种三维模型数据的处理方法、生成方法及相关装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1445664A (zh) * 2003-04-03 2003-10-01 浙江大学 计算机集群并行绘制系统中基于时空变换的负载平衡设计方法
CN101198982A (zh) * 2005-05-27 2008-06-11 Ati技术公司 抗锯齿系统及方法
CN101198988A (zh) * 2005-05-27 2008-06-11 Ati技术公司 在多个视频处理单元(vpu)的系统中的帧同步
CN101218562A (zh) * 2005-05-27 2008-07-09 Ati技术公司 向多个视频处理单元(vpu)应用非均匀属性
US7456833B1 (en) * 2005-06-15 2008-11-25 Nvidia Corporation Graphical representation of load balancing and overlap
US7522167B1 (en) * 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
CN101548277A (zh) * 2006-09-18 2009-09-30 外星人实验室公司 多并行处理器的计算机图形系统
CN102239678A (zh) * 2008-12-06 2011-11-09 国际商业机器公司 用于逼真成像工作量分布的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7656402B2 (en) * 2006-11-15 2010-02-02 Tahg, Llc Method for creating, manufacturing, and distributing three-dimensional models

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1445664A (zh) * 2003-04-03 2003-10-01 浙江大学 计算机集群并行绘制系统中基于时空变换的负载平衡设计方法
US7522167B1 (en) * 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
CN101198982A (zh) * 2005-05-27 2008-06-11 Ati技术公司 抗锯齿系统及方法
CN101198988A (zh) * 2005-05-27 2008-06-11 Ati技术公司 在多个视频处理单元(vpu)的系统中的帧同步
CN101218562A (zh) * 2005-05-27 2008-07-09 Ati技术公司 向多个视频处理单元(vpu)应用非均匀属性
US7456833B1 (en) * 2005-06-15 2008-11-25 Nvidia Corporation Graphical representation of load balancing and overlap
CN101548277A (zh) * 2006-09-18 2009-09-30 外星人实验室公司 多并行处理器的计算机图形系统
CN102239678A (zh) * 2008-12-06 2011-11-09 国际商业机器公司 用于逼真成像工作量分布的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张燕: "《基于反馈控制的集群渲染系统》", 《万方学位论文》, 6 November 2008 (2008-11-06) *
张燕等: "《基于反馈的集群渲染调度》", 《电脑知识与技术》, vol. 1, no. 1, 14 May 2008 (2008-05-14), pages 124 - 133 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214978A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 滤镜效果的加速处理方法、存储介质、电子设备及系统
CN112473130A (zh) * 2020-11-26 2021-03-12 成都数字天空科技有限公司 场景渲染方法、装置、集群、存储介质及电子设备
CN112598568A (zh) * 2020-12-28 2021-04-02 航天科技控股集团股份有限公司 全液晶仪表动态渲染方法
CN112598568B (zh) * 2020-12-28 2024-05-31 航天科技控股集团股份有限公司 全液晶仪表动态渲染方法
CN116389831A (zh) * 2023-06-06 2023-07-04 湖南马栏山视频先进技术研究院有限公司 一种基于云原生的离线渲染系统及方法
CN116389831B (zh) * 2023-06-06 2023-08-15 湖南马栏山视频先进技术研究院有限公司 一种基于云原生的离线渲染系统及方法
CN116680086A (zh) * 2023-07-25 2023-09-01 联通沃音乐文化有限公司 一种基于离线渲染引擎的调度管理系统
CN116680086B (zh) * 2023-07-25 2024-04-02 联通沃音乐文化有限公司 一种基于离线渲染引擎的调度管理系统

Also Published As

Publication number Publication date
CN103299347B (zh) 2016-11-02
WO2013097210A1 (zh) 2013-07-04

Similar Documents

Publication Publication Date Title
CN103299347A (zh) 基于云应用的在线渲染方法和离线渲染方法及相关装置
DE60021745T2 (de) Datenkompression
KR101523861B1 (ko) 범용 프로세서와 그래픽 프로세서 사이의 부하 분산
US8698813B2 (en) Rendering control apparatus, control method thereof, recording medium, rendering server, and rendering system
WO2022048097A1 (zh) 一种基于多显卡的单帧画面实时渲染方法
CN105992020A (zh) 一种分配视频转换资源的方法及系统
CN110856011B (zh) 一种分组进行直播互动的方法、电子设备及存储介质
CN103874991A (zh) 众包视频渲染系统
CN113157418B (zh) 服务器资源分配方法和装置、存储介质及电子设备
CN110009233B (zh) 群智感知中基于博弈论的任务分配方法
US20230367639A1 (en) Maintaining distribution of processing time for multi-tenant implementation of graphics processing unit
CN107920108A (zh) 一种媒体资源的推送方法、客户端及服务器
CN111310744A (zh) 图像识别方法、视频播放方法、相关设备及介质
CN114968521A (zh) 分布式渲染方法及设备
CN110351569A (zh) 一种直播内容处理方法、装置、设备及介质
EP1266295B1 (en) Image processing apparatus and method
CN109448092B (zh) 一种基于动态任务粒度的负载均衡集群渲染方法
CN116983617A (zh) 跨集群资源调度方法、计算机装置及存储介质
Boukerche et al. Scheduling and buffering mechanisms for remote rendering streaming in virtual walkthrough class of applications
Sun Research on latency problems and solutions in cloud game
Morillo et al. On the characterization of avatars in Distributed Virtual Worlds.
Lai et al. A QoS aware resource allocation strategy for mobile graphics rendering with cloud support
JP6389408B2 (ja) プログラム、提供システム、及び制御方法
JP5836746B2 (ja) 表示端末
CN113946373B (zh) 一种基于负载均衡的虚拟现实多个视频流渲染方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220215

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.