<spshader>
    <shader-info name="kartDirt" fallback-shader="solid" use-tangents="Y"/>
    <first-pass vertex-shader="sp_pass.vert"
        fragment-shader="sp_kart_dirt.frag"
        skinned-mesh-shader="sp_skinning.vert">
    <prefilled-textures>
            <prefilled-texture name="g_dirt_albedo" file="gfx_kartDirt_a_Albedo.png"
                 srgb="Y" sampler="trilinear"/>
            <prefilled-texture name="g_dirt_normal" file="gfx_kartDirt_a_Normal.png"
                 sampler="trilinear"/>
    </prefilled-textures>
    </first-pass>
    <shadow-pass vertex-shader="sp_shadow.vert"
        fragment-shader="white.frag"
        skinned-mesh-shader="sp_skinning_shadow.vert">
    </shadow-pass>
    <uniform-assigners>
        <uniform-assigner name="layer"
        function="shadowCascadeUniformAssigner"/>
        <uniform-assigner name="dirt_factor"
            function="dirtFactorUniformAssigner"/>
    </uniform-assigners>
</spshader>
