element3ds.com
原创TA-Shader [Unity] 对《GGX》shader的分析
发布于
2018-3-16
47624
173
原创TA/Shader
Shader信息:
Shader类型: 角色 
工程信息: 仅展示 
使用的版本管线: -

您需要 登录 才可以下载或查看,没有账号?注册

x
此为初版,点击下面的链接查看完整版文章吧!

纯原创,谢绝转载

我加入了一些修订。

Guilty Gear Xrd的日漫风shader一直被看作是业内这方面的标杆。几年前看了GGX的制作人在GDC上讲他们的shader,我当时出于好奇就研究了一下日本的卡通shader。

GDC视频链接:https://www.youtube.com/watch?v=yhGjCzxJV3E

先放张我在UE4里的还原图(模型是游戏里的,我只是做了material)。


Capture.JPG

我的实验(UE4)


gg.JPG

原作中的模型渲染效果(UE3)



一、贴图和轮廓线


左上为影贴图,右下为通常色贴图


通常色贴图:Diffuse,除眼睛外全为颜色平涂
影贴图(日漫shader独有,分一影色/二影色/等):GGX只有一影色贴图,开发者称其为SSS贴图,假次表面贴图,其代表的是暗部的色彩倾向,能够计算出某种材质被光透过的程度。通常使暗部皮肤偏红,衣料等偏蓝紫。在GGX中,阴部位的颜色通过SSS的信息和环境光信息做乘法得到。


ILM贴图


ILM贴图:


R通道



R通道:高光的进入倾向。金属和光滑部位的值稍大。影响高光的颜色。


G通道



G通道:影的倾向权重,假AO,下巴内侧、头和下巴结合处等。此阴影不受物理光影响。


B通道



B通道:高光的强度,与fresnel(本身须计算得出)的强度对比来决定。fresnel值越大,高光越强。影响高光的形状。


左图为a通道,右图为本村式线



通过本村线来调整模型上线的粗细


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)。然后把画风结构成配色,影和轮廓线。

GGX对这三者的处理有自己的思路,其中本村氏线是GGX所独创。由于是格斗类游戏,会出现大量特写镜头,抗锯齿的轮廓线发挥了决定性的作用。


最后分享一些能代表日本3DCG制作思路的图。3DCG的制作思路就是我2D怎么画我3D就怎么做... 其实就是这么回事。



日本人对分层渲染的理解...就是分层上色




日本人对shader的理解,流程步骤的不同取决于画风的不同...




不存在高端的算法,一个内积就够用了





参与人数 4 元素币 +127 活跃度 +139
还没有设置签名!您可以在此展示你的链接,或者个人主页!

使用道具 举报 登录

回复 <
JudgementAngel  发表于 2018-3-16 23:27:15  
2#
感谢分享
回复 收起回复
使用道具
千水凝冰  发表于 2018-3-19 12:41:52  
3#
看看好不好玩
回复 收起回复
使用道具
kyokula  发表于 2018-3-19 15:05:19  
4#
这个教程不错
回复 收起回复
使用道具
花裤衩啦啦啦  发表于 2018-3-19 15:21:33  
5#
感谢分享,这篇分析非常有帮助
回复 收起回复
使用道具
春雪  发表于 2018-3-19 16:23:00  
6#
感谢分享很不错
回复 收起回复
使用道具
情迷Michael  发表于 2018-3-19 17:21:47  
7#
多谢分享~!~!
回复 收起回复
使用道具
小川~  发表于 2018-3-19 19:07:54  
8#

多谢分享~!~!
回复 收起回复
使用道具
yeshengwu  发表于 2018-3-19 20:11:09  
9#
感谢分享
回复 收起回复
使用道具
Goku  发表于 2018-3-19 22:53:37  
10#
感谢分享!
回复 收起回复
使用道具
半桶水之2010  发表于 2018-3-20 06:50:33  
11#
支持一下
回复 收起回复
使用道具
qq_深蓝_Hjs  发表于 2018-3-20 07:01:39  
12#
回复 收起回复
使用道具
狠人BT  发表于 2018-3-20 08:21:27  
13#
回复 收起回复
使用道具
21395717  发表于 2018-3-20 08:25:02  
14#
请收下膝盖
回复 收起回复
使用道具
0点  发表于 2018-3-20 08:43:57  
15#
感谢分享!
回复 收起回复
使用道具
lanqiu2593  发表于 2018-3-20 09:02:11  
16#

不错的资源,谢谢分享
回复 收起回复
使用道具
追梦少年  发表于 2018-3-20 09:05:20  
17#

支持一下
回复 收起回复
使用道具
●v●粉粉猪  发表于 2018-3-20 09:17:50  
18#
回复 收起回复
使用道具
●v●粉粉猪  发表于 2018-3-20 09:18:05  
19#
回复 收起回复
使用道具
●v●粉粉猪  发表于 2018-3-20 09:18:13  
20#
回复 收起回复
使用道具

快来发表你宝贵的意见吧!

Aimetu 实名

通过了实名认证的内容创造者

  

主题
7
精华
2
超神
0
扩散
0
微金
0
智慧
0
余额
0
在线时间
152 小时

短杖 紫色药水 学徒法袍 元素铜币 长枪 火元素

快速回复 返回顶部 返回列表