分享

Unity學習筆記_Z-Fighting

TianZhang
·Jan 17
Unity學習筆記_Z-Fighting
什麼是Z-Fighting ? What is Z-Fighting?
Unity在算圖的過程中會3D物件會轉換成平面影像呈現在畫面上。而3D轉2D的過程往往會進行深度測試,辨別物件的前後(遮擋)關係,決定要將像素填入什麼色彩 ,(而這也類似現實世界我們用眼睛所看到的現實狀況),而我們在物件之間的面過於接近時,因精確度不足而導致辨別混淆,導致兩個面爭相顯示在畫面上,進而導致閃爍的狀況產生。
Unity Z-Fighting解決方式 Fix Unity Z-Fighting
1. 直接將兩個物體分開
最簡單有效的方法,且能解決大部分產生Z-Fighting的狀況,,就是拉大緊貼面之間的距離,使前後關係能被正確地辨別出來。或是在不移動模型的情況下,對重疊面設定Z Offset(Z偏移量)
2.增加相機Camera屬性裡near clipping plane & 減少 far clipping plane
減少Clipping Planes有助於幫助深度測試的精準不會被浪費
3.強制目標物件永遠渲染在頂端
將目標物件 著色器(Shader)內的屬性 ZTest(設定深度測試時使用的函式)關閉,會讓他去忽略計算Camera的深度,而只根據渲染的順序進行渲染(渲染順序也可以在著色器內設定)
更多資料參考:
How To Fix Unity Z-Fighting With Multiple Solutions
3D渲染中的Z-fighting现象
【3D】深度測試與 Z fighting
Z-fighting
分類:學習

各位日安,我是TianRy,來自雲林,資訊工程系畢業,在2021年03月被野放到台灣社會,資工系讀得很混,所以不敢自稱是資工人,略懂程式設計,平常喜好看美劇打遊戲看迷因,目前致力於Unity製作,繁體中文化Unity筆記,迷因翻譯

評論
上一篇
  • Data Mining Final Exam:四位人選中誰在PTT最受定居外國鄉民歡迎?其中的網路聲量又是誰最高?
  • 下一篇
  • Unity筆記_Triggers & Collisions In Unity
  • 更多文章
    載入中... 沒有更多了