Skip to main content Svelte Highlight v7.21.1

Unity ShaderLab language preview

1. A basic shader

properties, tags, and an embedded CGPROGRAM block
horizon-dark
Shader "Custom/Simple" {
    Properties {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Tint", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        Pass {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            float4 frag() : SV_Target {
                return float4(1, 0, 0, 1);
            }
            ENDCG
        }
    }
}
atom-one-dark
Shader "Custom/Simple" {
    Properties {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Tint", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        Pass {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            float4 frag() : SV_Target {
                return float4(1, 0, 0, 1);
            }
            ENDCG
        }
    }
}
github-dark
Shader "Custom/Simple" {
    Properties {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Tint", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        Pass {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            float4 frag() : SV_Target {
                return float4(1, 0, 0, 1);
            }
            ENDCG
        }
    }
}
dracula
Shader "Custom/Simple" {
    Properties {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Tint", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        Pass {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            float4 frag() : SV_Target {
                return float4(1, 0, 0, 1);
            }
            ENDCG
        }
    }
}
nord
Shader "Custom/Simple" {
    Properties {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Tint", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        Pass {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            float4 frag() : SV_Target {
                return float4(1, 0, 0, 1);
            }
            ENDCG
        }
    }
}
github
Shader "Custom/Simple" {
    Properties {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Tint", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        Pass {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            float4 frag() : SV_Target {
                return float4(1, 0, 0, 1);
            }
            ENDCG
        }
    }
}

2. Attributes and blend state

property attributes, Blend, and ZTest state
horizon-dark
Properties {
    [HideInInspector] _Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
    [Toggle] _UseFog ("Use Fog", Float) = 1
}

SubShader {
    Blend SrcAlpha OneMinusSrcAlpha
    ZWrite Off
    ZTest LEqual
    Cull Back
}
atom-one-dark
Properties {
    [HideInInspector] _Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
    [Toggle] _UseFog ("Use Fog", Float) = 1
}

SubShader {
    Blend SrcAlpha OneMinusSrcAlpha
    ZWrite Off
    ZTest LEqual
    Cull Back
}
github-dark
Properties {
    [HideInInspector] _Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
    [Toggle] _UseFog ("Use Fog", Float) = 1
}

SubShader {
    Blend SrcAlpha OneMinusSrcAlpha
    ZWrite Off
    ZTest LEqual
    Cull Back
}
dracula
Properties {
    [HideInInspector] _Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
    [Toggle] _UseFog ("Use Fog", Float) = 1
}

SubShader {
    Blend SrcAlpha OneMinusSrcAlpha
    ZWrite Off
    ZTest LEqual
    Cull Back
}
nord
Properties {
    [HideInInspector] _Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
    [Toggle] _UseFog ("Use Fog", Float) = 1
}

SubShader {
    Blend SrcAlpha OneMinusSrcAlpha
    ZWrite Off
    ZTest LEqual
    Cull Back
}
github
Properties {
    [HideInInspector] _Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
    [Toggle] _UseFog ("Use Fog", Float) = 1
}

SubShader {
    Blend SrcAlpha OneMinusSrcAlpha
    ZWrite Off
    ZTest LEqual
    Cull Back
}

3. HLSL surface shader

HLSLPROGRAM/ENDHLSL with multi_compile pragmas
horizon-dark
Pass {
    HLSLPROGRAM
    #pragma vertex vert
    #pragma surface surf Standard
    #pragma multi_compile _ _MAIN_LIGHT_SHADOWS

    struct Attributes {
        float3 positionOS : POSITION;
    };
    ENDHLSL
}
atom-one-dark
Pass {
    HLSLPROGRAM
    #pragma vertex vert
    #pragma surface surf Standard
    #pragma multi_compile _ _MAIN_LIGHT_SHADOWS

    struct Attributes {
        float3 positionOS : POSITION;
    };
    ENDHLSL
}
github-dark
Pass {
    HLSLPROGRAM
    #pragma vertex vert
    #pragma surface surf Standard
    #pragma multi_compile _ _MAIN_LIGHT_SHADOWS

    struct Attributes {
        float3 positionOS : POSITION;
    };
    ENDHLSL
}
dracula
Pass {
    HLSLPROGRAM
    #pragma vertex vert
    #pragma surface surf Standard
    #pragma multi_compile _ _MAIN_LIGHT_SHADOWS

    struct Attributes {
        float3 positionOS : POSITION;
    };
    ENDHLSL
}
nord
Pass {
    HLSLPROGRAM
    #pragma vertex vert
    #pragma surface surf Standard
    #pragma multi_compile _ _MAIN_LIGHT_SHADOWS

    struct Attributes {
        float3 positionOS : POSITION;
    };
    ENDHLSL
}
github
Pass {
    HLSLPROGRAM
    #pragma vertex vert
    #pragma surface surf Standard
    #pragma multi_compile _ _MAIN_LIGHT_SHADOWS

    struct Attributes {
        float3 positionOS : POSITION;
    };
    ENDHLSL
}