3D reconstruction from projections

Thinking back at that post about volume reconstruction from sprite depth, I start to feel that there is actually a bigger and better use for cube projections, than just reducing data.

It is possible to reconstruct a complete image from multiple depth mapped projection as each of them contains 3D data.One way to do it is to project every point from every projection into the 3D space effectively forming a point cloud, however it is also possible to render them directly using ray casting a transformed ray trough all projections.

This is something I want to test after I’m done with university, one thing that is cool about the idea is that if the projections are cube based only the front 3 faces of the cube need to be considered. Hence reducing the amount of computation by half.

I can tell a few limitation to this approach even from now – it is going to have hard time with concave objects and self-occlusion, it will not work well with transparency and for operations on the 3D data multiple projections have to be considered. One challenge in particular would be the problem of how to fill up holes in concave regions.

It however would have many advantages as well… technically it is a compromise between volume and polygon graphics – it allows complex 3 dimensional shapes to be defined without the need to model them with triangles (just like volumes) but also only contain surface data (just like polygons).

A few terms that might be useful when looking for related literature:

  • Digital Evaluation Model (DEM) – mainly used with terrain height mapping
  • Displacement mapping – applying per pixel 3D deformations to polygons

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s