一种基于Matcap贴图的角色渲染方法、装置和设备与流程

文档序号:18944644发布日期:2019-10-23 01:27阅读:345来源:国知局
一种基于Matcap贴图的角色渲染方法、装置和设备与流程

本发明涉及游戏软件技术领域,尤其涉及一种基于matcap贴图的角色渲染方法、装置和设备。



背景技术:

在游戏中,为了提高用户体验,一般需要角色渲染具有较强的真实性。

目前,为了使得角色具有高质量的效果,通常使用基于物理的渲染方法对角色进行渲染。但基于物理的渲染方法是完全模拟物理上的定律,有许多复杂的计算,对于移动平台等低端设备来说,采用基于物理的渲染方法进行渲染,其开销就会比较大,从而降低渲染的帧率。而基础的matcap渲染方式,虽然高效,但渲染表现上比较单一,在角色渲染上可能达不到美术的要求,最终使得角色渲染不真实。



技术实现要素:

本发明的目的在于提供一种基于matcap贴图的角色渲染方法、装置和设备,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

本发明一方面提供了一种基于matcap贴图的角色渲染方法,包括如下步骤:

制作多张matcap贴图,每一张所述matcap贴图中均包含一种渲染信息;

将多张所述matcap贴图进行排列组合,形成一张组合贴图;

依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至屏幕。

优选地,制作多张matcap贴图之后,还包括:

制作多张控制贴图,每张所述控制贴图控制一至四张所述matcap贴图,如果所述控制贴图的数量为n,则所述matcap贴图的数量为4n、4n-1、4n-2或4n-3,且所述matcap贴图的数量大于等于2;

获取各所述控制贴图的控制信息;

依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至屏幕之后,还包括:

依次获得各个matcap贴图的渲染结果;

将各个所述渲染结果分别与对应的控制信息相乘,获得各matcap贴图带权重的渲染结果;

将各matcap贴图带权重的渲染结果相加,获得最终渲染信息;

将所述最终渲染信息渲染至屏幕。

优选地,所述控制信息的数值范围为0到1。

优选地,每张所述控制贴图均利用该控制贴图的r、g、b、a通道对所述matcap贴图进行控制,且每个通道控制一张所述matcap贴图。

优选地,所述matcap贴图的数量为m,对m开根号并向上取整得到数值k;;

将所有的多张所述matcap贴图进行排列组合,形成一张组合贴图,包括:

将第1张至第k张所述matcap贴图从左至右依次排列在第一行;将第k+1张至第2k张所述matcap贴图从左至右依次排列在第二行;依次类推至,将第(k-1)k+1张至第m张所述matcap贴图从左至右依次排列在第k行,如果m﹤k2,则使用空白贴图填补第k行中剩余的位置;上下相邻和左右相邻的两张所述matcap贴图和/或空白贴图之间紧邻。

优选地,对于第i张所述matcap贴图,组合之前的采样坐标为(x,y),组合之后的采样坐标为:

((x+a)/k,(y+b)/k);

其中,a=(i-1)%k,b=k-j,%为取余符号,j为对i除以k的结果向上取整得到的数值。

本发明另一方面提供了一种基于matcap贴图的角色渲染装置,包括:

matcap贴图制作模块,用于制作多张matcap贴图,每一张所述matcap贴图中均包含一种渲染信息;

组合模块,用于将多张所述matcap贴图进行排列组合,形成一张组合贴图;

渲染模块,用于依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至屏幕。

优选地,所述角色渲染装置还包括:

控制贴图制作模块,用于制作多张控制贴图,每张所述控制贴图控制一至四张所述matcap贴图,如果所述控制贴图的数量为n,则所述matcap贴图的数量为4n、4n-1、4n-2或4n-3,且所述matcap贴图的数量大于等于2,还用于获取各所述控制贴图的控制信息;

所述渲染模块还用于依次获得各个matcap贴图的渲染结果,将各个所述渲染结果分别与对应的控制信息相乘,获得各matcap贴图带权重的渲染结果,将各matcap贴图带权重的渲染结果相加,获得最终渲染信息,将所述最终渲染信息渲染至屏幕。

本发明第三方面提供了一种基于matcap贴图的角色渲染设备,包括处理器和与所述处理器连接的存储器,所述存储器存储有可被所述处理器执行的多条指令,所述指令被所述处理器执行,以使所述处理器能够执行上述的基于matcap贴图的角色渲染方法。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的基于matcap贴图的角色渲染方法。

本发明的有益效果是:本发明提供的一种基于matcap贴图的角色渲染方法、装置和设备,其方法通过制作多张matcap贴图,使得每一张所述matcap贴图中均包含一种渲染信息,从而将一种渲染信息扩展为多种渲染信息,并将所有的matcap贴图排列组合在一张贴图中,使用组合后的贴图采样坐标将多种渲染信息依次进行渲染,满足了角色在渲染过程中需要使用多种渲染信息的要求,最终使得角色渲染达到类似基于物理渲染的结果,得到渲染真实的高质量角色。而且该高质量角色渲染是通过多个matcap贴图实现的,无需复杂的计算,因此,具有高效性。

附图说明

图1是本发明提供的第一种基于matcap贴图的角色渲染方法流程示意图;

图2是本发明提供的第二种基于matcap贴图的角色渲染方法流程示意图;

图3是本发明提供的第三种基于matcap贴图的角色渲染方法流程示意图;

图4是包含一种渲染信息的matcap贴图示意图;

图5是使用图4的matcap贴图进行渲染得到的结果示意图;

图6是将四张matcap贴图排列组合后得到的贴图示意图;

图7是控制贴图示意图;

图8是采用本发明所使用的渲染方法得到的最终渲染结果示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

matcap是使用某种特定材质球贴图作为当前材质视图空间环境贴图进行渲染的一种方法。其中,所使用到的材质球贴图,一般是美术制作出的一个球体的渲染结果。因为渲染信息已经提前渲染在贴图中了,因此使用matcap渲染方法,渲染效率是非常高效的。不过这种渲染方法只能包含一种渲染信息,渲染结果比较单一,使得最终渲染不真实。

为了能让低端设备在角色渲染上有一个高效且良好的效果,像基于物理渲染那样可以表现环境和角色本身的多种渲染信息,达到类似基于物理渲染的结果,同时解决基于物理渲染的方法在移动平台上渲染开销比较大的问题,

本发明开发了一种基于matcap贴图的渲染方法。主要是对现有的matcap渲染方法中用到的matcap贴图进行拓展,从包含一个球体信息,变为包含多个球体信息,每一个球体信息均代表了某一个情况下的渲染信息。为了能够渲染高质量的角色,往往需要有多种渲染信息,而改进后的matcap渲染方法,由于使用到了多个球体,即包含多种渲染信息,因此能够满足在渲染过程中要使用到多种渲染信息的要求,可以表现环境和角色本身的多种渲染信息,达到类似基于物理渲染的结果,使得最终渲染比较真实。

如图1所示,本发明提供了一种基于matcap贴图的角色渲染方法,包括:

制作多张matcap贴图,每一张所述matcap贴图中均包含一种渲染信息;

将多张所述matcap贴图进行排列组合,形成一张组合贴图;

依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至屏幕。

在该方法中,通过制作多张matcap贴图,使得每一张所述matcap贴图中均包含一种渲染信息,从而将一种渲染信息扩展为多种渲染信息。

为了使得后续的渲染简单,将多张所述matcap贴图进行排列组合,形成一张组合贴图,依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至角色,比如,先采用组合贴图中的第一贴图的采样坐标将第一贴图中包含的渲染信息进行渲染,得到渲染结果c1,再采用第二贴图的采样坐标将第二贴图中包含的渲染信息渲染至屏幕,得到渲染结果c2,接着采用第三贴图的采样坐标将第三贴图中包含的渲染信息渲染至屏幕,得到渲染结果c3…,依此类推至最后一张贴图n,得到渲染结果cn,从而通过采用多张matcap贴图实现了多种信息的渲染,满足了角色在渲染过程中需要使用多种渲染信息的要求,最终使得角色渲染达到类似基于物理渲染的结果,得到渲染真实的高质量角色。

而且,在该方法中,虽然使用了多种渲染信息进行渲染,但是,该多种渲染信息是通过多个matcap贴图实现的,这些matcap贴图是美术制作出的球体的渲染结果,因为渲染信息已经提前渲染在贴图中了,所以,与可以实现高质量渲染的基于物理的渲染方法相比,无需复杂的计算,因此,该渲染方法具有matcap的高效性。

所以,采用本发明提供的上述方法,不仅可以实现角色和环境的高质量渲染,而且也可以实现高效渲染。

如图2所示,在本发明的一个优选实施方案中,制作多张matcap贴图之后,还包括:

制作多张控制贴图,每张所述控制贴图控制一至四张所述matcap贴图,如果所述控制贴图的数量为n,则所述matcap贴图的数量为4n、4n-1、4n-2或4n-3,且所述matcap贴图的数量大于等于2;

获取各所述控制贴图的控制信息;

依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至屏幕之后,还包括:

依次获得各个matcap贴图的渲染结果;

将各个所述渲染结果分别与对应的控制信息相乘,获得各matcap贴图带权重的渲染结果;

将各matcap贴图带权重的渲染结果相加,获得最终渲染信息;

将所述最终渲染信息渲染至屏幕。

该方法中,在制作多张matcap贴图的同时,还制作了多张控制贴图,其中,控制贴图的数量可以根据matcap贴图的数量确定,一张控制贴图最多可以控制四张matcap贴图,当制作两张至四张matcap贴图时,只需要制作一张控制贴图,当制作五张至八张matcap贴图时,需要制作两张控制贴图,依次类推。

其中,控制贴图用于控制matcap贴图中包含的渲染信息,控制信息可以通过数值进行表示,数值范围为0到1,数值越大表示被控制的渲染信息对最终渲染结果起的作用越大。

获取各控制贴图的控制信息,一个控制信息对应一张matcap贴图。

由于控制信息是用于对matcap贴图中包含的渲染信息的控制,即控制对应的matcap贴图中包含的渲染信息对渲染结果的作用大小,所以,matcap贴图中包含的渲染信息与对应的控制信息共同决定了渲染作用的大小。

因此,依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至屏幕之后,依次获得各个matcap贴图的渲染结果,将各个所述渲染结果分别与对应的控制信息相乘,获得各matcap贴图带权重的渲染结果;再将各matcap贴图带权重的渲染结果相加,获得最终渲染信息;最后将所述最终渲染信息渲染至屏幕,得到渲染结果。

所以,本发明实施例中,通过使用控制贴图对matcap贴图中包含的渲染信息进行控制,实现对不同渲染信息的控制,满足环境和角色渲染中对不同渲染信息造成的渲染结果所起作用的控制和选择,进一步提高渲染质量。

在本发明中,每张所述控制贴图均利用该控制贴图的r、g、b、a通道对所述matcap贴图进行控制,且每个通道控制一张所述matcap贴图。

为了使用多种渲染信息,制作了包含渲染信息的多张matcap贴图,为了使得渲染过程比较简单,本发明中,将多张matcap贴图排列组合,形成一张组合贴图,假设所述matcap贴图的数量为m,对m开根号并向上取整得到数值k;

按照如下方法将多张所述matcap贴图排列组合在一张组合贴图中:

将第1张至第k张所述matcap贴图从左至右依次排列在第一行;将第k+1张至第2k张所述matcap贴图从左至右依次排列在第二行;依次类推至,将第(k-1)k+1张至第m张所述matcap贴图从左至右依次排列在第k行,如果m﹤k2,则使用空白贴图填补第k行中剩余的位置;上下相邻和左右相邻的两张所述matcap贴图和/或空白贴图之间紧邻。

由于将所有的多张matcap贴图排列组合在一种贴图中,所以,在渲染过程中所使用的采样坐标也会发生改变。对于第i张所述matcap贴图,假设组合之前的采样坐标为(x,y),组合之后的采样坐标为:((x+a)/k,(y+b)/k);其中,a=(i-1)%k,b=k-j,%为取余符号,j为对i除以k的结果向上取整得到的数值。

在渲染过程中,所需要的渲染信息通常包括:漫反射渲染信息、高光反射渲染信息、金属度渲染信息和/或光滑度渲染信息。

如果渲染信息只包括漫反射渲染信息、高光反射渲染信息、金属度渲染信息和光滑度渲染信息这四种,如图3所示,一种基于matcap贴图的高效角色渲染方法,包括:

制作四张matcap贴图和一张控制贴图,一张所述matcap贴图中包含一种渲染信息,一张所述控制贴图的r、g、b、a通道分别控制一张所述matcap贴图中包含的渲染信息;

将四张所述matcap贴图排列组合,形成一张组合贴图;

获取所述控制贴图的r、g、b、a通道对其所控制的所述渲染信息的控制信息r、g、b、a;

依次获取所述组合贴图中各个matcap贴图的采样坐标,并使用所述采样坐标将对应的matcap贴图中的渲染信息渲染至屏幕,得到渲染结果c1~c4;

按照如下公式计算得到最终渲染信息c1*r+c2*g+c3*b+c4*a,并将所述最终渲染信息进行渲染。

其中,可以按照如下方法将四张所述matcap贴图排列组合在一张组合贴图中:

将第1张至第2张所述matcap贴图从左至右依次排列在第一行;将第3张至第4张所述matcap贴图从左至右依次排列在第二行;上下相邻和左右相邻的两张所述matcap贴图之间紧邻。

即四张所述matcap贴图可以分别依次按照左上,右上,左下,右下的位置排列在一起组成1张大贴图。其中,左上的贴图中包含第一个渲染信息,右上的贴图中包含第二个渲染信息,左下的贴图中包含第三个渲染信息,右下的贴图中包含第四个渲染信息。

对于四张所述matcap贴图,假设组合之前的采样坐标为(x,y),则组合之后第1张所述matcap贴图的采样坐标为:(0.5x,0.5y+0.5),第2张所述matcap贴图的采样坐标为:(0.5x+0.5,0.5y+0.5),第3张所述matcap贴图的采样坐标为:(0.5x,0.5y),第4张所述matcap贴图的采样坐标为:(0.5x+0.5,0.5y)。

