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...