4
$\begingroup$

I'm wondering what is the best way to achieve an effect like here: https://matterport.com/try/ when the camera is traveling between points in space.

Apart from simple color crossfade there seems to be some sort of perspective reprojection giving the illusion of movement.

Any idea how to do this? All data I have is environment cube maps with color + linear depth at each pixel (so I can reconstruct view space position).

$\endgroup$
  • $\begingroup$ Have you tried tessellating the environment map and associating depth with each vertex? Then crossfading as you move from one point to the other. $\endgroup$ – Daniel M Gessel Mar 3 '16 at 15:43
3
$\begingroup$

It looks to me like they have a coarse polygon model of the room, and texture the model by projecting the cubemaps onto it. The model seems to include the rough shapes of the walls and furniture, but not fine details such as table legs, door handles or items on shelves. When the camera moves, the geometry gives you more-or-less-correct parallax, and the crossfade between cubemaps updates the textures.

You can also see the model clearly when the walkthrough first loads. Note that the camera starts outside of the house, letting you see the whole thing (much as you'd see a game level if you noclip the camera outside it), then it moves the camera into the living room. You can also get back to this view by selecting "Dollhouse" in their toolbar.

Their model may have been constructed by an artist, but in your case if you have depth information in the cubemaps, it's probably possible to programmatically extract some geometry from them and stitch the cubemaps together to form a coherent model. I don't know much about that subject, though.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.