CN106803278B - 一种虚拟人物半透明分层排序方法及系统 - Google Patents

一种虚拟人物半透明分层排序方法及系统 Download PDF

Info

Publication number
CN106803278B
CN106803278B CN201611115651.0A CN201611115651A CN106803278B CN 106803278 B CN106803278 B CN 106803278B CN 201611115651 A CN201611115651 A CN 201611115651A CN 106803278 B CN106803278 B CN 106803278B
Authority
CN
China
Prior art keywords
sub
semi
grids
triangle
semitransparent
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
CN201611115651.0A
Other languages
English (en)
Other versions
CN106803278A (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.)
Chengdu Xishanju Interactive Entertainment Technology Co Ltd
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Online Game Technology Co Ltd
Chengdu Xishanju Interactive Entertainment Technology 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 Zhuhai Kingsoft Online Game Technology Co Ltd, Chengdu Xishanju Interactive Entertainment Technology Co Ltd filed Critical Zhuhai Kingsoft Online Game Technology Co Ltd
Priority to CN201611115651.0A priority Critical patent/CN106803278B/zh
Publication of CN106803278A publication Critical patent/CN106803278A/zh
Application granted granted Critical
Publication of CN106803278B publication Critical patent/CN106803278B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明的技术方案包括一种虚拟人物半透明分层排序方法及系统,用于实现:提供编辑器对人物衣服模型中需要处理半透明穿插的子网格进行顶点颜色属性标识;将人物衣服模型中半透明子网格合并为一个整体网格,以及对半透明子网格的材质进行对应的合并;对整体网格进行三角形分层排序处理。本发明的有益效果为:合并网格材质后CPU和GPU性能上的提高;多层半透明渲染穿插问题的解决。

Description

