Unity菜鳥開發紀要 2D描邊

2021-10-03 13:10:42 字數 955 閱讀 7477

3d模型的描邊漫天飛,通過法線計算就行,但是2d還是雖然也有,但不是自己想要的,畢竟只是想調一下顏色,閾值,邊緣大小就行。
之前是做影象處理的,用的波門處理,計算乙個畫素點與周圍的梯度值差異,大於閾值的就是邊緣點。求的邊緣點與邊緣色混合,再與原色混合輸出就可以。直接上**:

在這裡插入**片

shader "uieffect/outline"

_outlinewidth("outline width", range(0, 10)) = 3.0

_outlinecolor("outline color", color) = (1,1,0,1)

_thresholdend("outline threshold", range(0, 1)) = 0.25

_outlinesmoothness("outline smoothness", range(0, 1)) = 1.0

} subshader

cull off

zwrite off

lighting off

blend one oneminussrcalpha

pass ;

struct v2f

;sampler2d _maintex;

float _outlinewidth;

float4 _outlinecolor;

float4 _maintex_texelsize;

float _thresholdend;

float _outlinesmoothness;

fixed4 frag (v2f i) : sv_target

endcg

} }}

效果圖不貼了,不會貼上,直接複製**就能使用。建立乙個材質球,材質球放在image元件的material裡面即可。想要發光效果的,需要對邊緣色模糊處理,就是2d的邊緣泛光。

基礎shader之2d描邊

float radius 0.01 描邊的寬度 在shader中顏色的範圍是0.0 1.0,下面這樣設定顏色也沒有問題 只是有一點需要注意,就是臨近邊緣畫素他們的透明度可能會有不同,這個時候如果我們還是傳1.0過去,可能會導致顏色不是那麼綠,所以我使用了255.0 vec3 u outlinecol...

PS技巧 建立2D物件的描邊陰影

在本場景中,怪物死亡掉落寶袋。所以在玩家眼裡,寶袋是掉落在場景裡,而不是像其他介面的ui元素,懸浮在場景上的。所以,我們需要給寶袋新增陰影,增加它與場景之間的視覺過渡,比較簡單的辦法是使用陰影,正如我們在3d世界中,給物體新增陰影,讓其與地圖看起來更融合一樣。很明顯的,下圖有兩個寶袋,左邊乙個是沒有...

2D遊戲開發(2)

每次給遊戲新增新功能時,通常也會引入一些新設定。為了讓所有的設定進行統一管理,我們可以配置乙個名為 setting的模組,這個模組中包含乙個setting的類,用來儲存所有的設定。usr bin env python3.5 filename setting 儲存所有的設定 class setting...