Unity常用渲染設置

一.Tags(標簽)
通過使用tags來告訴渲染引擎在什么時候該如何渲染他們所期望的效果。注意的是,SubShader和Pass兩個地方的Tags的不同.
除了內置標簽被統一,你可以使用你自己的標簽和使用Material.GetTag函數查詢它們。
1.)SubShader Tags
1.”Queue”標簽。定義渲染順序。預制的值為
(1)”Background”。值為1000。
(2)”Geometry”。值為2000。大部分物體在這個隊列。不透明的物體也在這里。這個隊列內部的物體的渲染順序會有進一步的優化(應該是從近到遠,early-z test可以剔除不需經過FS處理的片元)。
(3)”AlphaTest”。值為2450。已進行AlphaTest的物體在這個隊列。 物體都是按空間位置的從遠到近進行渲染。
(4)”Transparent”。值為3000。透明物體。
(5)”Overlay”。值為4000。比如鏡頭光暈。
(6)用戶可以定義任意值,比如”Queue”=”Geometry+10”
天空盒在所有不透明物體和所有透明物體之間渲染.實體先前往后,透明先后往前

  1. “RenderType”標簽。Unity可以運行時替換符合特定RenderType的所有Shader。Camera.RenderWithShader或者Camera.SetReplacementShader配合使用。Unity內置的RenderType包括:
    (1)”Opaque”:絕大部分不透明的物體都使用這個;
    (2)”Transparent”:絕大部分透明的物體、包括粒子特效都使用這個;
    (3)”Background”:天空盒都使用這個;
    (4)”Overlay”:GUI、鏡頭光暈都使用這個;
    (5)還有其他可參考Rendering with Replaced Shaders;用戶也可以定義任意自己的RenderType字符串。
    3.”ForceNoShadowCasting”,值為”true”時,表示不接受陰影。
    4.”IgnoreProjector”,值為”true”時,表示不接受Projector組件的投影。
  2. "DisableBatching "="True" 關閉了批處理
    https://docs.unity3d.com/Manual/SL-SubShaderTags.html
    2.)Pass Tags
    LightMode 標簽定義了光照觀點中的pass的任務。查閱render pipeline了解更多細節。這些標簽很少手動使用。常用的shader 需要與光照進行互動的Shader寫成表面著色器 然后在去關聯那些細節
    除最重要的ForwardBase、ForwardAdd外,這里需額外提醒的Tag取值可包括:
    1.Always,永遠都渲染,但不處理光照。
    2.ShadowCaster,用于渲染產生陰影的物體。
    3.ShadowCollector,用于收集物體陰影到屏幕坐標Buff里。
    二.Alpha Test (透明度測試)
    Clip(float4 x) 任何給定參數的任何一個分量是負數,舍棄像素
void Clip(float4 x)
{
if(any(x<0))
discard
}

三.Blend(混合)
Blend Off: Turn off blending (this is the default)
Blend SrcFactor DstFactor: 開啟混合,并設定混合因子,源顏色 * SrcFactor + 目標顏色 * DstFactor
Blend SrcFactor DstFactor, SrcFactorA DstFactorA: 和上面的類似,只是使用了不同的混合因子來混合透明通道
BlendOp Op: 取代加,可以選擇不同的混合方式
BlendOp OpColor, OpAlpha: Same as above, but use different blend operation for color (RGB) and alpha (A) channels.

Blend factors 混合因子總共有十種可選類型
One 值為1,使用此因子來讓幀緩沖區源顏色或是目標顏色完全的通過。
zero 值為0,使用此因子來刪除幀緩沖區源顏色或目標顏色的值。
SrcColor 使用此因子為將當前值乘以幀緩沖區源顏色的值
SrcAlpha 使用此因子為將當前值乘以幀緩沖區源顏色Alpha的值。
DstColor 使用此因子為將當前值乘以幀緩沖區目標顏色的值。
DstAlpha 使用此因子為將當前值乘以幀緩沖區目標顏色Alpha分量的值。 OneMinusSrcColor 使用此因子為將當前值乘以(1 -幀緩沖區源顏色值) OneMinusSrcAlpha 使用此因子為將當前值乘以(1 -幀緩沖區源顏色Alpha分量的值) OneMinusDstColor 使用此因子為將當前值乘以(1 –目標顏色值)
OneMinusDstAlpha 使用此因子為將當前值乘以(1 –目標Alpha分量的值)

