一种虚拟人物半透明分层排序方法及系统技术方案

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

Virtual character translucent hierarchical sorting method and system

The technical scheme of the invention includes a virtual character translucent hierarchical ranking method and system, for the realization of the need to provide the editor: vertex color attribute identification processing sub grid characters interspersed with translucent clothes in the model; the characters clothes model translucent sub meshes are merged into an integral grid, and semi transparent material of the corresponding sub grid the merger; on the whole mesh triangle layer sorting processing. The beneficial effect of the invention is that the combination of grid material improves the performance of CPU and GPU, and solves the problem of multi layer translucent rendering.

【技术实现步骤摘要】

本专利技术涉及一种虚拟人物半透明分层排序方法及系统,属于计算机三维动画、游戏领域。
技术介绍
随着游戏品质要求越来越高,在突出人物角色渲染的游戏中往往为了表现更好地效果,需要人物的衣服有多层半透明,从而让人物栩栩如生,才能够更加吸引住玩家。多层半透明衣服渲染容易导致衣服渲染出现穿插的问题,即有些三角形面渲染先后出现了问题。尤其在手游领域没有很好有效的处理多层半透明排序导致穿插的好方案。很多现有的方案要么是通过规避多层半透明衣服的方式,要么是将衣服网格拆分出更多细化的网格来处理。然而这些方案都并没有能够真正解决多层半透明排序导致穿插的问题,而且还具有很大地使用局限性。下面主要列出两套旧方案及其局限性。一,如图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)。其中层次标识表示该顶点的层次序号本文档来自技高网
...
一种虚拟人物半透明分层排序方法及系统

【技术保护点】
一种虚拟人物半透明分层排序方法,其特征在于,该方法包括:A.使用编辑器对人物衣服模型中需要处理半透明穿插的子网格进行顶点颜色属性标识;B.将人物衣服模型中半透明子网格合并为一个整体网格,以及对半透明子网格的材质进行对应的合并;C.对整体网格进行三角形分层排序处理。

【技术特征摘要】
1.一种虚拟人物半透明分层排序方法,其特征在于,该方法包括:A.使用编辑器对人物衣服模型中需要处理半透明穿插的子网格进行顶点颜色属性标识;B.将人物衣服模型中半透明子网格合并为一个整体网格,以及对半透明子网格的材质进行对应的合并;C.对整体网格进行三角形分层排序处理。2.根据权利要求1所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤A还包括:其中顶点颜色属性为四维向量,所述四维向量前两位分别为顶点的层次标识及法线是否取反标识,其中的层次标识表示该顶点的层次序号,序号从里到外依次开始递增,其中法线是否取反标识表示含该顶点的所有三角形面中如果存在有个中心法向满足特殊情况则需要取反则标识。3.根据权利要求1所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤A还包括:在编辑器对人物衣服模型进行顶点标识时是通过手动进行的。4.根据权利要求1所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤B还包括:S41,使用接口将人物模型的子网格进行合并一个整体网格;S42,对所述步骤S41进行合并的子网格对应的材质进行合并。5.根据权利要求4所述的虚拟人物半透明分层排序方法,其特征在于,所述的步骤S42还包括:还可以人物衣服模型的着色器进行比较,若存在超...

【专利技术属性】
技术研发人员:陈镇秋陈汉辉李茂吴海权刘玲
申请(专利权)人:珠海金山网络游戏科技有限公司成都西山居互动娱乐科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1