radial blur 閱讀筆記

2021-08-21 22:26:58 字數 1632 閱讀 7942

效果圖:

就是這種有點像彗星拖尾的效果,且這個方向是指向螢幕**的,當然也可以修改。

**著色器:

作者@oosmoxiecode,參考的也是 iq大神

這裡直接注釋iq的**了,都差不多。oos 就是寫的可讀性更高一些。

void mainimage( out

vec4 fragcolor, in

vec2 fragcoord )

col = col * 3.5 / 64.0;

fragcolor = vec4( col, 1.0 );

}

oos 則加了乙個限制條件,只有畫素顏色值高於某個閾值才拿來做顏色疊加,因此白色的部分會有更強的效果,暗色的就沒有:

uniforms: ,

"tmap": ,

"steps": ,

"strength": ,

"expo": ,

"threshold": ,

"center": ,

},

"uniform float steps;",

"uniform float strength;",

"uniform float expo;",

"uniform float threshold;",

"uniform sampler2d tdiffuse;",

"uniform sampler2d tmap;",

"uniform vec2 center;",

"varying vec2 vuv;",

"void main() else ",

"res = smoothstep(0.0,1.0,res);",

"total += w*res;",

"w *= strength;", // strength < 1, w 逐漸減小

"s += d;", // 沿放射方向,從vuv到螢幕中心

"}",

"total /= steps;",

//"gl_fragcolor = vec4( total*expo, 1.0);",

"vec3 dif = texture2d( tdiffuse, vuv).xyz;",

"gl_fragcolor = vec4( mix(total*expo, dif*2.0, 0.5), 1.0);",

//"gl_fragcolor = vec4( total*expo, 1.0);",

"}"

這個程式的思路可以想象為,每個畫素朝著螢幕中心看一段距離(由 for 的次數決定),如果看到的範圍內有符合

(res.x > threshold || res.y > threshold || res.z > threshold)
的畫素,就拿來作為當前著色畫素的乙個疊加的顏色。關鍵是要記住 gpu程式都是處理單個畫素的,每次只能為當前著色的畫素處理顏色。

很顯然center不一定是中間位置。利用這個可以更靈活地做效果。

閱讀任務 閱讀筆記 4

功能驅動的設計 1 構造總體模型 2 構造功能列表 3 制定開發計畫 4 功能設計階段 5 實現具體功能 軟體測試按目的分類 1 功能測試 2 非功能測試 軟體測試的各種方法 1 單元測試和 覆蓋率測試 2 構建驗證測試 3 驗收測試 4 探索式的測試 5 回歸測試 6 場景 整合 系統測試 7 夥...

閱讀筆記 2006 01

請您尊重您的價值,因為它已經得到了社會的認可。當你貶低或破壞您的價值時,就等於貶低或破壞整個行業在這個社會的價值。無論在什麼時候,自己都應該尊重自己的價值,而不能因為一時的困境而貶低和破壞了自己的價值,因為你的破壞之舉,將傷害到整個行業的價值乃至社會的規則。因為,唯有懂得尊重自己的價值的人,才能真正...

25 211(840) 閱讀筆記

傳輸通道rach特點 存在衝突風險 使用開環功控。物理通道通過載頻 擾碼 通道化碼 起始時間定義,對於上行通道,還包括相對相位 0或p 2 上行dpch為i q碼復用。fbi bits提供從ue到網路的反饋資訊,以用於閉環傳送分集。上行dpch可以使用多碼,這種情況下,多個並行的dpdch使用不同的...