Unity中二次元渲染算法總匯
Unity在5.0版本升級了基于物理的著色器,能很大程度的提升游戲開發(fā)者在寫實(shí)類游戲中的畫面效果,可是在國內(nèi)強(qiáng)力游戲廠商都有自己的一套特殊渲染方式,比如知名的《崩壞3》。本篇文章就總結(jié)了博毅創(chuàng)為教育集團(tuán)在二次元渲染上的所有成就。
1.Ramp Map
原理,講Dot(Normal,LightDirection)從(-1,1)的范圍重映射到(0,1)之間。使用重映射的值對貼圖進(jìn)行采樣。Shader Forge實(shí)現(xiàn)如圖。除了在Dot(Normal,LightDirection)上可以采樣,我們還可以將邊緣光的值也納入考量,這樣就可以完整對一個(gè)2D貼圖進(jìn)行采樣。
?
主要使用范圍。將漫反射從純粹的黑白變化到具有風(fēng)格化感覺的貼圖上。
?
《軍團(tuán)要塞2》
使用的Ramp Map
?
?
2.外輪廓線
使用特殊的Pass繪制一遍物體。這個(gè)Pass不進(jìn)行背面剔除而是進(jìn)行正面剔除。
ShaderForge實(shí)現(xiàn)
?
輪廓線繪制代碼

粘貼到subshader即可使用。
3.邊緣光RimLight
max(0,dot(viewDir, normal))^Strength在物體邊緣增加一層光效或用于對人物照明的補(bǔ)充。
Shader Forge實(shí)現(xiàn)
?
效果
?
4.Tone Based Shading
?
????
公式中α,β,Kblue,Kyellow,kd都是可調(diào)節(jié)參數(shù)。主要使用在接近插畫類的渲染中,用于創(chuàng)建過渡自然的場景,比如《紀(jì)念碑谷》一類的
?
?
?
5.?日式賽璐璐著色
模擬日式賽璐璐畫法中陰影中的色彩和普通色彩分離的一個(gè)效果。色彩分為高光部,亮部,影部三部分。


