Shader描邊效果總結

這篇是總結篇,也不是什麼解析,就是爲了我自己到時候找的時候方便嘿嘿嘿~
添加鏈接描述(原文)

描邊效果的實現是,在正常模型的渲染狀態下,在模型外面擴展出一個描邊效果。總結下來就是有兩個pass,其中一個pass可以把另一個pass包住,想法是讓模型的形狀像外擴,因此是要在vert函數中進行更改。

v2f vert(appdata_full v)
			{
				v2f o;
				//在vertex階段,每個頂點按照法線的方向偏移一部分,不過這種會造成近大遠小的透視問題
				//v.vertex.xyz += v.normal * _OutlineFactor;
				o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
				//將法線方向轉換到視空間(*其實這個空間轉換我現在不是很明白。我之後會再開一個來解析一下*)
				float3 vnormal = mul((float3x3)UNITY_MATRIX_IT_MV, v.normal);
				//將視空間法線xy座標轉化到投影空間,只有xy需要,z深度不需要了
				float2 offset = TransformViewToProjection(vnormal.xy);
				//在最終投影階段輸出進行偏移操作
				o.pos.xy += offset * _OutlineFactor;
				return o;
			}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章