Question about voxels and polygons
Posted 29 March 2012 - 07:06 PM
I'm really interested in voxel theory. I've seen a couple of topics on this forum that have talked about it some. I also know that some big engine out there (was it the one that powers Crysis?) uses them some for terrain generation or something. I looked voxels up on wikipedia as well and read something about polygons being used in conjunction sometimes with them. How are polygons and and voxels used together? And why aren't they used more often in modern games? Thanks.
Posted 29 March 2012 - 07:13 PM
There's basically two ways of rendering a voxel object: either convert it into polygons (using an algorithm like marching cubes) and render the polygons, or render it directly by raytracing.
Both of these are pretty slow processes, which I think is the main reason why voxels aren't used more in full-fledged games (vs tech demos and suchlike). The most recent generation of GPUs have some nice features that allow much faster voxel processing than before, but it's still not fast enough for full-fledged games, except in some special cases. Some games use voxel-based fluid sims. The LittleBigPlanet games made fairly extensive use of voxels, but they're helped out by their game world being 2.5D - very thin along the depth axis - so they can get away with something that's only 16 voxels deep, which helps keep the costs down.
Posted 30 March 2012 - 08:42 AM
I have been trying to get more details from him for ages, but the videos are awesome. Much nicer than unreal for a start.
The basic technique I have got out of him is he uses a very efficient sparse 3d array to store mipmaps of voxel objects.
So if you are a long way away from an object it is displayed as a quad, get a bit closer and it's displayed as a few quads , ad nauseum
The voxels are displayed as billboards, so each one is very quick to render.
The clever bit, is the storage of the voxels and the way he parses it in the game. He's not talking about that.
There are other demos of efficient sparse 3d array rendering on gpu's which are just beautiful.
I disagree with Reedbeta on this one, voxels are the way forward, just not voxels as we used to think of them.
You could also research things like "voxel polygons" which is a nice way of getting around a few of the issues with voxels.
Posted 30 March 2012 - 04:59 PM
Stainless, I looked at some of the screens and videos on that guy's site, and have seen various other sparse voxel demos before, and they do look really good. However: (1) most of the test worlds look very small, no more than a few meters big; (2) probably the entire capacity of the CPU/GPU is being used to render these things, leaving nothing for all the other stuff a real game has to do, and (3) there's little or no animation of the voxel stuff. I did see some videos of a truck driving around and leaving tire tracks, but the truck is polygonal and tire tracks could very well be done with some special-case tricks; it's a far cry from the amount of animation you would need to do a proper game with extensive breakable objects, trees swaying in the wind, etc.
I don't know how the voxels are stored and rendered in these kinds of demos, but you can often tell more from what's left out than what they put in.
Posted 31 March 2012 - 06:19 PM
From the conversations I have had with him, he's solved all the issues you mention. Which is why I am so keen to have a proper look at it.
We will wait and see what he comes up with, I hope he's right.
Posted 31 March 2012 - 07:37 PM
Posted 31 March 2012 - 07:46 PM
I don't suppose you have a link?
Posted 31 March 2012 - 07:50 PM
Posted 31 March 2012 - 08:58 PM
Posted 02 April 2012 - 12:43 AM
Ad C4 and real-time modification of voxel terrain - just out of curiosity - any OpenCL involved in marching cubes, or are you actually doing it that fast on CPU?
If you don't know how to speed up application, go "roarrrrrr!", hit the compiler with the club and use -O3 :D
Posted 02 April 2012 - 04:49 AM
It's all on the CPU.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users