Shader 图形柔动效果

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y90o08u28/article/details/88031954

今天在shadertoy 上学到一个shader效果算法:

图形柔动效果;将shader拷贝到unity中可以测试效果。

loudong2loudong2

Shader "Unlit/Star"
{
    Properties
    {

    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag


            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
                float3 worldPos : TEXCOORD2;
            };

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.worldPos = v.vertex.xyz;
                o.uv = v.uv;
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                float2 uv = (i.worldPos.xy) / i.uv.x;
                float l = length(uv);
                float a = atan2(uv.y,uv.x) + 6.0 + _Time + 0.2*sin(l*10.0 - _Time * 100.0);
                float b = 1.256;
                float c = clamp((l*pow(cos(floor(0.5 + a / b)*b - a),40.0) - 0.1) / -0.005,0.0,1.0);
                float s = c * c*(3.0 - 2.0*c);
                float3 v = s * float3(0.9,0.9,0.0)*(1.0 - l * 3.0);

                return fixed4(v, 1.0);
            }
            ENDCG
        }
    }
}
 

猜你喜欢

转载自blog.csdn.net/y90o08u28/article/details/88031954
今日推荐