CN106504309A - 一种图像合成的方法以及图像合成装置 - Google Patents
一种图像合成的方法以及图像合成装置 Download PDFInfo
- Publication number
- CN106504309A CN106504309A CN201611045200.4A CN201611045200A CN106504309A CN 106504309 A CN106504309 A CN 106504309A CN 201611045200 A CN201611045200 A CN 201611045200A CN 106504309 A CN106504309 A CN 106504309A
- Authority
- CN
- China
- Prior art keywords
- data
- skeleton
- additive
- simulated object
- target
- 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
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
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- 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
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
技术领域
本发明涉及计算机领域,尤其涉及一种图像合成的方法以及图像合成装置。
背景技术
在大型3D交互式应用中,通常使用同一个添加物avatar资源去适配不同的模拟对象。3D交互式应用中,一般当模拟对象之间差异比较大的时候,avatar带在不同的模拟对象上的时候,会出现穿帮的问题,这是因为avatar都是绑定在固定位置的骨骼上面,但是由于模拟对象不一样的关系,会出现看上去偏移、穿帮或者角度不正确的问题。如果给每个角色单独制作avatar,这将大大增加美术的工作量,而且会占用大量的硬盘容量。
所以,在现有的角色制作中,模拟对象一般包括骨骼模型和蒙皮,若还包括avatar,那么为了节省美术的工作量和硬盘资源,通常会先存储待调整的骨骼的偏移数据,这个待调整的骨骼的偏移数据是为了作用于avatar的显示。然后在渲染的计算时加上之前存储的偏移数据,调整模拟对象中的骨骼。即在配置模型中存储想要调整的骨骼数据,在渲染计算中,把相应骨骼中的配置的调整数据加到对应的骨骼上,以达到调整模拟对象包括的添加物的目的。
但是,这会导致骨骼模型和avatar同时改变大小,会把模拟对象一起变化,因为蒙皮和avatar绑定的骨骼有一部分是相同的。这样,为了调整avatar,而导致模拟对象的骨骼模型发生变化,即显示出的模拟对象也发生了变形。
发明内容
本发明实施例提供了一种图像合成的方法以及图像合成装置,用于协调的显示合成有添加物的模拟对象,从而使得用户有良好的体验和视觉享受。
本发明实施例第一方面提供一种图像合成的方法,可以包括:
获取模拟对象的骨骼模型的第一数据、待合成到所述模拟对象的添加物的骨骼数据;
根据所述第一数据和所述添加物的骨骼数据,确定所述骨骼模型上与所述添加物对应的目标骨骼;
从所述第一数据中复制出所述目标骨骼的第一目标数据;
根据预先配置的所述目标骨骼的偏移数据,对所述目标骨骼的第一目标数据进行调整,以得到第一调整数据;
根据所述第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象。
本发明实施例第二方面提供一种图像合成装置,可以包括:
获取模块,用于获取模拟对象的骨骼模型的第一数据、待合成到所述模拟对象的添加物的骨骼数据;
确定模块,用于根据所述第一数据和所述添加物的骨骼数据,确定所述骨骼模型上与所述添加物对应的目标骨骼;
复制模块,用于从所述第一数据中复制出所述目标骨骼的第一目标数据;
调整模块,用于根据预先配置的所述目标骨骼的偏移数据,对所述目标骨骼的第一目标数据进行调整,以得到第一调整数据;
渲染模块,用于根据所述第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,获取模拟对象的骨骼模型的第一数据、待合成到所述模拟对象的添加物的骨骼数据;根据所述第一数据和所述添加物的骨骼数据,确定所述骨骼模型上与所述添加物对应的目标骨骼;从所述第一数据中复制出所述目标骨骼的第一目标数据;根据预先配置的所述目标骨骼的偏移数据,对所述目标骨骼的第一目标数据进行调整,以得到第一调整数据;根据所述第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象。这里根据目标骨骼的偏移数据,进行调整的对象是目标骨骼的第一目标数据,所以,模拟对象的骨骼模型的第一数据是不会发生变化的,最后根据第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象,因为对添加物进行了调整,所以最后显示的添加物是与该模拟对象协调的,使用户有良好的体验和视觉享受。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中模拟对象添加avatar后显示的不协调的一个示意图;
图2为本发明实施例中模拟对象添加avatar后正常显示的一个示意图;
图3为本发明实施例中模拟对象添加avatar后显示的不协调的另一个示意图;
图4为本发明实施例中模拟对象添加avatar后正常显示的另一个示意图;
图5为本发明实施例中人物模拟对象的骨骼模型的一个示意图;
图6为本发明实施例中关于人物模拟对象的关节连接示意图;
图7为本发明实施例中图像合成的方法的一个实施例示意图;
图8为本发明实施例中人物模拟对象的骨骼模型的一个示意图;
图9为本发明实施例中人物模拟对象的披风骨骼模型的一个示意图;
图10为本发明实施例中添加物绑定骨骼一个示意图;
图11为本发明实施例中图像合成的方法的另一个实施例示意图;
图12为本发明实施例中复制目标骨骼的第一目标数据的示意图;
图13为本发明实施例中调整目标骨骼的第一目标数据的示意图;
图14为本发明实施例中调整武将A的披风后的协调示意图;
图15为本发明实施例中调整武将B的披风后的协调示意图;
图16为本发明实施例中调整武将C的披风后的协调示意图;
图17为本发明实施例中图像合成装置的一个实施例示意图;
图18为本发明实施例中图像合成装置的另一个实施例示意图;
图19为本发明实施例中图像合成装置的另一个实施例示意图;
图20为本发明实施例中图像合成装置的另一个实施例示意图;
图21为本发明实施例中图像合成装置的另一个实施例示意图;
图22为本发明实施例中图像合成装置的另一个实施例示意图;
图23为本发明实施例中图像合成装置的另一个实施例示意图。
具体实施方式
本发明实施例提供了一种图像合成的方法以及图像合成装置,用于协调的显示合成有添加物的模拟对象,使用户有良好的体验和视觉享受。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明技术方案主要应用于交互式应用系统,其中,交互式应用系统中可以包括多个模拟对象,每个模拟对象都可以有不同的添加物avatar,而在3D模型中,通常是使用同一个avatar资源去适配不同的模拟对象。应理解,这里的模拟对象包括但不限于人物模拟对象、动物模拟对象、机器模拟对象和植物模拟对象。下述以人物模拟对象举例来进行说明,例如,可以是使用同一个头盔去适配不同的人物模拟对象,或者使用同一个披风去适配不同的人物模拟对象等。
在现有技术中,模拟对象一般包括骨骼模型和蒙皮,若还包括avatar,那么为了节省美术的工作量和硬盘资源,通常会先存储待调整的骨骼的偏移数据,这个待调整的骨骼的偏移数据是为了作用于avatar的显示。然后在渲染的计算时加上之前存储的偏移数据,调整模拟对象中的骨骼。但是,这会导致骨骼模型和avatar同时改变大小,会把模拟对象一起变化,因为蒙皮和avatar绑定的骨骼有一部分是相同的。
示例性的,给该人物模拟对象添加了一个披风,经过调整运行之后,如图1所示,为在现有技术中经过调整后,显示的不协调的人物模拟对象的示意图。在图1中,该人物模拟对象的肩膀上移了,理论上,调整后的人物模拟对象与图1所示对应的正确示意图如图2所示。如图3所示,也是一个经过调整后,显示的不协调的人物模拟对象的另一个示意图。在图3中,披风的显示出现错误,理论上,整后的人物模拟对象与图3所示对应的正确示意图如图4所示。应理解,这里对于现有技术中,经过调整后,所出现的模拟对象穿帮或者偏移等显示,只是举了其中的两个来示例而已,在实际应用中,会出现很多添加物与模拟对象的显示不协调的情形,此处不一一赘述了。
在骨骼蒙皮动画中,每个人物模拟对象都会对应一个骨骼图,那么,具体的如图5所示,为关于人物模拟对象的骨骼模型示意图。下面对本发明实施例中所用到的骨骼动画原理进行一个简要的说明。骨骼动画,顾名思义,就是用骨骼驱动的动画,是现代主流3D大型交互式应用通用的动画方式。在骨骼动画中,一个角色character中有一副骨骼skeleton,也可以称为骨骼模型,而骨骼skeleton是由一组骨头bones组成的,虽然叫bone,但是其实是bone之间的关节。实现上其实是一个以关节为原点的坐标系,所以在现实中,本没有bone的数据结构,而是关节joint,如图6所示,为本发明实施例的关于人物模拟对象的关节连接示意图。
骨骼动画的模拟对象分成很多部分(网格Mesh),通过一个父子层次结构将这些分散的Mesh组织在一起,父Mesh带动其下子Mesh的运动,各Mesh中的顶点坐标定义在自己的坐标系中,这样各个Mesh是作为一个整体参与运动的。设置模拟对象的位置和朝向,实际是在设置根骨骼的位置和朝向,然后根据骨骼层次结构中父子骨骼之间的变换关系计算出各个骨骼的位置和朝向,然后根据骨骼对Mesh中顶点的绑定计算出顶点在世界坐标系中的坐标,从而对顶点进行渲染。
骨骼动画的基本原理可概括为:在骨骼控制下,通过顶点混合动态计算蒙皮网格的顶点,而骨骼的运动相对于其父骨骼,并由动画关键帧数据驱动。一个骨骼动画通常包括骨骼层次结构数据,网格(Mesh)数据,网格蒙皮数据(skin info)和骨骼的动画(关键帧)数据。骨骼层次结构数据主要是关于谁是谁的子关节或谁是某个关节的父关节等信息。网格(Mesh)数据和网格蒙皮数据(skin info)一般可以简称为蒙皮数据。
Skin数据决定顶点如何绑定到骨骼上。顶点的Skin数据包括顶点受哪些骨骼影响以及这些骨骼影响该顶点时的权重(weight)。另外对于每块骨骼还需要骨骼偏移矩阵(Bone Offset Matrix)用来将顶点从Mesh空间变换到骨骼空间。骨骼控制蒙皮运动,骨骼本身的运动是动画数据的设置。每个关键帧中包含时间和骨骼动画信息,动画信息可以用一个矩阵直接表示骨骼新的变换,也可用四元数表示骨骼的旋转,也可以随便自己定义什么只要能让骨骼动就行。除了使用编辑设定好的动画帧数据,也可以使用物理计算对骨骼进行实时控制。在骨骼动画中,骨骼才是模型主体,Mesh不过是类似于一层皮,一件衣服。
骨骼就是坐标空间,骨骼层次就是嵌套的坐标空间。关节只是描述骨骼的位置即骨骼自己的坐标空间原点在其父空间中的位置,绕关节旋转是指骨骼坐标空间(包括所有子空间)自身的旋转。通过组成一个层次结构,就可以通过父骨骼控制子骨骼的运动,牵一发而动全身,改变某骨骼时并不需要设置其下子骨骼的位置,子骨骼的位置会通过计算自动得到。
(1)顶点绑定
把蒙皮上的顶点绑定到一个或者多个关节上,每个关节对顶点的影响有一个权重。蒙皮是指将Mesh网格中的顶点附着(绑定)在骨骼之上,而且每个顶点可以被多个骨骼所控制,这样在关节处的顶点由于同时受到父子骨骼的拉扯而改变位置就消除了裂缝。
(2)单个骨骼对顶点作用的过程
每个绑定关节的矩阵都是已知的,函数使用一块骨骼对顶点进行变换,将顶点从Mesh坐标系变换到世界坐标系,那么就可以从模型空间转换到对应关节的空间。其中一个很重要的点是,不管关节如何变换,当变到关节空间后,顶点的坐标,在关节变换的过程中就不会变,这样,只要再把关节空间中的顶点坐标用变换后的关节空间转换到模型空间,就可以得到模型空间变换后的坐标。
(3)多个骨骼对顶点作用的过程
可以根据如下公式(1-1)进行计算:
Mi=Mrp-s*Mb-rpi*Ms-bi(1-1)
先需要计算到根关节的变换,转换到根关节之后,再转换到模型空间。公式中的i表示的就是第i个关节,这样就产生了一组蒙皮矩阵Kj,此数组称为矩阵调色板,调色板的意思其实就是在选定的矩阵中选择其中一个矩阵使用。应理解,这里的蒙皮矩阵Kj与Mi相同。在公式1-1中,Ms-bi为在绑定姿势时,从蒙皮坐标系中到骨骼坐标系中的转换矩阵;Mb-rpi为从当前关节的坐标系中到根关节的转换坐标;Mrp-s为从根关节的坐标系中到蒙皮坐标系中的转换坐标。
(4)顶点蒙皮至多个关节(骨骼)
对于多块骨骼,对每块骨骼执行这个过程并将结果根据权重混合,即顶点混合(vertex blending)就得到顶点最终的世界坐标。简要的概括:就是将每个关节变换后的顶点乘以权重累加起来。在公式1-2中,表示模型中的顶点绑定;ωij表示权重;表示模型中的顶点电流。
(5)骨骼蒙皮算法
Vfinal=Mworld*Mw-s*Mb-w*Ms-b*V (1-3)
Vfinal=Mprojection*Mview*Mworld*Mw-s*Mb-w*Ms-b*V (1-4)
在公式中,V表示mesh网格中的顶点在skin model蒙皮模型坐标系下的坐标值。Ms-b是将顶点坐标从skin蒙皮模型坐标中变换到bone的bind pose绑定姿势坐标系中,这个matrix矩阵是跟着资源导出的,存在了Ni Skinning Mesh Modifier(镍的蒙皮网格修改器)中。
Mprojection:投影矩阵;Mview:观察矩阵;Mworld:模型到世界的转换矩阵;Mw-s:世界到蒙皮的转换矩阵;Mb-w:骨骼到世界的转换矩阵;Ms-b:蒙皮到骨骼的转换矩阵。
其中,Mb-w这个是和一般骨骼动画中不同的地方,他取消了转换到root boneparent(根骨骼),因为后面还是需要转换到world坐标中计算skin蒙皮模型的transform(改变数据),所以,这边直接转换到了world坐标,可以减少矩阵计算次数。需要说明的是,公式1-4所表示的是转换到的屏幕坐标。
在这个计算公式中,其实也说明了计算的流程,在这个流程中,计算Mb-w是本发明技术方案需要做改变的地方。这一步,计算了bones骨头对skin蒙皮的影响,这个时候,我们给根的bones一个local transform(本地改变数据),就可以改变绑定改骨骼的蒙皮了。但是,需要改动只影响avatar的数据,这个时候就需要做特殊的处理,即本发明技术方案的实现。
本发明实施例中的执行主体为终端,端可以包括计算机、服务器、手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)、销售终端(英文全称:Point of Sales,英文缩写:POS)、车载电脑等任意终端设备。
下面以实施例的方式对本发明技术方案进行具体描述,如图7所示,为本发明实施例中图像合成的方法的一个实施例示意图,包括:
701、获取模拟对象的骨骼模型的第一数据、待合成到模拟对象的添加物的骨骼数据;
在本发明实施例中,美术会生成模拟对象的骨骼模型的第一数据、模拟对象的蒙皮数据、待合成到模拟对象的添加物的骨骼数据、添加物的蒙皮数据。引擎调用这些数据,即引擎获取模拟对象的骨骼模型的第一数据、待合成到模拟对象的添加物的骨骼数据;进一步的,在实际应用中,还获取模拟对象的蒙皮数据和添加物的蒙皮数据;引擎获取的细节信息包括但不限于上述的概括,此处不做赘述。对于模拟对象的骨骼模型的示意图,可以如上述图5所示。应理解,这里的添加物可以是剑,披风,头盔,铠甲和手套等外挂物。
702、根据第一数据和添加物的骨骼数据,确定骨骼模型上与添加物对应的目标骨骼;
在本发明实施例中,引擎获取上述数据之后,可根据第一数据和添加物的骨骼数据,确定骨骼模型上与添加物对应的目标骨骼;具体的,可包括:建立添加物的骨骼数据和第一数据的对应关系,使添加物绑定到骨骼模型上,确定目标骨骼。
示例性的,带骨骼动画的avatar的绑定为,如图8所示,为人物模拟对象的骨骼模型的一个示意图,图9为披风骨骼的一个示意图。当对没有需要特殊avatar transform(改变添加物)的时候,也就是没有获取到偏移数据,做法是,拷贝一份完全一模一样的骨骼在avatar资源当中,在资源中绑定对应的骨骼,然后当穿戴到人物上的时候,根据对应的骨骼名字,再重新绑定到模拟对象的骨骼上,这样就可以在资源制作过程中控制avatar的骨骼绑定,而且在程序中又不用运行两套骨骼了。所以,其实avatar资源中的骨骼,主要是用于索引的,avatar的蒙皮其实在运行的时候才绑定的。这个时候avatar的动画完全跟模拟对象是一致的。Avatar中绑定的骨骼如图10中所示,这些骨骼跟模拟对象中的骨骼名字一样。应理解,这里将添加物的骨骼数据和模拟对象的骨骼模型绑定在一起之后,就可以确定与添加物相关的目标骨骼了。
703、从第一数据中复制出目标骨骼的第一目标数据;
在本发明实施例中,在上述步骤得知,确定与添加物对应的目标骨骼之后,引擎可以从获取的模拟对象的骨骼模型的第一数据中,复制出与目标骨骼的第一目标数据。在实际应用中,模拟对象的骨骼模型的第一数据和目标骨骼的第一目标数据,都可添加在对应的nif文件中,这里目标骨骼的第一目标数据也可以称为偏移(offest)骨骼的数据。进一步的,实际应用中,引擎还需将模拟对象的蒙皮数据和第一数据绑定在一起,形成模拟对象的蒙皮绑定数据。
704、根据预先配置的目标骨骼的偏移数据,对目标骨骼的第一目标数据进行调整,以得到第一调整数据;
在本发明实施例中,根据预先配置的目标骨骼的偏移数据,对目标骨骼的第一目标数据进行调整,以得到第一调整数据。在现有技术中,没有复制目标骨骼的第一目标数据,偏移数据是直接作用在骨骼模型的第一数据上的,所以,引擎调整后,导致模拟对象的骨骼模型也发生变化,而在本发明中,模拟对象的骨骼模型的第一数据不会发生变化,目标骨骼的偏移数据是调整目标骨骼的第一目标数据的,进行调整后,需要确定第一调整数据;而这第一调整数据是作用于avatar的显示。
其中,与预先配置的目标骨骼的偏移数据是动画系统根据预先测试得到的数据,即动画系统先将添加物添加到待添加的模拟对象上,这里的模拟对象包括骨骼模型和蒙皮,确定最后显示出的合成效果是否是预期的,若不是,则会根据相应的算法计算出一个数据,这个数据可称为与添加物对应的目标骨骼的偏移数据。还可以形象的理解为,因为在骨骼动画中,出于资源有限或者其他的一些考虑,不会根据每个模拟对象单独进行配置对应的avatar,一般使用同一个avatar去适配不同的模拟对象,但是因为每个模拟对象的骨骼大小不同(高矮),蒙皮不同(胖瘦,衣服等),所以,当同一个avatar添加在模拟对象上时,会出现不协调的情况,那么就得根据模拟对象的实际情况进行调整,这里美术通过计算就会得到一个偏移数据。
这里的目标骨骼的理解是,每个添加物是根据相应的设计绑定在骨骼模型的固定的骨骼上,例如,披风可能是绑定在肩膀的一块或几块骨骼,剑是绑定在手部位的骨骼上。那么,这里肩膀的一块或几块骨骼和手部位的骨骼就是上文所提及的目标骨骼。
需要说明的是,这里根据预先配置的目标骨骼的偏移数据进行调整后,确定的第一调整数据,运行该第一调整数据可以达到的效果是移动avatar的位置、旋转avatar、或者改变avatar的大小等。
705、根据第一调整数据和第一数据进行渲染,得到合成有添加物的模拟对象。
在本发明实施例中,根据预先配置的目标骨骼的偏移数据,对目标骨骼的第一目标数据进行调整,确定第一调整数据之后,根据第一调整数据和第一数据进行渲染,得到合成有添加物的模拟对象。
具体的,(1)可包括:获取模拟对象的蒙皮数据和添加物的蒙皮数据;对模拟对象的蒙皮数据和第一数据进行绑定,得到模拟对象的蒙皮绑定数据,并对蒙皮绑定数据进行渲染,得到模拟对象;对第一调整数据、添加物的蒙皮数据进行渲染,得到添加物;将模拟对象与添加物进行合成,得到合成有添加物的模拟对象。需要说明的是,avatar的蒙皮其实是在运行的时候才绑定的,绑定的是第一调整数据。
(2)模拟对象的蒙皮包括多个顶点,添加物的蒙皮包括多个顶点,可包括:根据第一调整数据和第一数据,计算出每个顶点的第一世界坐标;根据每个顶点的第一世界坐标进行渲染,得到合成有添加物的模拟对象。实际应用中,根据第一调整数据和第一数据进行空间转换(权重混合计算,可使用上述的公式1-2和1-3),得到每个顶点的第一世界坐标。得到每个顶点的第一世界坐标,还需要进行顶点混合计算,再进行渲染,得到合成有添加物的模拟对象,再进行显示。
在本发明实施例中,所提供的方案是对初始的包含添加物的模拟对象,进行avatar的调整。这里根据预先配置的目标骨骼的偏移数据,进行调整的对象是目标骨骼的第一目标数据,所以,模拟对象的骨骼模型的第一数据是不会发生变化的,最后根据第一调整数据和第一数据进行渲染,得到并显示合成有添加物的模拟对象,而显示的添加物是与该模拟对象协调的。所以,用户会有一个良好的视觉享受和体验。应理解,本发明实施例只是针对其中一个模拟对象进行调整来说明的,而这个技术方案相对应的可以应用在其他的模拟对象上,针对不同的模拟对象,获取的与添加物对应的目标骨骼的偏移数据很大可能会不同,因为每个模拟对象一般都不相同。那么,会根据不同的目标骨骼的偏移数据做出对应的调整,从而,使得同一个avatar可以协调的适用于不同的模拟对象。
如图11所示,为本发明实施例中图像合成的方法的另一个实施例示意图,包括:
1101、获取模拟对象的骨骼模型的第一数据、待合成到模拟对象的添加物的骨骼数据;
1102、根据第一数据和添加物的骨骼数据,确定骨骼模型上与添加物对应的目标骨骼;
1103、从第一数据中复制出目标骨骼的第一目标数据;
1104、根据预先配置的目标骨骼的偏移数据,对目标骨骼的第一目标数据进行调整,以得到第一调整数据;
1105、根据第一调整数据和第一数据进行渲染,得到合成有添加物的模拟对象;
在本发明实施例中,步骤1101-1105与图7所示的实施例中的步骤701-705相同,此处不再赘述。
1106、当模拟对象进行动画时,记录模拟对象的骨骼模型动画后的第二数据;
在本发明实施例中当模拟对象进行动画时,记录模拟对象的骨骼模型动画后的第二数据;其实,这里实质上是骨骼模型动画,显示出来的效果是模拟对象进行动画。动画系统根据骨骼模型的动画,记录的第二数据,在模拟对象进行动画时,可以对应的改变蒙皮的数据。其中,动画系统更新模拟对象,也就是上述所说的骨骼模型的动画,在动画系统更新完动画数据之后,利用动画系统计算的结果数据。
应理解,这里的骨骼模型动画,例如,人物模拟对象迈出一步、伸出手臂、将剑举起、跑步、下蹲等类似的动画。
1107、从第二数据中复制出目标骨骼的第二目标数据;
在本发明实施例中,从第二数据中复制出目标骨骼的第二目标数据;当该模拟对象的骨骼模型进行动画之后,骨骼模型的数据会发生变化,为第二数据;那么,对应的,与添加物对应的目标骨骼的数据也会发生变化,所以,从第二数据中,复制出与添加物对应的目标骨骼的第二目标数据。在实际应用中,模拟对象的骨骼模型的第二数据和目标骨骼的第二目标数据,都可添加在对应的nif文件中,这里目标骨骼的第二目标数据也可以称为偏移(offest)骨骼的数据。
1108、根据目标骨骼的偏移数据,对目标骨骼的第二目标数据进行调整,以得到第二调整数据;
在本发明实施例中,根据目标骨骼的偏移数据,对目标骨骼的第二目标数据进行调整,以得到第二调整数据;在现有技术中,没有复制目标骨骼的第二目标数据,偏移数据是直接作用在骨骼模型的第二数据上的,所以,引擎调整后,导致模拟对象的骨骼模型也发生变化,而在本发明中,目标骨骼的偏移数据是调整目标骨骼的第二目标数据的,进行调整后,需要确定第二调整数据,而模拟对象的骨骼模型的第二数据不会发生变化,这第二调整数据是作用于avatar的显示。
实际应用中,根据目标骨骼的偏移数据去修改offset骨骼的数据。因为offset骨骼本身没有绑定对应的mesh网格,所以动画系统是不会更新offset骨骼的,需要程序手动的去拷贝并且修改对应的transform改变,然后把对应的transform改变给shader渲染器,然后shader渲染器根据这个去渲染avatar模型(添加物)。
需要说明的是,这里根据目标骨骼的偏移数据进行调整后,确定的第二调整数据,运行该第二调整数据可以达到的效果是改变avatar的位置、旋转avatar、或者改变avatar的大小等。
1109、根据第二调整数据和第二数据进行渲染,得到动画后的合成有添加物的模拟对象。
在本发明实施例中,根据目标骨骼的偏移数据,对目标骨骼的第二目标数据进行调整,以得到确定第二调整数据之后,根据第二调整数据和第二数据进行渲染,得到动画后的合成有添加物的模拟对象。具体的,可包括:根据第二调整数据和第二数据,计算出每个顶点的第二世界坐标;根据每个顶点的第二世界坐标进行渲染,得到动画后的合成有添加物的模拟对象。
在本发明实施例中,所提供的方案是对包含添加物的模拟对象进行动画更新的时候,进行avatar的调整。这里根据目标骨骼的偏移数据,进行调整的对象是目标骨骼的第二目标数据,因为动画更新一次,模拟对象的骨骼模型的数据会发生变化,这里记为第二数据,那么,就可以复制出对应目标骨骼的第二目标数据。在调整的时候,模拟对象的骨骼模型的第二数据是不会发生变化的,最后根据第二调整数据和第二数据进行渲染,显示合成有添加物的模拟对象,而显示的添加物是与该模拟对象协调的。应理解,本发明实施例只是针对其中一个模拟对象进行调整来说明的,而这个技术方案相对应的可以应用在其他的模拟对象上,针对不同的模拟对象,获取的与添加物对应的目标骨骼的偏移数据很大可能会不同,因为每个模拟对象一般都不相同。那么,会根据不同的目标骨骼的偏移数据做出对应的调整,从而,使得同一个avatar可以协调的适用于不同的模拟对象。
本方案中复制骨骼的数据可以放在美术的nif资源文件中,也可以放在其他类型的配置文件中。对与avatar的变换修改,同样可以用于带蒙皮动画的武器,或者角色中的各个部位。比如:可以在攻击的时候放大手部或者其他部位。
为便于理解,下面以一个具体应用场景对本发明中一种合成图像的方法进行详细描述,具体为:
假设,现在有3个模拟对象,可以简称为3个不同形态的武将,一个avatar,为披风。第一个武将A是骑在马上的,第二个武将B是站立的姿势,第三个武将C是抗大锤的姿势。我们想要的结果是同一个披风挂在这3个不同形态的武将身上,可以与不同形态的武将保持协调的状态。简单地理解为,披风挂在不同的武将身上,可以使得这个披风与武将的姿势更好的贴合。
首先,电脑中会安装关于骨骼蒙皮动画实现的一些软件等应用程序,通常,美术会先对某个交互式应用中的每个模拟对象进行设计,再确定哪些模拟对象是需要同一个avatar。这里,我们就以不同的武将和同一个披风为例来进行说明。
美术根据自行的设计,得到这3个武将的骨骼数据,每个武将的蒙皮数据不同,对应的,分别为蒙皮数据A,蒙皮数据B和蒙皮数据C。美术还会得到披风数据,将这个披风数据按照设计挂在这3个武将身上,看这个披风挂在这3个武将身上,是否会出现穿帮、位置偏移或者和武将不协调(武将太高,披风太小;武将太低,披风太大;武将太胖,披风太小,武将太瘦,披风太大等情况)等其他问题,若出现,则美术会计算出相应的偏移数据。当然,这里披风挂在武将身上,是挂在武将对应的目标骨骼身上,即,这里假设目标骨骼为两个肩膀的两块骨骼。
若将披风挂在武将A身上,在背面看,披风盖住了武将A肩膀的铠甲,给用户的感觉武将A比较臃肿;若将披风挂在武将B身上,在背面看,武将B比较矮,披风已经拖地了;若将披风挂在武将C身上,在背面看,武将C的头部已经被披风挡住了。这里,美术根据武将A挂上披风,计算出偏移数据A,根据武将B挂上披风,计算出偏移数据B,根据武将C挂上披风,计算出偏移数据C。
引擎会去调用美术得到的这些数据,即武将A的骨骼数据A、蒙皮数据A、披风数据和偏移数据A;武将B的骨骼数据B、蒙皮数据B、披风数据和偏移数据B;武将C的骨骼数据C、蒙皮数据C、披风数据和偏移数据C。实际应用中,对需要特殊调整avatar的角色模型需要做的很简单,就是在对应的nif文件中增加几块用于调整对应avatar的offset骨骼,如图12所示,为复制目标骨骼的第一目标数据的示意图。图12中offset结尾的就是增加的用于调整avatar的骨骼,即目标骨骼。
程序中再根据nif资源文件中的offset骨骼来调整对应的avatar。美术可以根据具体的情况,调整这些目标骨骼的local transform,而这些transform只会作用于角色身上的avatar,如图13所示,为调整目标骨骼的第一目标数据的示意图,下面进行具体描述。
对武将A来说,引擎获取骨骼数据A之后,再从骨骼数据A中,复制出与上述的目标骨骼的第一目标数据,将骨骼数据A于蒙皮数据A进行蒙皮绑定,再根据偏移数据A对目标骨骼的第一目标数据进行调整。调整后,目标骨骼的第一目标数据变为第一调整数据,第一调整数据就是作用于披风的;然后,再运行第一调整数据和蒙皮绑定的数据,进行渲染,显示出的合称图像就披风更好的贴合武将A,在背面看,披风挂在肩膀上,但是没有挡住铠甲,看着武将A比较威武霸气,如图14所示,为调整披风之后,武将A的合成示意图。
对武将B来说,引擎获取骨骼数据B之后,再从骨骼数据B中,复制出与上述的目标骨骼的第一目标数据,将骨骼数据B于蒙皮数据B进行蒙皮绑定,再根据偏移数据B对目标骨骼的第一目标数据进行调整。调整后,目标骨骼的第一目标数据变为第一调整数据,第一调整数据就是作用于披风的;然后,再运行第一调整数据和蒙皮绑定的数据,进行渲染,显示出的合称图像就披风更好的贴合武将B,在背面看,披风挂在肩膀上,但是根据武将B的身高,调整了披风的大小,武将B挂着披风,现在显得更加协调,如图15所示,为调整披风之后,武将B的合成示意图。
对武将C来说,引擎获取骨骼数据C之后,再从骨骼数据C中,复制出与上述的目标骨骼的第一目标数据,将骨骼数据C于蒙皮数据C进行蒙皮绑定,再根据偏移数据C对目标骨骼的第一目标数据进行调整。调整后,目标骨骼的第一目标数据变为第一调整数据,第一调整数据就是作用于披风的;然后,再运行第一调整数据和蒙皮绑定的数据,进行渲染,显示出的合称图像就披风更好的贴合武将C,在背面看,披风挂在肩膀上,但是没有挡住武将C的头部,看着武将C扛着一个大锤,更加威武霸气,如图16所示,为调整披风之后,武将C的合成示意图。
还需要说明一下,在对武将A、武将B和武将C进行调整之后,在动画更新的过程中,每次动画更新,还是会根据更新的动画再调整相应的披风,原理上和上述的描述类似,只是披风的偏移数据是初始得到的,不会改变,但是每次动画之后,不同的武将,对应的骨骼数据会发生变化,那么,目标骨骼的数据也会发明变化,记为第二目标数据,再根据偏移数据对第二目标骨骼数据进行调整等后续操作。
应理解,在骨骼动画蒙皮实现的过程中,有很多细节性的点,但是这里的描述只是针对本发明的一些情况来说明,并不是一个十分完整的实现骨骼蒙皮动画的过程,所以,在实际应用中,骨骼蒙皮动画的实现包括但不限于本发明所示出的描述。
经过上述的描述,在使用本发明技术方案之后,不同的avatar就能穿戴在不同的武将身上,而不会有位置的偏移,很好的贴合了武将本身,也让玩家在穿戴之后有很好的拉风的享受,感觉自己威武霸气,在战场上所向披靡。
上面对本发明实施例中的图像合成的方法做了说明,下面对本发明实施例中所提供的图像合成装置进行具体的说明。如图17所示,为本发明实施例中图像合成装置的一个实施例示意图,包括:
获取模块1701,用于获取模拟对象的骨骼模型的第一数据、待合成到模拟对象的添加物的骨骼数据;
确定模块1702,用于根据第一数据和添加物的骨骼数据,确定骨骼模型上与添加物对应的目标骨骼;
复制模块1703,用于从第一数据中复制出目标骨骼的第一目标数据;
调整模块1704,用于根据预先配置的目标骨骼的偏移数据,对目标骨骼的第一目标数据进行调整,以得到第一调整数据;
渲染模块1705,用于根据第一调整数据和第一数据进行渲染,得到合成有添加物的模拟对象。
可选的,在本发明的一些实施例中,如图18所示,该装置还包括:
记录模块1706,用于当模拟对象动画时,记录模拟对象的骨骼模型动画后的第二数据;
复制模块1703,还用于从第二数据中复制出目标骨骼的第二目标数据;
调整模块1704,还用于根据目标骨骼的偏移数据,对目标骨骼的第二目标数据进行调整,以得到第二调整数据;
渲染模块1705,还用于根据第二调整数据和第二数据进行渲染,得到动画后的合成有添加物的模拟对象。
可选的,在本发明的一些实施例中,
确定模块1702,具体用于建立添加物的骨骼数据和第一数据的对应关系,使添加物绑定到骨骼模型上,确定目标骨骼。
可选的,在本发明的一些实施例中,在图17或18所示的基础上,如图19或20所示,渲染模块1705包括:
获取单元17051,用于获取模拟对象的蒙皮数据和添加物的蒙皮数据;
渲染单元17052,用于对模拟对象的蒙皮数据和第一数据进行绑定,得到模拟对象的蒙皮绑定数据,并对蒙皮绑定数据进行渲染,得到模拟对象;对第一调整数据、添加物的蒙皮数据进行渲染,得到添加物;
合成单元17053,用于将模拟对象与添加物进行合成,得到合成有添加物的模拟对象。
可选的,在本发明的一些实施例中,在图17或18所示的基础上,如图21或22所示,渲染模块1705还包括:
计算单元17054,用于根据第一调整数据和第一数据,计算出每个顶点的第一世界坐标;
渲染单元17052,用于根据每个顶点的第一世界坐标进行渲染,得到合成有添加物的模拟对象。
可选的,在本发明的一些实施例中,
计算单元17054,还用于根据第二调整数据和第二数据,计算出每个顶点的第二世界坐标;
渲染单元17052,还用于根据每个顶点的第二世界坐标进行渲染,得到动画后的合成有添加物的模拟对象。
本发明实施例还提供了另一种图像合成装置,如图23所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该图像合成装置可以集成于终端实现,也可以为一个独立的装置,通过有线通信接口或无线通信接口与终端相连。
该终端可以为包括手机、平板电脑、个人数字助理(英文全称:Personal DigitalAssistant,英文缩写:PDA)、销售终端(英文全称:Point of Sales,英文缩写:POS)、车载电脑等任意终端设备,以终端为手机为例:
图23示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图23,手机包括:射频(Radio Frequency,RF)电路2310、存储器2320、输入单元2330、显示单元2340、传感器2350、音频电路2360、无线保真(wireless fidelity,WiFi)模块2370、处理器2380、以及电源2390等部件。本领域技术人员可以理解,图23中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图23对手机的各个构成部件进行具体的介绍:
RF电路2310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器2380处理;另外,将设计上行的数据发送给基站。通常,RF电路2310包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路2310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器2320可用于存储软件程序以及模块,处理器2380通过运行存储在存储器2320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器2320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器2320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元2330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元2330可包括触控面板2331以及其他输入设备2332。触控面板2331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板2331上或在触控面板2331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板2331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器2380,并能接收处理器2380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板2331。除了触控面板2331,输入单元2330还可以包括其他输入设备2332。具体地,其他输入设备2332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元2340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元2340可包括显示面板2341,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板2341。进一步的,触控面板2331可覆盖显示面板2341,当触控面板2331检测到在其上或附近的触摸操作后,传送给处理器2380以确定触摸事件的类型,随后处理器2380根据触摸事件的类型在显示面板2341上提供相应的视觉输出。虽然在图23中,触控面板2331与显示面板2341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板2331与显示面板2341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器2350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板2341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板2341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关交互式应用、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路2360、扬声器2361,传声器2362可提供用户与手机之间的音频接口。音频电路2360可将接收到的音频数据转换后的电信号,传输到扬声器2361,由扬声器2361转换为声音信号输出;另一方面,传声器2362将收集的声音信号转换为电信号,由音频电路2360接收后转换为音频数据,再将音频数据输出处理器2380处理后,经RF电路2310以发送给比如另一手机,或者将音频数据输出至存储器2320以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块2370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图23示出了WiFi模块2370,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器2380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器2320内的软件程序和/或模块,以及调用存储在存储器2320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器2380可包括一个或多个处理单元;优选的,处理器2380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器2380中。
手机还包括给各个部件供电的电源2390(比如电池),优选的,电源可以通过电源管理系统与处理器2380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器2380还具有以下功能:获取模拟对象的骨骼模型的第一数据、待合成到模拟对象的添加物的骨骼数据;根据第一数据和添加物的骨骼数据,确定骨骼模型上与添加物对应的目标骨骼;从第一数据中复制出目标骨骼的第一目标数据;根据预先配置的目标骨骼的偏移数据,对目标骨骼的第一目标数据进行调整,以得到第一调整数据;根据第一调整数据和第一数据进行渲染,得到合成有添加物的模拟对象。
可选的,在本发明的一些实施例中,处理器2380还可以对应的用于执行上述图7或11所示中的步骤,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种图像合成的方法,其特征在于,包括:
获取模拟对象的骨骼模型的第一数据、待合成到所述模拟对象的添加物的骨骼数据;
根据所述第一数据和所述添加物的骨骼数据,确定所述骨骼模型上与所述添加物对应的目标骨骼;
从所述第一数据中复制出所述目标骨骼的第一目标数据;
根据预先配置的所述目标骨骼的偏移数据,对所述目标骨骼的第一目标数据进行调整,以得到第一调整数据;
根据所述第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述模拟对象进行动画时,记录所述模拟对象的骨骼模型动画后的第二数据;
从所述第二数据中复制出所述目标骨骼的第二目标数据;
根据所述目标骨骼的偏移数据,对所述目标骨骼的第二目标数据进行调整,以得到第二调整数据;
根据所述第二调整数据和所述第二数据进行渲染,得到动画后的合成有所述添加物的模拟对象。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一数据和所述添加物的骨骼数据,确定所述骨骼模型上与所述添加物对应的目标骨骼,包括:
建立所述添加物的骨骼数据和所述第一数据的对应关系,使所述添加物绑定到所述骨骼模型上,确定所述目标骨骼。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象,包括:
获取所述模拟对象的蒙皮数据和所述添加物的蒙皮数据;
对所述模拟对象的蒙皮数据和所述第一数据进行绑定,得到所述模拟对象的蒙皮绑定数据,并对所述蒙皮绑定数据进行渲染,得到所述模拟对象;
对所述第一调整数据、所述添加物的蒙皮数据进行渲染,得到所述添加物;
将所述模拟对象与所述添加物进行合成,得到合成有所述添加物的模拟对象。
5.根据权利要求4所述的方法,其特征在于,所述模拟对象的蒙皮包括多个顶点,所述添加物的蒙皮包括多个顶点,所述根据所述第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象,包括:
根据所述第一调整数据和所述第一数据,计算出每个顶点的第一世界坐标;
根据所述每个顶点的第一世界坐标进行渲染,得到合成有所述添加物的模拟对象。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二调整数据和所述第二数据进行渲染,得到动画后的合成有所述添加物的模拟对象,包括:
根据所述第二调整数据和所述第二数据,计算出每个顶点的第二世界坐标;
根据所述每个顶点的第二世界坐标进行渲染,得到动画后的合成有所述添加物的模拟对象。
7.一种图像合成装置,其特征在于,包括:
获取模块,用于获取模拟对象的骨骼模型的第一数据、待合成到所述模拟对象的添加物的骨骼数据;
确定模块,用于根据所述第一数据和所述添加物的骨骼数据,确定所述骨骼模型上与所述添加物对应的目标骨骼;
复制模块,用于从所述第一数据中复制出所述目标骨骼的第一目标数据;
调整模块,用于根据预先配置的所述目标骨骼的偏移数据,对所述目标骨骼的第一目标数据进行调整,以得到第一调整数据;
渲染模块,用于根据所述第一调整数据和所述第一数据进行渲染,得到合成有所述添加物的模拟对象。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
记录模块,用于当所述模拟对象动画时,记录所述模拟对象的骨骼模型动画后的第二数据;
所述复制模块,还用于从所述第二数据中复制出所述目标骨骼的第二目标数据;
所述调整模块,还用于根据所述目标骨骼的偏移数据,对所述目标骨骼的第二目标数据进行调整,以得到第二调整数据;
所述渲染模块,还用于根据所述第二调整数据和所述第二数据进行渲染,得到动画后的合成有所述添加物的模拟对象。
9.根据权利要求7或8所述的装置,其特征在于,
所述确定模块,具体用于建立所述添加物的骨骼数据和所述第一数据的对应关系,使所述添加物绑定到所述骨骼模型上,确定所述目标骨骼。
10.根据权利要求7或8所述的装置,其特征在于,所述渲染模块包括:
获取单元,用于获取所述模拟对象的蒙皮数据和所述添加物的蒙皮数据;
渲染单元,用于对所述模拟对象的蒙皮数据和所述第一数据进行绑定,得到所述模拟对象的蒙皮绑定数据,并对所述蒙皮绑定数据进行渲染,得到所述模拟对象;对所述第一调整数据、所述添加物的蒙皮数据进行渲染,得到所述添加物;
合成单元,用于将所述模拟对象与所述添加物进行合成,得到合成有所述添加物的模拟对象。
11.根据权利要求10所述的装置,其特征在于,所述模拟对象的蒙皮包括多个顶点,所述添加物的蒙皮包括多个顶点,所述显示模块还包括:
计算单元,用于根据所述第一调整数据和所述第一数据,计算出每个顶点的第一世界坐标;
渲染单元,用于根据所述每个顶点的第一世界坐标进行渲染,得到合成有所述添加物的模拟对象。
12.根据权利要求11所述的装置,其特征在于,
所述计算单元,还用于根据所述第二调整数据和所述第二数据,计算出每个顶点的第二世界坐标;
所述渲染单元,还用于根据所述每个顶点的第二世界坐标进行渲染,得到动画后的合成有所述添加物的模拟对象。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611045200.4A CN106504309B (zh) | 2016-11-24 | 2016-11-24 | 一种图像合成的方法以及图像合成装置 |
PCT/CN2017/111500 WO2018095273A1 (zh) | 2016-11-24 | 2017-11-17 | 图像合成方法、装置以及匹配实现方法、装置 |
US16/298,884 US10762721B2 (en) | 2016-11-24 | 2019-03-11 | Image synthesis method, device and matching implementation method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611045200.4A CN106504309B (zh) | 2016-11-24 | 2016-11-24 | 一种图像合成的方法以及图像合成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106504309A true CN106504309A (zh) | 2017-03-15 |
CN106504309B CN106504309B (zh) | 2018-12-11 |
Family
ID=58328212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611045200.4A Active CN106504309B (zh) | 2016-11-24 | 2016-11-24 | 一种图像合成的方法以及图像合成装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106504309B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180444A (zh) * | 2017-05-11 | 2017-09-19 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、终端和系统 |
CN108014497A (zh) * | 2017-12-06 | 2018-05-11 | 北京像素软件科技股份有限公司 | 物体添加方法、装置及电子设备 |
WO2018095273A1 (zh) * | 2016-11-24 | 2018-05-31 | 腾讯科技(深圳)有限公司 | 图像合成方法、装置以及匹配实现方法、装置 |
CN108122266A (zh) * | 2017-12-20 | 2018-06-05 | 成都卓杭网络科技股份有限公司 | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 |
CN109993689A (zh) * | 2019-03-14 | 2019-07-09 | 珠海天燕科技有限公司 | 一种美妆方法和装置 |
CN112090082A (zh) * | 2020-09-27 | 2020-12-18 | 完美世界(北京)软件科技发展有限公司 | 一种面部骨骼处理方法、装置、电子设备及存储介质 |
CN112107865A (zh) * | 2020-09-27 | 2020-12-22 | 完美世界(北京)软件科技发展有限公司 | 一种面部动画模型处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079154A (zh) * | 2007-03-02 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种角色动画实现方法及系统 |
US20120019517A1 (en) * | 2010-07-23 | 2012-01-26 | Mixamo, Inc. | Automatic generation of 3d character animation from 3d meshes |
CN103426192A (zh) * | 2012-05-25 | 2013-12-04 | 上海幻维数码创意科技有限公司 | 一种可修改绑定方式的动画角色构建方法 |
CN103530897A (zh) * | 2013-09-30 | 2014-01-22 | 华为软件技术有限公司 | 运动重定向处理方法及装置 |
CN104102487A (zh) * | 2014-07-17 | 2014-10-15 | 福建天趣网络科技有限公司 | 一种3D游戏角色Avatar的可视化编辑方法及编辑器 |
-
2016
- 2016-11-24 CN CN201611045200.4A patent/CN106504309B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079154A (zh) * | 2007-03-02 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种角色动画实现方法及系统 |
US20120019517A1 (en) * | 2010-07-23 | 2012-01-26 | Mixamo, Inc. | Automatic generation of 3d character animation from 3d meshes |
CN103426192A (zh) * | 2012-05-25 | 2013-12-04 | 上海幻维数码创意科技有限公司 | 一种可修改绑定方式的动画角色构建方法 |
CN103530897A (zh) * | 2013-09-30 | 2014-01-22 | 华为软件技术有限公司 | 运动重定向处理方法及装置 |
CN104102487A (zh) * | 2014-07-17 | 2014-10-15 | 福建天趣网络科技有限公司 | 一种3D游戏角色Avatar的可视化编辑方法及编辑器 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018095273A1 (zh) * | 2016-11-24 | 2018-05-31 | 腾讯科技(深圳)有限公司 | 图像合成方法、装置以及匹配实现方法、装置 |
US10762721B2 (en) | 2016-11-24 | 2020-09-01 | Tencent Technology (Shenzhen) Company Limited | Image synthesis method, device and matching implementation method and device |
CN107180444A (zh) * | 2017-05-11 | 2017-09-19 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、终端和系统 |
CN108014497A (zh) * | 2017-12-06 | 2018-05-11 | 北京像素软件科技股份有限公司 | 物体添加方法、装置及电子设备 |
CN108014497B (zh) * | 2017-12-06 | 2021-03-30 | 北京像素软件科技股份有限公司 | 物体添加方法、装置及电子设备 |
CN108122266A (zh) * | 2017-12-20 | 2018-06-05 | 成都卓杭网络科技股份有限公司 | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 |
CN108122266B (zh) * | 2017-12-20 | 2021-07-27 | 成都卓杭网络科技股份有限公司 | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 |
CN109993689A (zh) * | 2019-03-14 | 2019-07-09 | 珠海天燕科技有限公司 | 一种美妆方法和装置 |
CN112090082A (zh) * | 2020-09-27 | 2020-12-18 | 完美世界(北京)软件科技发展有限公司 | 一种面部骨骼处理方法、装置、电子设备及存储介质 |
CN112107865A (zh) * | 2020-09-27 | 2020-12-22 | 完美世界(北京)软件科技发展有限公司 | 一种面部动画模型处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106504309B (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106504309B (zh) | 一种图像合成的方法以及图像合成装置 | |
US10762721B2 (en) | Image synthesis method, device and matching implementation method and device | |
EP3822918B1 (en) | Water wave effect rendering | |
CN107180444B (zh) | 一种动画生成方法、装置、终端和系统 | |
CN106075906B (zh) | 一种模拟对象的寻路方法、场景的搭建方法和对应的装置 | |
CN111383309B (zh) | 一种骨骼动画驱动方法、装置及存储介质 | |
CN109918975A (zh) | 一种增强现实的处理方法、对象识别的方法及终端 | |
CN108537889A (zh) | 增强现实模型的调整方法、装置、存储介质和电子设备 | |
CN110852942B (zh) | 一种模型训练的方法、媒体信息合成的方法及装置 | |
CN106156730A (zh) | 一种人脸图像的合成方法和装置 | |
CN109685909A (zh) | 图像的显示方法、装置、存储介质和电子装置 | |
CN108525298A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
IL265494A (en) | Computing device, method and product Computer software to support augmented reality software application | |
CN108074278A (zh) | 视频呈现方法、装置和设备 | |
CN105894555A (zh) | 一种动画模型的肢体动作模拟方法和装置 | |
CN106097417A (zh) | 主题生成方法、装置、设备 | |
CN110533755A (zh) | 一种场景渲染的方法以及相关装置 | |
CN108182726A (zh) | 三维重建方法、云端服务器及计算机可读存储介质 | |
CN109753892B (zh) | 人脸皱纹的生成方法、装置、计算机存储介质和终端 | |
JP2022532044A (ja) | ホットスポットマップの表示方法、装置、コンピュータ機器および読み取り可能な記憶媒体 | |
CN108170817A (zh) | 照片主体的演变视频获取方法、装置及可读存储介质 | |
CN108986026A (zh) | 一种图片拼接方法、终端及计算机可读存储介质 | |
CN109495616A (zh) | 一种拍照方法及终端设备 | |
CN109426343A (zh) | 基于虚拟现实的协作训练方法及系统 | |
CN110517346B (zh) | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |