|
View previous topic :: View next topic
|
| Author |
Message |
Won
Joined: 21 Sep 2005 Posts: 506 Location: New York
|
| |
Posted: Sat Mar 15, 2008 3:07 am Post subject: Carmack: Sparse Voxel Octree |
 |
|
Thatcher sent me this at work:
http://pcper.com/article.php?aid=532
Unfortunately, it is in interview format, and not very technical. The gist is that Carmack wants megatextures to manage geometry, too (for static things like landscapes, at least). He mentions something about not having to worry about packing and borders, and 3D being more efficient than 2D, neither of which I understand without some important details. Anyway, maybe y'all know something more, or are capable of some deeper speculation.
No doubt, it will be abbreviated to "voxtree" at some point. Like, just now. |
|
| Back to top |
|
 |
Dave Moore
Joined: 23 Jan 2006 Posts: 125
|
| |
Posted: Sat Mar 15, 2008 5:36 am Post subject: |
 |
|
| Quote: | | I think that ray tracing in the classical sense, of analytically intersecting rays with conventionally defined geometry, whether they be triangle meshes or higher order primitives, I’m not really bullish on that taking over for primary rendering tasks which is essentially what Intel is pushing. |
Tom-splosion in 5 ... 4 ... 3 ... |
|
| Back to top |
|
 |
TomF
Joined: 18 Feb 2007 Posts: 107 Location: Seattle
|
| |
Posted: Sat Mar 15, 2008 6:09 am Post subject: |
 |
|
| Who is this fucking Carmack idiot, and why are they listening to anything Intel says? |
|
| Back to top |
|
 |
casey Site Admin
Joined: 18 Dec 2004 Posts: 1768 Location: Seattle
|
| |
Posted: Sat Mar 15, 2008 6:11 am Post subject: Re: Carmack: Sparse Voxel Octree |
 |
|
| Won wrote: | | Anyway, maybe y'all know something more, or are capable of some deeper speculation. |
I do remember Carmack talking about a voxel representation rendering prototype that he had done during one of his "retreats", which was when he would like disappear for a few weeks and work on code where no one could bother him
However I honestly don't remember any of the details. It was a really long time ago, like more than five years ago. But in the article he seemed to suggest he was digging up an old idea, so I'm guessing it's the same thing.
Anyway the gist of it was just that as you get to higher levels of detail, actual 3D geometry is obviously a bad way to store your data, and we've already moved away from that to some degree with displacement maps, which are a way of compressing 3D data by using a sparse 3D mesh to give structure to 2D data.
So I think his voxel thing is trying to get a bit further than that, and allow compression of more complex data than a 2D-mesh-plus-displacement-map, but with the same general goal in mind. So when he says "ray cast" into it, I think it might be better to read that as "traverse".
- Casey |
|
| Back to top |
|
 |
sean
Joined: 01 Feb 2005 Posts: 1392 Location: Kirkland WA
|
| |
Posted: Sat Mar 15, 2008 2:22 pm Post subject: |
 |
|
My considered opinion, after 5-10 years of fucking with this sort of thing in software, is that voxels are a total lose compared to texture-mapped triangles.
The screen display is 2D. Texture-mapped triangles are 2D. That means there is a really nice analytic correspondence between them that lets you do things like texture filtering.
Voxels are 3d, but the screen display is still 2D. If you do anything like splatting, you're fucked. If you treat each voxel as a little cube, it's now got a well-defined 2D shape and behavior, but it's still pretty painful to do anything analytic about the fact that your sample covers a little square on the screen (to a first approximation). You don't have the topological connectivity to adjacent voxels corresponding in a straightforward way to the screen; indeed, it's a mess just to think about three faces of the voxel facing the same sample. You can certainly do the math and get that right, but I'm not sure you've got a win over just have a quad or so covering the same area.
I'll be happy to be proved wrong, but I think you're just fucked. Voxels worked in Quake only because it was software rendered so it was already point-sampled textures anyway. |
|
| Back to top |
|
 |
Won
Joined: 21 Sep 2005 Posts: 506 Location: New York
|
| |
Posted: Sat Mar 15, 2008 4:19 pm Post subject: |
 |
|
Yeah, Carmack's statements on Intel don't really jive with my understanding of what Intel's actual goals are for Larrabee.
Another texture-filtering thing that came to mind re: voxels is that you can't actually do straightforward mip-mapping with them; it is view-dependent due to occlusion. Maybe you can solve this by somehow representing intermediate nodes with geometry, but that sounds like it is inviting a shitshow.
Wait, what do voxels have to do with Quake? |
|
| Back to top |
|
 |
casey Site Admin
Joined: 18 Dec 2004 Posts: 1768 Location: Seattle
|
| |
Posted: Sat Mar 15, 2008 4:36 pm Post subject: |
 |
