CN114627214A - 顶点动画的处理方法、装置和电子设备 - Google Patents
顶点动画的处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114627214A CN114627214A CN202210189612.4A CN202210189612A CN114627214A CN 114627214 A CN114627214 A CN 114627214A CN 202210189612 A CN202210189612 A CN 202210189612A CN 114627214 A CN114627214 A CN 114627214A
- Authority
- CN
- China
- Prior art keywords
- target
- area
- texture
- interaction
- vertex
- 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
-
- 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/005—General purpose rendering architectures
-
- 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
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
技术领域
本发明涉及计算机三维技术领域,尤其是涉及一种顶点动画的处理方法、装置和电子设备。
背景技术
顶点动画是将模型的顶点采用坐标变换的方式进行逐顶点拉伸,通过每帧之间的顶点变化得到模型的网格的形变动画。在游戏制作以及实际游戏运行中,通常需要对既定的顶点动画进行实时交互。相关技术中,通过不同帧数记录模型的不同形变状态,然后实时操控顶点动画的帧数,实现简单操控顶点动画和简单交互的目的。或者,根据预先设置的顶点动画效果的顶点的动画信息,在三维软件中制作顶点动画纹理,通过顶点动画纹理中记录的顶点变化信息,达到逐帧动画效果。但是,上述方式中得到的动画效果几乎都是固定的,且无法在大面积模型中控制实时交互区域的顶点动画。
发明内容
有鉴于此,本发明的目的在于提供一种顶点动画的处理方法、装置和电子设备,可以实时控制目标模型中部分区域的顶点动画。
第一方面,本发明实施例提供了一种顶点动画的处理方法,方法包括:获取目标模型的顶点动画纹理;其中,顶点动画纹理存储有目标模型中的顶点在第一动画帧的位置信息和/或旋转信息;响应于受控交互模型与目标模型进行交互操作,确定目标模型上的第一交互区域;从预设渲染目标上获取与第一交互区域对应的渲染区域,在渲染区域绘制预设图案,得到渲染目标纹理;基于渲染目标纹理,确定目标模型的第一遮罩图;根据第一遮罩图和顶点动画纹理,对目标模型中第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到目标模型中第一交互区域的第二动画帧。
进一步的,从预设渲染目标上获取与第一交互区域对应的渲染区域,在渲染区域绘制预设图案,得到渲染目标纹理的步骤,包括:根据目标模型表面的位置点与预设渲染目标的位置点的位置对应关系,从预设渲染目标上获取渲染区域;根据渲染区域的位置坐标、第一交互区域的位置坐标、以及预设的纹理缩放参数,确定预设图案映射到渲染区域的UV坐标;根据UV坐标,将预设图案绘制到渲染区域,得到渲染目标纹理。
进一步的,渲染目标纹理中预设图案的区域的像素为第一像素值,除预设图案的区域以外的区域的像素为第二像素值;基于渲染目标纹理,确定目标模型的第一遮罩图的步骤,包括:根据渲染目标纹理中第一交互区域对应的第一像素值,以及除第一交互区域以外的区域对应的第二像素值,得到目标模型的第一遮罩图。
进一步的,根据渲染目标纹理中第一交互区域对应的第一像素值,以及除第一交互区域以外的区域对应的第二像素值,得到目标模型的第一遮罩图的步骤,包括:其中,RTColOrigin表示第一遮罩图,包括第一像素值和第二像素值;RTTex表示渲染目标纹理;Wpos.xy表示目标模型的世界坐标位置信息;RTScale表示预设渲染目标的大小;SampleBias表示UV偏移参数;Sample()为采样函数。
进一步的,第一像素值至少包括第一数值和第二数值;预设渲染目标中,预设图案的中心区域的像素为第一数值,预设图案的中心区域的边缘区域的像素为第二数值;其中,第一数值大于第二数值,第二数值大于第二像素值。
进一步的,基于渲染目标纹理,确定目标模型的第一遮罩图的步骤之后,方法还包括:根据预设的偏移参数,对渲染目标纹理中的预设图案进行偏移处理,得到偏移后的渲染目标纹理的遮罩图;根据偏移后的渲染目标纹理的遮罩图和第一遮罩图,得到渲染目标纹理的第二遮罩图;其中,第二遮罩图中包括预设图案的区域以及预设图案偏移后的偏移区域;基于第二遮罩图和第一遮罩图,确定目标模型的第三遮罩图。
进一步的,根据预设的偏移参数,对渲染目标纹理中的预设图案进行偏移处理,得到偏移后的渲染目标纹理的遮罩图的步骤,包括:根据偏移参数指示的偏移方向和偏移距离,将渲染目标纹理中的预设图案向偏移方向偏移上述偏移距离,得到偏移后的渲染目标纹理;其中,偏移方向至少包括:UV的X轴正方向、UV的Y轴正方向、UV的X轴负方向、以及UV的Y轴负方向;根据偏移后的渲染目标纹理中第二交互区域对应的像素值,以及渲染目标纹理中除第二交互区域以外的区域对应的像素值,得到偏移后的渲染目标纹理的遮罩图;其中,第二交互区域包括第一交互区域和第一交互区域的边缘区域,边缘区域为预设图案偏移后的偏移区域对应的区域。
进一步的,偏移后的渲染目标纹理的遮罩图包括多个;根据偏移后的渲染目标纹理的遮罩图和第一遮罩图,得到渲染目标纹理的第二遮罩图的步骤,包括:将多个偏移后的渲染目标纹理的遮罩图中对应位置的像素值相加,并减去渲染目标纹理的第一遮罩图中对应位置的像素值,得到渲染目标纹理的第二遮罩图。
进一步的,基于第二遮罩图和第一遮罩图,确定目标模型的第三遮罩图的步骤,包括: 其中,RTColMulti表示第三遮罩图,包括第二交互区域对应的像素值和除第二交互区域以外的区域的像素值;第二交互区域包括第一交互区域和第一交互区域的边缘区域,边缘区域为预设图案偏移后的偏移区域对应的区域;RTColOrigin表示第一遮罩图;RTCol(Offsetn)表示第二遮罩图,Offsetn表示第二交互区域中第一交互区域的边缘区域对应的第n个区域范围,Offsetn>Offsetn-1;ω为控制第一交互区域对应的像素值的第一系数;φi为第i个区域范围对应的第一交互区域的边缘区域的遮罩图对应的第二系数。
进一步的,根据第一遮罩图和顶点动画纹理,对目标模型中第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到目标模型中第一交互区域的第二动画帧的步骤,包括:获取顶点动画纹理中的第一动画帧的位置信息和/或旋转信息;根据第一遮罩图和预设的坐标缩放向量,通过预设的顶点偏移函数,将目标模型中第一交互区域的顶点在第一动画帧的位置信息和/或旋转信息,偏移第一遮罩图中第一交互区域的像素值,得到目标模型中第一交互区域的第二动画帧。
进一步的,基于第二遮罩图和第一遮罩图,确定目标模型的第三遮罩图的步骤之后,方法还包括:通过更新第二系数,更新第三遮罩图中第二交互区域的边缘区域对应的像素值,得到更新后的第三遮罩图;根据更新后的第三遮罩图和顶点动画纹理,对目标模型中第二交互区域的顶点进行顶点偏移处理,得到目标模型中第二交互区域的第三动画帧。
进一步的,顶点动画纹理还存储有目标模型中的顶点在多个动画帧的位置信息和/或旋转信息;基于渲染目标纹理,确定目标模型的第一遮罩图的步骤之后,方法还包括:根据第一遮罩图中第一交互区域对应的第一像素值,确定第一遮罩图的关键帧;将关键帧中第一交互区域对应的像素值确定为第一像素值,将关键帧中除第一交互区域以外的区域对应的像素值确定为第二像素值;其中,目标模型的第一交互区域为可操作区域,第一交互区域以外的区域为非操作区域;根据关键帧,对目标模型对应的关键帧的帧数进行更新处理,确定目标模型中第一交互区域的顶点动画。
第二方面,本发明实施例提供了一种顶点动画的处理装置,装置包括:获取模块,用于获取目标模型的顶点动画纹理;其中,顶点动画纹理存储有目标模型中的顶点在第一动画帧的位置信息和/或旋转信息;绘制模块,用于响应于受控交互模型与目标模型进行交互操作,确定目标模型上的第一交互区域;从预设渲染目标上获取与第一交互区域对应的渲染区域,在渲染区域绘制预设图案,得到渲染目标纹理;确定模块,用于基于渲染目标纹理,确定目标模型的第一遮罩图;处理模块,用于根据第一遮罩图和顶点动画纹理,进行更新处理,对目标模型中第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到目标模型中第一交互区域的第二动画帧。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面任一项的顶点动画的处理方法。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面任一项的顶点动画的处理方法。
本发明实施例带来了以下有益效果:
本发明提供了一种顶点动画的处理方法、装置和电子设备,获取目标模型的顶点动画纹理;响应于受控交互模型与目标模型进行交互操作,确定目标模型上的第一交互区域,在预设渲染目标中与第一交互区域对应的渲染区域上绘制预设图案,得到渲染目标纹理;基于渲染目标纹理,确定目标模型的第一遮罩图;根据第一遮罩图和顶点动画纹理,对目标模型的顶点进行偏移处理,得到目标模型中第一交互区域的第二动画帧。该方式中,通过确定第一交互区域,可以实时计算目标模型的交互动态,通过预设渲染目标记录了目标模型的动态交互区域,同时通过第一遮罩图使得目标模型的第一交互区域可选可控,实现了目标模型中部分区域的顶点动画的动态交互。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种顶点动画的处理方法的流程图;
图2为本发明实施例提供的一种预设图案的示意图;
图3为本发明实施例提供的一种绘制渲染目标纹理的示意图;
图4为本发明实施例提供的另一种渲染目标纹理的示意图;
图5为本发明实施例提供的一种边缘区域中不同范围区域的示意图;
图6为本发明实施例提供的一种边缘区域中不同范围区域的顶点偏移示意图;
图7为本发明实施例提供的一种第三遮罩图以及轨迹示意图;
图8为本发明实施例提供的一种顶点动画的处理装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
顶点动画是将顶点采用坐标变换的方式进行逐顶点拉伸,通过每帧之间的顶点变化效果得到目标的网格的形变动画。目前常见的顶点动画多数是GPU(GraphicsProcessing Unit,图形处理器)端在顶点着色器中进行,对顶点采用既定的方式进行拉伸变换。除此之外,还可以应用VAT(Vertex Animation Texture,顶点动画纹理),顶点动画纹理可以将顶点的动画信息编码在纹理上,在使用时可以对顶点动画纹理进行解码,获取模型的各个顶点的逐帧位置和旋转信息,由此获得预先设定好的模型顶点动画效果。但是,这种预先定义好的顶点动画效果,可以通过模型和固定的动画序列模拟模型的动态变化,能够减少实时渲染中物理解算的开销,节约了计算的成本。但是,由于顶点动画是预先定义好的,上述方式限定了模型每帧的形变效果,故其难以在实时渲染中实时交互的同时还能达到动态模型形变效果。
另外,如果想要对既定的顶点动画进行实时交互,相关技术中,通常在顶点动画制作时通过不同帧数记录模型不同形变状态,通过实时操控顶点动画的帧数,实现简单操控顶点动画进而简单交互的目的。或者在使用顶点动画纹理时,对模型采用形变的方式,使得动画中模型顶点发生偏移,以此来改变既定的动画运行轨迹。
但是,对于大面积的模型动画导入引擎是很消耗资源的,而且引擎也会有三角面的导入上限。顶点动画的技术得到的动画几乎都是固定动态的且限制性很大。如果通过操控顶点动画纹理的帧数控制模型形变的动态,其实根本上没有改变顶点动画的局限性,只能在既定的形态之间进行切换。而如果使用形变的方式对顶点动画进行操控,几乎是对模型进行整体的位移旋转缩放,或是采用一定规律进行弯曲扭曲等形变操作,此种方法对模型部分区域的交互方式只限于根据模型的UV或局部坐标等特定规律运算得到局部交互区域,如果想根据使用者所需,对特定区域进行选取操控,其较难实现。基于此,本发明实施例提供的一种顶点动画的处理方法、装置和电子设备,该技术可以应用于具有顶点动画制作功能的设备,尤其可以应用于图形处理器。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种顶点动画的处理方法进行详细介绍,如图1所示,该方法包括如下步骤:
步骤S102,获取目标模型的顶点动画纹理;其中,顶点动画纹理存储有目标模型中的顶点在第一动画帧的位置信息和/或旋转信息;
上述目标模型通常是指在游戏制作或实际游戏运行过程中的虚拟模型,该虚拟模型通常是任意与顶点动画关联的网格体模型,比如虚拟雪地模型、虚拟冰面模型、虚拟树叶等。上述顶点动画纹理用于把目标模型的动画保存成贴图纹理信息,通常会在顶点着色器中读取并改变顶点位置,以较低的渲染消耗实现复杂的柔体、破碎、液体等动态效果。
可以理解的是,顶点动画纹理存储有目标模型中的顶点在第一动画帧的位置信息,或者顶点动画纹理存储有目标模型中的顶点在第一动画帧的旋转信息,或者顶点动画纹理存储有目标模型中的顶点在第一动画帧的位置信息和旋转信息。在本实施例中,顶点动画纹理保存有目标模型中的顶点在第一动画帧的位置信息和旋转信息,其中的第一动画帧可以是目标模型的某个动画中的随机一帧动画,或者可以是初始动画帧。第一动画帧可以作为基础形态,目标模型维持在当前帧的形态,方便观察动态交互效果。当然,上述顶点动画纹理中也可以存储有目标模型中的顶点在其他动画帧的位置信息和旋转信息。通常使用顶点动画纹理之后可以使得不同顶点在不同动画帧具有不同的形态。具体的,通常预先在顶点动画纹理中将目标模型的顶点动画进行编码。
需要说明的是,顶点动画纹理中存储一帧的位置信息和旋转信息与存储多帧的位置信息和旋转信息的区别在于:多帧的动画可以通过调用使得目标模型在不同帧的动画效果之间进行切换,而单帧则会使模型始终维持在某一个特定的动画状态。
步骤S104,响应于受控交互模型与目标模型进行交互操作,确定目标模型上的第一交互区域;从预设渲染目标上获取与第一交互区域对应的渲染区域,在渲染区域绘制预设图案,得到渲染目标纹理;
上述受控交互模型通常是指用户或玩家操控的物体,如鼠标操控的画笔,键盘操控的角色或交通工具等,使用受控交互模型代替物理媒介(鼠标、键盘)进行具体的交互操作。上述交互操作通常是指顶点动画的实时交互,多体现于游戏制作或实际游戏运行过程中,包括但不限于使用鼠标或键盘对目标模型的整体或局部的控制,比如,使用鼠标代替画笔绘制目标模型部分区域产生与原有顶点动画不同的生长膨胀等效果,使用键盘控制某些角色或交通工具对目标模型进行碰撞产生与当前动画不同的破坏等效果。
上述第一交互区域通常需要根据实际的场景确定,不同的场景可能会产生不同的第一交互区域,可以是受控交互模型与目标模型的接触区域,也可以是受控交互区域与目标模型交互操作之后产生的交互动态对应的交互区域,比如,虚拟车辆快速路过地面时,地面上的树叶会由于车辆的行驶带动树叶移动,此时的交互区域并不是车辆和树叶的接触区域(因为树叶与车辆并没有直接接触),而是整个树叶的表面。再比如,在墙面打出子弹的洞,交互区域即开枪子弹命中位置;如要根据移动轨迹在泥泞道路上产生足迹,行走轨迹即交互区域;如要在画布上绘制,画笔绘制区域即为交互区域等。
上述预设渲染目标是指RT:全称Render target,在计算机图形学领域,渲染目标允许将3D场景渲染到中间存储缓存区或渲染目标纹理上,然后可以通过像素着色器使用渲染目标,与我们的最终效果进行融合。游戏中常应用渲染目标在记录运动轨迹,绘制权重图案等案例中。在本实施例中,预设渲染目标的大小通常与目标模型的展开图大小一致,在确定了目标模型上的第一交互区域后,可以根据目标模型与预设渲染目标之间一一对应的关系,在预设渲染目标上确定与第一交互区域对应的渲染区域。
上述预设图案通常是GPU定制的图案,比如,圆形、矩形等,也可以是自定义的图案,比如战车或战船形状等,如图2所示的预设图案,图2中的(a)为一个圆形图案,图2中的(b)为一个战车形图案。这种自定义的图案也可以是手控交互模型的基本轮廓,这样会使得动态交互的效果更加真实。实际实现时,当受控交互模型与目标模型发生交互操作时,首先,先在目标模型上确定该次交互操作的第一交互区域,然后在预设渲染目标中确定第一交互区域对应的渲染区域,具体可以根据位置坐标的对应关系确定,然后可以通过采样的方式,将预设图案绘制在预设渲染目标的渲染区域,具体可以是通过坐标映射的方式绘制,最后得到渲染目标纹理,该渲染目标纹理记录了交互操作对应的第一交互区域。
实际上,在渲染区域绘制预设图案时,可以通过程序化处理或边缘羽化那个图像处理方法进行边缘色彩的过渡处理,目的在于绘制预设图案时采用叠加式的绘制方式,可以以此区域交互区域的权重,当交互次数越多的时候,交互区域对应的像素值就会越大,并且实时变化的渲染目标纹理的像素值也会增加模型实时动态交互效果,即可不借助顶点动画纹理自动产生交互动画。
步骤S106,基于渲染目标纹理,确定目标模型的第一遮罩图;
实际上,渲染目标纹理中第一交互区域对应的像素点的像素值与渲染目标纹理中非交互区域对应的像素点的像素值不同,通常渲染目标纹理中非交互区域对应像素值为0,第一交互区域对应的像素值大于0小于等于1。具体可以根据渲染目标纹理中每个位置的像素值,确定目标模型的第一遮罩图,该第一遮罩图中像素值大于0的区域对应第一交互区域,像素值等于0的区域对应非交互区域。
步骤S108,根据第一遮罩图和顶点动画纹理,对目标模型中第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到目标模型中第一交互区域的第二动画帧。
具体的,可以根据第一遮罩图中每个像素点的像素值以及顶点动画纹理中存储的第一交互区域的顶点在第一动画帧的位置信息和旋转信息,对目标模型中第一交互区域在第一动画帧的顶点进行更新处理,具体可以基于第一遮罩图中的像素值对目标模型中第一动画帧的位置信息和旋转信息进行偏移处理,得到目标模型的第二动画帧。其中,第二动画帧与第一动画帧相比,只有第一交互区域的顶点发生了变化。在实际应用中,最后在实时渲染的调用过程中使得目标模型的坐标逐帧更新,实现了目标模型中第一交互区域的顶点动画动态交互的效果。
本发明实施例提供了一种顶点动画的处理方法,获取目标模型的顶点动画纹理;响应于受控交互模型与目标模型进行交互操作,确定目标模型上的第一交互区域,在预设渲染目标中与第一交互区域对应的渲染区域上绘制预设图案,得到渲染目标纹理;基于渲染目标纹理,确定目标模型的第一遮罩图;根据第一遮罩图和顶点动画纹理,对目标模型的顶点进行偏移处理,得到目标模型中第一交互区域的第二动画帧。该方式中,通过确定第一交互区域,可以实时计算目标模型的交互动态,通过预设渲染目标记录了目标模型的动态交互区域,同时通过第一遮罩图使目标模型的第一交互区域可选可控,实现了目标模型中部分区域的顶点动画的动态交互。
下面描述从预设渲染目标上获取与第一交互区域对应的渲染区域,在渲染区域绘制预设图案,得到渲染目标纹理的步骤的一种可能的实现方式:
(1)根据目标模型表面的位置点与预设渲染目标的位置点的位置对应关系,从预设渲染目标上获取渲染区域;
(2)根据渲染区域的位置坐标、第一交互区域的位置坐标、以及预设的纹理缩放参数,确定预设图案映射到渲染区域的UV坐标;
(3)根据UV坐标,将预设图案绘制到渲染区域,得到渲染目标纹理。
由于目标模型的展开图的位置坐标与预设渲染目标的位置坐标一一对应,因此可以根据位置对应关系,对应得到预设渲染目标上的渲染区域。本实施例中,可以通过世界映射的方式绘制预设图案,具体的,世界映射的中心可定义为世界坐标原点。预设图案映射的方式采用了UV运算中的纹理放大和缩小原理,对预设图案缩小,根据预先定义的预设渲染目标的尺寸来运算获得绘制到渲染区域上的位置,即上述UV坐标,该UV坐标表示的是将预设图案映射到渲染区域上变换之后的UV数值。最后根据UV坐标,通过绘制函数将预设图案绘制到渲染区域,得到渲染目标纹理。
本实施例在DirectX环境下确定UV坐标,具体的计算公式如下:
其中,BasicTexUV表示上述UV坐标,即将预设图案映射到渲染区域上变换之后的UV数值,实际上为一个二维向量;为二维旋转矩阵,其中,θ是预设图案的旋转角,与受控交互模型的旋转角相同,实时操控绘制过程中预设图案的旋转,以保证渲染目标纹理中的预设图案朝向与受控交互模型的朝向相同。Loc表示的实时确定的第一交互区域的位置坐标,取其xy分量;RTScale表示的是预设渲染目标的总体大小;Scale表示的是上述预设的纹理缩放参数,(Texcoord.xy*Scale-(Scale*0.5-0.5))表示的是将预设渲染目标以中心缩放Scale大小。
在得到UV坐标后,通过下述方式得到渲染目标纹理:
RTTex=Draw(BasicTex,BasicTexUV);
其中,RTTex表示上述渲染目标纹理,BasicTex表示的是预设图案,BasicTexUV是上述UV坐标,即经过变换之后的预设图案的UV数值。Draw()表示绘制函数。具体通过Draw函数将预设图案映射到预设渲染目标的渲染区域得到渲染目标纹理,其中的图形应用程序中会提供相应的接口进行次操作。
绘制产生的渲染目标纹理示意图如图3所示,图3中的(a)表示类似子弹射击类的交互轨迹效果,每一个光斑都是一个以预设图案为圆形绘制产生的,渲染目标纹理。图3中的(b)表示类似行进轨迹交互效果,可通过任意特定图案或基础几何图案绘制产生,每帧记录的图案组合即可生成此种渲染目标纹理。
另外,上述预设图案可以根据需要添加不同的映射需求,比如旋转、缩放、位移等,以此匹配不同的受控交互主体动态交互的效果。
上述方式中,根据预设图案映射到渲染区域的UV坐标,通过世界映射的方式绘制预设图案,避免了局部映射,减少了预设渲染目标的传递次数,同时只通过预设渲染目标进行绘制,降低了性能缓存上的损耗。
上述渲染目标纹理中预设图案的区域的像素为第一像素值,除预设图案的区域以外的区域的像素为第二像素值;上述第一像素值可以是0到1的数值,表示的是白色到黑色之间的颜色,第二像素值可以是0,表示的是黑色;如图2所示,预设图案区域为白色和灰色,其他区域为黑色。可以看出,预设图案的区域的颜色为渐变式的。需要说明的是,上述预设图案区域的第一像素值可以是预先确定的,也可以是根据实际的交互操作实时更新的,比如当交互次数越多的时候,此预设图案区域的像素值也就是色彩值就越大,即色彩就会越亮。
下面描述基于渲染目标纹理,确定目标模型的第一遮罩图的步骤的一种可能的实施方式:根据渲染目标纹理中第一交互区域对应的第一像素值,以及除第一交互区域以外的区域对应的第二像素值,得到目标模型的第一遮罩图。
具体的,可以将渲染目标纹理中第一交互区域对应的区域确定为第一遮罩图的可控制区域,该可控制区域的像素值可以为第一像素值,同时可以将渲染目标纹理中除第一交互区域以外的区域对应的区域确定为第一遮罩图的不可控区域,该不可控区域的像素值可为第二像素值。其中,该第一遮罩图与目标模型的大小也一致,其中包括第一交互区域对应的可控制区域,以及其他区域对应的不可控区域。
上述方式中,通过渲染目标纹理记录顶点动画的第一交互区域,并根据对应的像素值确定目标模型的第一遮罩图,将顶点动画的单一形变方式变成了可选区域的形变方式,实现了目标模型中部分区域的顶点动画的动态交互,同时解决了顶点动画交互困难的问题。
具体的,通过下述公式确定目标模型的第一遮罩图:RTColOrigin=其中,RTColOrigin表示第一遮罩图,包括第一像素值和第二像素值;RTTex表示渲染目标纹理;Wpos.xy表示目标模型的世界坐标位置信息;RTScale表示预设渲染目标的大小;SampleBias表示UV偏移参数;Sample()为采样函数。
实际上,Sample函数是获取渲染目标纹理的纹理坐标处的像素值(即色彩值)的采样函数。另外,SampleBias是根据实际的世界坐标和UV原点关系确定的,(Wpos.xy)/RTScale+SampleBias是指将世界坐标原点作为渲染目标纹理的中心。在本实施例中,SampleBias可以设置为(0.5,0.5),也就是说世界坐标映射UV后需要进行(0.5,0.5)的UV偏移才可以获取正确的目标模型的第一交互区域。举例说明,如图4所示的一种渲染目标纹理大小为4的映射示意图,将世界坐标原点(0,0)作为对应UV坐标控件的中心点,参见图4中的原点(0,0),如果想要获得世界坐标(1,1)点,即图中的圆点的UV空间坐标,可以使用世界坐标(1,1)/4+(0.5,05),获得UV坐标(0.75,0.75),根据获得的UV坐标进行采样。其中,不同图形接口UV运算方法,SampleBias可以不同,上述(0.5,0.5)仅是示例。
上述通过采样的方式,根据渲染目标纹理的像素值,确定第一遮罩图,同时设置了UV偏移参数,进一步提高了第一遮罩图的准确性。
另外,上述第一像素值至少包括第一数值和第二数值;预设渲染目标中,预设图案的中心区域的像素为第一数值,预设图案的中心区域的边缘区域的像素为第二数值;其中,第一数值大于第二数值,第二数值大于第二像素值。
继续参见图2所示的预设图案的示意图,绘制在预设渲染目标的预设图案中预设图案中间区域与边缘区域具有色彩过渡处理。实际上,上述第一像素值可以包括很多个数值,预设图案的中心区域的像素可以为1,预设图案的中心区域的第一边缘区域的像素为0.9,预设图案的中心区域的第二边缘区域的像素为0.8,以此类推,直到预设图案的最边缘区域的像素为0,与第第二像素值相同。该种预设图案绘制的渲染目标纹理得到第一遮罩图,控制的第一交互区域,能够具有更加丰富的动态效果。
下面描述根据第一遮罩图和顶点动画纹理,对目标模型中第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到目标模型中第一交互区域的第二动画帧的步骤,一种可能的实施方式:获取顶点动画纹理中的第一动画帧的位置信息和/或旋转信息;根据第一遮罩图和预设的坐标缩放向量,通过预设的顶点偏移函数,将目标模型中第一交互区域的顶点在第一动画帧的位置信息和/或旋转信息,偏移第一遮罩图中第一交互区域的像素值,得到目标模型中第一交互区域的第二动画帧。
对目标模型进行顶点偏移处理,顶点偏移方法使用的是顶点动画纹理中的顶点偏移函数,其将模型自身的Pivot烘焙到UV上,将顶点动画纹理中的坐标和旋转信息提取出来,对模型进行顶点变换的方法。其中,Pivot即为枢轴点。枢轴点就是指的模型的质心坐标,三维场景中一般用模型枢轴点位置表示整个模型所处的世界位置。在三维软件中,枢轴点多定义在模型的中心位置或模型最低点,也可根据特殊需求进行更改。
上述预设的坐标缩放向量主要用于放大或缩小目标模型的整体或者局部的坐标,具体可以根据效果实际需求设置。上述顶点偏移函数可以表示为WPO(S,O),其中S表示的坐标缩放向量,O表示的是目标模型的局部坐标的顶点偏移向量,本实施例以第一遮罩图中第一交互区域对应的像素值作为上述顶点偏移量,首先通过解码的方式,获取顶点动画纹理中的第一动画帧的位置信息和旋转信息,然后通过WPO(S,O),将第一动画帧中第一交互区域对应的顶点的位置信息和旋转信息进行偏移处理,得到目标模型中第一交互区域的第二动画帧。最后在调用过程中可以使顶点产生实时动态效果,即将处理后的具有动态交互效果的三维顶点动画模型渲染出来,在未交互的部分可维持顶点动画播放状态,在交互部分可改变顶点动画的帧数,改变顶点偏移方式和位置。
上述方式中,第一遮罩图中第一交互区域对应的区域可以作为顶点偏移的遮罩区域,该区域的像素值,还可以作为顶点偏移的偏移量,实现了实时控制目标模型中部分区域的顶点动画。
实际上,在有些交互场景中,不仅受控交互模型与目标模块的接触区域(即上述第一交互区域)会有交互动画,在接触区域的边缘区域也可能会发生相应的交互动画,比如,一块石头砸向雪面,石头所在的区域雪面会产生下沉的效果,而石头周围的雪面会有一个先凸起之后趋于平缓的类似抛物线的变化形状。因此在基于渲染目标纹理,确定目标模型的第一遮罩图的步骤之后,上述方法还包括获取第一交互区域的边缘区域的步骤,具体包括:
(1)根据预设的偏移参数,对渲染目标纹理中的预设图案进行偏移处理,得到偏移后的渲染目标纹理的遮罩图;
(2)根据偏移后的渲染目标纹理的遮罩图和第一遮罩图,得到渲染目标纹理的第二遮罩图;其中,第二遮罩图中包括预设图案偏移后的偏移区域;
(3)基于第二遮罩图和第一遮罩图,确定目标模型的第三遮罩图。
上述预设的偏移参数可以根据实际的交互场景进行设置,且上述偏移参数可能包括多个,可以包括向不同方向偏移的参数,偏移量可以根据实际需要进行设置,因此可以得到多个不同偏移后的渲染目标纹理的遮罩图。由于偏移后的渲染目标的遮罩图会改变预设图案的在预设渲染目标中的位置,因此需要以第一遮罩图为基准,获取渲染目标纹理的第二遮罩图(也可以称为目标模型的第二遮罩图),具体可以将每个偏移后的渲染目标纹理的遮罩图与第一遮罩图相加,然后再减去偏移后的渲染目标纹理的遮罩图与第一遮罩图中预设图案区域重合的区域,即可得到第二遮罩图。
最后,将第一遮罩图与第二遮罩图进行相加,得到目标模型的第三遮罩图。另外,由于第一交互区域的边缘区域的动态交互可能会发生不同的偏移,因此可以根据实际需要,对第一交互区域的边缘区域(也可以称为可交互区域),进行分段,以使不同边缘区域产生的动态效果不同。具体可以为第二遮罩图设置不同的边缘范围,并在该范围内设置不同的像素值,进而得到具有分段顶点偏移效果的第三遮罩图。
上述方式中考虑到了实际应用场景中,在第一交互区域的边缘区域也可能会产生动态效果的问题,进一步获取第一交互区域的边缘区域,通过偏移预设图案的方式,可以获取到第一交互区域的边缘区域,最后得到包括边缘区域的第三遮罩图,进一步丰富的顶点动画的实际应用场景。
下面描述上述步骤(1)根据预设的偏移参数,对渲染目标纹理中的预设图案进行偏移处理,得到偏移后的渲染目标纹理的遮罩图的步骤,一种可能的实施方式:根据偏移参数指示的偏移方向和偏移距离,将渲染目标纹理中的预设图案向偏移方向偏移上述偏移距离,得到偏移后的渲染目标纹理;其中,偏移方向至少包括:UV的X轴正方向、UV的Y轴正方向、UV的X轴负方向、以及UV的Y轴负方向;根据偏移后的渲染目标纹理中的像素值,得到偏移后的渲染目标纹理的遮罩图。
具体的,可以通过下述方式得到偏移后的渲染目标纹理的遮罩图:
其中,OffsetSize为上述预设的偏移参数,RTColXPos为预设图案向UV的X轴正方向偏移OffsetSize之后得到的偏移后的渲染目标纹理。RTColXNeg为向UV的X轴负方向偏移OffsetSize之后得到的偏移后的渲染目标纹理OffsetScale为自变量,用于控制边缘区域的区域范围。同理,可以得到RTColYPos和RTColYNeg,其中RTColYPos为预设图案向UV的Y轴的正方向偏移OffsetSize之后得到的偏移后的渲染目标纹理,RTColYNeg为预设图案向UV的Y轴的负方向偏移OffsetSize之后得到的偏移后的渲染目标纹理。该方式中,通过偏移的方式获取第一交互区域的边缘区域,得到偏移后的渲染目标纹理的遮罩图,进一步增大了目标模型中可控区域,同时提高了顶点动画的动态交互效果。
另外,上述偏移后的渲染目标纹理的遮罩图包括多个;下面描述上述步骤(2)根据偏移后的渲染目标纹理的遮罩图和第一遮罩图,得到渲染目标纹理的第二遮罩图的步骤,一种可能的实施方式:将多个偏移后的渲染目标纹理的遮罩图中对应位置的像素值相加,并减去渲染目标纹理的第一遮罩图中对应位置的像素值,得到渲染目标纹理的第二遮罩图。
然后根据下述方式,得到渲染目标纹理的第二遮罩图:
RTCol(OffsetScale)=
(RTColXPos(OffsetScale)+RTColYPos(OffsetScale)+RTColXNeg(OffsetScale)+RTColYNeg(OffsetScale)-RTColOrigin);
其中,RTCol为偏移后的渲染目标纹理的遮罩图,将OffsetScale作为自变量,以此可进一步求得多段式的边缘区域。RTColOrigin为上述第一遮罩图。实际实现时,可以通过改变OffsetScale的值,可以获得不同范围的边缘区域,举例说明,如图5所示,当OffsetScale为1时,边缘区域的大小如图中的方格区域,当OffsetScale为2时,边缘区域的大小如图中的阴影区域,当OffsetScale为3时,边缘区域的大小如图中的灰色区域,需要说明的是,偏移后的边缘区域的像素值同样是第一像素值,因此可借助这个第一像素值对边缘区域做不同的操作。
上述方式中,通过将偏移后的渲染目标纹理的遮罩图相加,并减去渲染目标纹理的第一遮罩图,即可渲染目标纹理的第二遮罩图。
下面描述基于第二遮罩图和第一遮罩图,确定目标模型的第三遮罩图的步骤,一种可能的实施方式:
其中,RTColMulti表示第三遮罩图,包括第二交互区域对应的像素值和除第二交互区域以外的区域的像素值,第二交互区域包括第一交互区域和第一交互区域的边缘区域,边缘区域为预设图案偏移后的偏移区域对应的区域;RTColOrigin表示第一遮罩图;RTCol(Offsetn)表示第二遮罩图,Offsetn表示第二交互区域中第一交互区域的边缘区域对应的第n个区域范围,Offsetn>Offsetn-1;ω为控制第一交互区域对应的像素值的第一系数;φi为第i个区域范围对应的第一交互区域的边缘区域的遮罩图对应的第二系数。其中n∈{2,3,4…}
首先,需要说明的是,第三遮罩图中包括目标模型与受控交互模型的交互区域,即上述第一交互区域,还包括预设图案偏移后的偏移区域,即上述边缘区域。可以将第一交互区域和边缘区域确定为上述第二交互区域。
另外,由于边缘区域中不同范围的边缘区域的动态效果可能会不同,比如图6所示,方格区域对应的顶点偏移的效果可能是凸起,阴影区域对应的顶点偏移的效果可能是凹陷,因此,可以通过RTCol(Offsetn)-RTCol(Offsetn-1)的方式得到不同的边缘区域,即图6中的方格区域或阴影区域,且φi用于控制不同边缘区域对应的像素值,具体可以根据实际场景进行设置,主要为顶点动画增加更多的变化。另外,ω也可以控制第一交互区域对应的像素值。
具体可以参见图7所示第三遮罩图的示意图,其中图(a)为渲染目标纹理轨迹边缘UV偏移示意图,图(b)为轨迹和多段式边缘顶点偏移示意图,通过曲线描述的多段区域不同的凸起凹陷效果示例。
上述方式中,通过不同的Offsetn,采用多段式的UV偏移方法,获得了交互操作对应的第一交互区域的不同边缘区域,实现可分区域的顶点偏移,丰富了顶点动画的应用场景。
下面描述基于第二遮罩图和第一遮罩图,确定目标模型的第三遮罩图的步骤之后,上述方法还包括:通过更新第二系数,更新第三遮罩图中第二交互区域的边缘区域对应的像素值,得到更新后的第三遮罩图;根据更新后的第三遮罩图和顶点动画纹理,对目标模型中第二交互区域的顶点进行顶点偏移处理,得到目标模型中第二交互区域的第三动画帧。
一种可能的实施方式,获取顶点动画纹理中的第一动画帧的位置信息和/或旋转信息;根据第三遮罩图和预设的坐标缩放向量,通过预设的顶点偏移函数,将目标模型中第二交互区域的顶点在第一动画帧的位置信息和/或旋转信息,偏移第三遮罩图中第二交互区域的像素值,得到目标模型中第二交互区域的第三动画帧。
具体的,可以通过WPO(S,RTColMulti)对目标模型中第二交互区域的顶点的第一动画帧的位置信息和旋转信息进行偏移,具体根据第三遮罩图中不同区域的像素值对目标模型中第二交互区域的顶点第一动画帧的位置信息和旋转信息进行偏移处理,实际上需要在RTColMulti中设置φ的值,即可得到不同的顶点偏移效果。
上述方式中,针对第一交互区域的边缘区域也具有顶点动画的场景,可以通过包括第一交互区域和边缘区域的第三遮罩图,使得目标模型的第一交互区域可控,同时不同的边缘区域也可控,进而实现了更加丰富的顶点动画,进一步丰富了顶点动画的应用场景。
实际上,在有些场景中,比如地上的落叶原先具有轻微随风起伏的顶点动画效果,在人奔跑后可以根据交互区域使得落叶扬起飞舞,这种是编码多帧顶点动画根据交互区域进行切换顶点动画的效果。针对该顶点动画的场景,上述顶点动画纹理还存储有目标模型中的顶点在多个动画帧的位置信息和旋转信息。基于此,基于渲染目标纹理,确定目标模型的第一遮罩图的步骤之后,上述方法还包括:
根据第一遮罩图中第一交互区域对应的第一像素值,确定第一遮罩图的关键帧;将关键帧中第一交互区域对应的像素值确定为第一像素值,将关键帧中除第一交互区域以外的区域对应的像素值确定为第二像素值;其中,目标模型的第一交互区域为可操作区域,第一交互区域以外的区域为非操作区域;根据关键帧,对目标模型对应的关键帧的帧数进行更新处理,确定目标模型中第一交互区域的顶点动画。
上述第一交互区域,不止可以进行模型的顶点偏移操作,还可以用于控制顶点动画的关键帧,作为关键帧遮罩图,只在此区域进行顶点动画的帧数改变。
当然,上述步骤也可以是:根据第三遮罩图中第二交互区域对应的像素值,确定第三遮罩图的关键帧;将关键帧中第二交互区域对应的像素值确定为第一像素值,将关键帧中除第二交互区域以外的区域对应的像素值确定为第二像素值;其中,目标模型的第二交互区域为可操作区域,第二交互区域以外的区域为非操作区域;根据关键帧,对目标模型对应的关键帧的帧数进行更新处理,确定目标模型中第二交互区域的顶点动画。
具体的,可以通过下述方式确定第三遮罩图的关键帧:
Frame=Ceil(RTColMulti*α);
其中,Ceil()函数表示的是向上取整,该函数在此处只会取得大于或者等于指定表达式的最小整数,通常包括0和大于0的整数,即数值为0的区域为关键帧不变的区域,数值为大于0的整数的区域为关键帧可操作区域,α表示的是关键帧变化系数。Frame这个结果作为一个根据第三遮罩图获取到的对目标顶点动画模型动态交互的可选操作,可变换交互区域的关键帧动画状态,在顶点动画纹理编码了多帧关键帧的时候可发挥作用。
举例说明,第三遮罩图中第一交互区域的像素值为1,边缘区域A,B根据UV偏移效果计算得到像素值为0.5,0.2,将这个数值作为系数可使得第一交互区域和边缘区域的顶点动画关键帧发生变化,如将第三遮罩图的像素值统一乘10(即α=10),然后通过上述公式计算Frame,这个结果就可作为帧数提供给程序设置不同区域的关键帧,第一交互区域的关键帧数值为10,边缘区域A,B的关键帧数分别为5和2,未交互区域不发生改变。
上述方式中,第一交互区域除了可作为顶点偏移的遮罩区域,还可作为顶点动画关键帧变化的遮罩区域,可以在遮罩区域内实现顶点动画的关键帧变化效果,对于一些特殊局部动画需求有更灵活的使用方式。
对应上述的方法实施例,本发明实施例提供了一种顶点动画的处理装置,如图8所示,该装置包括:
获取模块81,用于获取目标模型的顶点动画纹理;其中,顶点动画纹理存储有目标模型中的顶点在第一动画帧的位置信息和/或旋转信息;
绘制模块82,用于响应于受控交互模型与目标模型进行交互操作,确定目标模型上的第一交互区域;从预设渲染目标上获取与第一交互区域对应的渲染区域,在渲染区域绘制预设图案,得到渲染目标纹理;
确定模块83,用于基于渲染目标纹理,确定目标模型的第一遮罩图;
处理模块84,用于根据第一遮罩图和顶点动画纹理,进行更新处理,对目标模型中第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到目标模型中第一交互区域的第二动画帧。
本发明提供了一种顶点动画的处理装置,获取目标模型的顶点动画纹理;响应于受控交互模型与目标模型进行交互操作,确定目标模型上的第一交互区域,在预设渲染目标中与第一交互区域对应的渲染区域上绘制预设图案,得到渲染目标纹理;基于渲染目标纹理,确定目标模型的第一遮罩图;根据第一遮罩图和顶点动画纹理,对目标模型的顶点进行偏移处理,得到目标模型中第一交互区域的第二动画帧。该方式中,通过确定第一交互区域,可以实时计算目标模型的交互动态,通过预设渲染目标记录了目标模型的动态交互区域,同时通过第一遮罩图使目标模型的第一交互区域可选可控,实现了目标模型中部分区域的顶点动画的动态交互。
进一步的,上述绘制模块还用于:根据目标模型表面的位置点与预设渲染目标的位置点的位置对应关系,从预设渲染目标上获取渲染区域;根据渲染区域的位置坐标、第一交互区域的位置坐标、以及预设的纹理缩放参数,确定预设图案映射到渲染区域的UV坐标;根据UV坐标,将预设图案绘制到渲染区域,得到渲染目标纹理。
进一步的,上述渲染目标纹理中预设图案的区域的像素为第一像素值,除预设图案的区域以外的区域的像素为第二像素值;上述确定模块还用于:根据渲染目标纹理中第一交互区域对应的第一像素值,以及除第一交互区域以外的区域对应的第二像素值,得到目标模型的第一遮罩图。
进一步的,上述确定模块还用于:其中,RTColOrigin表示第一遮罩图,包括第一像素值和第二像素值;RTTex表示渲染目标纹理;Wpos.xy表示目标模型的世界坐标位置信息;RTScale表示预设渲染目标的大小;SampleBias表示UV偏移参数;Sample()为采样函数。
进一步的,上述第一像素值至少包括第一数值和第二数值;上述预设渲染目标中,预设图案的中心区域的像素为第一数值,预设图案的中心区域的边缘区域的像素为第二数值;其中,第一数值大于第二数值,第二数值大于第二像素值。
进一步的,上述装置还包括偏移模块,用于:根据预设的偏移参数,对渲染目标纹理中的预设图案进行偏移处理,得到偏移后的渲染目标纹理的遮罩图;根据偏移后的渲染目标纹理的遮罩图和第一遮罩图,得到渲染目标纹理的第二遮罩图;其中,第二遮罩图中包括预设图案偏移后的偏移区域;基于第二遮罩图和第一遮罩图,确定目标模型的第三遮罩图。
进一步的,上述偏移模块还用于:根据偏移参数指示的偏移方向和偏移距离,将渲染目标纹理中的预设图案向偏移方向偏移上述偏移距离,得到偏移后的渲染目标纹理;其中,偏移方向至少包括:UV的X轴正方向、UV的Y轴正方向、UV的X轴负方向、以及UV的Y轴负方向;根据偏移后的渲染目标纹理中的像素值,得到偏移后的渲染目标纹理的遮罩图。
进一步的,上述偏移后的渲染目标纹理的遮罩图包括多个;上述偏移模块还用于:将多个偏移后的渲染目标纹理的遮罩图中对应位置的像素值相加,并减去渲染目标纹理的第一遮罩图中对应位置的像素值,得到渲染目标纹理的第二遮罩图。
进一步的,上述偏移模块还用于: 其中,RTColMulti表示第三遮罩图,包括第二交互区域对应的像素值和除第二交互区域以外的区域的像素值,第二交互区域包括第一交互区域和第一交互区域的边缘区域,边缘区域为预设图案偏移后的偏移区域对应的区域;RTColOrigin表示第一遮罩图;RTCol(Offsetn)表示第二遮罩图,Offsetn表示第二交互区域中第一交互区域的边缘区域对应的第n个区域范围,Offsetn>Offsetn-1;ω为控制第一交互区域对应的像素值的第一系数;φi为第i个区域范围对应的第一交互区域的边缘区域的遮罩图对应的第二系数。
进一步的,上述处理模块还用于:获取顶点动画纹理中的第一动画帧的位置信息和/或旋转信息;根据第一遮罩图和预设的坐标缩放向量,通过预设的顶点偏移函数,将目标模型中第一交互区域的顶点在第一动画帧的位置信息和/或旋转信息,偏移第一遮罩图中第一交互区域的像素值,得到目标模型中第一交互区域的第二动画帧。
进一步的,上述装置还包括第二处理模块,用于:通过更新第二系数,更新第三遮罩图中第二交互区域的边缘区域对应的像素值,得到更新后的第三遮罩图;根据更新后的第三遮罩图和顶点动画纹理,对目标模型中第二交互区域的顶点进行顶点偏移处理,得到目标模型中第二交互区域的第三动画帧。
进一步的,上述顶点动画纹理还存储有目标模型中的顶点在多个动画帧的位置信息和/或旋转信息;上述装置还包括第三处理模块,用于:根据第一遮罩图中第一交互区域对应的第一像素值,确定第一遮罩图的关键帧;将关键帧中第一交互区域对应的像素值确定为第一像素值,将关键帧中除第一交互区域以外的区域对应的像素值确定为第二像素值;其中,目标模型的第一交互区域为可操作区域,第一交互区域以外的区域为非操作区域;根据关键帧,对目标模型对应的关键帧的帧数进行更新处理,确定目标模型中第一交互区域的顶点动画。
本发明实施例提供的顶点动画的处理装置,与上述实施例提供的顶点动画的处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述顶点动画的处理方法。该电子设备可以是服务器,也可以是终端设备。
参见图9所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的计算机可执行指令,该处理器100执行计算机可执行指令以实现上述顶点动画的处理方法。
进一步地,图9所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述顶点动画的处理方法。
本发明实施例所提供的顶点动画的处理方法、装置、电子设备以及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种顶点动画的处理方法,其特征在于,所述方法包括:
获取目标模型的顶点动画纹理;其中,所述顶点动画纹理存储有所述目标模型中的顶点在第一动画帧的位置信息和/或旋转信息;
响应于受控交互模型与所述目标模型进行交互操作,确定所述目标模型上的第一交互区域;从预设渲染目标上获取与所述第一交互区域对应的渲染区域,在所述渲染区域绘制预设图案,得到渲染目标纹理;
基于所述渲染目标纹理,确定所述目标模型的第一遮罩图;
根据所述第一遮罩图和所述顶点动画纹理,对所述目标模型中所述第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到所述目标模型中所述第一交互区域的第二动画帧。
2.根据权利要求1所述的方法,其特征在于,从预设渲染目标上获取与所述第一交互区域对应的渲染区域,在所述渲染区域绘制预设图案,得到渲染目标纹理的步骤,包括:
根据所述目标模型表面的位置点与所述预设渲染目标的位置点的位置对应关系,从所述预设渲染目标上获取所述渲染区域;
根据所述渲染区域的位置坐标、所述第一交互区域的位置坐标、以及预设的纹理缩放参数,确定所述预设图案映射到所述渲染区域的UV坐标;
根据所述UV坐标,将所述预设图案绘制到所述渲染区域,得到所述渲染目标纹理。
3.根据权利要求1所述的方法,其特征在于,所述渲染目标纹理中所述预设图案的区域的像素为第一像素值,除所述预设图案的区域以外的区域的像素为第二像素值;
基于所述渲染目标纹理,确定所述目标模型的第一遮罩图的步骤,包括:
根据所述渲染目标纹理中所述第一交互区域对应的第一像素值,以及除所述第一交互区域以外的区域对应的第二像素值,得到所述目标模型的第一遮罩图。
5.根据权利要求3所述的方法,其特征在于,所述第一像素值至少包括第一数值和第二数值;所述预设渲染目标中,所述预设图案的中心区域的像素为所述第一数值,所述预设图案的中心区域的边缘区域的像素为所述第二数值;其中,所述第一数值大于所述第二数值,所述第二数值大于所述第二像素值。
6.根据权利要求1所述的方法,其特征在于,基于所述渲染目标纹理,确定所述目标模型的第一遮罩图的步骤之后,所述方法还包括:
根据预设的偏移参数,对所述渲染目标纹理中的预设图案进行偏移处理,得到偏移后的所述渲染目标纹理的遮罩图;
根据所述偏移后的所述渲染目标纹理的遮罩图和所述第一遮罩图,得到所述渲染目标纹理的第二遮罩图;其中,所述第二遮罩图中包括所述预设图案偏移后的偏移区域;
基于所述第二遮罩图和所述第一遮罩图,确定所述目标模型的第三遮罩图。
7.根据权利要求6所述的方法,其特征在于,根据预设的偏移参数,对所述渲染目标纹理中的预设图案进行偏移处理,得到偏移后的所述渲染目标纹理的遮罩图的步骤,包括:
根据所述偏移参数指示的偏移方向和偏移距离,将所述渲染目标纹理中的预设图案向所述偏移方向偏移所述偏移距离,得到偏移后的所述渲染目标纹理;其中,所述偏移方向至少包括:UV的X轴正方向、UV的Y轴正方向、UV的X轴负方向、以及UV的Y轴负方向;
根据所述偏移后的所述渲染目标纹理中的像素值,得到偏移后的所述渲染目标纹理的遮罩图。
8.根据权利要求6所述的方法,其特征在于,所述偏移后的所述渲染目标纹理的遮罩图包括多个;
根据所述偏移后的所述渲染目标纹理的遮罩图和所述第一遮罩图,得到所述渲染目标纹理的第二遮罩图的步骤,包括:
将多个所述偏移后的所述渲染目标纹理的遮罩图中对应位置的像素值相加,并减去所述渲染目标纹理的第一遮罩图中对应位置的像素值,得到所述渲染目标纹理的第二遮罩图。
9.根据权利要求6所述的方法,其特征在于,基于所述第二遮罩图和所述第一遮罩图,确定所述目标模型的第三遮罩图的步骤,包括:
其中,RTColMulti表示所述第三遮罩图,包括第二交互区域对应的像素值和除所述第二交互区域以外的区域的像素值,所述第二交互区域包括所述第一交互区域和所述第一交互区域的边缘区域,所述边缘区域为所述预设图案偏移后的偏移区域对应的区域;RTColOrigin表示所述第一遮罩图;RTCol(Offsetn)表示所述第二遮罩图,Offsetn表示所述第二交互区域中所述第一交互区域的边缘区域对应的第n个区域范围,Offsetn>Offsetn-1;ω为控制所述第一交互区域对应的像素值的第一系数;φi为第i个区域范围对应的所述第一交互区域的边缘区域的遮罩图对应的第二系数。
10.根据权利要求1所述的方法,其特征在于,根据所述第一遮罩图和所述顶点动画纹理,对所述目标模型中所述第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到所述目标模型中所述第一交互区域的第二动画帧的步骤,包括:
获取所述顶点动画纹理中的所述第一动画帧的位置信息和/或旋转信息;
根据所述第一遮罩图和预设的坐标缩放向量,通过预设的顶点偏移函数,将所述目标模型中所述第一交互区域的顶点在第一动画帧的位置信息和/或旋转信息,偏移所述第一遮罩图中所述第一交互区域的像素值,得到所述目标模型中所述第一交互区域的第二动画帧。
11.根据权利要求9所述的方法,其特征在于,基于所述第二遮罩图和所述第一遮罩图,确定所述目标模型的第三遮罩图的步骤之后,所述方法还包括:
通过更新所述第二系数,更新所述第三遮罩图中所述第二交互区域的边缘区域对应的像素值,得到更新后的所述第三遮罩图;
根据所述更新后的所述第三遮罩图和所述顶点动画纹理,对所述目标模型中所述第二交互区域的顶点进行顶点偏移处理,得到所述目标模型中所述第二交互区域的第三动画帧。
12.根据权利要求3所述的方法,其特征在于,所述顶点动画纹理还存储有所述目标模型中的顶点在多个动画帧的位置信息和/或旋转信息;
基于所述渲染目标纹理,确定所述目标模型的第一遮罩图的步骤之后,所述方法还包括:
根据所述第一遮罩图中所述第一交互区域对应的第一像素值,确定所述第一遮罩图的关键帧;
将所述关键帧中所述第一交互区域对应的像素值确定为所述第一像素值,将所述关键帧中除所述第一交互区域以外的区域对应的像素值确定为所述第二像素值;其中,所述目标模型的所述第一交互区域为可操作区域,所述第一交互区域以外的区域为非操作区域;
根据所述关键帧,对所述目标模型对应的所述关键帧的帧数进行更新处理,确定所述目标模型中所述第一交互区域的顶点动画。
13.一种顶点动画的处理装置,其特征在于,所述装置包括:
获取模块,用于获取目标模型的顶点动画纹理;其中,所述顶点动画纹理存储有所述目标模型中的顶点在第一动画帧的位置信息和/或旋转信息;
绘制模块,用于响应于受控交互模型与所述目标模型进行交互操作,确定所述目标模型上的第一交互区域;从预设渲染目标上获取与所述第一交互区域对应的渲染区域,在所述渲染区域绘制预设图案,得到渲染目标纹理;
确定模块,用于基于所述渲染目标纹理,确定所述目标模型的第一遮罩图;
处理模块,用于根据所述第一遮罩图和所述顶点动画纹理,对所述目标模型中所述第一交互区域在第一动画帧的顶点进行顶点偏移处理,得到所述目标模型中所述第一交互区域的第二动画帧。
14.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-12任一项所述的顶点动画的处理方法。
15.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-12任一项所述的顶点动画的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189612.4A CN114627214A (zh) | 2022-02-28 | 2022-02-28 | 顶点动画的处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189612.4A CN114627214A (zh) | 2022-02-28 | 2022-02-28 | 顶点动画的处理方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114627214A true CN114627214A (zh) | 2022-06-14 |
Family
ID=81901069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210189612.4A Pending CN114627214A (zh) | 2022-02-28 | 2022-02-28 | 顶点动画的处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114627214A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116664734A (zh) * | 2022-10-19 | 2023-08-29 | 荣耀终端有限公司 | 环形图的显示方法、电子设备及可读存储介质 |
-
2022
- 2022-02-28 CN CN202210189612.4A patent/CN114627214A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116664734A (zh) * | 2022-10-19 | 2023-08-29 | 荣耀终端有限公司 | 环形图的显示方法、电子设备及可读存储介质 |
CN116664734B (zh) * | 2022-10-19 | 2024-05-07 | 荣耀终端有限公司 | 环形图的显示方法、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7636087B2 (en) | Program, information storage medium, image generation system, and image generation method | |
CN113838176A (zh) | 模型的训练方法、三维人脸图像生成方法及设备 | |
JP2010033296A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
CN111369655A (zh) | 渲染方法、装置和终端设备 | |
CN112241993B (zh) | 游戏图像处理方法、装置及电子设备 | |
KR101148101B1 (ko) | 얼굴 표정 리타게팅 방법 | |
CN109325990A (zh) | 图像处理方法及图像处理装置、存储介质 | |
CN104050708A (zh) | 一种3d游戏引擎lod系统的实现方法 | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
US9056247B2 (en) | System and method for efficient character animation | |
CN114627214A (zh) | 顶点动画的处理方法、装置和电子设备 | |
US7479961B2 (en) | Program, information storage medium, and image generation system | |
CN104700446A (zh) | 一种粒子系统中粒子顶点数据的更新方法 | |
CN111514581B (zh) | 游戏中虚拟对象的显示方法、装置以及电子终端 | |
CN113230659A (zh) | 一种游戏的显示控制方法及装置 | |
JP6980913B2 (ja) | 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム | |
CN111583398B (zh) | 图像显示的方法、装置、电子设备及计算机可读存储介质 | |
JP4868586B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2008027064A (ja) | プログラム、情報記録媒体および画像生成システム | |
CN115830210A (zh) | 虚拟对象的渲染方法、装置、电子设备及存储介质 | |
CN116012512A (zh) | 泡沫效果的渲染方法、渲染装置、电子设备、存储介质 | |
JP2006252426A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
CN114254501B (zh) | 一种大规模草地渲染与仿真方法 | |
CN114549732A (zh) | 模型的渲染方法、装置及电子设备 | |
CN114219888A (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 |