国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

Unity shader實現遮罩效果

2020-01-24 00:08:15
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Unity shader實現遮罩效果的具體代碼,供大家參考,具體內容如下

效果:


shader代碼:

Shader "Custom/Mask" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {}//目標圖片,即需要被遮罩的圖片 _MaskLayer("Culling Mask",2D) = "white"{}//混合的圖片,設置為白色的圖片,任何顏色與白色混合,其顏色不變 _Cutoff("Alpha cutoff",Range(0,1)) = 0 } SubShader { Tags {   "Queue"="Transparent"  }//渲染隊列設置為 以從后往前的順序渲染透明物體 Lighting off //關閉光照 ZWrite off //關閉深度緩存 Blend off //關閉混合 AlphaTest GEqual[_Cutoff] //啟用alpha測試 Pass{  SetTexture[_MaskLayer]{combine texture}//混合貼圖  //混合貼圖,previous為放置在前一序列這樣在進行AlphaTest的時候會以這個圖片為主來進行混合  SetTexture[_MainTex]{combine texture,previous} }  }}

新建一個材質球,然后將目標圖片和遮擋圖片賦予一下,即可看到效果

小編再為大家分享另一段代碼:Unity shader無鋸齒遮罩效果,忘記作者名字了,感謝這位朋友的分享。

這個Shader可以用于UGUI制作頭像框遮罩,沒有鋸齒,非常nice

Shader "Custom/CircleMask" {  Properties {    _MainTex ("MainTex", 2D) = "white" {}    _MaskTex ("MaskTex", 2D) = "white" {}    [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5    //MASK SUPPORT ADD    _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    //MASK SUPPORT END  }  SubShader {    Tags {      "IgnoreProjector"="True"      "Queue"="Transparent"      "RenderType"="Transparent"    }    //MASK SUPPORT ADD    Stencil    {      Ref [_Stencil]      Comp [_StencilComp]      Pass [_StencilOp]      ReadMask [_StencilReadMask]      WriteMask [_StencilWriteMask]    }    ColorMask [_ColorMask]    //MASK SUPPORT END    Pass {      Name "FORWARD"      Tags {        "LightMode"="ForwardBase"      }      Blend SrcAlpha OneMinusSrcAlpha      ZWrite Off      CGPROGRAM      #pragma vertex vert      #pragma fragment frag      #define UNITY_PASS_FORWARDBASE      #include "UnityCG.cginc"      #pragma multi_compile_fwdbase      #pragma only_renderers d3d9 d3d11 glcore gles      #pragma target 3.0      uniform sampler2D _MainTex; uniform float4 _MainTex_ST;      uniform sampler2D _MaskTex; uniform float4 _MaskTex_ST;      struct VertexInput {        float4 vertex : POSITION;        float2 texcoord0 : TEXCOORD0;      };      struct VertexOutput {        float4 pos : SV_POSITION;        float2 uv0 : TEXCOORD0;      };      VertexOutput vert (VertexInput v) {        VertexOutput o = (VertexOutput)0;        o.uv0 = v.texcoord0;        o.pos = UnityObjectToClipPos( v.vertex );        return o;      }      float4 frag(VertexOutput i) : COLOR {////// Lighting:        float4 _MainTex_var = tex2D(_MainTex,TRANSFORM_TEX(i.uv0, _MainTex));        float3 finalColor = _MainTex_var.rgb;        float4 _MaskTex_var = tex2D(_MaskTex,TRANSFORM_TEX(i.uv0, _MaskTex));        return fixed4(finalColor,_MaskTex_var.a);      }      ENDCG    }  }  FallBack "Diffuse"}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瓮安县| 辽阳市| 萨嘎县| 泽库县| 武隆县| 南和县| 阿拉善左旗| 万载县| 上栗县| 漾濞| 大邑县| 英吉沙县| 哈密市| 香港 | 九龙坡区| 巩留县| 黑河市| 普宁市| 镇坪县| 乐陵市| 邵东县| 文登市| 隆回县| 汝州市| 庆安县| 印江| 宁陵县| 屯门区| 高要市| 郓城县| 临江市| 宁明县| 大荔县| 贵德县| 安塞县| 安吉县| 五常市| 聂荣县| 昆山市| 白水县| 连江县|