一种虚拟人物半透明分层排序方法及系统
技术领域
本发明涉及一种虚拟人物半透明分层排序方法及系统,属于计算机三维动画、游戏领域。
背景技术
随着游戏品质要求越来越高,在突出人物角色渲染的游戏中往往为了表现更好地效果,需要人物的衣服有多层半透明,从而让人物栩栩如生,才能够更加吸引住玩家。
多层半透明衣服渲染容易导致衣服渲染出现穿插的问题,即有些三角形面渲染先后出现了问题。尤其在手游领域没有很好有效的处理多层半透明排序导致穿插的好方案。很多现有的方案要么是通过规避多层半透明衣服的方式,要么是将衣服网格拆分出更多细化的网格来处理。然而这些方案都并没有能够真正解决多层半透明排序导致穿插的问题,而且还具有很大地使用局限性。下面主要列出两套旧方案及其局限性。
一,如图1所示的采用分割网格加实时动态修改渲染顺序方案,基本步骤包括如下(1)~(3):
(1)先将有多层半透明有穿插的大网格根据实际需求分割成多个子网格;
(2)在游戏运行时动态加载所有的子网格,并每帧计算子网格到摄像机的距离,存储起来;
(3)根据存储的距离,从近到远渲染每个子网格即可。
通过上面的流程图可以看出分割网格加实时动态修改渲染顺序方案存在以下缺陷:
a.分割网格需要占据美术一定的时间,由于通过分割网格导致了生成更多的模型,更多的模型将导致需要渲染更多的顶点和三角形面,渲染将耗用更多的drawcall和GPU的时间。所以分割网格不仅仅在制作流程上更加地繁琐,而且在游戏性能上CPU和GPU都会有更加多地消耗;
b.分割网格的方式不适合用在多层半透明环状闭合的方式,因为这种方式由于人物的动画和旋转等变动还是会导致穿插问题,所以很难用于多层半透明衣服上的处理。这种方式更加适合没有环状闭合的多层半透明模型处理上,比如说人物的头发可以以身体中心前后分割网格,人物袖子可以根据左右手分割网格。
二,如图2所示的采用三角形中心深度排序加网格编辑工具方案,通过流程图可以看出三角形中心深度排序加网格编辑工具方案存在以下2点缺陷:
1.三角形按深度来进行排序,取点的位置不管是三角形的中心或者是三角形内部的任意一个点,在距离非常靠近的两层网格中,总会存在靠后的一层的三角形深度要比靠前的一层的三角形深度要小,导致用基于三角形深度排序算法总会出现部分三角形面有穿插的问题,该问题在有非常靠近的前后两个三角形会出现,没法避免。
2.为了避免经过三角形深度排序后的部分三角形渲染穿插问题,需要在游戏引擎中制作多边形网格编辑工具(可以在游戏运行中编辑网格并保存网格)。通过在运行时网格编辑工具把有问题的三角形面距离拉远可以避免穿插问题,但是仅仅适用于人物静止时候地调整。该方案在人物有骨骼动画的时候很难调整,只有不断地在静止状态下去拉远距离看效果,持续调整才能有好的效果,而这非常地耗时,而且还是通过修改网格的方式间接规避部分穿插问题。
发明内容
针对现有技术的不足,本发明的技术方案提供了一种虚拟人物半透明分层排序方法及系统,用于解决现有技术的不足,包括以达到合并网格材质后CPU和GPU性能上的提高,多层半透明渲染穿插问题的解决。
本发明的技术方案包括一种虚拟人物半透明分层排序方法,其特征在于,该方法包括:A.使用编辑器对人物衣服模型中需要处理半透明穿插的子网格进行顶点颜色属性标识;B.将人物衣服模型中半透明子网格合并为一个整体网格,以及对半透明子网格的材质进行对应的合并;C.对整体网格进行三角形分层排序处理。
根据所述的虚拟人物半透明分层排序方法,所述的步骤A还包括:其中顶点颜色属性为四维向量,所述四维向量前两位分别为顶点的层次标识及法线是否取反标识,其中的层次标识表示该顶点的层次序号,序号从里到外依次开始递增,其中法线是否取反标识表示含该顶点的所有三角形面中如果存在有个中心法向满足特殊情况则需要取反则标识。
根据权虚拟人物半透明分层排序方法,其特征在于,所述的步骤A还包括:在编辑器对人物衣服模型进行顶点标识时是通过手动进行的。
根据虚拟人物半透明分层排序方法,所述的步骤B还包括:S41,使用接口将人物模型的子网格进行合并一个整体网格;S42,对所述步骤S41进行合并的子网格对应的材质进行合并。
根据所得虚拟人物半透明分层排序方法,所述的步骤S42还包括:还可以人物衣服模型的着色器进行比较,若存在超过一定比例的相似度时,则将人物衣服模型的着色器进行合并,进一步,还包括将衣服模型里不同模型的贴图合成一张贴图。
根据所述的虚拟人物半透明分层排序方法,进行了进一步的扩展,所述的步骤S42还包括:
对人物衣服模型是否带有骨骼动画进行识别,若人物衣服模型带有骨骼动画,半透明子网格执行完骨骼动画实时地合并网格,进一步,如果人物衣服模型发生替换,则将半透明子网格替换成新网格的时候,同时还需要刷新新网格的骨骼数组。
根据权虚拟人物半透明分层排序方法,所述的步骤C还包括:S71,使用三角形分层排序算法人物衣服分为多个渲染层次;S72,对每个层次进行三角形深度排序;S73,最后将渲染层次从小到大的列表里的所有三角形序号添加到新的三角形数组中去,进而把新的三角形数组赋值给合并网格的三角形数;S74,对赋予三角数的的网格执行渲染操作。
本发明的技术方案还包括根据上述任意方法的虚拟人物半透明分层排序系统,该系统包括:顶点标识模块,提供编辑器对人物衣服模型中需要处理半透明穿插的子网格进行顶点颜色属性标识;合并模块,用于将将人物衣服模型中半透明子网格合并为一个整体网格,以及对半透明子网格的材质进行对应的合并;排序模块,对整体网格进行三角形分层排序处理。
本发明的有益效果为:
1.合并网格材质后CPU和GPU性能上的提高。半透明分层排序需要将存在交叉半透明的子网格合并成一个网格来进行三角形排序处理,合成一个网格来渲染GPU消耗要比渲染各个子网格要更少。衣服(包括衣服装饰)通过合并成一个网格,多个材质合并成一个材质来进行绘制,drawcall(CPU提交数据给GPU的次数,是性能很重要的衡量指标)数有效地降低到1个。
2.多层半透明渲染穿插问题的解决。衣服先通过分层,然后再根据每层来进行三角形的排序这个方式,有效地处理了层与层之间的半透明渲染穿插问题。
附图说明
图1所示为现有技术的分割网格加实时动态修改渲染顺序方案流程图;
图2所示为现有技术的采用三角形中心深度排序加网格编辑工具方案流程图;
图3所示为根据本发明实施方式的总体流程图;
图4所示为根据本发明实施方式的含有三层半透明的衣服俯视图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的虚拟人物半透明分层排序方法及系统适用于三维游戏动画的开发。
图3所示为根据本发明实施方式的总体流程图。分三步,其中只有第一步需要在编辑模式下标识网格顶点的颜色值,需要手动。之后的第二步和第三步都是在游戏的运行状态下处理。
第一步,标识顶点颜色属性的过程。确定好哪些半透明的子网格需要处理半透明穿插的,在游戏引擎中的场景编辑器里,使用编写的工具来修改半透明子网格中顶点的颜色值。这个修改半透明网格顶点的颜色值也可以在3dmax或者maya里修改。之所以拿顶点的颜色值来标识是因为该值在游戏中并没有特别实际用处。
顶点的颜色值是一个4维向量,标识的格式为(层次标识,法线是否取反标识,0,0)。其中层次标识表示该顶点的层次序号,序号从里到外依次从1开始递增。比如衣服有三层闭环的半透明,那么最里层的所有顶点层次标识为1,中间层的所有顶点层次标识为2,最外层的所有顶点层次标识为3。法线是否取反标识表示含该顶点的所有三角形面中如果存在有个中心法向(三角形中三个顶点法向量的均值)满足特殊情况需要取反则标识为1,否则标识为0。满足特殊情况比如说衣服的后面网格正常法线要朝后,但是因为部分地方卷起来导致法线朝前,那么这类就属于特殊情况。顶点颜色里后两个值暂时没有用到,设置为0。
第二步,合并网格和合并材质。这一步主要是将半透明的子网格合并成一个网格,合成成一个整体的网格后面才可以用来进行三角形排序处理解决穿插问题。合并网格可以使用引擎自带的接口来进行合并,比如Unity中可以通过创建接口实例后来进行网格合并操作。
合并材质不一定是必需的,如果衣服不同模型中shader比较类似可以将其写入一个整合的shader中,同时还可以对衣服里不同模型的贴图合成一张大的贴图来处理。
这里需要注意的是人物往往是带有骨骼动画的,如果是带有骨骼动画,那么在一帧中各个半透明子网格运动完后需要实时地合并网格。这样子即便带有骨骼动画,合并后的网格也能够正常地播放。如果涉及到换装,那么将半透明子网格替换成新网格的时候,同时还需要刷新新网格的骨骼数组。
第三步,三角形分层排序算法处理。其详细操作步骤请参考图4及后续说明。
图4所示为人物第三步是三角形分层排序算法处理。为了让算法描述地更加易懂和形象化些,这里建立一个简单含有三层半透明的衣服俯视图,每一层衣服都是圆柱形状,摄像机摆在衣服正前方位置,如图4所示。
由建立的模型可知,C1代表最里层衣服,层次标识为C1,C2代表中间层衣服,层次标识为C2,C3代表外层衣服,层次标识为C3。中间线垂直于摄像机的照射方向(设为L),中间线以上的衣服所包含的任意一个三角形面的中心法向与L的点积为正数(因为两个向量的角度小于90度而大于0度),而中间线以下的衣服所包含的任意一个三角形面的中心法向与L的点积为负数(因为两个向量的角度大于90而小于180度)。
本发明的技术方案进一步详细讲三角形分层排序算法,如下1-3:
1.三角形分层排序算法首先要分层。假设有N层衣服,那么需要创建2N个列表存放三角形序号,每个列表里的三角形序号的渲染层次一致,分别存放了渲染层次从-N到N,这里3层衣服需要创建6个列表。先遍历合并网格的每个三角形,该三角形中顶点的层次标识为k,计算该三角形的中心法向,接着计算该中心法向与摄像机照射方向L的点积,如果点积为正数,则把该三角形序号存放到渲染层次为-k的列表中,否则点积为负则将其存放到渲染层次为k的列表中。这个计算点积过程中,如果三角形的三个顶点的“法线是否取反标识”都1的话,则需要对该三角形的中心法向取反后再去计算点积。
2.其次要每层三角形深度排序。对6个分层后的列表分别遍历其中的三角形,根据三角形中心点距离摄像机的长度做为深度,将深度按从大到小对三角形进行排序。
3.最后将渲染层次从小到大(从-N到N)的列表里的所有三角形序号添加到新的三角形数组中去,再把新的三角形数组赋值给合并网格的三角形数组即可。
该三角形分层排序算法第一步时间复杂度为O(N),其中N为三角形数。第二步也为O(N),第三步为1。故总的时间复杂度是线性的。
本发明的技术方案进一步提供了如何实现的,如下所示:
在unity游戏引擎中实践。为了适应不断调整顶点颜色值的方便,再unity中编写一个网格编辑工具。网格编辑工具可以显示所有的顶点,并修改其顶点的颜色值(主要是层次标识和法线是否取反标识)并保存到网格中。这一个过程是需要程序来手动处理顶点数据的,为了使用更加方便可以在网格编辑工具中提供类似格式刷的工具,把当前的顶点颜色值刷到其他顶点上。合并网格和半透明分层排序则根据上面的算法编码好,就可以在游戏中实时处理好多层半透明排序导致的穿插问题。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (7)

