The user shader specifies a custom argument structure for varying data between the vertex and fragment stages. This is unlikely to, and definitely not guaranteed to work correctly without a custom vertex shader function that appropriately sets the data (e.g., the `.ray` member of the varying structure will not be set by any built-in vertex function supplied by a Unity render pipeline)