nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpq33sylpp8e2gpugvr5km08ee86q4l3u0f9hv0d6lcrcax7mksk22sva40t9 (nprofile…40t9) nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpqykddq7nmfd8cd0hupl8fnsmmuhtg55zusm6de4fjecmrhsx4x97qx8hm63 (nprofile…hm63) I might have used a depth buffer to do this - if you know the "levels" that the character can be at, you could break the background up into areas and render them properly ordered.
i.e. using a pre-rendered depth buffer to (build-time) break the background up into depth layers