PhotoDome equirectilinear texture projected onto ground plane?

Here’s a challenge for you smart people …

Is it possible to project a PhotoDome equirectilinear texture onto a ground plane such that it still looks accurate (not distorted) from the camera position and roughly matches / joins up with the PhotoDome at the horizon? Here’s an illustration:

The idea behind this is to “anchor” any 3D objects within the PhotoDome on a ground plane so they can have their own real-time shadows and not look like they’re floating in a PhotoDome (no unrealistic parallax effect).

Here’s a PG

No brave souls yet? I guess this must be more challenging than I thought :smirk:

Even if possible, I don’t think the shadows will look “real” on this plane: some part of the plane will be darken by the shadow but not the “right” part because you don’t have enough data about the photodome to put the shadow at the right location (photodome is really only 6 planes). The photodome can represent anything 3D-wise, meaning that for a given position of a mesh in the scene, the shadow should be displayed at different locations on the plane for different photodome to looks ok.

Also, I fear that small deformations could be seen at the border between the plane and the photodome when moving the camera, because the plane can’t be subdivided infinitely: the u/v coordinates may be slightly off for the triangles at the transition (or at least during the interpolation between two vertices during the rasterization).

Yup like @Evgeni_Popov I am almost sure it won t look great :frowning: it is actually similar to cast shadows from environment lighting and I am not aware of any solution so far.

But in case you find a solution, please share :slight_smile:

Thanks @Evgeni_Popov and @sebavan.

I thought that I might be able to render photodome to texture from active camera then project rendered texture onto ground geometry from camera position and orientation, similar to how real-time shadows are generated (except they project from light point of view) as you say.

I’ll keep experimenting and report back if I have some success.

1 Like

Cross posting here as this solved a combination of challenges for me: