CN111508053A - 模型的渲染方法、装置、电子设备及计算机可读介质 - Google Patents
模型的渲染方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN111508053A CN111508053A CN202010340642.1A CN202010340642A CN111508053A CN 111508053 A CN111508053 A CN 111508053A CN 202010340642 A CN202010340642 A CN 202010340642A CN 111508053 A CN111508053 A CN 111508053A
- Authority
- CN
- China
- Prior art keywords
- model
- layer
- rendering
- texture
- map
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000000694 effects Effects 0.000 claims abstract description 68
- 238000013507 mapping Methods 0.000 claims abstract description 25
- 239000002131 composite material Substances 0.000 claims abstract description 16
- 210000004209 hair Anatomy 0.000 claims description 112
- 210000004761 scalp Anatomy 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 230000015572 biosynthetic process Effects 0.000 claims description 5
- 238000003786 synthesis reaction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 12
- 239000010410 layer Substances 0.000 description 125
- 230000000875 corresponding effect Effects 0.000 description 49
- 238000010586 diagram Methods 0.000 description 25
- 238000003860 storage Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000035515 penetration Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000005452 bending Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- 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)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开涉及一种模型的渲染方法、装置、电子设备及计算机可读介质,属于显示图像处理领域。该方法包括:获取包含多层模型的目标对象;通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图;将所述合成纹理贴图分配给所述多层模型中的每层模型,并获取所述每层模型的透明度需求,根据所述透明度需求设置所述每层模型对应的合成纹理贴图的透明值,得到所述每层模型对应的渲染贴图;利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染。本公开通过得到多种不同透明度的渲染贴图,并根据每层模型的透明度需求分别对各层模型进行渲染,可以在不造成系统高消耗的前提下提升模型的显示效果。
Description
技术领域
本公开涉及图像处理技术领域,具体而言,涉及一种模型的渲染方法、模型的渲染装置、电子设备及计算机可读介质。
背景技术
在一些3D游戏中,人物角色头发模型的显示效果通常有好有坏,显示效果好的成本很高昂,而成本低的效果又比较差,特别是对于移动端来说,由于设备性能的限制,无法采用一些高消耗的算法。
因此,对于移动端的3D游戏来说,需要一种在不造成系统高消耗的前提下,提升人物角色头发模型的显示效果的方法。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种模型的渲染方法、模型的渲染装置、电子设备及计算机可读介质,进而在不造成系统高消耗的前提下,提升人物角色头发模型的显示效果。
根据本公开的第一个方面,提供一种模型的渲染方法,包括:
获取包含多层模型的目标对象;
通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图;
将所述合成纹理贴图分配给所述多层模型中的每层模型,并获取所述每层模型的透明度需求,根据所述透明度需求设置所述每层模型对应的合成纹理贴图的透明值,得到所述每层模型对应的渲染贴图;
利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染。
在本公开的一种示例性实施例中,所述方法还包括:
通过对具有第一透明效果的第一基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第一纹理贴图;
通过对具有第二透明效果的第二基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第二纹理贴图;
在本公开的一种示例性实施例中,所述通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图,包括:
从所述多个对应于不同透明度的第一纹理贴图和所述多个对应于不同透明度的第二纹理贴图中分别选择一个第一纹理贴图和一个第二纹理贴图进行合成,得到合成纹理贴图。
在本公开的一种示例性实施例中,所述多层模型包括第一层头发模型、第二层头发模型和第三层头发模型,且所述第一层头发模型离头皮最近,所述第三层头发模型离头皮最远,所述第二层头发模型位于所述第一层头发模型和所述第三层头发模型之间。
在本公开的一种示例性实施例中,所述根据所述透明度需求设置所述每层模型对应的合成纹理贴图的透明值,包括:
根据所述每层模型与头皮之间的距离设置所述每层模型对应的合成纹理贴图的透明值,其中,所述每层模型对应的所述合成纹理贴图的透明值与所述每层模型与头皮之间的距离成正比。
在本公开的一种示例性实施例中,所述获取包含多层模型的目标对象,包括:
获取多层模型;
将所述多层模型中的每层模型打散成多个面片;
按照所述面片所在模型的层级顺序将所述面片依次进行合并,得到所述目标对象。
在本公开的一种示例性实施例中,所述方法还包括:
对所述目标对象中每层模型的顶点按照层级顺序依次进行编号。
在本公开的一种示例性实施例中,所述利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染,包括:
利用所述每层模型对应的渲染贴图,按照所述每层模型的顶点编号依次对所述每层模型进行渲染。
在本公开的一种示例性实施例中,所述具有第一透明效果的第一纹理贴图为通过alphatest方式处理得到的贴图,所述具有第二透明效果的第二纹理贴图为通过alphablend方式处理得到的贴图。
在本公开的一种示例性实施例中,所述第一纹理贴图具有直线发丝纹理;所述第二纹理贴图具有弯曲渐变发丝纹理。
在本公开的一种示例性实施例中,所述利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染,包括:
将所述每层模型对应的渲染贴图的形状由初始形状调整为预设形状;
利用调整为预设形状的所述渲染贴图分别对所述目标对象的每层模型进行渲染。
根据本公开的第二方面,提供一种模型的渲染装置,包括:
目标对象获取模块,用于获取包含多层模型的目标对象;
纹理贴图制作模块,用于通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图;
渲染贴图制作模块,用于将所述合成纹理贴图分配给所述多层模型中的每层模型,并获取所述每层模型的透明度需求,根据所述透明度需求设置所述每层模型对应的合成纹理贴图的透明值,得到所述每层模型对应的渲染贴图;
目标模型渲染模块,用于利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染。
根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的模型的渲染方法。
根据本公开的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的模型的渲染方法。
本公开示例性实施例可以具有以下有益效果:
本公开示例实施方式的模型的渲染方法中,通过得到对应于多种不同透明度的渲染贴图,并根据每层模型的透明度需求分别对目标对象的各层模型进行渲染,一方面,可以在不造成系统高消耗的前提下提升模型的显示效果,对头发模型的外部边缘进行特定的细节处理,解决头发边缘毛躁生硬等问题,使头发的显示效果更加柔顺自然;另一方面,可以根据实际的需求将渲染贴图运用到不同的头发模型中,从而在很大程度上降低贴图制作的数量和成本,从而提升模型制作和渲染的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了真实头发边缘的示意图;
图2示意性示出了根据本公开的一个具体实施方式的使用模型插片无透明以及使用模型体块处理的头发模型示意图;
图3示意性示出了根据本公开的一个具体实施方式的使用单层alphatest处理的头发模型示意图;
图4示意性示出了根据本公开的一个具体实施方式的使用alphatest和blend叠加,在UV制作上使用全展法的头发模型示意图;
图5示意性示出了根据本公开的一个具体实施方式的CG作品和主机游戏中使用渲染技术处理的头发模型示意图;
图6示出了本公开示例实施方式的模型的渲染方法的流程示意图;
图7示意性示出了根据本公开的一个具体实施方式的使用内、中、外三层模型制作的头发模型示意图;
图8示意性示出了根据本公开的一个具体实施方式的alphatest和alphablend的参数调节和显示效果示意图;
图9示意性示出了根据本公开的一个具体实施方式的alphatest和alphablend的合成示意图;
图10示意性示出了根据本公开的一个具体实施方式的模型区域布局的示意图;
图11示出了本公开示例实施方式的获取包含多层模型的目标对象的流程示意图;
图12示意性示出了根据本公开的一个具体实施方式的模型面片合并的示意图;
图13示意性示出了根据本公开的一个具体实施方式的顶点排序效果对比示意图;
图14示出了本公开示例实施方式的对目标对象的每层模型进行渲染的流程示意图;
图15示意性示出了根据本公开的一个具体实施方式的UV展直的示意图;
图16示意性示出了根据本公开的一个具体实施方式的模型渲染最终效果和真实头发的对比示意图;
图17示出了本公开示例实施方式的模型的渲染装置的框图;
图18示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示意性示出了真实头发边缘的示意图,如图1所示,真实头发的边缘很柔软,疏密分布的情况是越靠近边缘(表面)越稀疏蓬松,透光性越强。在现有的3D游戏人物角色头发模型的制作中,很少有方法能达到这样的效果。
本公开中的技术方案主要应用于3D游戏中人物角色头发模型的制作中,首先,对本公开的实施方式的应用场景进行简单介绍。
Shader(着色器)是专门用来渲染图形的一种技术,通过shader可以自定义渲染画面的算法,使画面达到想要的效果。
在RGB(red、green、blue)颜色空间中,颜色有四个通道,分别为R(red),G(green),B(blue)和A(alpha)。这里的alpha指透明度,通过调节alpha可以控制物体的透明度。
Alphatest和alphablend是两种处理透明的方法。Alphatest是指将透明的像素剔除,只保留非透明的像素,不会出现交叉物体的透明渲染问题。Alphablend是指通过alpha通道来混合两个或多个物体的颜色,通常用来渲染半透明的物体,会存在交叉物体的透明渲染问题。
在实际操作中可以混合使用这两种技术,例如,第一个pass(通道)里使用alphatest渲染实体部分,第二pass里对上一个pass里被剔除的部分使用alphablend进行柔和渲染。
在一些相关的实施例中,在对游戏角色的头发进行处理时,可以通过模型体块处理、模型插片无透明处理、alphatest和alphablend叠加处理等方法,处理后的效果如下:
图2示意性示出了使用模型插片无透明以及使用模型体块处理的头发模型示意图,其中,图片201为使用模型插片无透明制作的角色头发模型显示效果示意图,图片202为使用模型体块制作的角色头发模型显示效果示意图,可以看出,这两种方法只能做风格化比较重的,比如卡通风格的图像。
图3示意性示出了使用单层alphatest处理的头发模型示意图,单层alphatest直接进行透明处理,得到的图像会很生硬,有锯齿感,毫无头发本应该有的柔顺感;如只做成alphablend半透,则会有深度穿插问题。
图4示意性示出了使用alphatest和alphablend叠加,在UV(纹理贴图坐标)制作上使用全展法的头发模型示意图,UV分布不重叠,必须在0~1象限内,这种技术基础原理大体类似,但是需要耗费更多的贴图和更大的贴图尺寸。因此,这样的效果很受局限,不同头发都需要单独画贴图,由于精度问题也需要较大尺寸绘制贴图,人力与时间成本也更高。
图5示意性示出了CG作品和主机游戏中使用渲染技术处理的头发模型示意图,其中,图片501为主机游戏中的角色头发模型显示效果示意图,图片502为CG艺术作品中的人物头发模型显示效果示意图。可以看出,一些CG艺术作品、主机游戏或PC端游采用渲染技术效果很好,但是成本非常高,在移动端现有的硬件环境中,几乎不可能运用。
目前,很多手机的3D游戏中,人物角色头发的边缘毛躁,有锯齿感,生硬,且排序错乱,是经常会遇到的问题,模型最终呈现效果好的方法成本很高昂,而成本低的效果又比较差,特别是对于移动端来说,由于设备性能的限制,更是无法像主机、PC端一样采用高消耗的算法。
为了解决上述问题,本示例实施方式提供了一种模型的渲染方法。参考图6所示,上述模型的渲染方法可以包括以下步骤:
步骤S610.获取包含多层模型的目标对象。
本示例实施方式中,多层模型包括第一层头发模型、第二层头发模型和第三层头发模型,且第一层头发模型离头皮最近,第三层头发模型离头皮最远,第二层头发模型位于第一层头发模型和第三层头发模型之间。也就是说,第一层头发模型位于整个头发模型的内层,第二层头发模型位于整个头发模型的中层,第三层头发模型位于整个头发模型的外层。
图7示意性示出了使用内、中、外三层模型制作的头发模型示意图。内层模型701贴近头皮表面,模型以大块面模型为主;中层模型702是大部分头发的主体,使用插片方式从内往外排列,尽量减少内外穿插;外层模型703为头发边缘(表面)部分,也采用插片方式,可以根据需要进行排布,可以存在穿插的情况。短发模型的制作不需要内层,用中外层即可。
步骤S620.通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图。
本示例实施方式中,具有第一透明效果的第一纹理贴图为通过alphatest方式处理得到的贴图,具有第二透明效果的第二纹理贴图为通过alphablend方式处理得到的贴图。第一纹理贴图和第二纹理贴图的制作方法如下:
通过对具有第一透明效果的第一基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第一纹理贴图;通过对具有第二透明效果的第二基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第二纹理贴图。
图8示意性示出了alphatest和alphablend的透明值参数调节和显示效果示意图。
本示例实施方式基于shader的双pass,其中,第一个pass使用alphatest透明模式801,用来控制绝大部分头发的区域,可以给alphatest透明模式提供一个0.5到3范围的alpha强度参数(即透明值参数),该参数是可调的,可以用于控制discard(移除)的实际范围。其中,alphatest透明模式中的0.5到3范围的alpha强度参数的显示效果变化如803所示。
第二个pass透明方式使用alphablend透明模式802,用来控制头发的侧面边缘,还有发梢以及一些表面零散发丝的细节部分,可以给alphablend透明模式提供一个0到2范围的alpha强度参数,用来控制半透范围,以及与alphatest相接部分的连续性。其中,alphablend透明模式中的0到2范围的alpha强度参数的显示效果变化如804所示。
基于上述方法,在步骤S620中通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图,具体可以包括:
从多个对应于不同透明度的第一纹理贴图和多个对应于不同透明度的第二纹理贴图中分别选择一个第一纹理贴图和一个第二纹理贴图进行合成,得到合成纹理贴图。其中,第一纹理贴图具有直线发丝纹理;第二纹理贴图具有弯曲渐变发丝纹理。
图9示意性示出了alphatest和alphablend的合成示意图。
将alpha通道的第一纹理贴图901(alphatest)和第二纹理贴图902(alphablend)分开制作,再合成使用,得到合成纹理贴图903。
其中,第一纹理贴图901(alphatest)的纹理呈直线,无渐变无弯曲,可以解决头发模型显示中的锯齿感,其范围比alphablend小,有粗细疏密分布,包括从最密到最稀疏的所有情况,会直接影响到头发层级的细节体现。第二纹理贴图902(alphablend)是在第一纹理贴图901的基础上扩大范围,来匹配alphatest疏密程度,可以做弯曲渐变的发丝细节表现。最后,将第一纹理贴图901和第二纹理贴图902结合在一起,得到最终的合成纹理贴图903的alpha通道。
本示例实施方式中,只对基础纹理贴图进行描述,纹理RGB设置为128灰色即可,可以使用程序颜色控制头发的颜色和渐变。由于基础纹理使用纯色贴图,不使用全分布UV,因此无需大量的手绘贴图,从而大大降低了工作量,缩短了模型的制作周期,降低了制作成本。
步骤S630.将合成纹理贴图分配给多层模型中的每层模型,并获取每层模型的透明度需求,根据透明度需求设置每层模型对应的合成纹理贴图的透明值,得到每层模型对应的渲染贴图。
本示例实施方式中,根据每层模型与头皮之间的距离设置每层模型对应的合成纹理贴图的透明值,其中,每层模型对应的合成纹理贴图的透明值与每层模型与头皮之间的距离成正比。
在给各层模型选择对应的合成纹理贴图时,根据每层模型的透明度需求,设置每层模型对应的合成纹理贴图的透明值,得到每层模型对应的渲染贴图。由于内层模型贴近头皮表面,需要使用alphatest不透明区域,不需要进行透明处理,即可得到内层模型对应的渲染贴图;中层模型是大部分头发的主体,可以有部分使用alphatest,也有部分使用alphablend,通过控制两个部分透明值的范围来协调运用,得到中层模型对应的渲染贴图;外层模型为头发外部边缘,可以大部分使用alphablend,小部分使用alphatest,充分利用半透效果,做出疏散的发丝,得到外层模型对应的渲染贴图。如图10所示,对于内层模型1001多用发丝密集的合成纹理贴图1003,对于外层模型1002多用发丝疏散的合成纹理贴图1004,中层模型可以根据需求将二者结合运用。
步骤S640.利用每层模型对应的渲染贴图分别对目标对象的每层模型进行渲染。
得到每层模型对应的渲染贴图后,利用每层模型对应的渲染贴图分别对目标对象的每层模型进行渲染,最终得到的头发模型的显示效果,可以减少头发的锯齿感,使头发边缘的发丝更加柔顺自然。
本公开示例实施方式的模型的渲染方法中,通过得到对应于多种不同透明度的渲染贴图,并根据每层模型的透明度需求分别对目标对象的各层模型进行渲染,一方面,可以在不造成系统高消耗的前提下提升模型的显示效果,对头发模型的外部边缘进行特定的细节处理,解决头发边缘毛躁生硬等问题,使头发更加柔顺自然;另一方面,可以根据实际的需求将渲染贴图运用到不同的头发模型中,从而在很大程度上降低贴图制作的数量和成本,从而提升模型制作和渲染的效率。
本示例实施方式提供的模型的渲染方法,不仅适于3D写实角色的头发模型,也适用于除头发模型以外其他类似毛发效果的模型,本示例实施方式仅以3D角色头发模型的制作方法为例进行基础阐述说明。
在步骤S610中,如图11所示,获取包含多层模型的目标对象,可以包括以下几个步骤:
步骤S1110.获取多层模型。
步骤S1120.将多层模型中的每层模型打散成多个面片。
步骤S1130.按照面片所在模型的层级顺序将面片依次进行合并,得到目标对象。
本示例实施方式中,制作好的模型分为3层,在最终完成模型时,把模型每个面片打散,然后再从内往外层逐一合并,如图12所示,该模型在游戏内渲染时,也会按照图12中的箭头方向从内往外依次进行渲染。
模型的面片在制作过程中,系统会自动生成每个面片对应的顶点序号,在最终完成模型时,需要将原始的序号删除,并重新对目标对象中每层模型的顶点按照层级顺序依次进行编号。
最后,利用每层模型对应的渲染贴图,按照每层模型的顶点编号依次对每层模型进行渲染。由于合并之后的顶点编号是由内向外依次排序的,因此渲染时也会从内往外依次进行渲染。在顶点排序后,模型在视觉上的深度穿插问题会减少,可以通过图13来对比排序前后的区别。
图13示意性示出了顶点排序效果的对比示意图,除头发模型1301外,再创建一个球体模型1302,并将其放在头发模型1301的后面,其中,头发模型1303是无顶点排序的头发模型,头发模型1304是有顶点排序的头发模型,从图中可以看出,头发模型1303的显示无前后顺序,而头发模型1304则明显能够看出球体模型1302在头发模型1304的后面。
综上所述,通过顶点排序和双PASS结合,可以很好地解决头发模型主要部分的深度穿插问题,使头发的显示效果更加层次分明,不会造成排序错乱。
在步骤S640中,如图14所示,利用每层模型对应的渲染贴图分别对目标对象的每层模型进行渲染,可以包括以下几个步骤:
步骤S1410.将每层模型对应的渲染贴图的形状由初始形状调整为预设形状。
步骤S1420.利用调整为预设形状的渲染贴图分别对目标对象的每层模型进行渲染。
图15示意性示出了UV(纹理贴图坐标)展直的示意图。如图15所示,将渲染贴图的坐标形状由初始形状1501调整为预设形状1502,即将其展直成矩形形状,再利用调整为矩形形状的渲染贴图分别对目标对象的每层模型进行渲染,可以使毛发模型的显示没有锯齿感。
将所有UV展直成矩形,UV的排列位置可以根据实际需要进行排列,无需重叠,也无需限定在0到1的象限内,很大程度增加了模型的灵活度。
图16示意性示出了模型渲染最终效果和真实头发的对比示意图,图片1601展示了真实头发的效果,图片1602为通过本示例实施方式提供的模型的渲染方法得到的头发模型最终效果示意图,图片1603为图片1602局部放大后的示意图。可以看出,通过本示例实施方式提供的模型的渲染方法得到的头发模型,不仅柔顺自然,没有锯齿感,也不存在排序错乱的问题,最终显示出来的效果非常好。另外在性能上,也不会像主机PC端游那样产生高消耗,在达到相应效果的同时,性能开销在移动端的可接受范围内。
本公开的示例实施方式中,以着色器(shader)的双Pass混合为基础,通过对模型造型、模型顶点排序、模型UV和alpha贴图巧妙的配合,来处理头发边缘的细节问题,解决了头发模型生硬、有锯齿感以及排序错乱等问题。整个技术线原理简单,不需要很深的算法,本领域技术人员易理解操作。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本公开还提供了一种模型的渲染装置。参考图17所示,该模型的渲染装置可以包括目标对象获取模块1710、纹理贴图制作模块1720、渲染贴图制作模块1730以及目标模型渲染模块1740。其中:
目标对象获取模块1710可以用于获取包含多层模型的目标对象;
纹理贴图制作模块1720可以用于通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图;
渲染贴图制作模块1730可以用于将合成纹理贴图分配给多层模型中的每层模型,并获取每层模型的透明度需求,根据透明度需求设置每层模型对应的合成纹理贴图的透明值,得到每层模型对应的渲染贴图;
目标模型渲染模块1740可以用于利用每层模型对应的渲染贴图分别对目标对象的每层模型进行渲染。
本公开提供的一种模型的渲染装置还可以包括第一纹理贴图制作模块以及第二纹理贴图制作模块。其中:
第一纹理贴图制作模块可以用于通过对具有第一透明效果的第一基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第一纹理贴图;
第二纹理贴图制作模块可以用于通过对具有第二透明效果的第二基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第二纹理贴图。
在本公开的一些示例性实施例中,纹理贴图制作模块1720可以包括合成纹理贴图制作单元,可以用于从多个对应于不同透明度的第一纹理贴图和多个对应于不同透明度的第二纹理贴图中分别选择一个第一纹理贴图和一个第二纹理贴图进行合成,得到合成纹理贴图。
在本公开的一些示例性实施例中,目标对象获取模块1710可以包括多层模型获取单元、模型面片打散单元以及模型面片合并单元。其中:
多层模型获取单元可以用于获取多层模型。
模型面片打散单元可以用于将多层模型中的每层模型打散成多个面片。
模型面片合并单元可以用于按照面片所在模型的层级顺序将面片依次进行合并,得到目标对象。
本公开提供的一种模型的渲染装置还可以包括模型顶点编号模块,可以用于对目标对象中每层模型的顶点按照层级顺序依次进行编号。
在本公开的一些示例性实施例中,目标模型渲染模块1740可以包括顶点编号渲染单元,可以用于利用每层模型对应的渲染贴图,按照每层模型的顶点编号依次对每层模型进行渲染。
在本公开的一些示例性实施例中,目标模型渲染模块1740还可以包括贴图形状调整单元以及各层模型渲染单元。其中:
贴图形状调整单元可以用于将每层模型对应的渲染贴图的形状由初始形状调整为预设形状;
各层模型渲染单元可以用于利用调整为预设形状的渲染贴图分别对目标对象的每层模型进行渲染。
上述模型的渲染装置中各模块/单元的具体细节在相应的方法实施例部分已有详细的说明,此处不再赘述。
图18示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图18示出的电子设备的计算机系统1800仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图18所示,计算机系统1800包括中央处理单元(CPU)1801,其可以根据存储在只读存储器(ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(RAM)1803中的程序而执行各种适当的动作和处理。在RAM 1803中,还存储有系统操作所需的各种程序和数据。CPU1801、ROM 1802以及RAM 1803通过总线1804彼此相连。输入/输出(I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本发明的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种模型的渲染方法,其特征在于,包括:
获取包含多层模型的目标对象;
通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图;
将所述合成纹理贴图分配给所述多层模型中的每层模型,并获取所述每层模型的透明度需求,根据所述透明度需求设置所述每层模型对应的合成纹理贴图的透明值,得到所述每层模型对应的渲染贴图;
利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染。
2.根据权利要求1所述的模型的渲染方法,其特征在于,所述方法还包括:
通过对具有第一透明效果的第一基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第一纹理贴图;
通过对具有第二透明效果的第二基础纹理贴图的透明值进行调整,得到多个对应于不同透明度的第二纹理贴图。
3.根据权利要求2所述的模型的渲染方法,其特征在于,所述通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图,包括:
从所述多个对应于不同透明度的第一纹理贴图和所述多个对应于不同透明度的第二纹理贴图中分别选择一个第一纹理贴图和一个第二纹理贴图进行合成,得到合成纹理贴图。
4.根据权利要求1所述的模型的渲染方法,其特征在于,所述多层模型包括第一层头发模型、第二层头发模型和第三层头发模型,且所述第一层头发模型离头皮最近,所述第三层头发模型离头皮最远,所述第二层头发模型位于所述第一层头发模型和所述第三层头发模型之间。
5.根据权利要求1所述的模型的渲染方法,其特征在于,所述根据所述透明度需求设置所述每层模型对应的合成纹理贴图的透明值,包括:
根据所述每层模型与头皮之间的距离设置所述每层模型对应的合成纹理贴图的透明值,其中,所述每层模型对应的所述合成纹理贴图的透明值与所述每层模型与头皮之间的距离成正比。
6.根据权利要求1所述的模型的渲染方法,其特征在于,所述获取包含多层模型的目标对象,包括:
获取多层模型;
将所述多层模型中的每层模型打散成多个面片;
按照所述面片所在模型的层级顺序将所述面片依次进行合并,得到所述目标对象。
7.根据权利要求6所述的模型的渲染方法,其特征在于,所述方法还包括:
对所述目标对象中每层模型的顶点按照层级顺序依次进行编号。
8.根据权利要求7所述的模型的渲染方法,其特征在于,所述利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染,包括:
利用所述每层模型对应的渲染贴图,按照所述每层模型的顶点编号依次对所述每层模型进行渲染。
9.根据权利要求1所述的模型的渲染方法,其特征在于,所述具有第一透明效果的第一纹理贴图为通过alphatest方式处理得到的贴图,所述具有第二透明效果的第二纹理贴图为通过alphablend方式处理得到的贴图。
10.根据权利要求1所述的模型的渲染方法,其特征在于,所述第一纹理贴图具有直线发丝纹理;所述第二纹理贴图具有弯曲渐变发丝纹理。
11.根据权利要求1所述的模型的渲染方法,其特征在于,所述利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染,包括:
将所述每层模型对应的渲染贴图的形状由初始形状调整为预设形状;
利用调整为预设形状的所述渲染贴图分别对所述目标对象的每层模型进行渲染。
12.一种模型的渲染装置,其特征在于,包括:
目标对象获取模块,用于获取包含多层模型的目标对象;
纹理贴图制作模块,用于通过具有第一透明效果的第一纹理贴图和具有第二透明效果的第二纹理贴图得到合成纹理贴图;
渲染贴图制作模块,用于将所述合成纹理贴图分配给所述多层模型中的每层模型,并获取所述每层模型的透明度需求,根据所述透明度需求设置所述每层模型对应的合成纹理贴图的透明值,得到所述每层模型对应的渲染贴图;
目标模型渲染模块,用于利用所述每层模型对应的渲染贴图分别对所述目标对象的每层模型进行渲染。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至11中任一项所述的模型的渲染方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至11中任一项所述的模型的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010340642.1A CN111508053B (zh) | 2020-04-26 | 2020-04-26 | 模型的渲染方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010340642.1A CN111508053B (zh) | 2020-04-26 | 2020-04-26 | 模型的渲染方法、装置、电子设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111508053A true CN111508053A (zh) | 2020-08-07 |
CN111508053B CN111508053B (zh) | 2023-11-28 |
Family
ID=71876376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010340642.1A Active CN111508053B (zh) | 2020-04-26 | 2020-04-26 | 模型的渲染方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111508053B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163983A (zh) * | 2020-08-14 | 2021-01-01 | 福建数博讯信息科技有限公司 | 一种场景物件的描边方法及终端 |
CN112614041A (zh) * | 2020-12-29 | 2021-04-06 | 完美世界(北京)软件科技发展有限公司 | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 |
CN112669425A (zh) * | 2020-12-23 | 2021-04-16 | 北京像素软件科技股份有限公司 | 毛发渲染方法、装置、电子设备和可读存储介质 |
CN113205583A (zh) * | 2021-04-28 | 2021-08-03 | 北京字跳网络技术有限公司 | 场景渲染方法、装置、电子设备及可读存储介质 |
CN113947657A (zh) * | 2021-10-18 | 2022-01-18 | 网易(杭州)网络有限公司 | 目标模型的渲染方法、装置、设备及存储介质 |
WO2023015770A1 (zh) * | 2021-08-13 | 2023-02-16 | 完美世界(北京)软件科技发展有限公司 | 游戏角色渲染方法、装置、计算机设备及可读介质 |
WO2023109486A1 (zh) * | 2021-12-17 | 2023-06-22 | 上海商汤智能科技有限公司 | 毛发模型的生成方法、装置、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021302A1 (en) * | 2000-06-22 | 2002-02-21 | Lengyel Jerome E. | Method and apparatus for modeling and real-time rendering of surface detail |
CN106815883A (zh) * | 2016-12-07 | 2017-06-09 | 珠海金山网络游戏科技有限公司 | 一种游戏角色的头发处理方法及系统 |
CN108932745A (zh) * | 2017-05-23 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 图像绘制方法、装置、终端设备及计算机可读存储介质 |
CN109389664A (zh) * | 2017-08-04 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 模型贴图渲染方法、装置及终端 |
CN109685876A (zh) * | 2018-12-21 | 2019-04-26 | 北京达佳互联信息技术有限公司 | 毛发渲染方法、装置、电子设备及存储介质 |
-
2020
- 2020-04-26 CN CN202010340642.1A patent/CN111508053B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021302A1 (en) * | 2000-06-22 | 2002-02-21 | Lengyel Jerome E. | Method and apparatus for modeling and real-time rendering of surface detail |
CN106815883A (zh) * | 2016-12-07 | 2017-06-09 | 珠海金山网络游戏科技有限公司 | 一种游戏角色的头发处理方法及系统 |
CN108932745A (zh) * | 2017-05-23 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 图像绘制方法、装置、终端设备及计算机可读存储介质 |
CN109389664A (zh) * | 2017-08-04 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 模型贴图渲染方法、装置及终端 |
CN109685876A (zh) * | 2018-12-21 | 2019-04-26 | 北京达佳互联信息技术有限公司 | 毛发渲染方法、装置、电子设备及存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163983A (zh) * | 2020-08-14 | 2021-01-01 | 福建数博讯信息科技有限公司 | 一种场景物件的描边方法及终端 |
CN112163983B (zh) * | 2020-08-14 | 2023-07-18 | 福建数博讯信息科技有限公司 | 一种场景物件的描边方法及终端 |
CN112669425A (zh) * | 2020-12-23 | 2021-04-16 | 北京像素软件科技股份有限公司 | 毛发渲染方法、装置、电子设备和可读存储介质 |
CN112614041A (zh) * | 2020-12-29 | 2021-04-06 | 完美世界(北京)软件科技发展有限公司 | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 |
CN112614041B (zh) * | 2020-12-29 | 2022-10-25 | 完美世界(北京)软件科技发展有限公司 | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 |
CN113205583A (zh) * | 2021-04-28 | 2021-08-03 | 北京字跳网络技术有限公司 | 场景渲染方法、装置、电子设备及可读存储介质 |
WO2023015770A1 (zh) * | 2021-08-13 | 2023-02-16 | 完美世界(北京)软件科技发展有限公司 | 游戏角色渲染方法、装置、计算机设备及可读介质 |
CN113947657A (zh) * | 2021-10-18 | 2022-01-18 | 网易(杭州)网络有限公司 | 目标模型的渲染方法、装置、设备及存储介质 |
WO2023109486A1 (zh) * | 2021-12-17 | 2023-06-22 | 上海商汤智能科技有限公司 | 毛发模型的生成方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111508053B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111508053B (zh) | 模型的渲染方法、装置、电子设备及计算机可读介质 | |
CN112316420B (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN108876931B (zh) | 三维物体颜色调整方法、装置、计算机设备及计算机可读存储介质 | |
CN109427088B (zh) | 一种模拟光照的渲染方法及终端 | |
CN103946895B (zh) | 基于平铺块的呈现中的镶嵌方法和设备 | |
Saito et al. | Comprehensible rendering of 3-D shapes | |
CN106815883B (zh) | 一种游戏角色的头发处理方法及系统 | |
Lu et al. | Illustrative interactive stipple rendering | |
US6650327B1 (en) | Display system having floating point rasterization and floating point framebuffering | |
US8514238B2 (en) | System and method for adding vector textures to vector graphics images | |
US7583264B2 (en) | Apparatus and program for image generation | |
CN108564646A (zh) | 对象的渲染方法和装置、存储介质、电子装置 | |
US7755626B2 (en) | Cone-culled soft shadows | |
CN109102560A (zh) | 三维模型渲染方法及装置 | |
CN107657648B (zh) | 一种移动游戏中实时高效的染色方法和系统 | |
Bruckner et al. | Hybrid visibility compositing and masking for illustrative rendering | |
CN105122310A (zh) | 用于基于瓦片的渲染的帧内时戳 | |
CN106537459A (zh) | 图形处理系统 | |
CN109741438A (zh) | 三维人脸建模方法、装置、设备及介质 | |
CN107392836A (zh) | 使用图形处理管线实现的立体多投影 | |
CN108833877A (zh) | 图像处理方法及装置、计算机装置及可读存储介质 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
US7133052B1 (en) | Morph map based simulated real-time rendering | |
CN112560126B (zh) | 用于3d打印的数据处理方法、系统及存储介质 | |
US7180523B1 (en) | Trimming surfaces |
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 |