渲染設定系列3 ZTest ZWrite

2021-08-18 13:44:50 字數 838 閱讀 9210

深度寫開關 zwrite,控制是否將來自物件的片元深度值 z 寫入深度緩衝,預設開啟。

如果繪製不透明物體,設定為 on (預設)

如果繪製半透明物體,設定為 off

半透明物體,它需要進行深度測試,然後進行alpha混合,但是不必對深度緩衝進行寫操作,否則半透明物體後邊的不透明物體看上去就是是被半透明物體「挖空」了,並且alpha混合應該也會受到影響

深度測試 ztest,

是為了使距離攝像機近的物體遮擋住距離攝像機遠的物體,確保場景看起來是正確的。

當片元寫入到幀緩衝之前,需要將待寫入的片元的深度值z 與深度緩衝區對應的深度值進行比較測試,只有測試成功才會寫入幀緩衝

預設情況都會進行深度測試,lequal(預設),實現距離攝像機近的物體遮擋住距離攝像機遠的物體。(深度值z小於或等於深度緩衝區對應的深度值的片元,寫入幀緩衝

深度測試模式 (與深度緩衝中的對應z值進行對比) ztest ***

lequal ,小於等於,預設情況

less、greater、gequal、equal、notequal (一般導致顯示不正確)

always ,總是渲染,相當於關閉深度測測試

深度寫入,將片元深度值z寫入到深度緩衝,

這裡的片元,應該是說 開啟深度寫開關的那些物體中,經過深度測試,片元深度值z 與深度緩衝中的數值進行對比,如果滿足條件,才會寫入。

渲染設定系列1 LOD

subshader 指定的 lod 數值,如果 lod 大於 shader 類的 maximumlod 則不能使用這個 subshader來渲染。所以這個 lod 設定,是和指令碼共同使用的。shader 類 api頁面 unity 內建的著色器都有 lod 分級 其實不用理這個 lod分級 對應值...

渲染設定系列4 AlphaTest

alphatest alpha 測試,是阻止片元被寫到螢幕上的最後機會。在最終渲染出的顏色被計算出來之後,可以通過將顏色的透明度,和乙個固定值進行比較。如果該顏色 的透明度 alpha,滿足條件,則通過測試,繪製此片元 否則丟棄此片元,不進行繪製。一般用的時候也會需要一張帶 alpha通道的 紋理貼...

渲染設定系列5 Blend

打回重寫 混合模式 決定如何將計算結果 片元 輸出到幀緩衝。一般對計算產生的顏色 alpha來和其他東西進行混合 常用來繪製透明 半透明 鏤空物體 源因子 目標因子 混合模式操作指令 說明blend off 關閉混合 預設情況?是不是這個?blend 源因子 目標因子 計算產生的顏色和源因子相乘,然...