1.一种虚拟人物半透明分层排序方法,其特征在于,该方法包括:
A.使用编辑器对人物衣服模型中需要处理半透明穿插的子网格进行顶点颜色属性标识;
B.将人物衣服模型中半透明子网格合并为一个整体网格,以及对半透明子网格的材质进行对应的合并;
C.对整体网格进行三角形分层排序处理,步骤C还包括:
S71,使用三角形分层排序算法人物衣服分为多个渲染层次;
S72,对每个层次进行三角形深度排序;
S73,最后将渲染层次从小到大的列表里的所有三角形序号添加到新的三角形数组中去,进而把新的三角形数组赋值给合并网格的三角形数;
S74,对赋予三角数的网格执行渲染操作。
2.根据权利要求1所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤A还包括:
其中顶点颜色属性为四维向量,所述四维向量前两位分别为顶点的层次标识及法线是否取反标识,其中的层次标识表示该顶点的层次序号,序号从里到外依次开始递增,其中法线是否取反标识表示含该顶点的所有三角形面中如果存在有个中心法向满足特殊情况则需要取反则标识。
3.根据权利要求1所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤A还包括:
在编辑器对人物衣服模型进行顶点标识时是通过手动进行的。
4.根据权利要求1所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤B还包括:
S41,使用接口将人物模型的子网格进行合并一个整体网格;
S42,对所述步骤S41进行合并的子网格对应的材质进行合并。
5.根据权利要求4所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤S42还包括:
还可以人物衣服模型的着色器进行比较,若存在超过一定比例的相似度时,则将人物衣服模型的着色器进行合并,进一步,还包括将衣服模型里不同模型的贴图合成一张贴图。
6.根据权利要求4所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤S42还包括:
对人物衣服模型是否带有骨骼动画进行识别,若人物衣服模型带有骨骼动画,半透明子网格执行完骨骼动画实时地合并网格,进一步,如果人物衣服模型发生替换,则将半透明子网格替换成新网格的时候,同时还需要刷新新网格的骨骼数组。
7.一种虚拟人物半透明分层排序系统,使用权利要求1至6中任一项的方法,其特征在于,包括:
顶点标识模块,提供编辑器对人物衣服模型中需要处理半透明穿插的子网格进行顶点颜色属性标识;
合并模块,用于将人物衣服模型中半透明子网格合并为一个整体网格,以及对半透明子网格的材质进行对应的合并;
排序模块,对整体网格进行三角形分层排序处理。
CN201611115651.0A 2016-12-07 2016-12-07 一种虚拟人物半透明分层排序方法及系统 Active CN106803278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611115651.0A CN106803278B (zh) 2016-12-07 2016-12-07 一种虚拟人物半透明分层排序方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611115651.0A CN106803278B (zh) 2016-12-07 2016-12-07 一种虚拟人物半透明分层排序方法及系统

