CN108447111B - 法线贴图的处理方法、装置、存储介质、处理器及终端 - Google Patents

法线贴图的处理方法、装置、存储介质、处理器及终端 Download PDF

Info

Publication number
CN108447111B
CN108447111B CN201810180231.3A CN201810180231A CN108447111B CN 108447111 B CN108447111 B CN 108447111B CN 201810180231 A CN201810180231 A CN 201810180231A CN 108447111 B CN108447111 B CN 108447111B
Authority
CN
China
Prior art keywords
normal map
normal
synthesized
maps
result
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
Application number
CN201810180231.3A
Other languages
English (en)
Other versions
CN108447111A (zh
Inventor
申宗武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201810180231.3A priority Critical patent/CN108447111B/zh
Publication of CN108447111A publication Critical patent/CN108447111A/zh
Application granted granted Critical
Publication of CN108447111B publication Critical patent/CN108447111B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Abstract

本发明公开了一种法线贴图的处理方法、装置、存储介质、处理器及终端。该方法包括:根据范例基础模型获取初始法线贴图和多个变化法线贴图,其中,多个变化法线贴图中每个变化法线贴图中包含由范例基础模型演变的形态变化数据;按照预先为多个变化法线贴图中每个变化法线贴图设置的第一权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图;在初始法线贴图与合成法线贴图之间进行插值处理,并将插值结果渲染显示。本发明解决了相关技术中所提供的游戏角色皮肤表现方式计算量较大、逻辑复杂度较高的技术问题。

Description

法线贴图的处理方法、装置、存储介质、处理器及终端
技术领域
本发明涉及计算机领域,具体而言,涉及一种法线贴图的处理方法、装置、存储介质、处理器及终端。
背景技术
当前的实时三维画面领域随着硬件的改善已经获得更多的灵活运用。特别是游戏产业的画面计算处理能力日渐进步,需要达到与真实画面愈发接近的时代已经到来。那么,便需要更加容易、更加迅速地处理游戏中很多需要表现的元素的方法或装置。例如:角色皮肤渲染,其不仅可以用于模拟,还可以用于游戏,动画,培训。
在角色皮肤渲染上,为了达到迅速并具有写实感的表现,相关技术已经有过许多种尝试,其可以包括但不限于以下方式:在解剖学观点上以肌肉模型为基础表现皱纹效果,以范例模型为基础的面部动画,利用表面内侧(Subsurface)的皮肤表现以及参数(Parameter)为基础的面部动画来实现。
在上述多种方式中,最为简单的方式便是在制作出皮肤表现上所需要的足够的polygon(由三个顶点构成的三角形的集合)之后,再对网格的顶点进行细致调整。
然而,这种方式为了获取更好的细节表现,便需要使用大量的polygon或者在实时游戏渲染上耗费更多的时间,并且在模型制作上也存在一定难度。
由此可见,相关技术中所提供的技术方案虽然在表现面部表情上确实发挥了卓越的效果,但是在实时表现上,将要处理数量庞大的数据,使用非常复杂的逻辑,所以难以适用于游戏一类对实时渲染要求较高的项目上。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种法线贴图的处理方法、装置、存储介质、处理器及终端,以至少解决相关技术中所提供的游戏角色皮肤表现方式计算量较大、逻辑复杂度较高的技术问题。
根据本发明其中一实施例,提供了一种法线贴图的处理方法,包括:
根据范例基础模型获取初始法线贴图和多个变化法线贴图,其中,多个变化法线贴图中每个变化法线贴图中包含由范例基础模型演变的形态变化数据;按照预先为多个变化法线贴图中每个变化法线贴图设置的第一权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图;在初始法线贴图与合成法线贴图之间进行插值处理,并将插值结果渲染显示。
可选地,根据范例基础模型获取初始法线贴图和多个变化法线贴图包括:对范例基础模型进行烘焙处理,得到初始法线贴图;对范例基础模型的表面不同部分变化分别进行建模处理,得到多个范例变化模型;对多个范例变化模型进行烘焙处理,得到多个变化法线贴图。
可选地,按照预先为多个变化法线贴图中每个变化法线贴图设置的权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图包括:在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的法线值、第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第一结果,并且在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第二结果;对每个变化法线贴图对应的第一结果进行求和运算,得到第三结果,以及对每个变化法线贴图对应的第二结果进行求和运算,得到第四结果;对第三结果与第四结果进行除法运算,得到合成法线贴图在当前时刻,相同像素位置上的法线值,以获取合成法线贴图。
可选地,在初始法线贴图与合成法线贴图之间进行插值处理,并将插值结果渲染显示包括:在着色器中将初始法线贴图与合成法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的第四权重值对初始法线贴图与合成法线贴图进行插值计算,得到插值结果;将插值结果渲染显示。
可选地,在对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图之后,还包括:在初始法线贴图和多个变化法线贴图的总体数量少于预设数量时,获取一个或多个追加法线贴图;将合成法线贴图以及与合成法线贴图对应的第五权重值作为输入,与一个或多个追加法线贴图进行合成处理,得到更新后法线贴图。
可选地,在对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图之后,还包括:在着色器中将初始法线贴图与更新后法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的第四权重值对初始法线贴图与更新后法线贴图进行插值计算,得到插值结果;将插值结果渲染显示。
根据本发明其中一实施例,还提供了一种法线贴图的处理装置,包括:
第一获取模块,用于根据范例基础模型获取初始法线贴图和多个变化法线贴图,其中,多个变化法线贴图中每个变化法线贴图中包含由范例基础模型演变的形态变化数据;第一合成模块,用于按照预先为多个变化法线贴图中每个变化法线贴图设置的第一权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图;第一处理模块,用于在初始法线贴图与合成法线贴图之间进行插值处理,并将插值结果渲染显示。
可选地,第一获取模块包括:第一烘焙单元,用于对范例基础模型进行烘焙处理,得到初始法线贴图;建模单元,用于对范例基础模型的表面不同部分变化分别进行建模处理,得到多个范例变化模型;第二烘焙单元,用于对多个范例变化模型进行烘焙处理,得到多个变化法线贴图。
可选地,第一合成模块包括:第一计算单元,用于在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的法线值、第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第一结果,并且在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第二结果;第二计算单元,用于对每个变化法线贴图对应的第一结果进行求和运算,得到第三结果,以及对每个变化法线贴图对应的第二结果进行求和运算,得到第四结果;第三计算单元,用于对第三结果与第四结果进行除法运算,得到合成法线贴图在当前时刻,相同像素位置上的法线值,以获取合成法线贴图。
可选地,第一处理模块包括:插值单元,用于在着色器中将初始法线贴图与合成法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的第四权重值对初始法线贴图与合成法线贴图进行插值计算,得到插值结果;渲染单元,用于将插值结果渲染显示。
可选地,上述装置还包括:第二获取模块,用于在初始法线贴图和多个变化法线贴图的总体数量少于预设数量时,获取一个或多个追加法线贴图;第二合成模块,用于将合成法线贴图以及与合成法线贴图对应的第五权重值作为输入,与一个或多个追加法线贴图进行合成处理,得到更新后法线贴图。
可选地,上述装置还包括:第二处理模块,用于在着色器中将初始法线贴图与更新后法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的第四权重值对初始法线贴图与更新后法线贴图进行插值计算,得到插值结果,以及将插值结果渲染显示。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述法线贴图的处理方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述法线贴图的处理方法。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述法线贴图的处理方法。
在本发明至少部分实施例中,采用根据范例基础模型获取初始法线贴图和多个变化法线贴图,该多个变化法线贴图中每个变化法线贴图中包含由范例基础模型演变的形态变化数据的方式,通过按照预先为多个变化法线贴图中每个变化法线贴图设置的第一权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图,以及在初始法线贴图与合成法线贴图之间进行插值处理并将插值结果渲染显示,达到了提高游戏元素表现的真实感、降低操作复杂度的目的,从而实现了更加写实、更加快速地实时渲染游戏元素的技术效果,进而解决了相关技术中所提供的游戏角色皮肤表现方式计算量较大、逻辑复杂度较高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的法线贴图的处理系统的结构示意图;
图2是根据本发明其中一实施例的法线贴图的处理方法的流程图;
图3是根据本发明其中一实施例的法线贴图的处理装置的流程图;
图4是根据本发明其中一优选实施例的法线贴图的处理装置的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
由于相关技术中所提供的技术方案虽然在表现面部表情上确实发挥了卓越的效果,但是在实时表现上,考虑到需要处理数量庞大的数据并使用十分复杂的逻辑,因此,难以适用于游戏这类对实时渲染要求较高的项目上。
正因为如此,在使用少面数的实时游戏数据中,为了达到更加写实、更加快速运算的实时渲染,需要使用法线贴图(Normal Map)。法线贴图是指将角色模型的法线(Normal)向量利用RGB颜色表现为贴图(Texture),勾勒出光照(Light)的方向性,通过光的方向表现凹凸和体感阴影。当计算光和阴影的方向以及环境贴图等的时候,便可以使用法线贴图。通过使用法线贴图,可以提升复杂且精致的材质效果,或者在表现类似凹凸、皮肤皱纹一样有精致细节的凹凸等部分即便没有高面数资源,也可以利用贴图为实现简单、快速的渲染提供很大的帮助。
根据本发明其中一实施例,提供了一种法线贴图的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该实施例所提供的方法可以在法线贴图的处理系统中执行。图1是根据本发明其中一实施例的法线贴图的处理系统的结构示意图,如图1所示,该法线贴图的处理系统包括:图形处理器(Graphics Processing Unit,简称为GPU)1和显示器(Display)2。图形处理器(Graphics Processing Unit,简称为GPU)是接收数据后的一种图像处理装置,用于处理图像的转变(Transform)和光照(Lighting)。GPU包括:法线贴图模块(Normal map Module)12、混合模块(Blend Module)14、动画模块(Animation Module)16以及渲染模块(Rendering Module)18。
法线贴图模块用于对已输入的图像数据进行法线贴图化处理。即,预先对所需的形状以及表情等范例进行建模之后,提取出各个变形的法线贴图,并采用插值的方法对提取到法线贴图进行法线贴图化处理。
在必要的时候,为了实现更加多样的形状变化以及表情变化,可以通过增加法线贴图的个数来扩展混合模块,进而增加表现的个数。
混合模块被包含在Shader计算中,在当前计算合成对应的权重值的法线贴图。在依据时间变化的形状或表情上赋予并合成对应的权重值,得到最终的法线贴图。即,在法线贴图进行插值的过程中根据各自的形状或表情按照不同的部位赋予权重值,然后再根据不同的权重值执行插值的作业。
在这样的法线贴图合成中,使用GPU的Shader处理贴图的像素值,可以使细节性的形状或皱纹的合成效果获得更加写实的表现。
如果GPU的最大同时贴图个数少于当前将要合成的形状或表现个数,则可以分为多次后通过计算进行修改。在这种情况下,在先前阶段中已经计算完成的合成法线贴图与权重值之和输入到当前阶段,再与追加的形状或表情进行合成与修正。
渲染模块利用具有权重值的法线贴图进行渲染,来表现变形体或角色的皱纹。与此相同,实时表现形状或皱纹的动画效果通过显示器进行输出。
在上述系统中,可以通过法线贴图实现材质表面的形状变形或服饰、布料的褶皱,还有依据角色面部的不同表情产生皮肤皱纹。通过将材质形状变形前的法线贴图与材质形状变形前的法线贴图进行差异计算,生成普遍化的材质数据以及权重值数据;然后,再利用多样的变形数据依据动画的时间利用各个变形权重值实现最终材质的形状变形的法线贴图,在进行计算后在画面上渲染输出。对于表现角色表情的皱纹而言,将有表情时的法线贴图与无表情时的法线贴图进行差异计算,生成普遍化的材质或皮肤皱纹数据以及权重值数据;然后,利用在不同表情下的普遍化的皱纹数据来生成需要实现的角色皮肤上的皱纹数据,以及利用在当前动画时间变化中的各种表情权重值,计算显示最终皮肤皱纹的法线贴图并在画面上渲染输出。
在上述运行环境下,图2是根据本发明其中一实施例的法线贴图的处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S20,根据范例基础模型获取初始法线贴图和多个变化法线贴图,其中,多个变化法线贴图中每个变化法线贴图中包含由范例基础模型演变的形态变化数据;
步骤S22,按照预先为多个变化法线贴图中每个变化法线贴图设置的第一权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图;
步骤S24,在初始法线贴图与合成法线贴图之间进行插值处理,并将插值结果渲染显示。
通过上述步骤,可以采用根据范例基础模型获取初始法线贴图和多个变化法线贴图,该多个变化法线贴图中每个变化法线贴图中包含由范例基础模型演变的形态变化数据的方式,通过按照预先为多个变化法线贴图中每个变化法线贴图设置的第一权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图,以及在初始法线贴图与合成法线贴图之间进行插值处理并将插值结果渲染显示,达到了提高游戏元素表现的真实感、降低操作复杂度的目的,从而实现了更加写实、更加快速地实时渲染游戏元素的技术效果,进而解决了相关技术中所提供的游戏角色皮肤表现方式计算量较大、逻辑复杂度较高的技术问题。
利用法线贴图在游戏中所有可变形的元素上实现变身和实现类似破碎一样的状态变形,或者实现类似服饰布料上的褶皱的表现,以及实现依据角色不同的动画表情来制作皮肤皱纹的一种实时表现方法。该方法可使用在实时的三维图像角色渲染领域、游戏、模拟、动画、培训中出现的角色或场景等多种元素上,是无论角色的皮肤皱纹或布料褶皱表现上,还是物体上的裂痕或破碎,或表现变形等效果上都可以实现自然表现的一种方法。这个方法可以应用在游戏的所有可变形要素,其可以包括但不限于:布料、服饰、岩石、铁、熔岩、所有皮肤。
可选地,在步骤S20中,根据范例基础模型获取初始法线贴图和多个变化法线贴图可以包括以下执行步骤:
步骤S201,对范例基础模型进行烘焙处理,得到初始法线贴图;
步骤S202,对范例基础模型的表面不同部分变化分别进行建模处理,得到多个范例变化模型;
步骤S203,对多个范例变化模型进行烘焙处理,得到多个变化法线贴图。
在当前为了达到合成目的,提取变形体在基本状态下的形状或者角色的表情,然后再将权重值赋予并合并至这些表现状态变形的形状或者表情的皱纹的法线贴图的混合模式上,即,通过计算权重值并应用后得到最终的法线贴图,然后利用最终的法线贴图渲染表现形状变化或皮肤皱纹。
为此,在本发明其中一优选实施例中,以表现游戏角色表情的面部皮肤为例进行说明,然而其并不构成对本发明的不当限制,上述方法还可以应用在表现角色所有部位的表面皱纹和各种各样的材质的变形体的所有形状变化。
在皮肤皱纹合成上所需的法线贴图数据是使用范例基础模型得到的,在法线贴图模块上通过对范例基础模型使用插值方式制作待使用的法线贴图。为此,首先需要对基本状态的脸部进行建模工作,其为最基本的表情单位,并且烘培基本状态的脸部(无表情)模型,生成无表情法线贴图(或者无皱纹状态,抑或是发生状态变化之前的法线贴图)。在通常情况下,无表情法线贴图是默认被渲染的状态,如果缺乏无表情法线贴图,则表现的便是缺乏体感的物体。然后,利用基本状态的模型对发生变化的部分进行建模,进而通过烘焙处理得到上述多个变化法线贴图。例如:利用基本状态(又称为默认状态)的脸部无表情模型对发生变化的部分进行建模,得到多种表情状态(例如:笑的表情、生气的表情、哭的表情、难过的表情)模型,并且烘焙多种表情状态模型,得到上述多个变化法线贴图。
可选地,在步骤S22中,按照预先为多个变化法线贴图中每个变化法线贴图设置的权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图可以包括以下执行步骤:
步骤S221,在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的法线值、第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第一结果,并且在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第二结果;
步骤S222,对每个变化法线贴图对应的第一结果进行求和运算,得到第三结果,以及对每个变化法线贴图对应的第二结果进行求和运算,得到第四结果;
步骤S223,对第三结果与第四结果进行除法运算,得到合成法线贴图在当前时刻,相同像素位置上的法线值,以获取合成法线贴图。
在优选实施例中,通过混合上述生成的多个变化法线贴图能够实现自然的变化,进而制作出能够以基本表情为基础在其他多种表情上实现混合的结构。如果扩展为更为复杂的结构,则一些细腻的皱纹、脸部的沧桑感觉或苍老的感觉等皮肤效果还可以被一同表现出来。
各个表情范例模型的皱纹数据可以通过利用三维扫描装备或类似于Zbrush的Sculpting Tool制作出皱纹,然后再通过Bake过程提取出法线贴图的建模方式来得到。或者,游戏设计人员直接利用类似皱纹照片一样的二维图片进行制作,然后再利用可以自动转化为法线贴图的工具来得到。各个表情的范例模型的皱纹数据是指按照各个表情在对包含有皮肤皱纹的法线贴图进行插值的过程中,在各个表情上按照皮肤部位计算权重值。按照部位加入皱纹、表情变化、出现伤口等这些变化都可以按照部位来制作。例如:首先制作出一条伤口,然后可以将该伤口应用于脸部的额头、脸颊、鼻子嘴唇等部位;或者可以按照部位进行遮罩(masking)。这些可以是在合成过程中依据权重值的取值实现或深或浅的皱纹,也可以在正常的皮肤上产生深深的伤口。
在混合模块上应用的权重值的取值范围在0~1之间。如果权重值的取值越接近于0,那么该部位对表情的影响便越小;如果权重值的取值越接近于1,那么该部位对表情的影响便越大。皮肤皱纹的法线贴图的合成处理可以依据如下公式进行:
Normal(time,x,y)=Sum(Normal(expr,x,y)*Weight(expr,x,y)*TimeWeight(time,expr))/Sum(Weight(expr,x,y)*TimeWeight(time,expr))。
Normal(time,x,y)是在进行动画表现的情况下,随着时间的推移针对最终结果的皮肤皱纹法线贴图的(x,y)坐标上的法线值。time是指时间推移,即所有产生变化的状态都是需要时间的。例如:从无表情变化到生气的表情哪怕是需要时间的。在游戏世界中,time是指动画动作的时间帧(frame)的特定时间点。当一个笑脸变为一个生气的脸所需时间为1秒时,time0=weight0~time1=weight1,由此,经过1秒时间笑脸将会变为生气的脸。
expr是将上述多个变化法线贴图从1到N进行排列后得到的一个索引。因此,expr是指多样的模型或多样的法线贴图的个数。
Normal(expr,x,y)是指与expr对应的表现表情皮肤皱纹的法线贴图(x,y)坐标上的法线值。
Weight(expr,x,y)是指当前将要合成的表情(x,y)坐标上的权重值。
TimeWeight(time,expr)是指在进行动画表现的情况下,随着时间的推移对应皱纹表情表现的合成权重值。这样的法线贴图合成如果使用GPU的Shader会更有效。
例如,假设无表情状态的Weight值为0,笑的表情状态的Weight值为1,那么取值为0即为无表情状态,取值为0.5即为中间笑,取值为1即为笑的表情状态,因此,从取值为0开始直至取值为1的过程中,数值是始终发生变化的。但是,从取值为0变化为取值为1是需要时间的,因此需要设置TimeWeight。再假设从无表情状态变化为笑的表情状态需要10秒,那么0秒时刻是无表情状态(Weight值为0),而在10秒时刻是笑的表情状态,由此可见,依据时间的推移,权重值一直在发生变化。综合上述分析,在已经有动画表现的载体上,随着时间的推移发生脸部表情的变化,便需要设置上述两个权重值。
另外,鉴于贴图变化表现为像素变化,为此,作为Shader的输入,输入各个表情的皮肤皱纹法线贴图和各个不同表情的权重值,输出结果便是利用上述公式显示出应用了以各个像素(即上述(x,y)坐标)合成的结果权重值的法线贴图。
可选地,在步骤S24中,在初始法线贴图与合成法线贴图之间进行插值处理,并将插值结果渲染显示可以包括以下执行步骤:
步骤S241,在着色器中将初始法线贴图与合成法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的第四权重值对初始法线贴图与合成法线贴图进行插值计算,得到插值结果;
步骤S242,将插值结果渲染显示。
在Shader中,可以使用线性插值(Linear Interpolation,简称为lerp)函数计算合成后的结果物。具体计算公式可以表示如下:
Float3=lerp(Local0.rgb,Local1.rgb,MaterialFloat(0.0));
其中,Float3表示应用了权重值的最终法线值,Local0是普通的法线贴图,Local1是作为形态变形过的法线贴图,MaterialFloat(0.0)可以在0-1之间变化,通过调节MaterialFloat(0.0)的取值可以简单地应用权重值。
当MaterialFloat取值为0时,表示Local0(例如:无表情法线贴图),当MaterialFloat取值为0时,表示Local1(例如:笑表情的法线贴图)。利用线性插值函数在shader中确认依据权重值合成的结果物。在游戏引擎中依据shader计算的结果物会渲染显示在画面上。随着MaterialFloat的取值变化,在画面上会发生表情的变化。
可选地,在步骤S22,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图之后,还可以包括以下执行步骤:
步骤S25,在初始法线贴图和多个变化法线贴图的总体数量少于预设数量(例如:待使用状态表现数量)时,获取一个或多个追加法线贴图;
步骤S26,将合成法线贴图以及与合成法线贴图对应的第五权重值作为输入,与一个或多个追加法线贴图进行合成处理,得到更新后法线贴图。
如果GPU的最大同时贴图个数少于当前待合成的表情个数,则可以通过分为多次计算并按照动画帧来表现。在此种情况下,在先前阶段中计算的合成法线贴图与权重值的和将会输入到当前阶段,再与追加的表情进行合成处理,进而在动画表现时获得更为柔和的视频效果。
具体地,考虑到已制作出的表情法线贴图的数量有可能会少于将要表现的表情个数。例如,当存在无表情、生气表情、笑表情的法线贴图时,可以制作出眼睛虽然处于生气状态,但是嘴巴却处于微笑状态的表情。如果追加shader的masking部分,则采用对已合成法线贴图与追加部分法线贴图进行合成处理的方式来实现比已制作的表情法线贴图更多的表情法线贴图,即上述更新后法线贴图。
可选地,在步骤S22,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图之后,还可以包括以下执行步骤:
步骤S27,在着色器中将初始法线贴图与更新后法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的第四权重值对初始法线贴图与更新后法线贴图进行插值计算,得到插值结果;
步骤S28,将插值结果渲染显示。
在追加法线贴图的基础上,还需要将lerp增加为多个,进而通过对初始法线贴图与更新后法线贴图进行插值计算,可以得到更多的表情来使用。上述应用权重值计算得到的法线贴图可以在渲染模块进行渲染。渲染后的数据将通过显示器加以呈现。
通过上述操作步骤,不论是在游戏角色的面部还是在游戏角色的其他部位都可以使用同样的方式,跟随各个动作将法线贴图一般化,然后通过合成处理来表现皮肤皱纹。另外,虽然上述优选实施例以表现游戏角色的表情上面部皮肤为标准范例进行说明,但是在各式材质的形状变化以及状态变化上使用上述操作方式同样可以达到多样的表现。
另外,通过上述操作步骤,利用普遍化的材质形状或普遍化的皮肤皱纹法线贴图数据可以简单地应用在所有的变形体或角色上以实现皮肤皱纹效果。上述实施过程在用于表现类似石头或铁一样的材质腐蚀过程或瑕疵或破碎的过程上也可以达到很好的效果。上述实施过程在表现伴随类似布料或服饰一样的材质在抖动过程中,希望表现自然的褶皱、撕裂、变旧、粘在类似泥土的时候也可以获得很好的效果。上述实施过程根据使用不同的模型,褶皱或皱纹的表现会有所差异。因此,如果在年轻人的脸部应用有皱纹的老年人的脸部的法线贴图,则跟随时间变化,也会显示出看似老年人皱纹一样的皱纹效果。上述实施过程不仅在表现依据面部表情的皱纹上可以达到好的效果,在表现脸部伤痕或具有特定特征的图案等场景下也可以达到很好的效果。
进一步地,鉴于上述实施过程能够在GPU的Shader中进行处理,由此使得实时渲染具备可能性,进而在实现三维游戏或模拟、培训等需要使用写实的材质的形状和角色皮肤效果,相比于现有技术可以获得更加快速,更加具备写实感的变形或皮肤皱纹效果。
根据本发明其中一实施例,提供了一种法线贴图的处理装置的实施例,图3是根据本发明其中一实施例的法线贴图的处理装置的流程图,如图3所示,该装置包括:第一获取模块10,用于根据范例基础模型获取初始法线贴图和多个变化法线贴图,其中,多个变化法线贴图中每个变化法线贴图中包含由范例基础模型演变的形态变化数据;第一合成模块20,用于按照预先为多个变化法线贴图中每个变化法线贴图设置的第一权重值,对初始法线贴图和多个变化法线贴图进行合成处理,得到合成法线贴图;第一处理模块30,用于在初始法线贴图与合成法线贴图之间进行插值处理,并将插值结果渲染显示。
可选地,第一获取模块10包括:第一烘焙单元(图中未示出),用于对范例基础模型进行烘焙处理,得到初始法线贴图;建模单元(图中未示出),用于对范例基础模型的表面不同部分变化分别进行建模处理,得到多个范例变化模型;第二烘焙单元(图中未示出),用于对多个范例变化模型进行烘焙处理,得到多个变化法线贴图。
可选地,第一合成模块20包括:第一计算单元(图中未示出),用于在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的法线值、第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第一结果,并且在当前时刻,对多个变化法线贴图中每个变化法线贴图在相同像素位置上的第二权重值以及与当前时刻对应的第三权重值进行乘法运算,得到第二结果;第二计算单元(图中未示出),用于对每个变化法线贴图对应的第一结果进行求和运算,得到第三结果,以及对每个变化法线贴图对应的第二结果进行求和运算,得到第四结果;第三计算单元(图中未示出),用于对第三结果与第四结果进行除法运算,得到合成法线贴图在当前时刻,相同像素位置上的法线值,以获取合成法线贴图。
可选地,第一处理模块30包括:插值单元(图中未示出),用于在着色器中将初始法线贴图与合成法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的权重值对初始法线贴图与合成法线贴图进行插值计算,得到插值结果;渲染单元(图中未示出),用于将插值结果渲染显示。
可选地,图4是根据本发明其中一优选实施例的法线贴图的处理装置的流程图,如图4所示,上述装置还包括:第二获取模块40,用于在初始法线贴图和多个变化法线贴图的总体数量少于预设数量时,获取一个或多个追加法线贴图;第二合成模块50,用于将合成法线贴图以及与合成法线贴图对应的第五权重值作为输入,与一个或多个追加法线贴图进行合成处理,得到更新后法线贴图。
可选地,如图4所示,上述装置还包括:第二处理模块60,用于在着色器中将初始法线贴图与更新后法线贴图作为线性插值函数的输入参数,并通过调节线性插值函数中配置的第四权重值对初始法线贴图与更新后法线贴图进行插值计算,得到插值结果,以及将插值结果渲染显示。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述法线贴图的处理方法。上述存储介质可以包括但不限于:U盘、只读存储器(ROM)、随机存取存储器(RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述法线贴图的处理方法。上述处理器可以包括但不限于:微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述法线贴图的处理方法。在一些实施例中,上述终端可以是智能手机(例如:Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD等终端设备。上述显示装置可以是触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与终端的用户界面进行交互。此外,上述终端还可以包括:输入/输出接口(I/O接口)、通用串行总线(USB)端口、网络接口、电源和/或相机。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种法线贴图的处理方法,其特征在于,包括:
根据范例基础模型获取初始法线贴图和多个变化法线贴图,其中,所述多个变化法线贴图中每个变化法线贴图中包含由所述范例基础模型演变的形态变化数据;
按照预先为所述多个变化法线贴图中每个变化法线贴图设置的第一权重值,对所述初始法线贴图和所述多个变化法线贴图进行合成处理,得到合成法线贴图;
在所述初始法线贴图与所述合成法线贴图之间进行插值处理,并将插值结果渲染显示;
其中,在对所述初始法线贴图和所述多个变化法线贴图进行合成处理,得到所述合成法线贴图之后,还包括:在所述初始法线贴图和所述多个变化法线贴图的总体数量少于预设数量时,获取一个或多个追加法线贴图;将所述合成法线贴图以及与所述合成法线贴图对应的第五权重值作为输入,与所述一个或多个追加法线贴图进行合成处理,得到更新后法线贴图。
2.根据权利要求1所述的方法,其特征在于,根据所述范例基础模型获取所述初始法线贴图和所述多个变化法线贴图包括:
对所述范例基础模型进行烘焙处理,得到所述初始法线贴图;
对所述范例基础模型的表面不同部分变化分别进行建模处理,得到多个范例变化模型;
对所述多个范例变化模型进行烘焙处理,得到所述多个变化法线贴图。
3.根据权利要求1所述的方法,其特征在于,按照所述预先为所述多个变化法线贴图中每个变化法线贴图设置的权重值,对所述初始法线贴图和所述多个变化法线贴图进行合成处理,得到所述合成法线贴图包括:
在当前时刻,对所述多个变化法线贴图中每个变化法线贴图在相同像素位置上的法线值、第二权重值以及与所述当前时刻对应的第三权重值进行乘法运算,得到第一结果,并且在所述当前时刻,对所述多个变化法线贴图中每个变化法线贴图在相同像素位置上的第二权重值以及与所述当前时刻对应的第三权重值进行乘法运算,得到第二结果;
对每个变化法线贴图对应的第一结果进行求和运算,得到第三结果,以及对每个变化法线贴图对应的第二结果进行求和运算,得到第四结果;
对所述第三结果与所述第四结果进行除法运算,得到所述合成法线贴图在所述当前时刻,所述相同像素位置上的法线值,以获取所述合成法线贴图。
4.根据权利要求1所述的方法,其特征在于,在所述初始法线贴图与所述合成法线贴图之间进行插值处理,并将所述插值结果渲染显示包括:
在着色器中将所述初始法线贴图与所述合成法线贴图作为线性插值函数的输入参数,并通过调节所述线性插值函数中配置的第四权重值对所述初始法线贴图与所述合成法线贴图进行插值计算,得到所述插值结果;
将所述插值结果渲染显示。
5.根据权利要求1所述的方法,其特征在于,在对所述初始法线贴图和所述多个变化法线贴图进行合成处理,得到所述合成法线贴图之后,还包括:
在着色器中将所述初始法线贴图与所述更新后法线贴图作为线性插值函数的输入参数,并通过调节所述线性插值函数中配置的第四权重值对所述初始法线贴图与所述更新后法线贴图进行插值计算,得到所述插值结果;
将所述插值结果渲染显示。
6.一种法线贴图的处理装置,其特征在于,包括:
第一获取模块,用于根据范例基础模型获取初始法线贴图和多个变化法线贴图,其中,所述多个变化法线贴图中每个变化法线贴图中包含由所述范例基础模型演变的形态变化数据;
第一合成模块,用于按照预先为所述多个变化法线贴图中每个变化法线贴图设置的第一权重值,对所述初始法线贴图和所述多个变化法线贴图进行合成处理,得到合成法线贴图;
第一处理模块,用于在所述初始法线贴图与所述合成法线贴图之间进行插值处理,并将插值结果渲染显示;
其中,所述装置还包括:第二获取模块,用于在所述初始法线贴图和所述多个变化法线贴图的总体数量少于预设数量时,获取一个或多个追加法线贴图;第二合成模块,用于将所述合成法线贴图以及与所述合成法线贴图对应的第五权重值作为输入,与所述一个或多个追加法线贴图进行合成处理,得到更新后法线贴图。
7.根据权利要求6所述的装置,其特征在于,所述第一获取模块包括:
第一烘焙单元,用于对所述范例基础模型进行烘焙处理,得到所述初始法线贴图;
建模单元,用于对所述范例基础模型的表面不同部分变化分别进行建模处理,得到多个范例变化模型;
第二烘焙单元,用于对所述多个范例变化模型进行烘焙处理,得到所述多个变化法线贴图。
8.根据权利要求6所述的装置,其特征在于,所述第一合成模块包括:
第一计算单元,用于在当前时刻,对所述多个变化法线贴图中每个变化法线贴图在相同像素位置上的法线值、第二权重值以及与所述当前时刻对应的第三权重值进行乘法运算,得到第一结果,并且在所述当前时刻,对所述多个变化法线贴图中每个变化法线贴图在相同像素位置上的第二权重值以及与所述当前时刻对应的第三权重值进行乘法运算,得到第二结果;
第二计算单元,用于对每个变化法线贴图对应的第一结果进行求和运算,得到第三结果,以及对每个变化法线贴图对应的第二结果进行求和运算,得到第四结果;
第三计算单元,用于对所述第三结果与所述第四结果进行除法运算,得到所述合成法线贴图在所述当前时刻,所述相同像素位置上的法线值,以获取所述合成法线贴图。
9.根据权利要求6所述的装置,其特征在于,所述第一处理模块包括:
插值单元,用于在着色器中将所述初始法线贴图与所述合成法线贴图作为线性插值函数的输入参数,并通过调节所述线性插值函数中配置的第四权重值对所述初始法线贴图与所述合成法线贴图进行插值计算,得到所述插值结果;
渲染单元,用于将所述插值结果渲染显示。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二处理模块,用于在着色器中将所述初始法线贴图与所述更新后法线贴图作为线性插值函数的输入参数,并通过调节所述线性插值函数中配置的第四权重值对所述初始法线贴图与所述更新后法线贴图进行插值计算,得到所述插值结果,以及将所述插值结果渲染显示。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的法线贴图的处理方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的法线贴图的处理方法。
13.一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至5中任意一项所述的法线贴图的处理方法。
CN201810180231.3A 2018-03-05 2018-03-05 法线贴图的处理方法、装置、存储介质、处理器及终端 Active CN108447111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810180231.3A CN108447111B (zh) 2018-03-05 2018-03-05 法线贴图的处理方法、装置、存储介质、处理器及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810180231.3A CN108447111B (zh) 2018-03-05 2018-03-05 法线贴图的处理方法、装置、存储介质、处理器及终端

Publications (2)

Publication Number Publication Date
CN108447111A CN108447111A (zh) 2018-08-24
CN108447111B true CN108447111B (zh) 2022-05-03

Family

ID=63193573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810180231.3A Active CN108447111B (zh) 2018-03-05 2018-03-05 法线贴图的处理方法、装置、存储介质、处理器及终端

Country Status (1)

Country Link
CN (1) CN108447111B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110390707A (zh) * 2018-11-07 2019-10-29 深圳格调网络运营有限公司 3d模型动态贴图生成方法与系统
CN110648384B (zh) * 2019-06-19 2023-01-03 北京巴别时代科技股份有限公司 卡通风格化渲染方法
CN110443872B (zh) * 2019-07-22 2021-04-02 北京科技大学 一种具备动态纹理细节的表情合成方法
CN111862285A (zh) * 2020-07-10 2020-10-30 完美世界(北京)软件科技发展有限公司 人物皮肤的渲染方法及装置、存储介质、电子装置
CN112604294A (zh) * 2020-12-29 2021-04-06 完美世界(北京)软件科技发展有限公司 贴图资源的渲染方法和装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1151663A (ja) * 1997-08-04 1999-02-26 Sony Corp 携帯用ナビゲーション装置
EP1887525A2 (en) * 2006-07-28 2008-02-13 Sony Computer Entertainment America Inc. Computer animation
CN102999935A (zh) * 2011-09-14 2013-03-27 恩嘉壹(上海)网络科技有限公司 一种基于智能手机平台的3d图形骨骼动画绘制算法
CN104463954A (zh) * 2014-11-14 2015-03-25 无锡梵天信息技术股份有限公司 一种三维图像表面细节的模拟方法及系统
CN106548455A (zh) * 2015-09-17 2017-03-29 三星电子株式会社 用于调整图像的亮度的设备和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1151663A (ja) * 1997-08-04 1999-02-26 Sony Corp 携帯用ナビゲーション装置
EP1887525A2 (en) * 2006-07-28 2008-02-13 Sony Computer Entertainment America Inc. Computer animation
CN102999935A (zh) * 2011-09-14 2013-03-27 恩嘉壹(上海)网络科技有限公司 一种基于智能手机平台的3d图形骨骼动画绘制算法
CN104463954A (zh) * 2014-11-14 2015-03-25 无锡梵天信息技术股份有限公司 一种三维图像表面细节的模拟方法及系统
CN106548455A (zh) * 2015-09-17 2017-03-29 三星电子株式会社 用于调整图像的亮度的设备和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
3d surface detail enhancement from a single normal map;Wuyuan Xie等;《2017 IEEE International Conference on Computer Vision (ICCV)》;20171225;第2325-2333页 *
3D骨骼动画的算法分析与WebGL实现;王军等;《自动化与仪器仪表》;20150425(第4期);第199-201,204页 *

Also Published As

Publication number Publication date
CN108447111A (zh) 2018-08-24

Similar Documents

Publication Publication Date Title
CN108447111B (zh) 法线贴图的处理方法、装置、存储介质、处理器及终端
US10540817B2 (en) System and method for creating a full head 3D morphable model
US8115774B2 (en) Application of selective regions of a normal map based on joint position in a three-dimensional model
CN106575445B (zh) 毛皮虚拟化身动画
US10163243B2 (en) Simulation of hair in a distributed computing environment
US8698810B2 (en) Reorienting properties in hair dynamics
CN106548392B (zh) 一种基于webGL技术的虚拟试衣实现方法
KR100900823B1 (ko) 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및장치
JP2019204476A (ja) 画像生成装置、画像生成方法及びプログラム
JP4842242B2 (ja) キャラクタアニメーション時の皮膚のしわのリアルタイム表現方法及び装置
US8847963B1 (en) Systems and methods for generating skin and volume details for animated characters
CN110443872B (zh) 一种具备动态纹理细节的表情合成方法
Theobald et al. Real-time expression cloning using appearance models
US9317967B1 (en) Deformation of surface objects
Johnson Towards enhanced visual clarity of sign language avatars through recreation of fine facial detail
US20080012864A1 (en) Image Processing Apparatus and Method, and Program
JP2006323512A (ja) 画像生成システム、プログラム及び情報記憶媒体
Yang et al. Realistic Real-time Facial Expressions Animation via 3D Morphing Target.
CN114299203A (zh) 虚拟模型的处理方法和装置
Jimenez et al. Practical and realistic facial wrinkles animation
Lee et al. Real‐time fur simulation and rendering
CN117745915B (zh) 一种模型渲染方法、装置、设备及存储介质
CN113436299B (zh) 动画生成方法、装置、存储介质及电子设备
US20230377268A1 (en) Method and apparatus for multiple dimension image creation
Gui et al. Realistic 3D Facial Wrinkles Simulation Based on Tessellation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant