Unity制作二次元材质角色
回到目录
大家好,我是阿赵。
开始制作二次元角色材质之前,我觉得应该是先分析一下,我手上拿到的这个角色模型资源,总共有哪些信息是我们能用的。
所以这篇文章我不会分享具体的Shader,但我感觉是所有思路的开始,可以明白整个模型的资源构成和作用。觉得没有作业抄的朋友可以跳过这一篇文章了。
首先,我拿到了这个已经蒙皮完成的网格模型
然后有这几张贴图
接下来通过简单的shader来读取一下这些模型信息,逐一分析一下:
1、顶点颜色
顶点颜色其实有很重要的作用,他的每一个通道都可以代表一种信息。所以很多比较规范的模型,都会烘焙顶点颜色。所以我也打算看看这个模型的顶点颜色是怎样的。于是写一个简单的shader获取一下顶点的Color,然后在片段着色器返回。
结果有点失望,这个模型没有烘焙顶点颜色。
如果我重新制作这个模型,那么顶点色一般有些什么作用呢?
一般来说,我觉得一些和顶点程序相关的参数,可以设置在顶点色的各个通道里面。然后一些可以使用逐顶点渲染的颜色,也可以保存在顶点色里面。
比如说:
1.顶点色AO
可以简单烘焙一下模型的AO贴图,然后记录在顶点色上,那么在渲染角色的时候,可以给模型简单增加一个拐角阴影
2.描边的粗细程度
同一个模型,他不同的部位,有可能需要描边的粗细会不一样,比如脸部的描边我们希望是细一点,甚至没有的,大腿、武器等的部位可能需要描边稍微粗一点。如果只能靠在Shader里面声明一个变量来定义粗细,很难做到不同部位不一样。但如果通过顶点色的某个通道去定义,我们就可以做到每个部位的描边粗细不一样。
3.顶点偏移值
有些情况,我们需要某些部位在渲染的时候发生一些改变,比如顶点沿着摄像机方向的Z轴做一个拉近或者拉远。这种情况也是多用于描边,有些部位不想出现描边,所以就把描边的模型往后推一点。这个计算是在顶点程序的,所以值只能记录在顶点颜色。
既然原来的模型没有带顶点烘焙颜色,我也只是在每天晚上下班后深夜11点到12点之间有时间才做个demo写写文章,也没太多时间去处理原始模型,所以只能放弃掉上面说的几个效果了。有时候想,如果不用加班多好。
2、顶点法线
由于没有法线贴图,那么我们接下来所有的光照模型计算,都是基于模型的顶点法线了。
从总体上来看,这个角色的法线还算正常,
不过从细节看,脸部的法线似乎不那么平整。这个估计是需要特殊处理一下。
3、基础贴图
这里的基础贴图,有baseMap和sssMap为一套,身体一套,武器一套。
这是baseMap的效果
这是sssMap的效果
很明显,这个是用于做光影时的颜色的,baseMap是亮部颜色,而sssMap是暗部颜色。
4、ILM贴图
ILM贴图一般是用于表达细节光照效果的,每一个通道代表的含义都不一样。所以我们要逐个通道去看,他究竟是什么。
R通道:
G通道:
B通道:
A通道:
通过上面的分析,可以看到这张ILM贴图,非常的有意思,他不同的通道想表达的信息是不一样的,甚至还有一个通道是线条。具体ILM贴图的作用,之后会专门写文章去分析。
5、细节贴图
细节贴图看起来只是一些补充的描线。我个人感觉这个描线如果并不是彩色的,只是黑白而已,是可以合并到其他贴图作为一个通道,单独用一张贴图有点浪费。当然了,其实细节贴图有时候是有颜色的,那样就只能单独一张贴图了。
6、贴花贴图
这个贴花贴图比较特别,之前的贴图都是对应部位的,比如身体一套贴图,武器一套贴图。但贴花贴图是整个模型一起的。他是通过了对模型展UV2来实现的。所以我这里也是通过了uv2去采样这张贴花贴图来得到正确的效果。
可以看出来,这张贴图是给模型补充一些花纹用的。
到这里为止,模型的大致情况已经分析完了,能用的信息也比较清楚了。那么在下一篇文章,就可以开始真正的动手做材质了。