Unity在5.0版本升級了基於物理的着色器,能很大程度的提升遊戲開發者在寫實類遊戲中的畫面效果,可是在國內強力遊戲廠商都有自己的一套特殊渲染方式,比如知名的《崩壞3》。本篇文章就總結了博毅創爲教育集團在二次元渲染上的所有成就。
給大家推薦一個unity學習交流羣 點擊可以進入
1.Ramp Map
原理,講Dot(Normal,LightDirection)從(-1,1)的範圍重映射到(0,1)之間。使用重映射的值對貼圖進行採樣。Shader Forge實現如圖。除了在Dot(Normal,LightDirection)上可以採樣,我們還可以將邊緣光的值也納入考量,這樣就可以完整對一個2D貼圖進行採樣。
主要使用範圍。將漫反射從純粹的黑白變化到具有風格化感覺的貼圖上。
《軍團要塞2》
使用的Ramp Map
2.外輪廓線
使用特殊的Pass繪製一遍物體。這個Pass不進行背面剔除而是進行正面剔除。
ShaderForge實現
輪廓線繪製代碼
|
粘貼到subshader即可使用。
3.邊緣光RimLight
max(0,dot(viewDir, normal))^Strength在物體邊緣增加一層光效或用於對人物照明的補充。
Shader Forge實現
效果
4.Tone Based Shading
公式中α,β,Kblue,Kyellow,kd都是可調節參數。主要使用在接近插畫類的渲染中,用於創建過渡自然的場景,比如《紀念碑谷》一類的
- 日式賽璐璐着色
模擬日式賽璐璐畫法中陰影中的色彩和普通色彩分離的一個效果。色彩分爲高光部,亮部,影部三部分。
現在資料中,GUILTY GEAR Xrd算實現得最好的。片元着色器部分僞代碼如下
dark = dot(normal,lightDir)*AO*Shadow;
Color_shadow = Color_Light*ShadowAdjust;
LightTerm = dark<threshlod?Color_shadow:Color_Light;
Shadow來源於陰影貼圖,Color_Light來源於底色貼圖.ShadowAdjust來源於底色處於陰影環境中的調整。
完整Color =LightTerm+Specluar;
Specular使用標準的Blinn-phong光照模型。
博毅創爲VIP課程實踐中會將上述所有內容整合起來完成GGXRD中的二次元渲染