Sign in to follow this  
wcassella

Why are voxels more efficient than polygons?

Recommended Posts

wcassella    841

I recently watched this video, and while I found the concept interesting I'm still really not clear on what makes voxels so much more efficient than polygons. The artistic implications are pretty neat (voxels are undoubtedly a more flexible modeling medium than polygons. I'm not sure if they're flexible in a way games could actually make much use of, but that's another question), but how is describing a model as a set of cubes more efficient than describing it as a set of triangles?

 

The general consensus seems to be that you can put a lot more voxels onto the screen than polygons (though I assume this is greatly offset by the inherent inaccuracy of voxels), but I haven't found an explanation for why. If anyone could link me to a good video/article on the technical reason for this, I would appreciate it.

 

Even if they do truly offer a much greater level of geometric detail than polygons, from my own (admittedly limited) experience with graphics programming I've found post-processing to be a much greater bottleneck than rasterization, and I don't see how voxels would do much to change that.

 

If voxels (or a hybrid solution) are really the way of the future, why are polygonal engines still so dominant? Are there any major drawbacks that aren't being addressed? I'm genuinely curious.

Edited by Salty Boyscouts

Share this post


Link to post
Share on other sites
wcassella    841

I was pretty skeptical about some of the claims he made, like "reduce game development cost by up to 90%!"; yeah I don't think so. But either way, I see voxel rendering pop up from time to time in various places and I'm still curious about why they haven't caught on, if they're really as good as people claim (possibly because they aren't, I'm not sure).

Share this post


Link to post
Share on other sites
CDProp    1451

I'm surprised that they don't realize that claims of reducing costs by 90%, having unlimited detail, etc., are just going to sound like huge red flags to people.

Share this post


Link to post
Share on other sites
conquestor3    1593

I'm surprised that they don't realize that claims of reducing costs by 90%, having unlimited detail, etc., are just going to sound like huge red flags to people.

 

Honestly, the only thing that'd convince me of it's worth is many different smooth voxel animations in realtime. I'm sure it's not impossible, but no one's come up with a really solid solution that I've seen before. I think atomage is the closest so far.

 

https://www.youtube.com/watch?v=jItvtnc5hLw

Share this post


Link to post
Share on other sites
snake5    1587


I'm still really not clear on what makes voxels so much more efficient than polygons.

 

The video actually said it that polygons are more cost-effective. Odd to try and prove the opposite afterwards.

 

And they're going to stay that way for one reason - triangles are extremely good at scalability. You can describe so much with just one triangle, and only add them where you need them most. It is not a property that voxels share with triangles, the issue does not appear to get any attention, and yet it's at the foundation of being cost-effective. I wouldn't expect much to change until this is solved.

Share this post


Link to post
Share on other sites
FreneticPonE    3293

Alternative rendering methods such as ray-tracing are starting to become more popular. UE4 has some experimental sparse-voxel-octree ray-casting tech, and signed-distance-field sphere-tracing tech. SVO ray-casting is a "voxel" technique, but SDF sphere-tracing is neither polygons nor voxels (nor subdivisions) - it's an implicit surface biggrin.png

However, neither of these techniques are used for primary rays, as rasterization is more efficient for that; they're used for reflection and shadow rays.

from my own (admittedly limited) experience with graphics programming I've found post-processing to be a much greater bottleneck than rasterization

Yep, that too. With deferred shading, all your expensive lighting/shading calculations happen in post too...

 

 

Aye, even Hollywood still uses polygons. Both Weta Digital's super shiny fancy spectral renderer and Disney's 10+ lightbounce Hyperion renderer still end up with ye olde polygons for, heck for most things. BVH's and whatever other acceleration structures are there, but ultimately it all still just devolves down to drawing a bunch of triangles tongue.png

 

If triangles are good enough for Avatar 2-4 then I don't see them going anywhere anytime soon.

Edited by Frenetic Pony

Share this post


Link to post
Share on other sites

The main point in voxels is (obviously) not being "90% more effective for rendering" or any such thing (that's a false claim). In fact, the majority of voxel engines still converts voxels to triangles nowadays (with marching cubes or a similar algorithm) to render them. Being able to efficiently store empty nodes in your voxel octree is not much of a big deal either, since if you don't have any objects made from triangles in the spatial structure of your choice, it's just the same thing.

 

But voxels allow you to make physically plausible realtime modifications very easily. Want to blow a hole into a wall? Just blow out some voxels. Need to render a zombie with a severed arm? Simply remove those voxels.

You can do that with triangles, too, but it is a lot more complicated to have the model properly tesselated afterwards and to "make it look good" in general, without cracks or discontinuities or other visually unpleasing stuff.

 

Since voxels are a "somewhat like a grid", physically accurate (or at least plausible) collisions are arguably much more straightforward, too. As are lighting effects that use some more or less elaborate form of ray marching. Also, moving fore and back between levels of detail (and keeping a consistent overall level of detail in the scene) is arguably a lot easier and more straightforward with voxels.

 

On the other hand, unless your world is somewhat boring (mostly empty space with relatively few, mostly rectangular things placed in the world) or unless you are OK with a mediocre resolution, the amount of storage that is needed with voxels is... huge... to say the least.

 

Modelling in terms of triangles or bézier patches (or nurbs) somehow seems to fit our non-blocky, non-rectangular world a lot more snugly in general.

 

The general consensus seems to be that you can put a lot more voxels onto the screen than polygons

That is very debatable. You have a limited number of pixels on your screen (typically between 1 and 4 million), and it does not increase quality (indeed, it will cause aliasing) if you add more triangles or voxels. Drawing pixel-sized triangles is not advisable (extremely stressing the pixel shader, and not looking any better) but it would certainly be possible, if that is what you wanted. And, with hardware tesselation readily available, it would be almost trivial, too. But the thing is, you do not want pixel-sized triangles. Over-tesselation is as bad as under-tesselation.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this