shader 圓形遮罩

2021-08-11 04:39:04 字數 1431 閱讀 7163

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