高斯模糊 UnityShader學習筆記複習

2021-10-13 10:12:22 字數 2280 閱讀 6500

using system.collections;

using system.collections.generic;

using unityengine;

//編輯器模式下可生效

[executeineditmode

]//繼承後效平台類判定的基類

public

class

guassianblurwang

:postprocessingwangbase

}///第一種簡單的直接模糊 並對快取的貼圖進行了雙向線性插值

//protected void onrenderimage(rendertexture source, rendertexture destination)

//// else

//

//}/// 第二種 加上各種引數進行計算

//protected void onrenderimage(rendertexture source, rendertexture destination)

//// else

//

// //迴圈外正式將buffer0渲染輸出到最終目標影象上 也就是螢幕上

// //思考: 在迴圈體外就宣告2個快取buffer0 和 buffer1的話, 是否就不用再處理buffer0了?

// graphics.blit(buffer0, destination);

// //最後再處理乾淨快取即可

// rendertexture.releasetemporary(buffer0);

// }

//}///第三種 嘗試下把buffer1拿出來 可以少做幾次快取更替

protected

void

onrenderimage

(rendertexture source,

rendertexture destination)

else

//迴圈外正式將buffer0渲染輸出到最終目標影象上 也就是螢幕上

//思考: 在迴圈體外就宣告2個快取buffer0 和 buffer1的話, 是否就不用再處理buffer0了?

//測試過後法線ok 不需要再迴圈體內再對buffer1額外申請快取分配最更替了能減少點**行數

graphics.

blit

(buffer0, destination)

;//最後再處理乾淨快取即可

rendertexture.

releasetemporary

(buffer0);}

}}

shader "tnshaderpractise/shaderpractise_gaussianblur_033"

_blursize(

"blursize",float)

= 1.0

}subshader

//cginclude endcg塊 可以將塊內的著色器 在不同的pass塊中宣告呼叫 呼叫時注意名稱

cginclude

#include "unitycg.cginc"

sampler2d _maintex;

float4 _maintex_texelsize;

float _blursize;

struct a2v ;

struct v2f ;

v2f verticalblur (a2v v)

v2f horizontalblur (a2v v)

fixed4 fragmentblur (v2f i):sv_target ;

//中心權重weight[0] 對應 0.4026

fixed3 sum

= tex2d(_maintex,i.uv[0]

).rgb*weight[0]

; //用for迴圈算中心左右和上下兩側的 因為公用乙個片元著色器所以寫一遍就好

//一開始腦子繞不清for迴圈 就手寫4條累加也可以 卷積操作實際沒有理解完整 先這麼記憶吧

for(int w=1; w<3;w++)

return fixed4 (sum,1);}

endcg

//後效處理 所以關閉深度檢測和深度寫入和遮擋提出

zwrite off ztest off cull off

pass

pass }

fallback "diffuse"

}

Unity Shader入門練習 高斯模糊

0x00 序言 unity shader入門練習 高斯模糊,本文是 unity shader入門精要 讀書筆記,最近接觸到專案中用到了模糊處理,經過查閱資料,發覺模糊處理是螢幕後處理技術中的一種,就從螢幕後處理技術開始學習。使用的unity版本 5.6.1f1 0x01 效果圖 0x02 基本概念 ...

Unity Shader 螢幕後效果 高斯模糊

高斯模糊是影象模糊處理中非常經典和常見的一種演算法,也是bloom螢幕效果的基礎。實現高斯模糊同樣用到了卷積的概念,關於卷積的概念和原理詳見我的另一篇部落格 通過高斯方程計算出的卷積核稱為高斯核,乙個5 5的高斯核對它進行權重歸一化如下 0.0030 0.0133 0.0219 0.0133 0.0...

Unity Shader 徑向模糊

最終效果 新建乙個unlitshader shader unlit radial level level range 1,100 50 centerx center.x range 0,1 0.5 centery center.y range 0,1 0.5 subshader pass struc...