|
| Quote: | | Wait, what do voxels have to do with Quake? |
I think Quake was the renderer era when Carmack originally did the experiment, if memory serves.
- Casey |
|
| Back to top |
|
 |
casey Site Admin
Joined: 18 Dec 2004 Posts: 1768 Location: Seattle
|
| |
Posted: Sat Mar 15, 2008 4:43 pm Post subject: |
 |
|
| sean wrote: | | My considered opinion, after 5-10 years of fucking with this sort of thing in software, is that voxels are a total lose compared to texture-mapped triangles. |
I don't know that he really means voxels though, which is what I was trying to say to Won. As you know, Carmack is not exactly a stickler for terminology.
Like, I could totally see him envisioning something like this but still calling it voxels for some reason.
- Casey |
|
| Back to top |
|
 |
Won
Joined: 21 Sep 2005 Posts: 506 Location: New York
|
| |
Posted: Sat Mar 15, 2008 5:06 pm Post subject: |
 |
|
| Oh I see, I didn't really know what to make of your "Carmackian raycast == octree traversal" comment at first. So you think he means sparse geometry images? Well, that gives you dense, implicit connectivity if you're dealing with a surface, but I don't think that extends cleanly to 3-D. But, if you are speaking by analogy, then I suppose it is possible. Maybe he's just talking about hardware-accelerated traversal and his definition of voxel is just different/misleading/wrong, like some atom of geometry? |
|
| Back to top |
|
 |
sean
Joined: 01 Feb 2005 Posts: 1392 Location: Kirkland WA
|
| |
Posted: Sat Mar 15, 2008 8:19 pm Post subject: |
 |
|
| Won wrote: | | Wait, what do voxels have to do with Quake? |
Distant objects in Quake were rendered as a pseudo point-cloud (render the vertices as points, recurse within triangles if the vertices aren't close enough to each other in screen space).
You can think of this as really sloppy triangle rendering, or you can think of it as a kind of voxel rendering.
| casey wrote: | | I don't know that he really means voxels though, which is what I was trying to say to Won. As you know, Carmack is not exactly a stickler for terminology. |
True to the latter, but everything he said was totally consistent with actually meaning voxels. "Totally unique geometry at the texel level", "less memory since you don't need to store coordinates", "bit operations", etc.
| Quote: | | Like, I could totally see him envisioning something like this but still calling it voxels for some reason. |
As I recall somewhere in that article he explicitly rejected tessellation+displacement-mapping. It seems like geometry images are really still just tesselation + displacement-mapping. Much more extreme displacement-mapping, since the displacemnts are "arbitrary", but you're not really saving any storage for the spatial coordinates, just the texture coordinates. |
|
| Back to top |
|
 |
billyzelsnack
Joined: 05 Jul 2005 Posts: 14
|
|
| Back to top |
|
 |
Won
Joined: 21 Sep 2005 Posts: 506 Location: New York
|
| |
Posted: Thu Mar 20, 2008 3:30 pm Post subject: |
 |
|
All graphics research lead to Ingo Wald and Hughes Hoppe, apparently.
The perfect hash stuff is cool, but I would imagine preprocessing is anathema to dynamic resource management.
I wonder how good hashing is for interactive purposes. Dealing with collisions can lead to some bad worst-case behavior (or poor space utilization or both), and doing any sort of chaining on the GPU seems rather distasteful. |
|
| Back to top |
|
 |
sean
Joined: 01 Feb 2005 Posts: 1392 Location: Kirkland WA
|
| |
Posted: Thu Mar 20, 2008 4:12 pm Post subject: |
 |
|
I think internal chaining/probing on the GPU is actually pretty reasonable on modern looping pixel shaders. If you have, say, a 90% chance of hitting on each probe, then it doesn't matter if some pixels take 3 or 4 probes; most still only take 1, and the massively parallel GPU should smooth things out pretty well.
That said, I don't see any use for it. |
|
| Back to top |
|
 |
icastano
Joined: 01 Jul 2007 Posts: 32
|
| |
Posted: Thu Mar 20, 2008 6:38 pm Post subject: |
 |
|
It's interesting their observation about coherent traversals:
| Quote: | We chose not to employ SIMD or packets. Given our focus on
large data, we would expect highly-variant scenes and at best modest
speedups from coherent techniques. Wald et al. [25] reported
little performance gains from coherent techniques on large data. |
Given that current GPU architectures have larger SIMD widths than CPUs, I wonder how well this octree traversal would map to the GPU. |
|
| Back to top |
|
 |
icastano
Joined: 01 Jul 2007 Posts: 32
|
| |
Posted: Thu Mar 20, 2008 10:28 pm Post subject: |
 |
|
| icastano wrote: | | Given that current GPU architectures have larger SIMD widths than CPUs, I wonder how well this octree traversal would map to the GPU. |
Oops, don't wonder anymore:
http://www.cs.utah.edu/~knolla/publications.html |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|