扭曲 unity Unity刀光拖尾特效的一些總結

2021-10-14 17:04:49 字數 1901 閱讀 3825

刀光的拖尾至少有三個層次:最亮的高光(帶輝光)、刀光的主體以及乙個拖尾的效果,用來形成一種殘影的感覺。如果有需要還可以增加扭曲,粒子的飛濺,擊中物體的閃光等等效果。所以基本的形式可能是這樣的:

很容易感覺到,這三者只是貼圖不同和粒子的時間曲線不同而已,但還是有值得講一下的地方,主要是有兩個問題:進入的那零點幾秒需要刀光劃過的感覺,中後段需要有刀光從後往前消散的感覺。

第乙個問題最容易想到的辦法是旋轉這個刀光的載體模型,但其實是行不通的,因為問題的本質不是旋轉,而是高光要在開頭從後往前顯示,所以這兩個問題可能還是要從著色器的角度解決。

fixed4 frag (v2f f) : sv_target

fixed distortion = tex2d(_distortiontex,f.uv_dist).r*distortion_uv;

//to satorate the slash

fixed satoration = distortion*time*_diststrength*(time+1.0);

col.a = col.a>satoration?1:0;

//to partly distorte the color alpha

col.a *= col.a*tex2d(_distortiontex,f.uv_dist).r*f.color.a;

//fade in

if(time<_fadein>

//bloom

col.rgb = col.rgb*f.color.rgb*_emission;

//soft particle

#ifdef softparticles_on

float scenez = lineareyedepth (sample_depth_texture_proj(_cameradepthtexture, unity_proj_coord(f.projpos)));

float partz =f.projpos.z;

float fade = saturate ( _fadestrength*(scenez-partz));

col.a *= fade;

col.rgb = pow(col.rgb,2.2);

#endif

return col;

}

這裡面高光進入的效果如下:

//fade in 

if(time<_fadein>

由_fadein決定進入的總時間的長短,由_fadeindirection決定進入的方向(因為別的效果還需要反向顯示= =),通過不同位置的畫素(uv決定),決定它的透明度大小。當時間越早,radio越小,啥也看不見,時間越接近_fadein,ratio越大,整個高光主體都能顯示出來。兩者之間的比例由fade_in_adj基於畫素位置調節。最後的效果像這樣:

高光果然還是要加輝光才行

可以感覺到開頭一瞬間這種刀光劃過的感覺出來了。

接著是這裡的淡出消散的問題,最主要是有一種雲霧消散的感覺。其實也很簡單,雜訊消散,按時序從後往前增加消散的強度,再畫一張雲霧感覺的貼圖就行了。

上文所述的貼圖

不要懷疑自己的眼睛,就是這麼醜。不過不要緊,其實畫成什麼樣都可以,只要有邊上的須須供我們消散即可。

音訊的一些特效

在做音訊處理的時候,難免要對採集到的聲音做一些處理。這就是為什麼錄音聽起來那麼的怪 但卻是最真實的原始聲音 聽著那麼的舒服。那麼我們就看看這些效果的功能 如果不加混響,聲音會發乾,非常不舒服。現在我們所聽到的 大部分都是經過混響處理的。除非你是一定想要那種天然的完全沒處理過的 毛聲 加了混響之後便於...

linux shell script 的一些總結

獲得本機inet ip sbin ifconfig eth0 grep inet addr sed s addr g sed s bcast.g 刪除空白行 cat etc man.config grep man sed s g sed d egrep與grep egrep grep e egrep...

關於Spring Data Rest的一些總結

最近一直在開發一些基於 spring data rest 的專案。在此過程中,隨著開發工作的不斷深入,對 spring data rest 的了解也越來越深。享受著 spring data rest 帶來的便捷,也忍受著它帶來的不便。spring data rest 的目標是提供堅實的基礎,從而使用...