Blend operations :
Add Add source and destination together.
Sub a - b
RevSub b - a
Min Use the smaller of source and destination.
Max Use the larger of source and destination.
例如:BlendOp Min
https://docs.unity3d.com/Manual/SL-Blend.html

三.ZTest 和ZWrite(深度測試和深度寫入)

ZWrite On | Off 默認是打開狀態,假如深度測試通過,則可以把當前像素的z值寫入深度緩沖,當然也可以不寫入(ZWrite Off).
ZTest ,深度測試;LEqual ,小于等于.即 當前像素的深度值 <= 深度緩沖區,深度測試通過.

ZTest Less | Greater | LEqual | GEqual | Equal | NotEqual | Always , ZTest Off 等同于 ZTest Always。Never 像素總是不通過

四.Stencil Buffer&Stencil Test(模板緩沖和模板測試)
stencil與顏色緩沖區和深度緩沖區類似,模板緩沖區可以為屏幕上的每個像素點保存一個無符號整數值(通常的話是個8位整數)。這個值的具體意義視程序的具體應用而定。在渲染的過程中,可以用這個值與一個預先設定的參考值相比較,根據比較的結果來決定是否更新相應的像素點的顏色值。這個比較的過程被稱為模板測試。模板測試發生在透明度測試(alpha test)之后,深度測試(depth test)之前
每個片元都需要通過模板測試和深度測試,才能顯示到屏幕上.

stencil{
Ref referenceValue //設定參考值referenceValue,這個值將用來與模板緩沖中的值進行比較。referenceValue是一個取值范圍位0-255的整數。
ReadMask readMask //設定掩碼值
WriteMask writeMask //寫入模板緩沖時進行掩碼操作
Comp comparisonFunction
Pass stencilOperation
Fail stencilOperation
ZFail stencilOperation
}

if(referenceValue&readMask comparisonFunction stencilBufferValue&readMask)
通過片元

Comp,Pass,Fail 和ZFail將會應用給背面消隱的幾何體(只渲染前面的幾何體),除非Cull Front被指定,在這種情況下就是正面消隱的幾何體(只渲染背面的幾何體)。你也可以精確的指定雙面的模板狀態通過定義CompFront,PassFront,FailFront,ZFailFront(當模型為front-facing geometry使用)和ComBack,PassBack,FailBack,ZFailBack(當模型為back-facing geometry使用)

1.comparisonFunction
  Less | Greater | LEqual | GEqual | Equal | NotEqual | Always 和深度測試類似

2.stencilOperation
Keep 保留當前緩沖中的內容,即stencilBufferValue不變。
Zero 將0寫入緩沖,即stencilBufferValue值變為0。
Replace 將參考值寫入緩沖,即將referenceValue賦值給stencilBufferValue。

IncrSat stencilBufferValue加1,如果stencilBufferValue超過255了,那么保留為255,即不大于255。
DecrSat stencilBufferValue減1,如果stencilBufferValue超過為0,那么保留為0,即不小于0。
Invert 將當前模板緩沖值(stencilBufferValue)按位取反
IncrWrap 當前緩沖的值加1,如果緩沖值超過255了,那么變成0,(然后繼續自增)。
DecrWrap 當前緩沖的值減1,如果緩沖值已經為0,那么變成255,(然后繼續自減) 。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,882評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,208評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,746評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,666評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,477評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,960評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,047評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,200評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,726評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,617評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,807評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,327評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,049評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,425評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,674評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,432評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,769評論 2 372

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,781評論 18 139
  • 探花深迷人, 碎步草不驚。 乘風歸香去, 卻是造化人。
    北溟爵士小喵閱讀 211評論 0 3
  • 生活中,每個人都有自己的社交圈。即使都知道時間是寶貴的,大多數人依舊選擇浪費著自己的生命。沒有幾個人能夠有勇氣過濾...
    李粨閱讀 5,642評論 0 4
  • 一 很多人不喜歡相親,感覺相親就是一場交易。但是不得不承認,在這個生活節奏快速的時代,相親還是比較靠譜的。一場相親...
    90后女秀才閱讀 247評論 0 0
  • 今天我和小一萬站在陽臺上吃了這頓飯。房間堆滿了行李。 晚上扔了好多房間里留下的東西,可是空間就那么小。怎么搞都還是擁擠。
    007寫了自己的生活閱讀 729評論 15 10