CN111738935A - 残影渲染方法和装置、存储介质和电子装置 - Google Patents
残影渲染方法和装置、存储介质和电子装置 Download PDFInfo
- Publication number
- CN111738935A CN111738935A CN202010415043.1A CN202010415043A CN111738935A CN 111738935 A CN111738935 A CN 111738935A CN 202010415043 A CN202010415043 A CN 202010415043A CN 111738935 A CN111738935 A CN 111738935A
- Authority
- CN
- China
- Prior art keywords
- target
- animation
- pose information
- model
- ghost
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 88
- 206010047571 Visual impairment Diseases 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 23
- 210000000988 bone and bone Anatomy 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 abstract description 21
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000000875 corresponding effect Effects 0.000 description 51
- 239000011159 matrix material Substances 0.000 description 16
- 230000000694 effects Effects 0.000 description 15
- 230000009466 transformation Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 210000000887 face Anatomy 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种残影渲染方法和装置、存储介质和电子装置。其中,该方法包括:获取目标动画中待进行残影渲染的目标对象;获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧。本申请解决了相关技术中的残影生成方式存在由于蒙皮计算效率低导致的动画创建设备运行速度缓慢的问题。
Description
技术领域
本申请涉及互联网领域,具体而言,涉及一种残影渲染方法和装置、存储介质和电子装置。
背景技术
为提高画面的表现力,可以在动画中使用残影效果来渲染画面中动态对象的运动轨迹。残影是指在进行画面切换时,前一帧画面中的动态对象不会立刻消失,视觉效果与后一帧画面中的动态对象同时出现,并且会慢慢消失,表现出在动态对象的运动路径上跟随着动态物体的一列该动态对象的虚化影像。
相关技术中,一般采用以下方式实现残影效果:
方式一:利用蒙皮网格渲染器(SkinnedMeshRenderer)中提供的烘焙网格(BakeMesh)方法,在运行时烘焙出当前动画帧的静态网格,即,将某一时刻变形后的网格数据进行存储,以用于之后残影的渲染。
上述方式实现比较简单,残影是作为静态网格进行渲染的,没有蒙皮计算的消耗和骨架矩阵更新的计算;并且,由于是直接烘焙动画帧的最终网格,所以支持动画系统中的动作混合功能。
然而,由于BakeMesh方法是在CPU(Central Processing Unit,中央处理器)上进行的蒙皮计算,效率较低;而且,由于每次烘焙网格是都要动态填充顶点缓冲(VertexBuffer)和索引缓冲(IndexBuffer),会导致GPU(Graphics Processing Unit,图形处理器)等待CPU的情况下,从而进一步降低运行速度。
方式二:将需要产生残影的动画片段的所有动画帧数据存储到一张纹理里面,然后在VS(Vertex Shader,顶点着色器)中根据记录的残影动画的帧号从这张纹理里面取出对应动画帧的骨骼变换矩阵信息进行蒙皮计算,其中,动画帧数据指的是播放骨骼动画时,某个时刻的所有骨骼的存储旋转平移位姿数据的矩阵的集合,纹理相当于一个二维数组,通过行索引值和列索引值可以唯一确定一个浮点数。
然而,上述方式需要对待产生残影的动画片段进行预处理,大大降低了灵活性;同时,动画数据存储到纹理中会产生数据冗余,还会使得工作流程变得复杂;并且,在VS中进行纹理采样效率低下,降低了运行效率;此外,由于将动画预先存储到纹理中,使得动画系统的动作融合功能难以发挥作用。
可见,相关技术中的残影生成方式,存在由于蒙皮计算效率低导致的动画创建设备运行速度缓慢的问题。
发明内容
本申请实施例提供了一种残影渲染方法和装置、存储介质和电子装置,以至少解决相关技术中的残影生成方式存在由于蒙皮计算效率低导致的动画创建设备运行速度缓慢的问题。
根据本申请实施例的一个方面,提供了一种残影渲染方法,包括:获取目标动画中待进行残影渲染的目标对象;获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧。
根据本申请实施例的另一个方面,提供了一种残影渲染装置,包括:第一获取单元,用于获取目标动画中待进行残影渲染的目标对象;第二获取单元,用于获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;处理单元,用于基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;渲染单元,用于使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请实施例的又一个方面,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在本申请实施例中,获取目标动画中待进行残影渲染的目标对象;获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧,对残影模型进行蒙皮处理使用的是参考位姿信息,即,在参考动画帧中,目标对象骨架的位姿信息,由于存储骨架的位姿消耗的时间微乎其微,可以减少获取蒙皮处理所需数据的时间,实现了缩短蒙皮处理所需时间,提高蒙皮计算效率的目的,从而达到了提升动画创建设备的运行速度的技术效果,进而解决了相关技术中的残影生成方式存在由于蒙皮计算效率低导致的动画创建设备运行速度缓慢的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的残影渲染方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的残影渲染方法的流程图;
图3是根据本申请实施例的另一种可选的残影渲染方法的流程图;
图4是根据本申请实施例的一种可选的残影渲染方法的示意图;
图5是根据本申请实施例的一种可选的残影渲染装置的示意图;以及
图6是根据本申请实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一方面,提供了一种残影渲染方法的方法实施例。可选地,在本实施例中,上述残影渲染方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器102通过网络与终端101连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC(Personal Computer,个人计算机)、手机、平板电脑等。本申请实施例的残影渲染方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的残影渲染方法也可以是由安装在其上的客户端来执行。
可选地,本申请实施例中提供了一种残影渲染方法,图2是根据本申请实施例的一种可选的残影渲染方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,获取目标动画中待进行残影渲染的目标对象;
步骤S204,获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;
步骤S206,基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;
步骤S208,使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧。
通过上述步骤S202至步骤S208,通过获取目标动画中待进行残影渲染的目标对象;获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧,解决了相关技术中的残影生成方式存在由于蒙皮计算效率低导致的动画创建设备运行速度缓慢的问题,缩短了蒙皮处理所需时间,提高了蒙皮计算效率,提升了动画创建设备的运行速度。
在步骤S202提供的技术方案中,获取目标动画中待进行残影渲染的目标对象。
目标动画的创建可以是由动画系统执行的,使用该动画系统可以进行多种类型的动画互动内容的创建,例如,三维视频游戏、建筑可视化、实时三维动画等。该动画系统可以布设在安装有该动画系统对应的客户端的动画创建设备上,也可以布设在该动画创建设备和该动画系统的后台服务器上。执行本申请实施例的残影渲染方法的设备可以是上述动画创建设备,或者,上述动画创建设备和后台服务器。
当动画创建设备的处理能力足够时,目标动画可以由动画创建设备进行创建,当动画创建设备的处理能力有限时,可以由该动画创建设备和该动画系统的后台服务器共同进行创建。动画创建设备可以与后台服务器之间进行通信网络,通过与后台服务器之间的交互进行游戏动画的创建。该动画创建设备可以是该一种处理设备,例如,终端设备,也可以是其他类型的能够进行动画创建的设备。
例如,动画创建设备上可以运行有Unity3D,Unity3D是一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。玩家或者其他人员可以使用Unity3D开展与游戏动画相关的多种业务等,例如,游戏动画创建等。
本实施例中所提供的残影渲染方法可以适用于多种场景,例如,游戏开发人员进行动画创建,测试人员进行游戏产品测试,用户使用发布的游戏客户端进行游戏操作,或者,其他需要进行游戏动画创建的场景。
对于游戏场景,目标动画的场景中可以包含多个对象,对于其中的部分对象,可以是运动对象(例如,NPC,玩家,道具等),基于所模拟的对象运动,或者,模拟技能所产生的技能效果等,需要对其进行残影渲染。同一场景中可能有多个物体需要进行残影的渲染,不同物体在进行残影渲染时所采用的方法可以均为本申请实施例中所提供的残影渲染方法,区别可以在于:残影个数,对象骨骼等。
需要说明的是,本申请实施例中以游戏开发的过程中,创建目标动画中的目标对象为例对上述残影渲染方法进行说明,该目标对象为游戏场景中需要进行残影渲染的一个或多个对象中的任意一个,对于其他场景,例如,前述游戏测试场景,本实施例中的残影渲染方法均可适用。
在进行游戏开发的过程中,游戏开发人员可以通过终端设备上运行的客户端(游戏开发客户端,例如,Unity)进行游戏场景中目标对象的对象参数(例如,形态特征等)和运动参数(例如,运动方向,运动速度,是否渲染阴影,阴影的个数等)等的配置,得到该目标对象的配置信息。
终端设备可以根据配置信息,通过运行的动画系统进行目标动画的创建。在目标动画创建的过程中,可以按照一定周期将与当前动画场景对应的动画帧进行保存,还可以输出到终端设备的显示界面(例如,显示屏)上进行显示。
对于需要进行残影渲染的目标对象,在每次残影渲染时,可以获取目标动画中待进行残影渲染的目标对象,获取的信息可以包括但不限于以下信息:对象特征信息,运动特征信息等。
在步骤S204提供的技术方案中,获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息。
在每次进行烘焙残影操作时,可以不用BakeMesh方法存储网格,而是将当前动画帧的每根骨骼(例如,人物模型的骨骼)的位姿存储下来,例如,以线性表的方式存储在计算机(终端设备)的内存中。
烘焙残影的时机可以是:当开启残影效果后每隔一段用户指定的时间间隔进行一次残影的烘焙操作。烘焙残影是指:记录当前时刻人物模型的渲染用的数据,对于BakeMesh的方案,存储的是模型的顶点坐标数据和顶点索引数据,对于本申请实施例中所提供的残影渲染方法,存储的是人物模型的每根骨骼的世界变换矩阵数据。
由于存储的骨架位姿是动画系统输出的最终结果,所以动画系统的动作混合功能完全不受影响。
残影是指:当眼睛捕获移动事物的速度不及事物自身的移动速度时,因为视觉暂留的影响,眼睛能看见事物之前位置的影像。为保证游戏的运行过程中的残影渲染符合上述规律,对目标对象进行残影渲染所使用的是当前时刻之前、且包含目标对象的一个或多个参考动画帧。每个参考动画帧中,目标对象的对象骨骼的位姿可以以线性表的方式存储到内存中。
在此次残影渲染时,可以从内存中(也可以是其他的数据存储部件)中获取预先存储的、与参考动画帧对应的参考位姿信息。
需要说明的是,在本实施例中,位姿是一种数据的存储方式,可以使用一张格式为R32G32B32A32_Float的纹理(RGBA)存储位姿数据,这里的位姿数据是指每根骨骼的变换矩阵,即,每根骨骼的变换矩阵表示的是相对于世界空间的绝对变换矩阵,不是相对于父骨骼的变换矩阵。骨骼变换矩阵一般来说是一个4x4的方阵,但是,由于第4行是固定的(0,0,0,1)所以在数据存储时只存储前三行,这三行就对应着位姿图中的三个像素(每个像素可以保存四个浮点数)。
每一帧的动作数据包含骨架中的所有骨骼的变换矩阵,位姿图中的一行或若干行像素(与骨骼的数量和位姿图的分辨率相关)就可以用来存储一帧的所有骨骼的变换矩阵数据,其他帧的变换矩阵数据也是依次存储在位姿图中的。
在步骤S206提供的技术方案中,基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型。
为了进行残影渲染,场景中的每个需要残影渲染的对象可以对应的创建一个或多个残影对象,残影对象可以是基于残影模型构建的。不同的对象,其对应的残影模型可以使不同的。不同对象的模型可以对应与不同的对象类。
与目标对象匹配的残影模型(残影对象模型)可以是第一残影模型。对于第一残影对象,可以基于参考位姿信息(即,参考世界变换矩阵)调整与残影模型对应的对象骨骼的位姿,从而得到该参考动画帧中的目标对象所对应的残影,也就是,基于参考世界变换矩阵和与第一残影模型对应的骨骼变换矩阵,将第一残影模型的位姿调整为与在参考动画帧中的目标对象的对象骨骼的位姿相同。
对于骨骼位姿调整之后的第一残影模型,可以对其进行蒙皮计算,得到目标残影对象,该目标残影对象可以用于对目标对象进行残影渲染。
在步骤S208提供的技术方案中,使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧。
在得到目标残影对象之后,可以使用该目标残影对象对目标对象进行残影渲染,得到残影渲染后的目标对象,进而生成目标动画中的目标动画帧,也就是,当前动画帧。
生成目标动画中的目标动画帧可以进行存储,还可以输出到客户端上进行显示,使用目标残影对象进行残影渲染以及生成目标动画帧的方式可以参考相关技术,本实施例中对此不作具体限定。
需要说明的是,进行残影渲染也可以是基于动画帧进行的,也就是,先基于动画场景输出一个动画帧,然后对该动画帧包含的目标对象进行残影渲染,使用的是参考位姿信息,所采用的方式与前述类似,已经进行过说明的,在此不做赘述。
作为一种可选的实施例,获取与参考动画帧对应的参考位姿信息包括:在目标对象的最大残影个数为目标个数的情况下,获取与多个参考动画帧对应的多个参考位姿信息,其中,多个参考动画帧的个数小于或者等于目标个数。
为保证在游戏的运行过程中渲染的残影符合残影的产生规律,用户可以指定最大残影个数,也就是,目标个数,以避免由于残影过多导致不真实的观感。
在目标对象的最大残影个数为目标个数的情况下,可以获取当前动画帧之前的n个参考动画帧所对应的位姿信息,n最大为上述目标个数。对于一个对象,其对应的参考动画帧和参考位置信息可以一一对应,也就是,在一个动画帧中,某一对象的位姿为可以为一个。
例如,最大残影个数为10,当前游戏动画之前仅生成了7个动画帧,则可以获取与7个参考动画帧对应的7个参考位姿信息。
通过本实施例,通过设置目标对象的最大残影个数,可以保证残影渲染后的目标对象符合视觉上的残影效果,并且,由于处理的位姿信息最多为目标个数,也可以减轻设备的运行负担。
可选地,在本实施例中,在生成目标动画中的目标动画帧之后,可以获取目标位姿信息,其中,目标位姿信息为在目标动画帧中,目标对象的对象骨骼的位姿信息。
作为一种可选的实施例,基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象包括:基于参考位姿信息通过处理设备的图形处理器对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象。
相关技术中,可以利用light mapping(光照贴图技术)来烘焙物体,这是一种增强场景光照效果的技术,当把物体放进场景中,引擎就会计算光线,光线照到物体表面形成反光和阴影。在游戏运行时,反光和阴影都是由显卡和CPU(中央处理器)计算出来的。
可选地,在本实施例中,每次残影渲染时,利用记录的位姿在GPU上进行蒙皮计算。例如,基于参考位姿信息,处理设备(即,终端设备)可以通过其图形处理器(GPU)对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象。
通过本实施例,利用记录的位姿在GPU上进行蒙皮计算,在GPU上进行蒙皮效率较高,可以进一步提高残影渲染效率。
作为一种可选的实施例,在基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象之前,可以获取多个LOD模型,其中,多个LOD模型中的每个LOD模型包含有不同数量的三角面;将多个LOD模型中的目标LOD模型,确定为第一残影模型,其中,目标LOD模型为多个LOD模型中包含的三角面的数量最少的LOD模型。
残影对象渲染时使用的可以是带有蒙皮信息的三角网格模型。残影对象有自己的生命周期,对于当前动画帧,只有在自己的生命周期内的残影对象才会被渲染。
由于残影本身的显示时间较短,模型细节不明显,使用高精度的模型渲染没有必要,因此,用于残影渲染的模型可以是三角形数较少的模型。LOD(Levels of Detail,细节层次)模型中含有多个不同精度图像,上述精度是指:顶点和三角面的数量。三角面越少,模型越模糊,精度越低,渲染消耗越少。用于残影渲染的模型可以是:多个LOD模型中三角面的数量最少的LOD模型。
需要说明的是,蒙皮是指在三维软件中创建的模型基础上,为模型添加骨骼。由于骨骼与模型是相互独立的,为了让骨骼驱动模型产生合理的运动,把模型绑定到骨骼上的技术叫做蒙皮。
为了获取用于残影渲染的模型,可以获取多个LOD模型,每个LOD模型包含有一定数量的三角面,不同的LOD模型,其精度不同,所包含的三角面的数量也不相同。
对于多个LOD模型,可以从中选取出包含的三角面的数量最少的LOD模型(即,目标LOD模型),作为用于残影渲染的模型(即,第一残影模型)。
在选取出目标LOD模型之后,可以基于参考位姿信息,可以确定目标LOD模型中的蒙皮网格的网格顶点的顶点坐标信息。根据顶点坐标信息,可以对目标LOD模型的对象骨骼进行蒙皮处理,即,将目标LOD模型绑定到具有参考位姿信息的对象骨骼上,得到目标残影对象。
基于对象骨骼的位姿信息确定蒙皮网格的网格顶点的顶点坐标信息的方式可以参考相关技术,本实施例中对此不作具体限定。
通过本实施例,选取包含的三角面的数量最少的LOD模型用于残影渲染,可以在保证残影的视觉显示效果的同时,减少处理的数据量,提高设备运行速度。
为了保证目标动画帧之后可以对目标对象进行残影渲染,可以记录在目标动画帧中,目标对象的对象骨骼的位姿信息,即,目标位姿信息,并以线性表的形式进行存储,例如,计算机的内存中。
作为一种可选的实施方式,在多个参考动画帧的个数小于目标个数的情况下,创建用于存储目标位姿信息的初始线性表;将目标位姿信息存储到初始线性表,得到目标线性表。
在多个参考动画帧的个数小于目标个数的情况下,当前已存储的参考位姿信息的线性表的数量小于目标个数;或者,也可以使用同一线性表存储多个参考位姿信息,则该线性表中已存储的参考位姿信息的数量小于目标个数。
可以将该目标位姿信息存储到新的线性表(初始线性表)中,或者,将该目标位姿信息存储到线性表中未被使用的区域内。
需要说明的是,创建初始线性表的实际可以是在获取目标位姿信息之后,也可以是在获取目标位姿信息之前,具体的创建时机可以根据需要设定,本实施例中对此不作具体限定。
作为一种可选的实施方式,在获取目标位姿信息之后,在多个参考动画帧的个数等于目标个数的情况下,可以使用目标位姿信息更新第一线性表,得到存储有目标位姿信息的第二线性表,其中,第一线性表中存储有与生成时间最早的参考动画帧对应的参考位姿信息。
在多个参考动画帧的个数为目标个数的情况下,当前已存储的参考位姿信息的线性表的数量为目标个数;或者,该线性表中已存储的参考位姿信息的数量为目标个数。
可以将该目标位姿信息存储到目标线性表,也就是,存储有生成时间最早的参考动画帧对应的参考位姿信息的线性表;或者,也可以将该目标位姿信息存储到线性表中的目标区域,该目标区域中存储有生成时间最早的参考动画帧对应的参考位姿信息;或者,还可以将该目标位姿信息存储到线性表中未被使用的区域内,并删除生成时间最早的参考动画帧对应的参考位姿信息。
通过本实施例,通过获取目标动画帧中目标对象的对象骨骼的位姿信息,并将其保存到线性表中,可以保证目标对象残影渲染的准确性。
作为一种可选的实施例,在获取目标动画中待进行残影渲染的目标对象之前,可以复制目标对象的目标对象模型,得到第二残影模型,其中,第二残影模型中包含多个节点;获取与第二残影模型对应的移除指示信息,其中,移除指示信息用于指示移除多个节点中除了目标节点外的其他节点,目标节点包括与第二残影模型的对象骨骼对应的骨骼节点;将其他节点从第二残影模型中移除,得到参考残影模型,其中,参考残影模型用于通过被复制得到第一残影模型。
在初始化时,可以根据用户指定的最大残影个数来预先实例化出对应个数的需要产生残影的GameObject实例。
上述初始化是在在游戏程序刚启动时或者是为一个模型添加残影渲染效果时进行的。初始化的是用于管理和实现残影渲染效果的功能模块。
根据用户指定的最大残影个数N,需要预先创建出N个用于存储当前模型所有骨骼变换矩阵数据的数组。由于最大残影个数在运行时不会发生变化,所以,这N个数组只需要在初始化的时候创建一次,运行时直接对这些数组进行数据填充即可。
然而,由于场景中可能有多个物体需要进行残影的渲染,每个物体的最大残影个数可能比较大,如果同时进行骨骼变换矩阵数组的创建就会造成卡顿,这与需要产生残影的物体的个数和最大残影个数正相关。
然而,由于仅仅是在初始化时进行一次创建操作,这个过程需要消耗的时间比较长,在初始化时容易出现卡顿的问题
可选地,在本实施例中,针对实例化残影对象的时间较长的问题,可以利用协程将创建消耗分摊到多帧之中,以消除初始化时的卡顿问题。
创建第一个残影对象时是直接克隆目标对象(需要使用残影效果的游戏物体对象)的原始GameObject:复制目标对象的目标对象模型,得到第二残影模型,其中,第二残影模型中包含多个节点。
由于游戏场景中只有人物的骨骼动画模型使用的骨架节点和人物身上的武器装备节点才会有残影效果,对于一些非必要节点,比如,一些特效节点和单纯用于执行游戏逻辑的节点,可以尽量减少此类节点。即,在创建残影对象时应该尽可能地减少残影对象中的节点个数,如,特效节点、脚本组件等与残影不相关的对象都应销毁从而减少运行时消耗。
可选地,在本实施例中,可以获取与第二残影模型对应的移除指示信息,其中,移除指示信息用于指示移除多个节点中除了目标节点外的其他节点,目标节点包括与第二残影模型的对象骨骼对应的骨骼节点。上述移出指示信息可以是由终端设备检测到用户的输入信息生成的(动画创建设备为终端设备),也可以是其他设备处接收到的(动画创建设备为后台服务器)。
目标节点为残影对象的必要节点,例如,骨架节点、目标对象所装备的道具对象等。而其他节点为残影对象的非必要节点,例如,一些特效节点和单纯用于执行游戏逻辑的节点等。
根据移除指示信息,终端设备可以将其他节点从第二残影模型中移除,得到参考残影模型。该参考残影模型可以是目标对象的第一个残影对象模型,而其余的残影对象可以都是克隆的第一个残影对象,这样可以减少一部分模型节点处理逻辑的冗余计算,提高了实例化的效率。
通过本实施例,通过移出目标对象模型中不必要的节点,并通过克隆的方式得到多个对象模型,可以减少一部分模型节点处理逻辑的冗余计算,提高了实例化的效率。
下面结合可选示例对本申请实施例中的残影渲染方法进行说明。本示例中的残影渲染方法应用有游戏场景,使用的是Unity。
如图3所示,本示例中的残影渲染方法的流程可以包括如下步骤:
步骤S302,在对当前动画帧进行残影渲染时,根据设定的最大残影个数N,获取当前动画帧之前的N个动画帧所对应的位姿信息。
步骤S304,利用该位姿信息,在GPU中对各个动画帧中所包含的骨骼进行蒙皮处理,得到残影渲染后的动画帧,残影渲染后的动画帧可以如图4所示。
通过本示例,由于存储骨架的位姿消耗的时间微乎其微,而在GPU上进行蒙皮效率也是很高的,可以提高残影渲染的效率;并且,由于存储的骨架位姿是动画系统输出的最终结果,所以动画系统的动作混合功能完全不受影响。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述残影渲染方法的残影渲染装置。该装置可以应用于上述动画创建设备。图5是根据本申请实施例的一种可选的残影渲染装置的示意图,如图5所示,该装置可以包括:
(1)第一获取单元52,用于获取目标动画中待进行残影渲染的目标对象;
(2)第二获取单元54,与第一获取单元52相连,用于获取与参考动画帧对应的参考位姿信息,其中,所述参考动画帧为生成时间位于当前时刻之前、且包含所述目标对象的动画帧,所述参考位姿信息为在所述参考动画帧中,所述目标对象的对象骨骼的位姿信息;
(3)处理单元56,与第二获取单元54相连,用于基于所述参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,所述第一残影模型为与所述目标对象匹配的残影模型;
(4)渲染单元58,与处理单元56相连,用于使用所述目标残影对象对所述目标对象进行残影渲染,生成所述目标动画中的目标动画帧。
需要说明的是,该实施例中的第一获取单元52可以用于执行本申请实施例中的步骤S202,该实施例中的第二获取单元54可以用于执行本申请实施例中的步骤S204,该实施例中的处理单元56可以用于执行本申请实施例中的步骤S206,该实施例中的渲染单元58可以用于执行本申请实施例中的步骤S208。
通过上述模块,通过获取目标动画中待进行残影渲染的目标对象;获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧,解决了相关技术中的残影生成方式存在由于蒙皮计算效率低导致的动画创建设备运行速度缓慢的问题,缩短了蒙皮处理所需时间,提高了蒙皮计算效率,提升了动画创建设备的运行速度。
作为一种可选的实施例,第二获取单元54包括:
(1)获取模块,用于在目标对象的最大残影个数为目标个数的情况下,获取与多个参考动画帧对应的多个参考位姿信息,其中,多个参考动画帧的个数小于或者等于目标个数。
作为一种可选的实施例,上述装置还包括:
(1)第三获取单元,用于在生成目标动画中的目标动画帧之后,获取目标位姿信息,其中,目标位姿信息为在目标动画帧中,目标对象的对象骨骼的位姿信息;
(2)创建单元,用于在多个参考动画帧的个数小于目标个数的情况下,创建用于存储目标位姿信息的初始线性表;
(3)存储单元,用于将目标位姿信息存储到初始线性表,得到目标线性表。
作为一种可选的实施例,上述装置还包括:
(1)更新单元,用于在获取目标位姿信息之后,在多个参考动画帧的个数等于目标个数的情况下,使用目标位姿信息更新第一线性表,得到存储有目标位姿信息的第二线性表,其中,第一线性表中存储有与生成时间最早的参考动画帧对应的参考位姿信息。
作为一种可选的实施例,上述装置还包括:
(1)复制单元,用于在获取目标动画中待进行残影渲染的目标对象之前,复制目标对象的目标对象模型,得到第二残影模型,其中,第二残影模型中包含多个节点;
(2)第四获取单元,用于获取与第二残影模型对应的移除指示信息,其中,移除指示信息用于指示移除多个节点中除了目标节点外的其他节点,目标节点包括与第二残影模型的对象骨骼对应的骨骼节点;
(3)移除单元,用于将其他节点从第二残影模型中移除,得到参考残影模型,其中,参考残影模型用于通过被复制得到第一残影模型。
作为一种可选的实施例,处理单元56包括:
(1)处理模块,用于基于参考位姿信息通过处理设备的图形处理器对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象。
作为一种可选的实施例,上述装置还包括:
(1)第五获取单元,用于在基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象之前,获取多个LOD模型,其中,多个LOD模型中的每个LOD模型包含有不同数量的三角面;
(2)确定单元,用于将多个LOD模型中的目标LOD模型,确定为第一残影模型,其中,目标LOD模型为多个LOD模型中包含的三角面的数量最少的LOD模型。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述残影渲染方法的电子装置,该电子装置可以是服务器或终端。
图6是根据本申请实施例的一种电子装置的结构框图,如图6所示,该电子装置可以包括:一个或多个(图中仅示出一个)处理器601、存储器603、以及传输装置605,如图6所示,该电子装置还可以包括输入输出设备607。
其中,存储器603可用于存储软件程序以及模块,如本申请实施例中的残影渲染方法和装置对应的程序指令/模块,处理器601通过运行存储在存储器603内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的残影渲染方法。存储器603可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器603可进一步包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置605用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置605包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置605为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。其中,具体地,存储器603用于存储应用程序。
处理器601可以通过传输装置605调用存储器603存储的应用程序,以执行下述步骤:
S1,获取目标动画中待进行残影渲染的目标对象;
S2,获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;
S3,基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;
S4,使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧。
采用本申请实施例,提供了一种残影渲染的方案。通过获取目标动画中待进行残影渲染的目标对象;获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧,解决了相关技术中的残影生成方式存在由于蒙皮计算效率低导致的动画创建设备运行速度缓慢的问题,缩短了蒙皮处理所需时间,提高了蒙皮计算效率,提升了动画创建设备的运行速度。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图6所示的结构仅为示意,并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示的不同的配置。与电子装置通过网络交互的终端可以是智能手机(如,Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行残影渲染方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取目标动画中待进行残影渲染的目标对象;
S2,获取与参考动画帧对应的参考位姿信息,其中,参考动画帧为生成时间位于当前时刻之前、且包含目标对象的动画帧,参考位姿信息为在参考动画帧中,目标对象的对象骨骼的位姿信息;
S3,基于参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,第一残影模型为与目标对象匹配的残影模型;
S4,使用目标残影对象对目标对象进行残影渲染,生成目标动画中的目标动画帧。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
这里所寻求保护的主题的范围在所附权利要求中进行限定。本发明实施例中还包括在下列编号条款中规定的这些和其他方面:
1.一种残影渲染方法,包括:
获取目标动画中待进行残影渲染的目标对象;
获取与参考动画帧对应的参考位姿信息,其中,所述参考动画帧为生成时间位于当前时刻之前、且包含所述目标对象的动画帧,所述参考位姿信息为在所述参考动画帧中,所述目标对象的对象骨骼的位姿信息;
基于所述参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,所述第一残影模型为与所述目标对象匹配的残影模型;
使用所述目标残影对象对所述目标对象进行残影渲染,生成所述目标动画中的目标动画帧。
2.根据条款1所述的方法,其中,获取与所述参考动画帧对应的所述参考位姿信息包括:
在所述目标对象的最大残影个数为目标个数的情况下,获取与多个所述参考动画帧对应的多个所述参考位姿信息,其中,多个所述参考动画帧的个数小于或者等于所述目标个数。
3.根据条款2所述的方法,其中,在生成所述目标动画中的所述目标动画帧之后,所述方法还包括:
获取目标位姿信息,其中,所述目标位姿信息为在所述目标动画帧中,所述目标对象的对象骨骼的位姿信息;
在多个所述参考动画帧的个数小于所述目标个数的情况下,创建用于存储所述目标位姿信息的初始线性表;
将所述目标位姿信息存储到所述初始线性表,得到目标线性表。
4.根据条款3所述的方法,其中,在获取所述目标位姿信息之后,所述方法还包括:
在多个所述参考动画帧的个数等于所述目标个数的情况下,使用所述目标位姿信息更新第一线性表,得到存储有所述目标位姿信息的第二线性表,其中,所述第一线性表中存储有与生成时间最早的所述参考动画帧对应的所述参考位姿信息。
5.根据条款1所述的方法,其中,在获取所述目标动画中待进行残影渲染的所述目标对象之前,所述方法还包括:
复制所述目标对象的目标对象模型,得到第二残影模型,其中,所述第二残影模型中包含多个节点;
获取与所述第二残影模型对应的移除指示信息,其中,所述移除指示信息用于指示移除所述多个节点中除了目标节点外的其他节点,所述目标节点包括与所述第二残影模型的对象骨骼对应的骨骼节点;
将所述其他节点从所述第二残影模型中移除,得到参考残影模型,其中,所述参考残影模型用于通过被复制得到所述第一残影模型。
6.根据条款1所述的方法,其中,基于所述参考位姿信息对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象包括:
基于所述参考位姿信息通过处理设备的图形处理器对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象。
7.根据条款1至6中任一项所述的方法,其中,在基于所述参考位姿信息对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象之前,所述方法包括:
获取多个细节层次LOD模型,其中,所述多个LOD模型中的每个LOD模型包含有不同数量的三角面;
将所述多个LOD模型中的目标LOD模型,确定为所述第一残影模型,其中,所述目标LOD模型为所述多个LOD模型中包含的三角面的数量最少的LOD模型。
8.一种残影渲染装置,包括:
第一获取单元,用于获取目标动画中待进行残影渲染的目标对象;
第二获取单元,用于获取与参考动画帧对应的参考位姿信息,其中,所述参考动画帧为生成时间位于当前时刻之前、且包含所述目标对象的动画帧,所述参考位姿信息为在所述参考动画帧中,所述目标对象的对象骨骼的位姿信息;
处理单元,用于基于所述参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,所述第一残影模型为与所述目标对象匹配的残影模型;
渲染单元,用于使用所述目标残影对象对所述目标对象进行残影渲染,生成所述目标动画中的目标动画帧。
9.根据条款8所述的装置,其中,所述第二获取单元包括:
获取模块,用于在所述目标对象的最大残影个数为目标个数的情况下,获取与多个所述参考动画帧对应的多个所述参考位姿信息,其中,多个所述参考动画帧的个数小于或者等于所述目标个数。
10.根据条款9所述的装置,其中,所述装置还包括:
第三获取单元,用于在生成所述目标动画中的所述目标动画帧之后,获取目标位姿信息,其中,所述目标位姿信息为在所述目标动画帧中,所述目标对象的对象骨骼的位姿信息;
创建单元,用于在多个所述参考动画帧的个数小于所述目标个数的情况下,创建用于存储所述目标位姿信息的初始线性表;
存储单元,用于将所述目标位姿信息存储到所述初始线性表,得到目标线性表。
11.根据条款10所述的装置,其中,所述装置还包括:
更新单元,用于在获取所述目标位姿信息之后,在多个所述参考动画帧的个数等于所述目标个数的情况下,使用所述目标位姿信息更新第一线性表,得到存储有所述目标位姿信息的第二线性表,其中,所述第一线性表中存储有与生成时间最早的所述参考动画帧对应的所述参考位姿信息。
12.根据条款8所述的装置,其中,所述装置还包括:
复制单元,用于在获取所述目标动画中待进行残影渲染的所述目标对象之前,复制所述目标对象的目标对象模型,得到第二残影模型,其中,所述第二残影模型中包含多个节点;
第四获取单元,用于获取与所述第二残影模型对应的移除指示信息,其中,所述移除指示信息用于指示移除所述多个节点中除了目标节点外的其他节点,所述目标节点包括与所述第二残影模型的对象骨骼对应的骨骼节点;
移除单元,用于将所述其他节点从所述第二残影模型中移除,得到参考残影模型,其中,所述参考残影模型用于通过被复制得到所述第一残影模型。
13.根据条款8所述的装置,其中,所述处理单元包括:
处理模块,用于基于所述参考位姿信息通过处理设备的图形处理器对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象。
14.根据条款8至13中任一项所述的装置,其中,所述装置还包括:
第五获取单元,用于在基于所述参考位姿信息对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象之前,获取多个细节层次LOD模型,其中,所述多个LOD模型中的每个LOD模型包含有不同数量的三角面;
确定单元,用于将所述多个LOD模型中的目标LOD模型,确定为所述第一残影模型,其中,所述目标LOD模型为所述多个LOD模型中包含的三角面的数量最少的LOD模型。
15.一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行条款1至7中任一项所述的方法。
16.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行条款1至7中任一项所述的方法。
Claims (10)
1.一种残影渲染方法,其特征在于,包括:
获取目标动画中待进行残影渲染的目标对象;
获取与参考动画帧对应的参考位姿信息,其中,所述参考动画帧为生成时间位于当前时刻之前、且包含所述目标对象的动画帧,所述参考位姿信息为在所述参考动画帧中,所述目标对象的对象骨骼的位姿信息;
基于所述参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,所述第一残影模型为与所述目标对象匹配的残影模型;
使用所述目标残影对象对所述目标对象进行残影渲染,生成所述目标动画中的目标动画帧。
2.根据权利要求1所述的方法,其特征在于,获取与所述参考动画帧对应的所述参考位姿信息包括:
在所述目标对象的最大残影个数为目标个数的情况下,获取与多个所述参考动画帧对应的多个所述参考位姿信息,其中,多个所述参考动画帧的个数小于或者等于所述目标个数。
3.根据权利要求2所述的方法,其特征在于,在生成所述目标动画中的所述目标动画帧之后,所述方法还包括:
获取目标位姿信息,其中,所述目标位姿信息为在所述目标动画帧中,所述目标对象的对象骨骼的位姿信息;
在多个所述参考动画帧的个数小于所述目标个数的情况下,创建用于存储所述目标位姿信息的初始线性表;
将所述目标位姿信息存储到所述初始线性表,得到目标线性表。
4.根据权利要求3所述的方法,其特征在于,在获取所述目标位姿信息之后,所述方法还包括:
在多个所述参考动画帧的个数等于所述目标个数的情况下,使用所述目标位姿信息更新第一线性表,得到存储有所述目标位姿信息的第二线性表,其中,所述第一线性表中存储有与生成时间最早的所述参考动画帧对应的所述参考位姿信息。
5.根据权利要求1所述的方法,其特征在于,在获取所述目标动画中待进行残影渲染的所述目标对象之前,所述方法还包括:
复制所述目标对象的目标对象模型,得到第二残影模型,其中,所述第二残影模型中包含多个节点;
获取与所述第二残影模型对应的移除指示信息,其中,所述移除指示信息用于指示移除所述多个节点中除了目标节点外的其他节点,所述目标节点包括与所述第二残影模型的对象骨骼对应的骨骼节点;
将所述其他节点从所述第二残影模型中移除,得到参考残影模型,其中,所述参考残影模型用于通过被复制得到所述第一残影模型。
6.根据权利要求1所述的方法,其特征在于,基于所述参考位姿信息对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象包括:
基于所述参考位姿信息通过处理设备的图形处理器对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在基于所述参考位姿信息对所述第一残影模型的对象骨骼进行蒙皮处理,得到所述目标残影对象之前,所述方法包括:
获取多个细节层次LOD模型,其中,所述多个LOD模型中的每个LOD模型包含有不同数量的三角面;
将所述多个LOD模型中的目标LOD模型,确定为所述第一残影模型,其中,所述目标LOD模型为所述多个LOD模型中包含的三角面的数量最少的LOD模型。
8.一种残影渲染装置,其特征在于,包括:
第一获取单元,用于获取目标动画中待进行残影渲染的目标对象;
第二获取单元,用于获取与参考动画帧对应的参考位姿信息,其中,所述参考动画帧为生成时间位于当前时刻之前、且包含所述目标对象的动画帧,所述参考位姿信息为在所述参考动画帧中,所述目标对象的对象骨骼的位姿信息;
处理单元,用于基于所述参考位姿信息对第一残影模型的对象骨骼进行蒙皮处理,得到目标残影对象,其中,所述第一残影模型为与所述目标对象匹配的残影模型;
渲染单元,用于使用所述目标残影对象对所述目标对象进行残影渲染,生成所述目标动画中的目标动画帧。
9.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010415043.1A CN111738935B (zh) | 2020-05-15 | 2020-05-15 | 残影渲染方法和装置、存储介质和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010415043.1A CN111738935B (zh) | 2020-05-15 | 2020-05-15 | 残影渲染方法和装置、存储介质和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111738935A true CN111738935A (zh) | 2020-10-02 |
CN111738935B CN111738935B (zh) | 2021-07-02 |
Family
ID=72647416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010415043.1A Active CN111738935B (zh) | 2020-05-15 | 2020-05-15 | 残影渲染方法和装置、存储介质和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111738935B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112509099A (zh) * | 2020-11-30 | 2021-03-16 | 北京百度网讯科技有限公司 | 虚拟形象驱动方法、装置、设备和存储介质 |
CN112509098A (zh) * | 2020-11-30 | 2021-03-16 | 北京百度网讯科技有限公司 | 动画形象生成方法、装置及电子设备 |
WO2023160050A1 (zh) * | 2022-02-28 | 2023-08-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1918880A2 (en) * | 2005-04-19 | 2008-05-07 | Digitalfish, Inc. | Techniques and workflows for computer graphics animation system |
CN111105491A (zh) * | 2019-11-25 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 场景渲染方法、装置、计算机可读存储介质和计算机设备 |
-
2020
- 2020-05-15 CN CN202010415043.1A patent/CN111738935B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1918880A2 (en) * | 2005-04-19 | 2008-05-07 | Digitalfish, Inc. | Techniques and workflows for computer graphics animation system |
CN111105491A (zh) * | 2019-11-25 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 场景渲染方法、装置、计算机可读存储介质和计算机设备 |
Non-Patent Citations (2)
Title |
---|
DE-YU CHEN; MAGDA EL-ZARKI: "Impact of information buffering on a flexible cloud gaming system", 《2017 15TH ANNUAL WORKSHOP ON NETWORK AND SYSTEMS SUPPORT FOR GAMES (NETGAMES)》 * |
董志华,张之江,曾丹: "多深度层场景光场渲染的无重影条件", 《计算机软件及计算机应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112509099A (zh) * | 2020-11-30 | 2021-03-16 | 北京百度网讯科技有限公司 | 虚拟形象驱动方法、装置、设备和存储介质 |
CN112509098A (zh) * | 2020-11-30 | 2021-03-16 | 北京百度网讯科技有限公司 | 动画形象生成方法、装置及电子设备 |
CN112509099B (zh) * | 2020-11-30 | 2024-02-06 | 北京百度网讯科技有限公司 | 虚拟形象驱动方法、装置、设备和存储介质 |
CN112509098B (zh) * | 2020-11-30 | 2024-02-13 | 北京百度网讯科技有限公司 | 动画形象生成方法、装置及电子设备 |
WO2023160050A1 (zh) * | 2022-02-28 | 2023-08-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111738935B (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111738935B (zh) | 残影渲染方法和装置、存储介质和电子装置 | |
EP4198909A1 (en) | Image rendering method and apparatus, and computer device and storage medium | |
CN108619720B (zh) | 动画的播放方法和装置、存储介质、电子装置 | |
CN109448099B (zh) | 画面的渲染方法、装置、存储介质及电子装置 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
CN112933597B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN101059760B (zh) | Opengl到opengl│es翻译器和opengl│es仿真器 | |
CN112241993B (zh) | 游戏图像处理方法、装置及电子设备 | |
CN113689537A (zh) | 用于基于体素的三维建模的系统、方法和设备 | |
CN108765520B (zh) | 文本信息的渲染方法和装置、存储介质、电子装置 | |
US7064755B2 (en) | System and method for implementing shadows using pre-computed textures | |
CN110689626A (zh) | 游戏模型渲染方法和装置 | |
CN110570500B (zh) | 角色绘制方法、装置、设备及计算机可读存储介质 | |
CN111773688B (zh) | 柔性对象的渲染方法和装置、存储介质、电子装置 | |
CN110544315B (zh) | 虚拟对象的控制方法及相关设备 | |
US8681154B1 (en) | Adaptive rendering of indistinct objects | |
CN109542574B (zh) | 一种基于OpenGL的弹窗背景虚化方法和装置 | |
CN116115995A (zh) | 图像渲染处理方法、装置及电子设备 | |
CN112231020A (zh) | 模型切换方法和装置、电子设备和存储介质 | |
CN112150602A (zh) | 模型图像的渲染方法和装置、存储介质和电子设备 | |
CN111402369A (zh) | 互动广告的处理方法、装置、终端设备及存储介质 | |
EP4231243A1 (en) | Data storage management method, object rendering method, and device | |
CN113313796A (zh) | 场景生成方法、装置、计算机设备和存储介质 | |
CN114693857A (zh) | 光线追踪多帧降噪方法、电子设备、芯片及可读存储介质 | |
CN112752131B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |