It is too funny! Is the computer version of a diorama. Is an unlimited-detail-orama.
Before giving the zest of the explanation of JX, let’s thinks: do you ever saw a totally artificial construction which, when you look at it, it tricks your mind to believe you look at an actual, vast piece of landscape, full of infinite detail? Yes, right? This is a serious thing, actually, it poses a lot of questions about how much can be compressed the 3D visual experience of a mind boggling huge database of 3D points.
Indeed, JX explains that his UD type algorithm has two parts:
- indexing: start with a database of 3D points, like a laser scan. Then, produce another database of cubemaps centered in a net of equally spaced “centerpoints” which cover the 3D scene. The cubemaps are done at screen resolution, obtained as a projection of the scene on a reasonably small cube centered at the centerpoint. You may keep these cubemaps in various ways, one of these is by linking the centerpoint with the visible 3D points. Compress (several techniques suggested). For this part of the algorithm there is no time constraint, it is done before the real-time rendering part.
- real-time rendering: input where the camera is, get only the points seen from closest centerpoint, get the cubemap, improve it by using previous cubemaps and/or neighbouring cubemaps. Take care about filling holes which appear when you change the point of view.
Now, let me show you this has been done before, in the meatspace. And even more, like animation! Go and read this, is too funny:
- The Daguerre Dioramas. Here’s (actually an improved version of) your cubemap JX: (image taken from the linked wiki page)
- But maybe you don’t work in the geospatial industry and you don’t have render farms and huge data available. Then you may use a Myriorama, with palm trees, gravel, statues, themselves rendered as dioramas. (image taken from the linked wiki page)
- Would you like to do animation? Here is it, look at the nice choo-choo train (polygon-rendered, at a a scale)
(image taken from this wiki page)
Please, JX, correct me if I am wrong.