CN112933597B - 图像处理方法、装置、计算机设备及存储介质 - Google Patents
图像处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112933597B CN112933597B CN202110284798.7A CN202110284798A CN112933597B CN 112933597 B CN112933597 B CN 112933597B CN 202110284798 A CN202110284798 A CN 202110284798A CN 112933597 B CN112933597 B CN 112933597B
- Authority
- CN
- China
- Prior art keywords
- target
- vertex
- skeleton
- image frame
- information
- 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.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/58—Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/02—Non-photorealistic rendering
-
- 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开一种图像处理方法、装置、计算机设备及介质,其中方法包括:调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;一个网格对应一个像素块,任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;根据每个顶点的关联骨骼信息,从显存中获取每个顶点的关联骨骼在目标图像帧中的目标空间信息;采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标;基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。本申请可以更好地渲染骨骼动画,有效提升骨骼动画的渲染效率。
Description
技术领域
本申请涉及互联网技术领域,具体涉及图像处理技术领域,尤其涉及一种图像处理方法、一种图像处理装置、一种计算机设备及一种计算机存储介质。
背景技术
随着科学技术的发展,骨骼动画技术应运而生,所谓的骨骼动画是一种模型动画;在骨骼动画中,模型具有相互连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置来为模型生成动画。目前,如何更好地渲染骨骼动画成为了研究热点。
发明内容
本申请实施例提供了一种图像处理方法、装置、计算机设备及存储介质,可以更好地渲染骨骼动画,有效提升骨骼动画的渲染效率。
一方面,本申请实施例提供了一种图像处理方法,所述方法包括:
调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧。
另一方面,本申请实施例提供了一种图像处理装置,所述装置包括:
获取单元,用于调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
所述获取单元,还用于根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
处理单元,用于采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
渲染单元,用于基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧。
再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括输入接口和输出接口,所述计算机设备还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧。
再一方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如下步骤:
调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧。
本申请实施例预先为目标对象设置多个骨骼后,可通过离线配置目标对象的骨骼动画的蒙皮资源,及各个骨骼在骨骼动画中的各图像帧中的空间信息,使得当需渲染骨骼动画时,可通过调用图形处理器从显存中直接获取该蒙皮资源,并根据该蒙皮资源从显存中直接获取每个顶点的关联骨骼在目标图像帧中的目标空间信息;这样可以有效减少图像渲染过程中的计算量,从而有效节省处理资源并加速渲染过程。然后,可通过调用图形处理器采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标;从而基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。由于整个图像渲染过程均是在图形处理器中实现的,无需中央处理器进行动画计算,可有效节省中央处理器资源;且还可凭借图形处理器具有的高并行的处理能力,有效提升渲染效率,减少占用带宽。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种目标对象的骨架示意图;
图1b是本申请实施例提供的一种将顶点和骨骼进行绑定的示意图;
图2a是本申请实施例提供的一种设置界面的示意图;
图2b是本申请实施例提供的一种图像添加界面的示意图;
图2c是本申请实施例提供的一种资源添加界面的示意图;
图2d是本申请实施例提供的一种资源生成触发组件的示意图;
图2e是本申请实施例提供的一种进度提示动画的示意图;
图3a是本申请实施例提供的一种图像处理方案的方案框架图;
图3b是本申请实施例提供的一种骨骼动画的任一图像帧的示意图;
图3c是本申请实施例提供的一种多个骨骼动画同屏的示意图;
图3d是本申请实施例提供的一种在使用图像处理之前,计算机设备渲染骨骼动画所涉及的性能测试图;
图3e是本申请实施例提供的一种在使用图像处理之前,计算机设备渲染骨骼动画所涉及的性能测试图;
图4是本申请实施例提供的一种图像处理方法的流程示意图;
图5是本申请实施例提供的一种蒙皮资源的结构示意图;
图6是本申请另一实施例提供的一种图像处理方法的流程示意图;
图7a是本申请实施例提供的一种资源挂载事件的事件信息的结构示意图;
图7b是本申请实施例提供的一种目标辅助图像随着目标骨骼一起运动的示意图;
图8是本申请实施例提供的一种图像处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请实施例中,骨骼动画又可称为骨骼蒙皮动画;其可以理解成是一种通过骨骼运动而驱动画面变化所形成的动画。针对目标对象(如人物、动物等任一对象)而言,其对应的骨骼动画可基于该目标对象的骨架、目标对象的模型以及一系列关键图像帧生成。其中:①目标对象的骨架是基于该目标对象的骨骼结构特征构建的,该目标对象的骨架可包括多个骨骼,任意两个骨骼可通过一个关节点相连接;例如,以图1a左侧所示的对象为例,构建得到的骨架示意图可参见图1a中的右侧图所示。针对目标对象的骨架而言,该骨架中的各个骨骼可朝着某个方向做相同距离的移动,这样的移动可称为骨骼的平移运动,而骨骼所移动的距离可称为骨骼的平移参数;另外,骨架中的任一骨骼还可围绕某个直接或间接连接的关节点做圆周运动,这样的运动可称为任一骨骼的旋转运动,而任一骨骼做圆周运动所产生的角度可称为旋转参数。②目标对象的模型可包括基于该目标对象的外形信息(如服装、身高、肤色等)所绘制得到的多个网格,网格的形状可以是三角形、四边形等;且目标对象的模型需通过蒙皮与该目标对象的骨架进行绑定,所谓的蒙皮是指三维动画中的一种制作技术,其具体是指将模型中的各个顶点绑定到骨骼上的技术。例如,参见图1b所示:针对模型中的顶点a而言,可将该顶点a绑定到骨骼1、骨骼2以及骨骼3 上;针对模型中的某个网格的顶点b而言,可将该顶点b绑定到骨骼4上,等等;应理解的是,图1b只是示例性地表征了模型中的部分网格,并不对模型中的网格数量以及每个网格的形状进行限定。③一个关键图像帧对应骨架的一个姿势状态,任意两个关键图像帧之间的各个图像帧所对应的姿势状态,可通过对该任意两个关键图像帧对应的姿势状态进行插值得到。
为了可以更好的渲染骨骼动画,以提升骨骼动画的渲染效率,本申请实施例提出了一种基于GPU(Graphics Processing Unit,图形处理器)加速的图像处理方案。其中,GPU又可称为显示核心、视觉处理器、显示芯片等;是一种专门在计算机设备(如服务器、个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等))上做图像和图形相关运算工作的微处理器。所谓的 GPU加速是指同时利用GPU和CPU(central processing unit,中央处理器),加快科学、分析、工程、消费和应用程序的运行速度;此处所提及的CPU是指计算机设备的运算和控制核心,是信息处理、程序运行的最终执行单元。在具体实现中,该图像处理方案可包括如下两部分:
(一)生成用于GPU加速的资源数据:
具体的,可为美术制作者提供一个动画编辑器,使得美术制作者可在动画编辑器中,导入目标对象的骨骼动画的动画资源文件;该动画资源文件中可包括:目标对象的骨架信息、骨骼动画的动画信息等多种信息。另外,美术制作者还可通过图2a所示的设置界面中,选中静态网格选项21,并对设置界面中的确认导入组件22执行触发操作,以实现将静态网格导入至动画编辑器中。然后,美术制作者还可通过使用动画编辑器的动画蓝图(一种可用于创建和控制复杂动画行为的可视脚本),对骨骼动画进行编辑,比如可在骨骼动画中增加关键图像帧,为骨骼动画所涉及的一个或多个辅助资源等等。
其中,关键图像帧的添加方式如下:动画编辑器可为美术工作者提供一个如图2b所示的图像添加界面,该图像添加界面中可包括图像帧位置设置区域23、图像添加区域24和确认添加组件25。美术工作者可在图像帧位置设置区域23 中通过滑动轨道232上的锚点232,以将锚点滑动至欲添加关键图像帧的位置a;例如,若美术工作者想要在骨骼动画的第5.87秒处新增一个关键图像帧,则可将该锚点232滑动至轨道的第5.84秒处。另外,美术工作者还可在图像添加区域24中添加一个关键图像帧,然后可通过对确认添加组件25执行触发操作,以实现关键图像帧的添加。
辅助资源的添加方式如下:动画编辑器可为美术工作者提供一个如图2c所示的资源添加界面,该资源添加界面可包括资源添加区26以及资源绑定区27。美术工作者可在资源添加区26中添加任一辅助资源,如辅助图像、音频数据等;以美术资源工作者添加的辅助资源为辅助图像28为例,当动画编辑器检测到美术工作者针对该辅助图像28的标识选取操作,可在资源添加界面中显示该辅助图像28。美术工作者还可在资源绑定区27中添加该资源图像的事件触发器,该事件触发器用于检测可触发输出该资源图像的挂载资源事件;以及可在资源绑定区27中为该辅助图像绑定挂点,并设置挂点挂载到一个或多个骨骼上。然后,美术工作者可输入资源添加操作,以实现辅助资源的添加。
当美术工作者执行完上述操作后,可通过对图2d中的资源生成触发组件29 执行触发操作,以触发动画编辑器根据美术工作者所执行的一系列操作,生成用于GPU加速的资源数据。具体的,该资源数据可包括以下至少一项:可用于 GPU加速的骨骼动画的蒙皮资源、包含动画信息(如每个骨骼在各图像帧中的空间信息)的贴图纹理、包含一个或多个资源挂载事件的事件信息(如资源挂载条件、辅助资源等信息)的事件数据集以及包含一个或多个挂点的挂点信息的挂点数据集,等等。其中,蒙皮资源可包括多个网格的顶点和每个顶点的顶点信息(如初始坐标、关联骨骼信息以及渲染信息等),蒙皮资源中的每个顶点已与目标对象的一个或多个骨骼进行绑定关联。
可选的,动画编辑器在生成用于GPU加速的资源数据的过程中,还可输出进度提示动画,如图2e所示。动画编辑器在生成这些资源数据后,可在该动画编辑器所处的计算机设备的***内存中存储该资源数据;并可通过服务器、网络、近距离通讯组件等传输介质,将资源数据分发给其他计算机设备,使得其他计算机设备可基于该资源数据渲染显示得到目标对象的骨骼动画。
(二)基于资源数据渲染显示骨骼动画:
任一计算机设备在获取到该资源数据后,可将该资源数据存储到***内存。参见图3a所示:当需要渲染显示骨骼动画时,计算机设备可调用CPU将蒙皮资源和贴图纹理,从***内存传输到显存,由GPU根据该蒙皮资源和贴图纹理进度动画计算。具体的,针对骨骼动画中的任一图像帧,GPU可根据该蒙皮资源和贴图纹理计算出蒙皮资源中每个网格上的顶点受动画(即骨骼运动)影响后的坐标;从而使得可根据各个顶点受影响后的坐标和每个顶点的渲染信息进行图像渲染,得到任一图像帧,从而可在终端屏幕中显示该骨骼动画中的任一图像帧;例如,图3b中采用虚线框标注出的人群部分为骨骼动画中的任一图像帧。
可选的,若资源数据中还包括:包含一个或多个资源挂载事件的事件信息的事件数据集以及包含一个或多个挂点的挂点信息的挂点数据集,则计算机设备还可调用CPU根据该事件数据集和挂点数据集执行事件逻辑。具体的,该事件逻辑如下:可检测任一图像帧是否满足事件数据集中的任一事件信息中的资源挂载条件,若任一图像帧满足某个资源挂载条件,则可确定任一图像帧存在资源挂载事件;此时可从挂点数据集中获取该任一图像帧中的挂点的挂点信息,从而根据获取到的挂点信息和任一图像帧所存在的资源挂载事件的事件信息,输出事件可视化部分(即输出事件信息中的辅助资源)。
经实践证明,本申请实施例所提出的图像处理方案可具有如下有益效果:①由于GPU具有高并行的处理能力,因此通过由GPU根据离线配置蒙皮资源和贴图纹理等资源数据来实现图像渲染,无需CPU执行动画计算过程,可有效实现GPU加速,减少内存占用,提升运行效率和渲染效率。②在整个图像处理过程中,无需对同屏的骨骼动画的数量和精度进行限制,可达到同屏大规模渲染骨骼动画的目的,解放美术工作者在骨骼动画上的创造力。如图3c所示,采用该图像处理方案可实现上千个骨骼动画同屏。③在采用该图像处理方案之前,计算机设备渲染骨骼动画时所涉及的性能测试图可参见图3d所示;而使用该图像处理方案后,计算机设备渲染骨骼动画时所涉及的性能测试图可参见图3e所示。通过对比图3d和图3e可知:在使用该图像处理方案之前,计算机设备所表现的帧率不够流畅,且经常出现明显的卡顿、发热现象;而使用该图像处理方案之后,计算机设备的帧率可达到60帧,较为流畅,且没有出现卡顿的尖刺以及发热现象。可见通过GPU加速,可减少带宽的占用,从而减少计算机设备因带宽占用高而产生的发热现象,并可有效提升帧率。④动画编辑器可和图像渲染项目解耦,动画编辑器的工具链完善且使用简单,可复用性强。
基于上述的描述,本申请实施例提出一种图像处理方法;该图像处理方法可以由计算机设备执行,此处的计算机设备可以是终端或者服务器;或者,该图像处理方法还可以由终端和服务器协同执行。为便于阐述,后续均该图像处理方法由计算机设备,且计算机设备为终端为例进行说明;请参见图4,该图像处理方法可包括以下步骤S401-S404:
S401,调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源。
其中,目标对象可以是包括多个骨骼的任一对象。例如,该目标对象可以是任一用户在互联网或互联网应用中的虚拟形象;如任一用户在游戏应用中的虚拟角色对象,任一用户在即时通信应用中的虚拟个人形象,任一用户在社会性网络服务(Social NetworkingServices,SNS)应用中的虚拟个人形象等等。又如,该目标对象可以是影视剧中的任一人物、动物或其他生物,等等。需说明的是,本申请实施例所提及的“多个”的含义均是指至少两个。
目标对象的骨骼动画的蒙皮资源可以是由中央处理器(CPU)从***内存传输至显存的,该蒙皮资源可以理解成是包含boneinfluence信息(关联骨骼信息)的静态网格;此处的静态网格是指可利用GPU Instancing技术的网格,所谓的GPU Instancing技术可实现在计算机图形中,每次在场景中渲染同一网格的多个副本的GPU特性。参见图5所示,该蒙皮资源可包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息。其中,任一顶点的初始坐标可以是指:在模型中的各个网格均未产生变形的情况下,任一顶点在模型坐标系中所处位置的坐标;任一顶点的坐标用于确定任一顶点所属网格对应的像素块,此处所提及的像素块是指终端屏幕中的像素块。
任一顶点的关联骨骼信息可包括:任一顶点所绑定的关联骨骼的骨骼索引和骨骼权重。其中,骨骼索引的定义如下:由于在骨骼动画中,每个网格的各个顶点都会受到0个或多个骨骼的影响,这些骨骼在动的时候会改变其影响的顶点的位置;因此为了记录每个顶点受到哪些骨骼的影响,可把每个骨骼按照数字进行编号,然后将每个骨骼的编号记录在其影响到的顶点上,使得顶点可根据该编号对相关骨骼进行索引,那么可将每个骨骼的编号视为每个骨骼的骨骼索引。骨骼权重的定义如下:由于网格上的每个顶点可能会受到多根关联骨骼的影响,因此可规定每个骨骼对顶点的影响数值为一个浮点数,这些浮点数的和为数字1,那么可将一个骨骼对某个网格顶点的影响数值作为该骨骼的骨骼权重。
S402,根据每个顶点的关联骨骼信息,从显存中获取每个顶点的关联骨骼在目标图像帧中的目标空间信息。
其中,目标图像帧是骨骼动画中的任一图像帧;每个顶点的关联骨骼在目标图像帧中的目标空间信息可用于指示:每个顶点的关联骨骼在目标图像帧中的平移参数和旋转参数。由前述可知,可采用贴图纹理来存储每个骨骼在各图像帧中的空间信息,而贴图纹理可由CPU从***内存传输至显存;因此计算机设备可先调用图形处理器从显存中获取贴图纹理,然后再从贴图纹理中获取各个目标空间信息。
在一种实施方式中,计算机设备在获取到贴图纹理后,也可先遍历多个网格的顶点,根据当前遍历的当前顶点的关联骨骼的骨骼标识,确定当前顶点的关联骨骼;然后,从贴图纹理中读取当前顶点的关联骨骼在目标图像帧中的目标空间信息。再一种实施方式中,考虑到可能存在多个顶点同时对应一个关联骨骼的情况,若按照先遍历顶点再对贴图纹理执行读操作的方式获取目标空间信息,则可能会导致对贴图纹理执行重复的读操作以获取同一个关联骨骼的目标空间信息的情况,从而导致读操作所需的处理资源的浪费。因此,计算机设备在获取到贴图纹理后,也可先从贴图纹理中读取,每个骨骼在骨骼动画的目标图像帧中的目标空间信息;然后,计算机设备可遍历多个网格的顶点,根据当前遍历的当前顶点的关联骨骼的骨骼标识,从读取到的目标空间信息中获取当前顶点的关联骨骼的目标空间信息;采用这样的方式来获取目标空间信息,可有效节省读操作所需的处理资源。
S403,采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标。
在具体实现中,由于每个顶点的关联骨骼的目标空间信息可用于指示每个顶点的关联骨骼在目标图像帧中的旋转参数和平移参数;因此,针对任一顶点,可采用该任一顶点的关联骨骼的目标空间信息中的旋转参数和平移参数,在对该任一顶点的初始坐标进行旋转处理和平移处理,从而得到任一顶点的目标坐标。需说明的是,若任一顶点存在至少两个关联骨骼,则可由于该任一顶点会受到每根关联骨骼的旋转和平移的影响,若分别根据每根关联骨骼的空间信息对该任一顶点的初始坐标进行坐标变换,则可能会导致最终得到的任一顶点的目标坐标不够准确,进而导致渲染得到的图像帧出现骨骼错位问题;因此,当任一顶点存在至少两个关联骨骼时,可先对该任一顶点的各个关联骨骼的空间信息进行线性融合,再根据融合空间信息对该任一顶点的初始坐标进行坐标转换,得到任一顶点的目标坐标,以提升目标坐标的准确性;所谓的线性融合是指使用线性多项式进行运算,在多跟骨骼影响同一个顶点的时候,用来计算共同影响数值的处理方式算法。
S404,基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。
在具体实施过程中,可遍历蒙皮资源中的各个网格,针对当前遍历的当前网格,可将当前网格的各个顶点的目标坐标从模型坐标系映射到屏幕坐标系,得到当前网格的各个顶点在屏幕坐标系中的位置坐标;其次,可根据当前网格的各个顶点的位置坐标,确定当前网格的各个顶点所构成的区域,并将确定的区域所包含的像素块作为当前网格对应的目标像素块。然后,可采用当前网格的各个顶点的渲染信息对当前网格对应的目标像素块进行图像渲染;当各个网格均被遍历后,便可得到目标图像帧。需要说明的是,步骤S402-S404均可由计算机设备通过调用图形处理器执行的。
本申请实施例预先为目标对象设置多个骨骼后,可通过离线配置目标对象的骨骼动画的蒙皮资源,及各个骨骼在骨骼动画中的各图像帧中的空间信息,使得当需渲染骨骼动画时,可通过调用图形处理器从显存中直接获取该蒙皮资源,并根据该蒙皮资源从显存中直接获取每个顶点的关联骨骼在目标图像帧中的目标空间信息;这样可以有效减少图像渲染过程中的计算量,从而有效节省处理资源并加速渲染过程。然后,可通过调用图形处理器采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标;从而基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。由于整个图像渲染过程均是在图形处理器中实现的,无需中央处理器进行动画计算,可有效节省中央处理器资源;且还可凭借图形处理器具有的高并行的处理能力,有效提升渲染效率,减少占用带宽。
请参见图6,是本申请实施例提供的另一种图像处理方法的流程示意图。本申请实施例提出一种方法;该图像处理方法可以由计算机设备执行,此处的计算机设备可以是终端或者服务器;或者,该图像处理方法还可以由终端和服务器协同执行。为便于阐述,后续均该图像处理方法由计算机设备,且计算机设备为终端为例进行说明;如图6所示,该图像处理方法可包括以下步骤S601-S609:
S601,获取骨骼动画的资源数据,并将资源数据缓存至***内存中,该资源数据包括蒙皮资源和贴图纹理。
S602,若检测到针对骨骼动画的渲染触发事件,则调用中央处理器将资源数据从***内存传输至显存。
S603,调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源。
S604,根据每个顶点的关联骨骼信息,从显存中获取每个顶点的关联骨骼在目标图像帧中的目标空间信息。
其中,目标图像帧是骨骼动画中的任一图像帧;每个顶点的关联骨骼在目标图像帧中的目标空间信息是从显存中的贴图纹理中获取到的。具体的,步骤 S604的具体实施方式可以包括以下步骤s11-s13:
s11,从显存中获取贴图纹理。
计算机设备可调用图形处理器从显存中获取贴图纹理;具体的,该贴图纹理包括:每个骨骼在骨骼动画的各图像帧中的空间信息。由于任一空间信息可包括旋转参数和平移参数,且由于每个顶点可能会受到多根关联骨骼的旋转和平移的影响,此情况下需要对每个顶点的各个关联骨骼的空间信息进行线性融合,使得可根据融合空间信息对顶点进行坐标转换,以防止渲染得到的图像帧出现骨骼错位问题;那么为了节省存储空间,且便于后续能够对顶点的关联骨骼的空间信息进行线性融合,可将任一空间信息中的旋转参数和平移参数采用对偶四元数(Dual Quaternions)进行存储,即任一骨骼在骨骼动画的任一图像帧中的空间信息包括对偶四元数。
所谓的对偶四元数是对偶数和四元数在多维空间中的有机结合,可以理解为元素为四元数的对偶数,同样可以理解为元素为对偶数的四元数;较之四元数只能表示3D旋转,对偶数只能表示平移,对偶四元数的优越性体现在它继承了二者的共同特性,从而能统一的表示旋转与平移。也就是说,对偶四元数是指用于表示平移参数和旋转参数的数值;具体的,对偶四元数的一般形式可参见下述式1.1所示:
其中,r和s均为四元素,r=r0+ir1+jr2+kr3,s=s0+is1+js2+ks3;ε为对偶运算符,ε满足如下条件:ε≠0且ε2=0。对偶四元数与平移参数t和旋转参数R 的关系可参见下述式1.2和式1.3所示:
基于上述描述,当任一骨骼在骨骼动画的任一图像帧中的空间信息包括对偶四元素时,贴图纹理可包括多个像素点,每个像素点可包括一个或多个颜色通道;任一骨骼在任一图像帧中的对偶四元数,可采用任一骨骼在贴图纹理中的关联像素点的各个颜色通道进行存储。例如,当一个像素点包括RGBA四个颜色通道时;其中,R颜色通道是指红色通道、G颜色通道是指绿色通道、B是指蓝色通道、A是指颜色透明度通道;那么若每个颜色通道由一个32位的单精度浮点数组成,则每两个像素点的各个颜色通道可存储一个对偶四元数,即任一骨骼在贴图纹理中存在两个关联像素点。其中,任一骨骼在贴图纹理中的关联像素点,可以是随机为该任一骨骼分配的;或者,也可以是根据任一骨骼的骨骼索引对贴图纹理进行坐标采样所确定的。需说明的是,针对不同的图像帧而言,任一骨骼的关联像素点可以不同;例如,针对骨骼动画中的第一帧图像帧而言,用于存储任一骨骼在第一帧图像帧中的对偶四元数的关联像素点可包括像素点a和像素点b;而针对第二帧图像帧而言,用于存储任一骨骼在第二帧图像帧中的对偶四元数的关联像素点可包括像素点f和像素点h。
其中,针对当前图像帧(任一图像帧)而言,根据任一骨骼的骨骼索引对贴图纹理进行坐标采样,以确定任一骨骼的关联像素点的方式如下:
首先,针对当前图像帧,可获取该当前图像帧的帧标识;该当前图像帧的帧标识用于指示当前图像帧在骨骼动画中的排列位置,即用于指示当前图像帧是骨骼动画中的第几帧。其次,可通过坐标采样公式根据当前图像帧的帧标识和任一骨骼的骨骼索引,计算任一骨骼的一维参考坐标;其中,坐标采样公式为:当前图像帧的帧标识*目标对象的骨骼数量+骨骼索引=一维参考坐标x。然后,可设贴图纹理的宽为w,高为h;那么,任一骨骼关于当前图像帧的纹理坐标(u,v)可以是:u=x%w,v=x/w。其中,“%”表示取余操作,“/”表示向下取整操作;例如,x等于17,w等于5,那么由于18除以5所得到的商为3,余数为2,因此u等于2,v等于3。然后,可将纹理坐标(u,v)处的像素点作为任一骨骼的关联像素点。
应理解的是,若任一骨骼在当前图像帧中的对偶四元数需要采用两个关联像素点的颜色通道值进行存储,则在通过上述方式得到任一骨骼的纹理坐标(u, v)后;还可对一维参考坐标x执行加一处理,以更新x的取值,并采用更新后的x对w分别进行取余操作和向下取整操作,以得到新的纹理坐标(u1,v1)。在此情况下,任一骨骼在当前图像帧中的对偶四元数所需的两个关联像素点分别是:纹理坐标(u,v)处的像素点,以及新的纹理坐标(u1,v1)处的像素点。
s12,从贴图纹理中读取,每个骨骼在骨骼动画的目标图像帧中的目标空间信息。
在具体实施过程中,计算机设备可遍历目标对象的多个骨骼,并从贴图纹理中确定当前骨骼的关联像素点。由前述可知,贴图纹理中的每个像素点均具有一个二维的纹理坐标;因此在具体实现中,可先获取当前骨骼的骨骼标识;根据目标图像帧的帧标识、目标对象的骨骼数量,以及当前骨骼的骨骼标识,计算当前骨骼对应的一维参考坐标;然后,可将一维参考坐标映射到贴图纹理中,得到当前骨骼对应的目标纹理坐标;最后,可将位于所述目标纹理坐标处的像素点,作为当前骨骼的关联像素点。需要说明的是,在确定当前骨骼的关联像素点的过程中所涉及的各个步骤的具体实施方式,可参见上述步骤s11所提及的关于任一骨骼的关联像素点的具体实施方式,在此不再赘述。在确定出当前骨骼的关联像素点后,便可从当前骨骼的关联像素点的颜色通道中,读取当前骨骼在目标图像帧中的对偶四元数,作为当前骨骼在目标图像帧中的目标空间信息。
s13,遍历多个网格的顶点,根据当前遍历的当前顶点的关联骨骼的骨骼标识,从读取到的目标空间信息中获取当前顶点的关联骨骼的目标空间信息。
S605,采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标。
在具体实施过程中,可遍历多个网格的顶点,并确定当前遍历的当前顶点的关联骨骼的数量。若数量为1,则可直接采用当前顶点的关联骨骼的目标空间信息,对当前顶点的初始坐标进行坐标变换,得到当前顶点的目标坐标;具体的,采用表示当前顶点的关联骨骼的目标空间信息(即目标对偶四元数),以及采用p表示当前顶点的初始坐标,采用p1表示当前顶点的目标坐标,则对当前顶点的初始坐标进行坐标变换,得到当前顶点的目标坐标的变换公式可参见下述式1.4所示:
若数量大于或等于2,则可融合当前顶点的各个关联骨骼的目标空间信息,得到融合空间信息。具体的,由前述可知,任一顶点的关联骨骼信息包括任一顶点的各个关联骨骼的骨骼权重;任一关联骨骼的目标空间信息包括任一关联骨骼在目标图像帧中的目标对偶四元数。因此,可先从当前顶点的关联骨骼信息中,获取当前顶点的各个关联骨骼的骨骼权重;采用当前顶点的各个关联骨骼的骨骼权重,对当前顶点的各个关联骨骼的目标对偶四元数进行线性融合(如加权求和),得到融合对偶四元数。其中,融合空间信息包括融合对偶四元数。在得到融合空间信息后,便可采用融合空间信息对当前顶点的初始坐标进行坐标变换,得到当前顶点的目标坐标,具体实施方式与式1.4类似,在此不再赘述。
S606,基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。
S607,若检测到目标图像帧满足挂载资源条件,则获取目标图像帧中的目标挂点的挂点信息,以及目标挂点所挂载的目标辅助资源。
在具体实现中,资源数据还可包括事件数据集以及挂点数据集;相应的,计算机设备还可调用中央处理器从***内存中读取该事件数据集和挂点数据集。由前述可知,事件数据集中包括一个或多个资源挂载事件的事件信息;此处所提及的资源挂载事件的种类有很多,可根据具体业务自由拓展;挂载资源事件可包括挂载特效事件、挂载音频事件、挂载图像事件,等等。参见图7a所示,任一资源挂载事件的事件信息可包括但不限于:资源挂载条件、资源取消条件、关联的辅助资源,以及资源挂载的挂点的挂点标识,等等;此处所提及的资源挂载条件可根据业务需求或者经验值设置,对此不作限定。例如,任一资源挂载事件的资源挂载条件可以包括以下至少一项:骨骼动画中的指定图像帧的帧标识,以及在预设时间段内检测到关于该任一资源挂载事件的触发操作。如针对任一游戏的挂载特效事件而言,通常需要用户执行指定的游戏操作后,才会触发特效展示,那么该指定的游戏操作可作为挂载特效事件的触发操作。
应理解的是,不同种类的资源挂载事件的事件信息既有相同的部分,也有不同的地方;例如,挂载特效事件的事件信息可包括特效的资源路径,挂载音频事件的事件信息可包括音频数据的资源路径,但是这两种资源挂载事件的事件信息均可包括资源挂载的挂点的挂点标识。
在获取到事件数据集后,可采用目标图像帧对事件数据集中的各个事件信息中的资源挂载条件进行命中处理;若目标图像帧成功命中事件数据集中的目标事件信息中的资源挂载条件,则可确定目标图像帧满足资源挂载条件。此情况下,计算机设备可将目标事件信息中的挂点标识所指示的挂点确定为目标挂点,并从目标事件信息中获取目标挂点所挂载的目标辅助资源;其中,当目标对象是任一游戏中的任一虚拟角色对象时,该目标辅助资源可以为任一游戏的游戏资源;该游戏资源包括以下至少一项:游戏特效、游戏道具图像以及三维的游戏音频数据,等等。当目标对象是任一用户在即时通信应用中的虚拟个人形象,该目标辅助资源可以为形象装扮元素;当目标对象为影视剧中的任一人物、动物或其他生物时,该目标辅助资源可以为影视剧中所涉及的特效资源,等等。
另外,还可从挂点数据集中获取目标图像帧中的目标挂点的挂点信息。其中,目标挂点的挂点信息包括:目标挂点的挂点标识、目标挂点对应的目标骨骼的骨骼标识,以及目标挂点和目标骨骼之间的相对姿态信息;此处所提及的相对姿态信息可包括:目标挂点相对于目标骨骼的位移信息、旋转信息以及缩放信息中的一种或多种。
S608,根据目标挂点的挂点信息中的骨骼标识,从多个骨骼中确定目标骨骼,该目标骨骼是指目标挂点所挂载的骨骼。
S609,在显示目标图像帧时,基于目标骨骼在目标图像帧中的位置,及目标挂点和目标骨骼之间的相对姿态信息,输出目标辅助资源。
在一种实施方式中,若目标辅助资源包括目标辅助图像,所谓的辅助图像是指除骨骼动画以外的,且可用于对骨骼动画中的目标图像帧进行装饰的图像,如特效图像、道具图像等;则步骤S609的具体实施方式可以包括:在显示目标图像帧时,基于目标骨骼在目标图像帧中的位置,以及目标挂点和目标骨骼之间的相对姿态信息,确定目标挂点在目标图像帧中的挂点位置。然后,可根据挂点位置,以及目标挂点和目标辅助图像之间的相对位置信息,确定目标辅助图像在目标图像帧中的目标位置;其中,目标挂点和目标辅助图像之间的相对位置信息,可以是预先根据经验值设置的。然后,可在目标图像帧中的目标位置处,渲染显示目标辅助图像。
再一种实施方式中,若目标辅助资源还包括与目标辅助图像相关联的三维音频数据;所谓的三维音频数据是指:用扬声器仿造出的似乎存在但是虚构的声音的音频数据,如游戏画面中的某个虚拟角色对象所发出的声音的音频数据、影视剧画面中的某车辆所发出的鸣笛声,等等;则步骤S609的具体实施方式还可包括:先在目标图像帧中确定目标听觉点,该目标听觉点是指用于收听该三维音频数据的听众所处的位置;应理解的是,此处所提及的听众可以是观看该目标图像帧的真实用户,此情况下,在目标图像帧中的目标听觉点可以是将真实用户所处的真实位置映射到目标图像帧中所确定的映射位置;或者,听众也可以是目标图像帧中除目标对象以外的其他对象,此情况下的目标听觉点可以是该其他对象在目标图像帧中所处的位置。然后,可确定目标听觉点和目标位置之间的目标距离,并从距离和音量之间的对应关系表中,查找目标距离所对应的目标音量;其中,目标距离和目标音量可成负相关,即目标距离越大,目标音量越小。最后,可按照目标音量播放三维音频数据。
应理解的是,若目标挂点对应骨骼动画中的一个图像帧序列,该图像帧序列中包括目标图像帧以及一帧或多帧关联图像帧,所谓的关联图像帧是指骨骼动画中除目标图像帧以外的,存在目标挂点的图像帧。则在图像帧序列中的各图像帧中,当目标挂点随着目标骨骼进行运动时,目标辅助资源随着目标挂点进行运动;也就是说,当目标挂点在图像帧序列中的各个图像帧中的挂点位置发生变化时,目标辅助图资源在各帧图像帧中的位置可随着挂点位置的变化而变化,如图7b所示。
本申请实施例预先为目标对象设置多个骨骼后,可通过离线配置目标对象的骨骼动画的蒙皮资源,及各个骨骼在骨骼动画中的各图像帧中的空间信息,使得当需渲染骨骼动画时,可通过调用图形处理器从显存中直接获取该蒙皮资源,并根据该蒙皮资源从显存中直接获取每个顶点的关联骨骼在目标图像帧中的目标空间信息;这样可以有效减少图像渲染过程中的计算量,从而有效节省处理资源并加速渲染过程。然后,可通过调用图形处理器采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标;从而基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。由于整个图像渲染过程均是在图形处理器中实现的,无需中央处理器进行动画计算,可有效节省中央处理器资源;且还可凭借图形处理器具有的高并行的处理能力,有效提升渲染效率,减少占用带宽。
在实际应用中,可根据实际需求将上述图4以及图6所示的图像处理方法,运用到各式各样的应用场景中,例如游戏画面的渲染场景、影视剧画面的渲染场景,等等。下面以游戏画面的渲染场景为例,对该图像处理方法的具体应用过程进行阐述:
首先,美术制作者可选取目标游戏中的任一虚拟角色对象作为目标对象,并制作该目标对象的骨骼动画的动画资源文件(如目标对象的骨架信息、骨骼动画的动画信息等多种信息)。然后,美术制作人员可以利用动画编辑器(如 Unreal4(Unreal Engine,UE4)引擎),导入该目标对象的动画资源文件,并对该目标对象的骨骼动画进行编辑,最终触发该动画编辑器生成用于GPU加速的资源数据(蒙皮资源和贴图纹理)。其中,此处所提及的目标游戏可以是端游、手游、页游、云游戏等任一类型的游戏;所谓的端游是指基于PC(PersonalComputer,个人计算机)/电脑端中的游戏应用所运行的游戏,手游则是指基于手机等移动设备中的游戏应用所运行的游戏,页游则是指基于网页所运行的游戏;云游戏则是指在云游戏服务器中的容器中运行的游戏,云游戏通过将视频流传到用户终端内所运行的游戏客户端进行显示,并根据游戏客户端上传的用户操作事件来驱动游戏画面变化。
任一计算机设备可从该动画编辑器处获取该目标对象的骨骼动画的资源数据,并将资源数据缓存至***内存中。当检测到目标用户启动该目标游戏后,可认为检测到了针对骨骼动画的渲染触发事件,此时计算机设备中的CPU将该资源数据从***内存传输至显存。其次,计算机设备中的GPU可从显存中获取目标对象的骨骼动画的蒙皮资源,以及从显存中获取贴图纹理;并从贴图纹理中读取,每个顶点的关联骨骼在目标图像帧中的目标对偶四元数。接着,GPU 可采用每个顶点的关联骨骼的目标对偶四元数,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标。然后,GPU可基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。
可选的,计算机设备中的CPU还可检测目标图像帧是否满足挂载资源条件;若检测到目标图像帧满足挂载资源条件,则CPU还可获取目标图像帧中的目标挂点的挂点信息,以及目标挂点所挂载的目标辅助资源。然后,根据目标挂点的挂点信息中的骨骼标识,从多个骨骼中确定目标骨骼;并在显示目标图像帧时,基于目标骨骼在目标图像帧中的位置,及目标挂点和目标骨骼之间的相对姿态信息,输出目标辅助资源。
由此可见,本申请实施例通过在目标游戏内建立一整套完整的工作流,使得美术制作人员可以用Unreal4(Unreal Engine,UE4)引擎进行骨骼动画的GPU 加速,达到同屏大规模渲染骨骼动画的目的;这样可有利于美术制作者丰富游戏画面中的虚拟角色对象的种类和数量,提升游戏画面的丰富度。并且,通过由GPU根据离线配置蒙皮资源和贴图纹理等资源数据来实现图像渲染,无需 CPU执行动画计算过程,可有效实现GPU加速,减少内存占用,提升运行效率和渲染效率;从而提升目标游戏的游戏画面的显示及时性,进而提升目标游戏的流畅度。另外,还可支持动画编辑、自定义多种事件触发器,让动画不仅是动画,还具备影响游戏环境的功能;可有效减少计算机设备因带宽占用高而产生的发热现象,通过提升帧率可实现游戏画面的高帧率显示,从而提升目标用户玩游戏过程的舒适度,进而有效提升用户粘度。
基于上述图像处理方法实施例的描述,本申请实施例还公开了一种图像处理装置,所述图像处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码)。该图像处理装置可以执行图4或图6所示的方法。请参见图8,所述图像处理装置可以运行如下单元:
获取单元801,用于调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
所述获取单元801,还用于根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
处理单元802,用于采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
渲染单元803,用于基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧。
在一种实施方式中,任一顶点的关联骨骼信息包括所述任一顶点的关联骨骼的骨骼标识;相应的,获取单元801在用于根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息时,可具体用于:
从所述显存中获取贴图纹理,所述贴图纹理包括:每个骨骼在所述骨骼动画的各图像帧中的空间信息;
从所述贴图纹理中读取,所述每个骨骼在所述骨骼动画的目标图像帧中的目标空间信息;
遍历所述多个网格的顶点,根据当前遍历的当前顶点的关联骨骼的骨骼标识,从读取到的目标空间信息中获取所述当前顶点的关联骨骼的目标空间信息。
再一种实施方式中,任一骨骼在所述骨骼动画的任一图像帧中的空间信息包括对偶四元数,所述对偶四元数是指用于表示平移参数和旋转参数的数值;
所述贴图纹理包括多个像素点,每个像素点包括一个或多个颜色通道,所述任一骨骼在所述任一图像帧中的对偶四元数,采用所述任一骨骼在所述贴图纹理中的关联像素点的各个颜色通道进行存储;
相应的,获取单元801在用于从所述贴图纹理中读取,所述每个骨骼在所述骨骼动画的目标图像帧中的目标空间信息时,可具体用于:
遍历所述目标对象的多个骨骼,并从所述贴图纹理中确定所述当前骨骼的关联像素点;
从所述当前骨骼的关联像素点的颜色通道中,读取所述当前骨骼在所述目标图像帧中的对偶四元数,作为所述当前骨骼在所述目标图像帧中的目标空间信息。
再一种实施方式中,所述贴图纹理中的每个像素点均具有一个二维的纹理坐标;相应的,获取单元801在用于从所述贴图纹理中确定所述当前骨骼的关联像素点时,可具体用于:
获取所述当前骨骼的骨骼标识;
根据所述目标图像帧的帧标识、所述目标对象的骨骼数量、以及所述当前骨骼的骨骼标识,计算所述当前骨骼对应的一维参考坐标;
将所述一维参考坐标映射到所述贴图纹理中,得到所述当前骨骼对应的目标纹理坐标;
将位于所述目标纹理坐标处的像素点,作为所述当前骨骼的关联像素点。
再一种实施方式中,处理单元802在用于根据所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标转换,得到所述每个顶点的目标坐标时,可具体用于:
遍历所述多个网格的顶点,并确定当前遍历的当前顶点的关联骨骼的数量;
若所述数量为1,则采用所述当前顶点的关联骨骼的目标空间信息,对所述当前顶点的初始坐标进行坐标变换,得到所述当前顶点的目标坐标;
若所述数量大于或等于2,则融合所述当前顶点的各个关联骨骼的目标空间信息,得到融合空间信息;并采用所述融合空间信息对所述当前顶点的初始坐标进行坐标变换,得到所述当前顶点的目标坐标。
再一种实施方式中,任一顶点的关联骨骼信息包括所述任一顶点的各个关联骨骼的骨骼权重;任一关联骨骼的目标空间信息包括所述任一关联骨骼在所述目标图像帧中的目标对偶四元数;相应的,处理单元802在用于融合所述当前顶点的各个关联骨骼的目标空间信息,得到融合空间信息时,可具体用于:
从所述当前顶点的关联骨骼信息中,获取所述当前顶点的各个关联骨骼的骨骼权重;
采用所述当前顶点的各个关联骨骼的骨骼权重,对所述当前顶点的各个关联骨骼的目标对偶四元数进行线性融合,得到融合对偶四元数;其中,所述融合空间信息包括所述融合对偶四元数。
再一种实施方式中,获取单元801还可用于:
获取所述骨骼动画的资源数据,并将所述资源数据缓存至***内存中;其中,所述资源数据包括所述蒙皮资源和贴图纹理,所述贴图纹理包括每个骨骼在所述骨骼动画的各图像帧中的空间信息;
若检测到针对所述骨骼动画的渲染触发事件,则调用中央处理器将所述资源数据从所述***内存传输至所述显存,并执行调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源的步骤。
再一种实施方式中,处理单元802还可用于:
若检测到所述目标图像帧满足资源挂载条件,则获取所述目标图像帧中的目标挂点的挂点信息,以及所述目标挂点所挂载的目标辅助资源;所述目标挂点的挂点信息包括所述目标挂点对应的目标骨骼的骨骼标识,以及所述目标挂点和所述目标骨骼之间的相对姿态信息;
根据所述目标挂点的挂点信息中的骨骼标识,从所述多个骨骼中确定所述目标骨骼;
在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,及所述目标挂点和所述目标骨骼之间的相对姿态信息,输出所述目标辅助资源。
再一种实施方式中,所述目标辅助资源包括目标辅助图像;相应的,处理单元802在用于在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,及所述目标挂点和所述目标骨骼之间的相对姿态信息,输出所述目标辅助资源时,可具体用于:
在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,以及所述目标挂点和所述目标骨骼之间的相对姿态信息,确定所述目标挂点在所述目标图像帧中的挂点位置;
根据所述挂点位置,以及所述目标挂点和所述目标辅助图像之间的相对位置信息,确定所述目标辅助图像在所述目标图像帧中的目标位置;
在所述目标图像帧中的所述目标位置处,渲染显示所述目标辅助图像。
再一种实施方式中,所述目标辅助资源还包括与所述目标辅助图像相关联的三维音频数据;相应的,处理单元802还可用于:
在所述目标图像帧中确定目标听觉点,并确定所述目标听觉点和所述目标位置之间的目标距离;
从距离和音量之间的对应关系表中,查找所述目标距离所对应的目标音量;
按照所述目标音量播放所述三维音频数据。
再一种实施方式中,若目标挂点对应所述骨骼动画中的一个图像帧序列,所述图像帧序列中包括所述目标图像帧以及一帧或多帧关联图像帧,所述关联图像帧是指所述骨骼动画中除所述目标图像帧以外的,存在所述目标挂点的图像帧;
则在所述图像帧序列中的各图像帧中,当所述目标挂点随着所述目标骨骼进行运动时,所述目标辅助图像随着所述目标挂点进行运动。
再一种实施方式中,所述目标对象是任一游戏中的任一虚拟角色对象,所述目标辅助资源为所述任一游戏的游戏资源;
其中,所述游戏资源包括以下至少一项:游戏特效、游戏道具图像以及三维的游戏音频数据。
根据本申请的一个实施例,图4或图6所示的方法所涉及的各个步骤均可以是由图8所示的图像处理装置中的各个单元来执行的。例如,图4中所示的步骤S401-S402均可由图8中所示的获取单元801来执行,步骤S403和S404 可分别由图8中所示的处理单元802和渲染单元803来执行;又如,图6中所示的步骤S601-S604均可由图8中所示的获取单元801来执行,步骤S605以及步骤S607-S609均可由图8中所示的处理单元802执行,步骤S606可由图8中所示的渲染单元803来执行,等等。
根据本申请的另一个实施例,图8所示的图像处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于图像处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图4或图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的图像处理装置设备,以及来实现本申请实施例的图像处理方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请实施例预先为目标对象设置多个骨骼后,可通过离线配置目标对象的骨骼动画的蒙皮资源,及各个骨骼在骨骼动画中的各图像帧中的空间信息,使得当需渲染骨骼动画时,可通过调用图形处理器从显存中直接获取该蒙皮资源,并根据该蒙皮资源从显存中直接获取每个顶点的关联骨骼在目标图像帧中的目标空间信息;这样可以有效减少图像渲染过程中的计算量,从而有效节省处理资源并加速渲染过程。然后,可通过调用图形处理器采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标;从而基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。由于整个图像渲染过程均是在图形处理器中实现的,无需中央处理器进行动画计算,可有效节省中央处理器资源;且还可凭借图形处理器具有的高并行的处理能力,有效提升渲染效率,减少占用带宽。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种计算机设备。请参见图9,该计算机设备至少包括处理器901、输入接口902、输出接口903以及计算机存储介质904。其中,计算机设备内的处理器901、输入接口902、输出接口903以及计算机存储介质904可通过总线或其他方式连接。计算机存储介质904可以存储在计算机设备的存储器中,所述计算机存储介质 904用于存储计算机程序,所述计算机程序包括程序指令,所述处理器901用于执行所述计算机存储介质904存储的程序指令。处理器901(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例所述的处理器901可以用于进行一系列的图像处理,具体包括:调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧,等等。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备的操作***。并且,在该存储空间中还存放了适于被处理器901加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器901加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图4或图6所示的图像处理方法实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器901 加载并执行如下步骤:
调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧。
在一种实施方式中,任一顶点的关联骨骼信息包括所述任一顶点的关联骨骼的骨骼标识;相应的,在根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息时,所述一条或多条指令可由处理器901加载并具体执行:
从所述显存中获取贴图纹理,所述贴图纹理包括:每个骨骼在所述骨骼动画的各图像帧中的空间信息;
从所述贴图纹理中读取,所述每个骨骼在所述骨骼动画的目标图像帧中的目标空间信息;
遍历所述多个网格的顶点,根据当前遍历的当前顶点的关联骨骼的骨骼标识,从读取到的目标空间信息中获取所述当前顶点的关联骨骼的目标空间信息。
再一种实施方式中,任一骨骼在所述骨骼动画的任一图像帧中的空间信息包括对偶四元数,所述对偶四元数是指用于表示平移参数和旋转参数的数值;
所述贴图纹理包括多个像素点,每个像素点包括一个或多个颜色通道,所述任一骨骼在所述任一图像帧中的对偶四元数,采用所述任一骨骼在所述贴图纹理中的关联像素点的各个颜色通道进行存储;
相应的,在从所述贴图纹理中读取,所述每个骨骼在所述骨骼动画的目标图像帧中的目标空间信息时,所述一条或多条指令可由处理器901加载并具体执行:
遍历所述目标对象的多个骨骼,并从所述贴图纹理中确定所述当前骨骼的关联像素点;
从所述当前骨骼的关联像素点的颜色通道中,读取所述当前骨骼在所述目标图像帧中的对偶四元数,作为所述当前骨骼在所述目标图像帧中的目标空间信息。
再一种实施方式中,所述贴图纹理中的每个像素点均具有一个二维的纹理坐标;相应的,在从所述贴图纹理中确定所述当前骨骼的关联像素点时,所述一条或多条指令可由处理器901加载并具体执行:
获取所述当前骨骼的骨骼标识;
根据所述目标图像帧的帧标识、所述目标对象的骨骼数量、以及所述当前骨骼的骨骼标识,计算所述当前骨骼对应的一维参考坐标;
将所述一维参考坐标映射到所述贴图纹理中,得到所述当前骨骼对应的目标纹理坐标;
将位于所述目标纹理坐标处的像素点,作为所述当前骨骼的关联像素点。
再一种实施方式中,在根据所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标转换,得到所述每个顶点的目标坐标时,所述一条或多条指令可由处理器901加载并具体执行:
遍历所述多个网格的顶点,并确定当前遍历的当前顶点的关联骨骼的数量;
若所述数量为1,则采用所述当前顶点的关联骨骼的目标空间信息,对所述当前顶点的初始坐标进行坐标变换,得到所述当前顶点的目标坐标;
若所述数量大于或等于2,则融合所述当前顶点的各个关联骨骼的目标空间信息,得到融合空间信息;并采用所述融合空间信息对所述当前顶点的初始坐标进行坐标变换,得到所述当前顶点的目标坐标。
再一种实施方式中,任一顶点的关联骨骼信息包括所述任一顶点的各个关联骨骼的骨骼权重;任一关联骨骼的目标空间信息包括所述任一关联骨骼在所述目标图像帧中的目标对偶四元数;相应的,在融合所述当前顶点的各个关联骨骼的目标空间信息,得到融合空间信息时,所述一条或多条指令可由处理器 901加载并具体执行:
从所述当前顶点的关联骨骼信息中,获取所述当前顶点的各个关联骨骼的骨骼权重;
采用所述当前顶点的各个关联骨骼的骨骼权重,对所述当前顶点的各个关联骨骼的目标对偶四元数进行线性融合,得到融合对偶四元数;其中,所述融合空间信息包括所述融合对偶四元数。
再一种实施方式中,所述一条或多条指令还可以由处理器901加载并具体执行:
获取所述骨骼动画的资源数据,并将所述资源数据缓存至***内存中;其中,所述资源数据包括所述蒙皮资源和贴图纹理,所述贴图纹理包括所述每个骨骼在所述骨骼动画的各图像帧中的空间信息;
若检测到针对所述骨骼动画的渲染触发事件,则调用中央处理器将所述资源数据从所述***内存传输至所述显存,并执行调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源的步骤。
再一种实施方式中,所述一条或多条指令还可以由处理器901加载并具体执行:
若检测到所述目标图像帧满足资源挂载条件,则获取所述目标图像帧中的目标挂点的挂点信息,以及所述目标挂点所挂载的目标辅助资源;所述目标挂点的挂点信息包括所述目标挂点对应的目标骨骼的骨骼标识,以及所述目标挂点和所述目标骨骼之间的相对姿态信息;
根据所述目标挂点的挂点信息中的骨骼标识,从所述多个骨骼中确定所述目标骨骼;
在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,及所述目标挂点和所述目标骨骼之间的相对姿态信息,输出所述目标辅助资源。
再一种实施方式中,所述目标辅助资源包括目标辅助图像;相应的,在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,及所述目标挂点和所述目标骨骼之间的相对姿态信息,输出所述目标辅助资源时,所述一条或多条指令可由处理器901加载并具体执行:
在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,以及所述目标挂点和所述目标骨骼之间的相对姿态信息,确定所述目标挂点在所述目标图像帧中的挂点位置;
根据所述挂点位置,以及所述目标挂点和所述目标辅助图像之间的相对位置信息,确定所述目标辅助图像在所述目标图像帧中的目标位置;
在所述目标图像帧中的所述目标位置处,渲染显示所述目标辅助图像。
再一种实施方式中,所述目标辅助资源还包括与所述目标辅助图像相关联的三维音频数据;相应的,所述一条或多条指令还可由处理器901加载并具体执行:
在所述目标图像帧中确定目标听觉点,并确定所述目标听觉点和所述目标位置之间的目标距离;
从距离和音量之间的对应关系表中,查找所述目标距离所对应的目标音量;
按照所述目标音量播放所述三维音频数据。
再一种实施方式中,若目标挂点对应所述骨骼动画中的一个图像帧序列,所述图像帧序列中包括所述目标图像帧以及一帧或多帧关联图像帧,所述关联图像帧是指所述骨骼动画中除所述目标图像帧以外的,存在所述目标挂点的图像帧;
则在所述图像帧序列中的各图像帧中,当所述目标挂点随着所述目标骨骼进行运动时,所述目标辅助图像随着所述目标挂点进行运动。
再一种实施方式中,所述目标对象是任一游戏中的任一虚拟角色对象,所述目标辅助资源为所述任一游戏的游戏资源;
其中,所述游戏资源包括以下至少一项:游戏特效、游戏道具图像以及三维的游戏音频数据。
本申请实施例预先为目标对象设置多个骨骼后,可通过离线配置目标对象的骨骼动画的蒙皮资源,及各个骨骼在骨骼动画中的各图像帧中的空间信息,使得当需渲染骨骼动画时,可通过调用图形处理器从显存中直接获取该蒙皮资源,并根据该蒙皮资源从显存中直接获取每个顶点的关联骨骼在目标图像帧中的目标空间信息;这样可以有效减少图像渲染过程中的计算量,从而有效节省处理资源并加速渲染过程。然后,可通过调用图形处理器采用每个顶点的关联骨骼的目标空间信息,对每个顶点的初始坐标进行坐标变换,得到每个顶点的目标坐标;从而基于每个顶点的目标坐标和每个顶点的渲染信息,对每个顶点所属网格对应的目标像素块进行图像渲染,得到目标图像帧。由于整个图像渲染过程均是在图形处理器中实现的,无需中央处理器进行动画计算,可有效节省中央处理器资源;且还可凭借图形处理器具有的高并行的处理能力,有效提升渲染效率,减少占用带宽。
需要说明的是,根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图4 或图6所示的图像处理方法实施例方面的各种可选方式中提供的方法。
并且,应理解的是,以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种图像处理方法,其特征在于,包括:
调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧;
若检测到所述目标图像帧满足资源挂载条件,则获取所述目标图像帧中的目标挂点的挂点信息,以及所述目标挂点所挂载的目标辅助资源;所述目标挂点的挂点信息包括所述目标挂点对应的目标骨骼的骨骼标识,以及所述目标挂点和所述目标骨骼之间的相对姿态信息;
根据所述目标挂点的挂点信息中的骨骼标识,从所述多个骨骼中确定所述目标骨骼;
在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,及所述目标挂点和所述目标骨骼之间的相对姿态信息,输出所述目标辅助资源。
2.如权利要求1所述的方法,其特征在于,任一顶点的关联骨骼信息包括所述任一顶点的关联骨骼的骨骼标识;所述根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,包括:
从所述显存中获取贴图纹理,所述贴图纹理包括:每个骨骼在所述骨骼动画的各图像帧中的空间信息;
从所述贴图纹理中读取,所述每个骨骼在所述骨骼动画的目标图像帧中的目标空间信息;
遍历所述多个网格的顶点,根据当前遍历的当前顶点的关联骨骼的骨骼标识,从读取到的目标空间信息中获取所述当前顶点的关联骨骼的目标空间信息。
3.如权利要求2所述的方法,其特征在于,任一骨骼在所述骨骼动画的任一图像帧中的空间信息包括对偶四元数,所述对偶四元数是指用于表示平移参数和旋转参数的数值;
所述贴图纹理包括多个像素点,每个像素点包括一个或多个颜色通道,所述任一骨骼在所述任一图像帧中的对偶四元数,采用所述任一骨骼在所述贴图纹理中的关联像素点的各个颜色通道进行存储;
所述从所述贴图纹理中读取,所述每个骨骼在所述骨骼动画的目标图像帧中的目标空间信息,包括:
遍历所述目标对象的多个骨骼,并从所述贴图纹理中确定当前骨骼的关联像素点;
从所述当前骨骼的关联像素点的颜色通道中,读取所述当前骨骼在所述目标图像帧中的对偶四元数,作为所述当前骨骼在所述目标图像帧中的目标空间信息。
4.如权利要求3所述的方法,其特征在于,所述贴图纹理中的每个像素点均具有一个二维的纹理坐标;所述从所述贴图纹理中确定所述当前骨骼的关联像素点,包括:
获取所述当前骨骼的骨骼标识;
根据所述目标图像帧的帧标识、所述目标对象的骨骼数量、以及所述当前骨骼的骨骼标识,计算所述当前骨骼对应的一维参考坐标;
将所述一维参考坐标映射到所述贴图纹理中,得到所述当前骨骼对应的目标纹理坐标;
将位于所述目标纹理坐标处的像素点,作为所述当前骨骼的关联像素点。
5.如权利要求1所述的方法,其特征在于,所述根据所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标转换,得到所述每个顶点的目标坐标,包括:
遍历所述多个网格的顶点,并确定当前遍历的当前顶点的关联骨骼的数量;
若所述数量为1,则采用所述当前顶点的关联骨骼的目标空间信息,对所述当前顶点的初始坐标进行坐标变换,得到所述当前顶点的目标坐标;
若所述数量大于或等于2,则融合所述当前顶点的各个关联骨骼的目标空间信息,得到融合空间信息;并采用所述融合空间信息对所述当前顶点的初始坐标进行坐标变换,得到所述当前顶点的目标坐标。
6.如权利要求5所述的方法,其特征在于,任一顶点的关联骨骼信息包括所述任一顶点的各个关联骨骼的骨骼权重;任一关联骨骼的目标空间信息包括所述任一关联骨骼在所述目标图像帧中的目标对偶四元数;
所述融合所述当前顶点的各个关联骨骼的目标空间信息,得到融合空间信息,包括:
从所述当前顶点的关联骨骼信息中,获取所述当前顶点的各个关联骨骼的骨骼权重;
采用所述当前顶点的各个关联骨骼的骨骼权重,对所述当前顶点的各个关联骨骼的目标对偶四元数进行线性融合,得到融合对偶四元数;其中,所述融合空间信息包括所述融合对偶四元数。
7.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取所述骨骼动画的资源数据,并将所述资源数据缓存至***内存中;其中,所述资源数据包括所述蒙皮资源和贴图纹理,所述贴图纹理包括每个骨骼在所述骨骼动画的各图像帧中的空间信息;
若检测到针对所述骨骼动画的渲染触发事件,则调用中央处理器将所述资源数据从所述***内存传输至所述显存,并执行调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源的步骤。
8.如权利要求1所述的方法,其特征在于,所述目标辅助资源包括目标辅助图像;所述在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,及所述目标挂点和所述目标骨骼之间的相对姿态信息,输出所述目标辅助资源,包括:
在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,以及所述目标挂点和所述目标骨骼之间的相对姿态信息,确定所述目标挂点在所述目标图像帧中的挂点位置;
根据所述挂点位置,以及所述目标挂点和所述目标辅助图像之间的相对位置信息,确定所述目标辅助图像在所述目标图像帧中的目标位置;
在所述目标图像帧中的所述目标位置处,渲染显示所述目标辅助图像。
9.如权利要求8所述的方法,其特征在于,所述目标辅助资源还包括与所述目标辅助图像相关联的三维音频数据;所述方法还包括:
在所述目标图像帧中确定目标听觉点,并确定所述目标听觉点和所述目标位置之间的目标距离;
从距离和音量之间的对应关系表中,查找所述目标距离所对应的目标音量;
按照所述目标音量播放所述三维音频数据。
10.如权利要求8或9所述的方法,其特征在于,若目标挂点对应所述骨骼动画中的一个图像帧序列,所述图像帧序列中包括所述目标图像帧以及一帧或多帧关联图像帧,所述关联图像帧是指所述骨骼动画中除所述目标图像帧以外的,存在所述目标挂点的图像帧;
则在所述图像帧序列中的各图像帧中,当所述目标挂点随着所述目标骨骼进行运动时,所述目标辅助图像随着所述目标挂点进行运动。
11.如权利要求1所述的方法,其特征在于,所述目标对象是任一游戏中的任一虚拟角色对象,所述目标辅助资源为所述任一游戏的游戏资源;
其中,所述游戏资源包括以下至少一项:游戏特效、游戏道具图像以及三维的游戏音频数据。
12.一种图像处理装置,其特征在于,包括:
获取单元,用于调用图形处理器从显存中获取目标对象的骨骼动画的蒙皮资源,所述目标对象包括多个骨骼,所述蒙皮资源包括多个网格的顶点和每个顶点的顶点信息;任一顶点的顶点信息包括初始坐标、关联骨骼信息及渲染信息;任一顶点的坐标用于确定所述任一顶点所属网格对应的像素块;
所述获取单元,还用于根据所述每个顶点的关联骨骼信息,从所述显存中获取所述每个顶点的关联骨骼在目标图像帧中的目标空间信息,所述目标图像帧是所述骨骼动画中的任一图像帧;
处理单元,用于采用所述每个顶点的关联骨骼的目标空间信息,对所述每个顶点的初始坐标进行坐标变换,得到所述每个顶点的目标坐标;
渲染单元,用于基于所述每个顶点的目标坐标和所述每个顶点的渲染信息,对所述每个顶点所属网格对应的目标像素块进行图像渲染,得到所述目标图像帧;
所述处理单元,还用于若检测到所述目标图像帧满足资源挂载条件,则获取所述目标图像帧中的目标挂点的挂点信息,以及所述目标挂点所挂载的目标辅助资源;所述目标挂点的挂点信息包括所述目标挂点对应的目标骨骼的骨骼标识,以及所述目标挂点和所述目标骨骼之间的相对姿态信息;根据所述目标挂点的挂点信息中的骨骼标识,从所述多个骨骼中确定所述目标骨骼;在显示所述目标图像帧时,基于所述目标骨骼在所述目标图像帧中的位置,及所述目标挂点和所述目标骨骼之间的相对姿态信息,输出所述目标辅助资源。
13.一种计算机设备,包括输入接口和输出接口,其特征在于,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-11任一项所述的图像处理方法。
14.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-11任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284798.7A CN112933597B (zh) | 2021-03-16 | 2021-03-16 | 图像处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284798.7A CN112933597B (zh) | 2021-03-16 | 2021-03-16 | 图像处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112933597A CN112933597A (zh) | 2021-06-11 |
CN112933597B true CN112933597B (zh) | 2022-10-14 |
Family
ID=76228712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110284798.7A Active CN112933597B (zh) | 2021-03-16 | 2021-03-16 | 图像处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112933597B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113450435B (zh) * | 2021-06-25 | 2023-05-26 | 网易(杭州)网络有限公司 | 顶点动画的处理方法及装置 |
CN113546415B (zh) * | 2021-08-11 | 2024-03-29 | 北京字跳网络技术有限公司 | 剧情动画播放方法、生成方法、终端、装置及设备 |
CN113947657A (zh) * | 2021-10-18 | 2022-01-18 | 网易(杭州)网络有限公司 | 目标模型的渲染方法、装置、设备及存储介质 |
CN114332311B (zh) * | 2021-12-05 | 2023-08-04 | 北京字跳网络技术有限公司 | 一种图像生成方法、装置、计算机设备及存储介质 |
CN114898022B (zh) * | 2022-07-15 | 2022-11-01 | 杭州脸脸会网络技术有限公司 | 图像生成方法、装置、电子装置和存储介质 |
CN115861503A (zh) * | 2022-09-29 | 2023-03-28 | 北京字跳网络技术有限公司 | 虚拟物体的渲染方法、装置、设备及存储介质 |
CN115619911B (zh) * | 2022-10-26 | 2023-08-08 | 润芯微科技(江苏)有限公司 | 基于Unreal Engine的虚拟形象生成方法 |
CN115908678B (zh) * | 2023-02-25 | 2023-05-30 | 深圳市益玩网络科技有限公司 | 骨骼模型渲染方法、装置、电子设备及存储介质 |
CN115984447B (zh) * | 2023-03-16 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备和介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108711182A (zh) * | 2018-05-03 | 2018-10-26 | 广州爱九游信息技术有限公司 | 渲染处理方法、装置及移动终端设备 |
CN111558223B (zh) * | 2020-04-17 | 2023-06-13 | 完美世界(北京)软件科技发展有限公司 | 拖尾特效的生成方法及装置、存储介质、计算机设备 |
CN111870095A (zh) * | 2020-07-02 | 2020-11-03 | 扬州哈工科创机器人研究院有限公司 | 一种提线鲸鱼演示控制方法及装置 |
-
2021
- 2021-03-16 CN CN202110284798.7A patent/CN112933597B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112933597A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112933597B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
US11270497B2 (en) | Object loading method and apparatus, storage medium, and electronic device | |
CN112037311B (zh) | 一种动画生成的方法、动画播放的方法以及相关装置 | |
EP2051533B1 (en) | 3D image rendering apparatus and method | |
US11654633B2 (en) | System and method of enhancing a 3D printed model | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
CN105635712A (zh) | 基于增强现实的视频实时录制方法及录制设备 | |
CN105959814B (zh) | 基于场景识别的视频弹幕显示方法及其显示装置 | |
CN111462313A (zh) | 绒毛效果的实现方法、装置和终端 | |
EP3649621B1 (en) | 3d modelling for 3d printing of objects having zero-thickness parts | |
JPH10255081A (ja) | 画像処理方法及び画像処理装置 | |
JP2009116856A (ja) | 画像処理装置、画像処理方法 | |
CN109395387A (zh) | 三维模型的显示方法、装置、存储介质及电子装置 | |
US20200051030A1 (en) | Platform and method for collaborative generation of content | |
Trapp et al. | Colonia 3D communication of virtual 3D reconstructions in public spaces | |
CN111950057A (zh) | 一种建筑信息模型bim的加载方法及装置 | |
CN113313796B (zh) | 场景生成方法、装置、计算机设备和存储介质 | |
US11625900B2 (en) | Broker for instancing | |
CN114627149A (zh) | 时空轨迹模拟方法、装置、电子设备及计算机存储介质 | |
CN114913277A (zh) | 一种物体立体交互展示方法、装置、设备及介质 | |
CN114219888A (zh) | 三维角色动态剪影效果生成方法及装置、存储介质 | |
CN113034350A (zh) | 一种植被模型的处理方法和装置 | |
CN111476873A (zh) | 一种基于增强现实的手机虚拟涂鸦方法 | |
CN115019019B (zh) | 一种实现3d特效编辑器的方法 | |
CN116302296B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40045894 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |