百人計劃學(xué)習(xí)筆記3.2——混合模式以及剔除
什么是混合模式
混合的定義:(lend)就是把兩種顏色混在一起。具體就是把某一像素位置原來的顏色和將要畫上去的顏色,通過杲種方式或者算法混在一起,從而實現(xiàn)新的效果。
假設(shè)我們需要繪制這樣一個場景:透過紅色的玻璃去看綠色的物體,那么可以先繪制綠色的物體,再繪制紅色玻璃。在繪制紅色玻璃的時候,利用“混合”功能,把將要繪制上去的紅色和原來的綠色進行混合,于是得到一種新的顏色。例如PS內(nèi)的圖片益加,正片益底,都屬于混合模式的一種。


最終顏色: Shader計算后的顏色值*源因子(SrcFactor) +累積顏色*目標因子(DstFactor)
累計顏色可以理解為渲染當前物體后面的顏色即GBuffer中的像素,比如你的背景,還有身后的物體。混合模式控制的就是源因子和目標因子,在腳本里會看到的就是:Blend SrcFactor DstFactor




常用混合及混合語法


常用五種——加、減、被減、取小、取大


blend on命令與blend命令混用語法,pass內(nèi)外效果有所不同


總結(jié)
1.Blend命令∶啟用混合會禁用GPU上的一些優(yōu)化(主要是隱藏表面去除Early-Z)這會導(dǎo)致GPU幀時間增加。
2.混合操作默認為Add。
3.如果使用BlendOp命令,則混合操作將設(shè)置為該值。
4.混合方程
finalValue = sourceFactor * sourceValue operation destinationFactor * destinationValuefinalValue:是GPU寫入目標緩沖區(qū)的值,即最終混合結(jié)果。
sourceFactor:在混合命令中定義,即源因子。
sourceValue :是片段著色器輸出的值,即當前Shader內(nèi)的輸出值。
operation:是混合操作,根據(jù)是否使用blend op決定。
destinationFactor:在混合命令中定義,即目標因子。
destinationValue:是目標緩沖區(qū)中已有的值,即目前的背景顏色或后面模型的顏色。
5.單獨的RGB和alpha混合與高級OpenGL混合操作不兼容。



unity常見混合方式








等等
剔除


結(jié)
1.開啟雙面渲染相當于繪制了兩次。
2.Clip函數(shù)在某些PowerVR的機型上效率很低。
3.面裁切Clip使用AlphaTest隊列
先弄筆記作業(yè)后續(xù)補上