shader 圓形遮罩(NG UI)UGUI沒試過

2021-07-29 14:36:17 字數 3221 閱讀 7605

shader圓形遮罩有四個指令碼,其它三個主要用於 panel下支援裁剪 問題
first
shader "unlit/transparent colored"	}	

subshader

pass

offset -1, -1

blend srcalpha oneminussrcalpha

cgprogram

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

sampler2d _maintex;

float4 _maintex_st;

;struct v2f

;fixed4 frag (v2f in) : color

endcg

} }subshader

pass

offset -1, -1

colormask rgb

blend srcalpha oneminussrcalpha

colormaterial ambientanddiffuse

settexture [_maintex]

}}}

second

shader "hidden/unlit/transparent colored 1"

} subshader

pass

colormask rgb

blend srcalpha oneminussrcalpha

cgprogram

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

sampler2d _maintex;

float4 _cliprange0 = float4(0.0, 0.0, 1.0, 1.0);

float2 _clipargs0 = float2(1000.0, 1000.0);

;struct v2f

;half4 frag (v2f in) : color

endcg

} }subshader

pass

colormask rgb

blend srcalpha oneminussrcalpha

colormaterial ambientanddiffuse

settexture [_maintex]

}}}

third

shader "hidden/unlit/transparent colored 2"

} subshader

pass

colormask rgb

blend srcalpha oneminussrcalpha

cgprogram

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

sampler2d _maintex;

float4 _cliprange0 = float4(0.0, 0.0, 1.0, 1.0);

float4 _clipargs0 = float4(1000.0, 1000.0, 0.0, 1.0);

float4 _cliprange1 = float4(0.0, 0.0, 1.0, 1.0);

float4 _clipargs1 = float4(1000.0, 1000.0, 0.0, 1.0);

;struct v2f

;float2 rotate (float2 v, float2 rot)

half4 frag (v2f in) : color

endcg

} }subshader

pass

colormask rgb

blend srcalpha oneminussrcalpha

colormaterial ambientanddiffuse

settexture [_maintex]

}}}

four

shader "hidden/unlit/transparent colored 3"

} subshader

pass

colormask rgb

blend srcalpha oneminussrcalpha

cgprogram

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

sampler2d _maintex;

float4 _cliprange0 = float4(0.0, 0.0, 1.0, 1.0);

float4 _clipargs0 = float4(1000.0, 1000.0, 0.0, 1.0);

float4 _cliprange1 = float4(0.0, 0.0, 1.0, 1.0);

float4 _clipargs1 = float4(1000.0, 1000.0, 0.0, 1.0);

float4 _cliprange2 = float4(0.0, 0.0, 1.0, 1.0);

float4 _clipargs2 = float4(1000.0, 1000.0, 0.0, 1.0);

;struct v2f

;float2 rotate (float2 v, float2 rot)

half4 frag (v2f in) : color

endcg

} }subshader

pass

colormask rgb

blend srcalpha oneminussrcalpha

colormaterial ambientanddiffuse

settexture [_maintex]

}}}

四個指令碼實現 ngui 下的圓形遮罩 ugui沒有試過可不可以,步驟是建立乙個材質球 用上邊這第乙個shader  在mask(rgb)中新增一張中間是圓形白色,四周是黑色的

這樣就可以實現了。

shader 圓形遮罩

unity 遮罩,用mask 試了試 沒啥效果,於是上網找了關於shader遮罩的部落格。效果還不錯。圓形裁剪。步驟 upgrade note replaced mul unity matrix mvp,with unityobjecttoclippos shader unlit circle ma...

shader學習之路 紋理遮罩

遮罩可以保護某些區域,使他們免於某些修改。例如 模型表面某些區域反光強烈一些,而某些區域弱一些,或者用於混合多張紋理 流程 通過取樣得到這招紋理的紋理素值,然後使用其中某個 或某幾個 通道的值來與某種表面屬性進行相乘,這樣,當該通道的值為0時,可以保護表面不受該屬性的影響。總而言之,使用遮罩紋理可以...

Unity實用Shader之遮罩層

在unity中很多時候會用到遮罩層,如minnmap 鈕等 這裡貼上相關的shader 和注釋 shader shaderdemo masklayer 目標,即需要被遮罩的 masklayer culling mask 2d white 混合的,設定為白色的,任何顏色與白色混合,其顏色不變 cuto...