[筆記](méi)莊懂的技術(shù)美術(shù)入門(mén)(十二)
1.Dota2

a.貼圖資源分析

Color:控制基礎(chǔ)顏色

MetalnessMask:金屬度貼圖,區(qū)別金屬部分和非金屬部分

Normal:法線貼圖

RimMask:邊緣光強(qiáng)度圖,控制邊緣光效果

SelfillumMask:自發(fā)光遮罩圖,與Color貼圖的顏色一起使用

SpecularExponent:高光指數(shù)圖,與SpecularPow配合使用,為了產(chǎn)生高光的不均勻性

SpecularMask:鏡面反射遮罩,可理解為高光強(qiáng)度圖

TintByBaseMask:表示高光顏色受到物體影響的程度,顏色越暗,表示影響越大。顏色是否會(huì)和物體本身的顏色混合,因?yàn)榻饘俚母吖夥瓷涫菐в凶约旱念伾?,而非金屬的高光顏色基本上都是黑白?/p>
Translucency:透明度貼圖

Cubemap:環(huán)境高光采樣

DiffuseWarp:漫反射的Ramp圖

FresnelWarpColor:目前Shader里沒(méi)有實(shí)際用途,應(yīng)該是兩種DiffuseWarp的插值Mask

FresnelWarpRim:輪廓光用Fresnel

FresnelWarpSpec:鏡面反射用Fresnel

b.資源優(yōu)化

c.光照模型分析


漫反射顏色:根據(jù)金屬度貼圖進(jìn)行插值,金屬度越高,顏色越淡
高光顏色:根據(jù)TintByBaseMask對(duì)顏色進(jìn)行處理,金屬部分為暗色,其余部分為亮色
根據(jù)高光染色的值對(duì)基礎(chǔ)顏色和half3(0.3,0.3,0.3)進(jìn)行插值,0.3是個(gè)經(jīng)驗(yàn)值,即皮膚的亮度
PBR的情況下:入射光為白色的情況下,非金屬反射的光應(yīng)該為黑白灰。這里食人魔皮膚的顏色帶點(diǎn)藍(lán)色,它不是金屬,也有一點(diǎn)點(diǎn)染色。即高光染色的值不為0


根據(jù)半蘭伯特對(duì)DiffWarp采樣,因?yàn)槭枪治锼曰旌弦恍┧{(lán)紫色Ramp到Diff里

specPow*_SpecPow是根據(jù)貼圖對(duì)高光進(jìn)行更加靈活的放縮
?高光和蘭伯特做了一個(gè)乘法相當(dāng)于是漫反射弱的地方高光也會(huì)變?nèi)?br>
然后根據(jù)漫反射和菲涅爾高光取一個(gè)最大
再根據(jù)最后的高光值乘以鏡面反射顏色再乘以主光顏色得到最后值

這里把環(huán)境光強(qiáng)度的參數(shù)去掉,因?yàn)榄h(huán)境光強(qiáng)度可以通過(guò)顏色來(lái)調(diào)節(jié)

菲涅爾加高光取最大的結(jié)果還需要做一個(gè)遮罩*SpecInt

輪廓光做了一個(gè)法線方向取向上的遮罩


代碼:

最后Shader不僅僅是在Unity里能用就完事了,它需要在各個(gè)平臺(tái)上兼容,在其它各個(gè)軟件上也能有正確的美術(shù)表現(xiàn),比如3DMax,Maya,Substance
2.透明剪切


3.雙面顯示

4.開(kāi)源Shader

