Shader step関数を使う

 

今日は、step関数を使ってみます。

step関数は、step(t,x)という風に記述し、

x > t のときは return 1

x < t のtきは retutn 0 となります。

 

 fixed4 frag(v2f i) : SV_Target
            {
                return step(0.7, i.uv.x);
            }

と記述すると

なので

 

 

となります。

 

コード全体

Shader "Custom/Lesson12"
{
    Properties {}
    SubShader
    {
        Tags
        {
            "RenderType" = "Opaque"
        }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
             #include "UnityCG.cginc"

            struct v2f
            {
                float4 vertex : SV_POSITION;
                float4 position: TEXCOORD1;
                float2 uv : TEXCOORD0;
            };


            v2f vert(appdata_base v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.position = v.vertex;
                o.uv = v.texcoord;
                return o;
            }

            
            fixed4 frag(v2f i) : SV_Target
            {
                return step(0.7, i.uv.x);
            }
            
            ENDCG
        }
    }
}

 

 

 

 

参考

https://nn-hokuson.hatenablog.com/entry/2018/05/24/195206#%E7%B7%9A%E3%82%92%E5%BC%95%E3%81%8F