u3d无锯齿遮罩shader-可用于ugui

简介: 图片.png图片.png// 遮罩shaderShader "Custom/CircleMask" { Properties{ _MainTex("MainTex", 2D) = "white" ...
img_cc74c83db76e86932bb1f54b63a4389c.png
图片.png

img_af15bb53f71cba7f7e1b6b25f801124a.png
图片.png
// 遮罩shader

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"
}
相关文章
|
3月前
ThreeJs给物体添加贴图
这篇文章详细说明了在Three.js中如何给3D物体添加贴图,并展示了实现局部贴图的技术和方法。
160 1
ThreeJs给物体添加贴图
|
3月前
Cesium给物体添加贴图
这篇文章讲解了在Cesium中如何为3D模型添加贴图,并提供了具体的实现步骤和代码示例。
166 2
|
5月前
|
存储 编解码 算法
第5章-着色基础-5.4-锯齿和抗锯齿
第5章-着色基础-5.4-锯齿和抗锯齿
44 1
|
7月前
|
图形学
【实现100个unity特效】shader实现3D物品闪光和描边效果
【实现100个unity特效】shader实现3D物品闪光和描边效果
109 0
|
7月前
|
图形学
【实现100个unity特效之2】使用shader和shader Graph实现2d图片描边效果(附源码)
【实现100个unity特效之2】使用shader和shader Graph实现2d图片描边效果(附源码)
361 0
【Three.js入门】纹理及其常用属性、透明纹理、环境遮挡贴图与强度
【Three.js入门】纹理及其常用属性、透明纹理、环境遮挡贴图与强度
559 0
|
前端开发
自定义View 绘制 ,范围裁切,几何变换
自定义View 绘制 ,范围裁切,几何变换
自定义View 绘制 ,范围裁切,几何变换
SwiftUI—使用渐变提高视觉的冲击力:绘制线性渐变
SwiftUI—使用渐变提高视觉的冲击力:绘制线性渐变
254 0
SwiftUI—使用渐变提高视觉的冲击力:绘制线性渐变
|
前端开发 数据可视化
threejs 贴图动画总结
threejs 贴图动画总结

热门文章

最新文章