Publications (2)

Publication Number Publication Date
CN106803278A CN106803278A (zh) 2017-06-06
CN106803278B true CN106803278B (zh) 2020-09-04

Family

ID=58985786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611115651.0A Active CN106803278B (zh) 2016-12-07 2016-12-07 一种虚拟人物半透明分层排序方法及系统

Country Status (1)

Country Link
CN (1) CN106803278B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196835A (zh) * 2018-01-29 2018-06-22 东北大学 一种游戏引擎中图元存储和渲染的方法
CN111739134B (zh) * 2020-07-30 2023-05-26 腾讯科技(深圳)有限公司 虚拟角色的模型处理方法、装置及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1979560A (zh) * 2005-12-01 2007-06-13 腾讯科技(深圳)有限公司 一种图形处理方法及系统
CN101276475A (zh) * 2008-03-31 2008-10-01 康佳集团股份有限公司 一种在网络游戏中实时改变虚拟角色外观的实现方法
CN101350107A (zh) * 2008-07-21 2009-01-21 腾讯科技(深圳)有限公司 一种角色绘制的方法及装置
CN103500463A (zh) * 2013-10-17 2014-01-08 北京大学 一种gpu上多层形状特征融合的可视化方法
CN106103054A (zh) * 2014-03-10 2016-11-09 微软技术许可有限责任公司 制造全色三维对象

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446368A (zh) * 2010-10-11 2012-05-09 王素 快速成型制造中基于分层邻接排序算法的stl模型快速切片方法
CN102289839A (zh) * 2011-08-04 2011-12-21 天津中科遥感信息技术有限公司 一种面向三维数字城市的高效多细节层次渲染方法
CN104809287B (zh) * 2015-04-24 2019-01-04 厦门唯尔酷信息技术有限公司 穿着物分层方法及其系统、分层穿着物模拟方法及其系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1979560A (zh) * 2005-12-01 2007-06-13 腾讯科技(深圳)有限公司 一种图形处理方法及系统
CN101276475A (zh) * 2008-03-31 2008-10-01 康佳集团股份有限公司 一种在网络游戏中实时改变虚拟角色外观的实现方法
CN101350107A (zh) * 2008-07-21 2009-01-21 腾讯科技(深圳)有限公司 一种角色绘制的方法及装置
CN103500463A (zh) * 2013-10-17 2014-01-08 北京大学 一种gpu上多层形状特征融合的可视化方法
CN106103054A (zh) * 2014-03-10 2016-11-09 微软技术许可有限责任公司 制造全色三维对象

