Shader "Avatar SDK Move/Samples/Studio Floor"
{
    SubShader
    {
        Tags { "RenderType"="Opaque" "RenderPipeline"="UniversalPipeline" }
        Pass
        {
            Tags { "LightMode"="UniversalForward" }
            HLSLPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
            #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
            struct v2f { float4 pos:SV_POSITION; float3 world:TEXCOORD0; };
            v2f vert(float4 vertex:POSITION)
            {
                v2f o; o.world=TransformObjectToWorld(vertex.xyz); o.pos=TransformWorldToHClip(o.world); return o;
            }
            half4 frag(v2f i):SV_Target
            {
                float r=length(i.world.xz);
                float glow=exp(-r*r*0.27);
                float3 c=lerp(SRGBToLinear(float3(.11,.15,.18)),float3(.025,.045,.055),glow);
                float2 grid=abs(frac(i.world.xz*2+0.5)-0.5);
                float lines=1-smoothstep(0.003,0.012,min(grid.x,grid.y));
                c+=lines*0.009*glow;
                #if defined(_MAIN_LIGHT_SHADOWS_SCREEN)
                    float4 shadowCoord=ComputeScreenPos(TransformWorldToHClip(i.world));
                #else
                    float4 shadowCoord=TransformWorldToShadowCoord(i.world);
                #endif
                Light key=GetMainLight(shadowCoord);
                c*=lerp(0.35,1.0,key.shadowAttenuation);
                return half4(c,1);
            }
            ENDHLSL
        }
    }
}