即左上matcap贴图的采样坐标为:(0.5x,0.5y+0.5),右上matcap贴图的采样坐标为:(0.5x+0.5,0.5y+0.5),左下matcap贴图的采样坐标为:(0.5x,0.5y),右下matcap贴图的采样坐标为:(0.5x+0.5,0.5y)

当包括四张matcap贴图和一张控制贴图时,本发明所使用的基于matcap的角色渲染方法,首先会使用原有的采样坐标(x,y)对控制贴图进行采样,采样得到控制信息r、g、b、a;然后使用采样坐标(0.5x,0.5y+0.5)并按现有的matcap渲染方法,将第一张matcap贴图包含的渲染信息进行渲染得到结果c1,使用采样坐标(0.5x+0.5,0.5y+0.5)并按现有的matcap渲染方法,将第二张matcap贴图包含的渲染信息渲染至屏幕得到结果c2,使用采样坐标(0.5x,0.5y)并按现有的matcap渲染方法,将第三张matcap贴图包含的渲染信息渲染至屏幕得到结果c3,使用采样坐标(0.5x+0.5,0.5y)并按现有的matcap渲染方法,将第四张matcap贴图包含的渲染信息进行渲染得到结果c4;最后按照如下公式c1*r+c2*g+c3*b+c4*a计算得到最终渲染信息,并将所述最终渲染信息进行渲染。

下面通过具体的角色渲染对本发明提供的方法进行相关说明。

图5是使用图4的matcap贴图进行渲染得到的结果。可以看出整个角色不同的部分的渲染结果是类似的。如角色身上的材质包括盔甲金属,布料,皮革。在真实世界中,这些材质具有明显的区别,比较容易区分,像盔甲这类金属材质在光线的照射下会有更多的反光,但是采用图4进行角色渲染后,在图5中几种材质看上去都是同一种材质,无法很容易区分开来。所以,现有的matcap渲染方式只能表现单一材质的渲染,具有不真实性。

采用本发明提供的方法,首先美术制作了可以表现复杂环境的四张matcap贴图,并将该四张matcap贴图排列组合在一张贴图中(如图6),图6中左上角是一个被一束光照亮了的球贴图,其上半部分颜色亮,下半部分颜色暗,因此可以看出对于这个球贴图来说光照是从上方照射过来的,代表了角色在渲染时光照所产生的漫反射信息。右上角的球贴图,上半部分是模糊的天空,下半部分是模糊的地面,并且比较亮,这代表了角色在渲染时所需的高光反射信息,并且能够模糊的反射出周围环境。左下角的球贴图实际上在渲染中没有用到。右下角的球贴图,整体是黑色的,少量地方带有一点点灰色,这些灰色部分是为了让角色对应部位的渲染结果,增加一点亮度。即本发明中,使用图6所示的贴图中包含的渲染信息来模拟基于物理渲染所能表现出的漫反射、高光反射等信息。同时制作了一张控制贴图(如图7所示),该控制贴图用来控制角色身上布料,皮革,盔甲金属来产生不同的渲染结果。其中,左上角的球贴图主要用于角色身上布料和皮革的渲染,对应控制贴图的r通道,此时r通道中存储的数值需要比较大,因此控制贴图上有许多地方呈现红色(图中实际表现为连成片的灰色)。右上角的球主要用于是角色身上盔甲这类金属的渲染,对应控制贴图的g通道,此时g通道中存储的数值需要比较大,对应了控制贴图上呈现绿色的部分(图中实际表现为一块块的的灰色)。由于没有使用左下角的球,控制贴图中的b通道存储的数值都为0,因此控制贴图不会呈现出蓝色。右下角的球,整个角色都会用到,a通道的中存储的数值都为1,因此控制贴图中没有半透明的区域。

采用本发明所使用的渲染方法渲染得到的最终渲染结果如图8所示。对比图5和图8,可以看出,图8中角色表现出了复杂环境下,具有真实感的渲染表现。角色的不同部位也呈现出了不同的质感。比如,角色身上的盔甲是具有光泽的,这是由于盔甲这类金属材质具有更强的高光反射,会对周围环境中的光线产生更强的反射,因此会更亮。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明提供的一种基于matcap贴图的角色渲染方法、装置和设备,通过制作多张matcap贴图,使得每一张所述matcap贴图中均包含一种渲染信息,从而将一种渲染信息扩展为多种渲染信息,并将所有的matcap贴图排列组合在一张贴图中,使用组合后的贴图采样坐标将多种渲染信息依次进行渲染,满足了角色在渲染过程中需要使用多种渲染信息的要求,最终使得角色渲染达到类似基于物理渲染的结果,得到渲染高质量角色。而且该高质量角色渲染是通过多个matcap贴图实现的,无需复杂的计算,因此,具有高效性。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1