Also Published As

Publication number Publication date
CN106803278A (zh) 2017-06-06

Similar Documents

Publication Publication Date Title
Lassner et al. Pulsar: Efficient sphere-based neural rendering
Nießner et al. Real‐time rendering techniques with hardware tessellation
Beacco et al. A survey of real‐time crowd rendering
Shugrina et al. Creative flow+ dataset
Nagy et al. Interactive volume illustration.
CN107392990A (zh) 渲染3d场景的全局照明
Hudon et al. Deep normal estimation for automatic shading of hand-drawn characters
CN116228943B (zh) 虚拟对象面部重建方法、面部重建网络训练方法及装置
CN106803278B (zh) 一种虚拟人物半透明分层排序方法及系统
Kim et al. Chupa: Carving 3d clothed humans from skinned shape priors using 2d diffusion probabilistic models
Fu et al. Layerpaint: A multi-layer interactive 3d painting interface
Toledo et al. Hierarchical level of detail for varied animated crowds
De Groot et al. Implicit decals: Interactive editing of repetitive patterns on surfaces
Döllner Non-photorealistic 3D geovisualization
CN100585636C (zh) Gpu加速的轮廓区毛发状图形绘制方法
Andersen et al. Hybrid fur rendering: combining volumetric fur with explicit hair strands
Ramos et al. Contour-aware 3D reconstruction of side-view sketches
Gagnon et al. Dynamic lapped texture for fluid simulations
Gois et al. Interactive shading of 2.5 D models.
Yang et al. Realistic Real-time Facial Expressions Animation via 3D Morphing Target.
Villemin et al. Art and technology at Pixar, from Toy Story to today
Buerger et al. Sample-based surface coloring
Li An automatic rendering method of line strokes for Chinese landscape painting
Lee et al. Real‐time fur simulation and rendering
Lin et al. A feature-adaptive subdivision method for real-time 3D reconstruction of repeated topology 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
CP03 Change of name, title or address

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Patentee after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Patentee after: CHENGDU XISHANJU INTERACTIVE ENTERTAINMENT TECHNOLOGY Co.,Ltd.

Address before: 519000 Jinshan software building, 8 Lanshan lane, Jida Jingshan Hill Road, Zhuhai, Guangdong

Patentee before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

Patentee before: CHENGDU XISHANJU INTERACTIVE ENTERTAINMENT TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address