unity 遮罩,用mask 試了試 沒啥效果,於是上網找了關於shader遮罩的部落格。效果還不錯。
圓形裁剪。
步驟:
// upgrade note: replaced 'mul(unity_matrix_mvp,*)' with 'unityobjecttoclippos(*)'
shader "unlit/circle"
_mask("base (rgb)", 2d) = "white" {}
_color("tint", color) = (1,1,1,1)
_stencilcomp("stencil comparison", float) = 8
_stencil("stencil id", float) = 0
_stencilop("stencil operation", float) = 0
_stencilwritemask("stencil write mask", float) = 255
_stencilreadmask("stencil read mask", float) = 255
_colormask("color mask", float) = 15
[toggle(unity_ui_alphaclip)] _useuialphaclip("use alpha clip", float) = 0
} subshader
stencil
cull off
lighting off
zwrite off
ztest[unity_guiztestmode]
blend srcalpha oneminussrcalpha
colormask[_colormask]
pass
; fixed4 _color;
struct v2f
; sampler2d _maintex;
sampler2d _mask;
v2f vert(a2v i)
fixed4 frag(v2f i) : color
endcg
} }}
2.遮罩
除了圓形區域,其它地方是透明的,是為了用透明度和原圖進行混合
3.新建材質
4.新建
shader 圓形遮罩(NG UI)UGUI沒試過
shader圓形遮罩有四個指令碼,其它三個主要用於 panel下支援裁剪 問題firstshader unlit transparent colored subshader pass offset 1,1 blend srcalpha oneminussrcalpha cgprogram pragm...
shader學習之路 紋理遮罩
遮罩可以保護某些區域,使他們免於某些修改。例如 模型表面某些區域反光強烈一些,而某些區域弱一些,或者用於混合多張紋理 流程 通過取樣得到這招紋理的紋理素值,然後使用其中某個 或某幾個 通道的值來與某種表面屬性進行相乘,這樣,當該通道的值為0時,可以保護表面不受該屬性的影響。總而言之,使用遮罩紋理可以...
Unity實用Shader之遮罩層
在unity中很多時候會用到遮罩層,如minnmap 鈕等 這裡貼上相關的shader 和注釋 shader shaderdemo masklayer 目標,即需要被遮罩的 masklayer culling mask 2d white 混合的,設定為白色的,任何顏色與白色混合,其顏色不變 cuto...