一、贴图和轮廓线
左上为影贴图,右下为通常色贴图
通常色贴图:Diffuse,除眼睛外全为颜色平涂
影贴图(日漫shader独有,分一影色/二影色/等):GGX只有一影色贴图,开发者称其为SSS贴图,假次表面贴图,其代表的是暗部的色彩倾向,能够计算出某种材质被光透过的程度。通常使暗部皮肤偏红,衣料等偏蓝紫。在GGX中,阴部位的颜色通过SSS的信息和环境光信息做乘法得到。
ILM贴图
ILM贴图:
R通道:高光的进入倾向。金属和光滑部位的值稍大。影响高光的颜色。
G通道:影的倾向权重,假AO,下巴内侧、头和下巴结合处等。此阴影不受物理光影响。
B通道:高光的强度,与fresnel(本身须计算得出)的强度对比来决定。fresnel值越大,高光越强。影响高光的形状。
a通道:物体内部的线条。GGX贴图采用独特的uv分布方式(本村式线),其原理在于用垂直的黑线来表示内部黑线,从而防止45度线导致的近视角线段锯齿情况的发生。
“请务必记住本村式线这个概念,后面会讲到”
GGX里的高光是要用非物理思维去理解的。在日漫中,不论是高光还是阴影要表现的都不是物理光的模拟,而是形体和材质的塑造。高光在日漫里出现在形状凹凸明显和材质发生改变的边缘地带。
物体外部线条通常用backface culling/hull shader的方法做,GGX用了vertex painting的方法使外部线条可以有粗细变化。
GGX中vertex color的应用:
R通道:判断阴影的阈值对应的Offset。1是标准,越倾向变成影子的部分也会越暗(接近0),0的话一定是影子。ILM里G通道(AO)的遮罩率系数。
G通道:对应到Camera的距离,轮廓线的在哪个范围膨胀的系数
B通道:轮廓线的Z Offset 值。背面膨胀在z轴(远近轴)上的系数。
a通道:轮廓线的粗细系数。0.5是标准,1是最粗,0的话就没有轮廓线。
可以看出。R,B通道控制轮廓线的有无;G,a通道控制轮廓线的粗细。
二、Softimage流程,顶点法线与影子
左图为一般形式的法线,右图为3DCG流程中调整过后的法线
面部:通过美术的手调产出满足多角度观看的美观阴影分布。要用到XSI(Softimage)的插件User Normal Translator。为了方便观看效果,需用cgfx语言做出实时shader,与ue蓝图效果一致。
除脸部的其他部位:用Maya做出简单几何体,Mesh>Transfer Attributes,enable only vertex normals,将顶点法线信息转移至目标部件上。
影子:美观的阴影用简化的模型替代原模型影子得到。
三、UE4中的设置
GGX shader
模型构成:
模型组:主模型(unlit),轮廓线模型(有更多方法做轮廓线),影子模型
材质构成:
GGX shader,轮廓线,发光物体,Logo
collection parameter在蓝图中的设置
光:UE4和UE3的光照系统变化很大,其实光向量在UE4中很好自定义。做一个collection parameter,把你要的光向量放进去就行了。
四、GGX流程中的UV和Logo
3DCG流程中,模型的UV一般都很难看(不仅GGX是这样,塞尔达也这样)
下方的UV shell为了抗锯齿用到了本村氏线的做法挤压成了上方这样的方块
当时制作本村氏线的UV要花很大的精力,然而我最近看到Maya 2018出了个新功能,叫做Straighten UV,可以一键把UV上的顶点排在一条直线上。这个功能美国PBR流程用来展头发的UV,日本3DCG看来是要用到制作本村线上了。
logo
值得一提的是,logo和发光材质是通过额外的两张贴图来表现的,由于不是按照本村线UV来制作logo,所以logo是不抗锯齿的。所以本村线这个技术本身是有局限性并且费时费力的。
崩坏3中只用到了ILM贴图中的RGB通道,而没有为了轮廓线制作本村线要用到的a通道
国内公司早想到这一层,所以崩坏3的贴图UV还是按一般的办法展的,毕竟手游也不在乎抗锯齿。
五、总结
我看了U3D日本峰会上关于卡通shader的讲座,感觉和GGX在思路上基本一致。日式卡通shader对美术要求高,对技术要求低。在搭建shader制作流程的时候,首先想到的是画风(囧rz)。然后把画风结构成配色,影和轮廓线。日本人对shader的理解,流程步骤的不同取决于画风的不同...