The impact of streaming architectures on Voxels?

Brimstone

B3D Shockwave Rider
Veteran
Upcomming next gen console CPU architechtures are optomized for data streaming, and the trend should continue for consoles released in the 2010/2011 timeframe. It was even rumored at one time that 3dfx was working on a Voxel accelerator to be included on a GPU. So after reading an old quote on what John Carmack had to say about Voxels and their future, I was wondering what impact the CPU architechture trends in consoles are having on Voxels?

Voxels are one example of such a structure. John mentioned that he actually wrote a voxel renderer and converted an entire Quake 2 level to use it. It wound up being about 3 gigabytes of data! But he said that that's not actually that far off from today's hardware capacity, if you use intelligent streaming techniques to move the relevant portion of the voxel set into and out of memory. And he said it was really nice having only one data structure for the entire world--no more points versus faces versus BSPs... just one octree node (and subnodes of the same type) representing everything.

http://unrealities.com/web/johncchat.html

A total of 2 gigabytes of high bandwidth system memory is a plausible assumtion for consoles released 5 years from now. Probably Rambus XDR2 will be the successor of GDDR. Shifting extremly large data sets should be very fast and effcient.
 
Last edited by a moderator:
powerVR released a voxel demo that runs in hardware via SM3.0.
link: http://www.pvrdev.com/pub/PC/eg/h/Voxel.htm

in theory, voxels on xbox360 might sound like a good idea, but i don't think you'll be seeing them in any titles anytime soon. if we believe the polygon performace (500M) they've reached a point where there's about 500x the polygons on screen than there are pixels.
 
Brimstone said:
Upcomming next gen console CPU architechtures are optomized for data streaming, and the trend should continue for consoles released in the 2010/2011 timeframe. It was even rumored at one time that 3dfx was working on a Voxel accelerator to be included on a GPU. So after reading an old quote on what John Carmack had to say about Voxels and their future, I was wondering what impact the CPU architechture trends in consoles are having on Voxels?



http://unrealities.com/web/johncchat.html

A total of 2 gigabytes of high bandwidth system memory is a plausible assumtion for consoles released 5 years from now. Probably Rambus XDR2 will be the successor of GDDR. Shifting extremly large data sets should be very fast and effcient.

So the next next generation of console might be able to manage throwing around a voxelised version of Quake 2?

I'm not exactly clear on how we'd shade it either. Texels in the post-Q2 world of graphics have more than a single colour to worry about.

I like the idea of using 3D data-sets for things like clouds or "participating media" as the rendering crowd likes to call such phenomena, but I'm not sure I'd use it for basic solid geometry... wouldn't surfaces start aliasing?
 
MrWibble said:
So the next next generation of console might be able to manage throwing around a voxelised version of Quake 2?

I'm not exactly clear on how we'd shade it either. Texels in the post-Q2 world of graphics have more than a single colour to worry about.

I like the idea of using 3D data-sets for things like clouds or "participating media" as the rendering crowd likes to call such phenomena, but I'm not sure I'd use it for basic solid geometry... wouldn't surfaces start aliasing?

Well I don't believe ATI and Nvidia are putting a lot of focus on pure voxel rendering. But lets say either Sony or Microsoft decided to explore making a pure voxel console for the 2011 timeframe, and they offer lots of money to either ATI and/or nVidia. I'd assume ATI/nVidia would be able to deliver a lot of performance in a dedicated part. How well would a pure voxel GPU mesh with the streaming power of a CELL style architecture?
 
Brimstone said:
Well I don't believe ATI and Nvidia are putting a lot of focus on pure voxel rendering. But lets say either Sony or Microsoft decided to explore making a pure voxel console for the 2011 timeframe, and they offer lots of money to either ATI and/or nVidia. I'd assume ATI/nVidia would be able to deliver a lot of performance in a dedicated part. How well would a pure voxel GPU mesh with the streaming power of a CELL style architecture?

I'm not sure the CPU architecture is particularly relevant.
 
MrWibble said:
I like the idea of using 3D data-sets for things like clouds or "participating media" as the rendering crowd likes to call such phenomena, but I'm not sure I'd use it for basic solid geometry... wouldn't surfaces start aliasing?

In theory, if you had enough processing power you could achieve graphics that were indistiguishable from real-life videos with voxels.

That's not going to happen any time soon though. The effort and processing power required to do it would be staggering, and certainly not worth it from any financial viewpoint.
 
Powderkeg said:
In theory, if you had enough processing power you could achieve graphics that were indistiguishable from real-life videos with voxels.

That's not going to happen any time soon though. The effort and processing power required to do it would be staggering, and certainly not worth it from any financial viewpoint.

Huh?

I'm not sure why voxels are any more suitable for photo-realistic rendering than anything else.

I think if you used polygons for anything that as any kind of actual surface you'd save memory and performance over a voxel-only solution...
 
Voxels are basically 3D pixels so you would be rendering a scene on per-pixel basis without worrying about polygons that take up more than 1 pixel which is what causes aliasing in the first place.
 
MrWibble said:
Huh?

I'm not sure why voxels are any more suitable for photo-realistic rendering than anything else.

I think if you used polygons for anything that as any kind of actual surface you'd save memory and performance over a voxel-only solution...
if voxel rendering performace wasn't an issue, voxels would be more suitable because things can take a really organic shape, limited only by output resolution.

in the not so distant future, however, it's not going to be a problem, since we are reaching a point where we can render more polygons than we have pixels.
 
Powderkeg said:
Voxels are basically 3D pixels so you would be rendering a scene on per-pixel basis without worrying about polygons that take up more than 1 pixel which is what causes aliasing in the first place.

Rubbish. Absolutely wrong on pretty much every level.

Voxels are a representation of space - you still have to render them with some kind of primitive. When you transform them into a view they will still have some kind of area, and that could well be more than a pixel.

Voxels suffer from a lot more aliasing than polygons do, and the size of the polygon has nothing to do with it.
 
see colon said:
if voxel rendering performace wasn't an issue, voxels would be more suitable because things can take a really organic shape, limited only by output resolution.

in the not so distant future, however, it's not going to be a problem, since we are reaching a point where we can render more polygons than we have pixels.

We pretty much surpassed that ratio with PS2. The issue is LOD - which voxels are likely to be a lot worse at solving than a surface based technique.

Organic shapes will probably look worse with voxels because voxels will make everything up from tiny cubes. Try making an organic shape from lego...

I think you'd be much better off using level sets and implicit surfaces.
 
MrWibble said:
I'm not sure the CPU architecture is particularly relevant.

Raycasting is one of the things IBM showed off with a terrain demo.


How would CELL fit into isosurface rendering (Marching Cubes Algorthim) situation?


I would guess Worms 3d with the Poxel (a hybrid Voxel and Polygon) engine would work well with CELL.
 
Brimstone said:
Raycasting is one of the things IBM showed off with a terrain demo.


How would CELL fit into isosurface rendering (Marching Cubes Algorthim) situation?


I would guess Worms 3d with the Poxel (a hybrid Voxel and Polygon) engine would work well with CELL.

Isosurfaces ought to work very well with Cell. Adapted to stream sections of the set data into an SPU and stream geometry out again it should be quite fast.

I don't see voxels being terribly useful at all though. Any situation where voxels might be used I'd probably favour a more traditional rendering approach myself.
 
MrWibble said:
Isosurfaces ought to work very well with Cell. Adapted to stream sections of the set data into an SPU and stream geometry out again it should be quite fast.

I don't see voxels being terribly useful at all though. Any situation where voxels might be used I'd probably favour a more traditional rendering approach myself.

Imagine a grass football field using voxels. As players run over the field, the grass gets deformed from the players cleats digging into the dirt/grass. Chunks of turf flying away leaving dirt/mud in its place.

A dirtbike racer where ruts form on the track as the race wears on.
 
Brimstone said:
Imagine a grass football field using voxels. As players run over the field, the grass gets deformed from the players cleats digging into the dirt/grass. Chunks of turf flying away leaving dirt/mud in its place.

A dirtbike racer where ruts form on the track as the race wears on.

And where those are more than just graphical effects, the terrain actually deforms.
 
MrWibble said:
Rubbish. Absolutely wrong on pretty much every level.

Voxels are a representation of space - you still have to render them with some kind of primitive. When you transform them into a view they will still have some kind of area, and that could well be more than a pixel.


I prefaced my statements with the words "In theory."

In theory, the best use of voxels would have them never be larger than a single pixel. In theory, the end result would be no different in quality than the best quality High Definition CGI video you can find.

And I made it quite clear that that was theory only, and totally impractical from a realistic standpoint.

Now, do you have anything that speficially disproves that THEORY?
 
Brimstone said:
Imagine a grass football field using voxels. As players run over the field, the grass gets deformed from the players cleats digging into the dirt/grass. Chunks of turf flying away leaving dirt/mud in its place.

A dirtbike racer where ruts form on the track as the race wears on.


Let's see, an american football field is 110x49 meters. To get good looking grass you need voxels far below millimeter size, but just for the argument let's say we're gonna use 1x1x1 mm voxels. The voxel field would need to be at least 15cm high. So, 150x110000x49000 voxels, let's estimate 1 byte per voxel. We need 808 GB of RAM just to store that data. Now you want to run a physical simulation on that to get waving grass, chunks of turf etc, which also would increase the necessary height of the voxel field tenfold. Yeah right...
 
Some times ago, after seing Sony TRE demo and the suggestion from one of the programers to use the Cell for rendering a voxel terrain and the GPU for the caracters i've asked John Carmack what he thought on the topic and here is his answer. Short but informative nonetheless ;)

>Do you thing that now that we've got this
>streaming processors like the Cell (or the Xenon by the way) with
>really high floating point performance throughput, some of the
>algorithms that were given up could make a come back ? Of course we
>don't want the GPU to sit idle so maybe combining different
>rendering strategies would be feasible or using the Cell SPUs like a
>preprocessing step for the GPU...

It seems that Sony was hoping that it would turn out like that, but
they realized that it just wouldn't be competitive at this
point. Maybe next generation, but I still wouldn't bank on it.

John Carmack
 
Powderkeg said:
I prefaced my statements with the words "In theory."
"In theory, the best use of polygons would have them never be larger than a single pixel. In theory, the end result would be no different in quality than the best quality High Definition CGI video you can find."

There's a reason why REYES is an offline renderer.
 
Powderkeg said:
I prefaced my statements with the words "In theory."

In theory, the best use of voxels would have them never be larger than a single pixel. In theory, the end result would be no different in quality than the best quality High Definition CGI video you can find.

And I made it quite clear that that was theory only, and totally impractical from a realistic standpoint.

Now, do you have anything that speficially disproves that THEORY?

This is a hopeless argument. Your "theory", trying to make your primitives so small that they'll never be bigger than a pixel, is doomed to failure and pointlessness. You can apply the same principle to polygons and they'll look better, be cheaper, and use less resources.

With voxels they'll need enough resolution that even when you stick your eye next to them they need to not only be less than a pixel in size but in fact significantly smaller than a pixel in order to produce a pleasing image (you were talking about photo-realism).

You need that number of voxels across your entire data-set just in case you get close to anything. With anything that isn't actually a cube it will *always* be an approximation - it'll *never* actually be correct.

None of that answers the question of how to actually render or shade these voxels unless you're actually modelling them down to some kind of sub-atomic level and expecting the light properties to fall out of the mix.

Oh, and if you're really describing atomic space using voxels, have you any idea how much redundant empty data you're going to have? And how much you're going to have to update as the electrons spin around?

Yes, in "theory" with enough processing power you could probably model something like that. It would probably be the worst possible way of doing so.

Your "theory" implied that in some way voxels would actually be *good* at the task proposed. There's not generally much to be gained from proposing new "theories" of spectacularly bad ways to do things.

Meanwhile a surface based approach using shaders will far more rapidly converge to something approaching photo-realistic.

All of the example posted here on things that could be done with voxels are patently rediculous. I could write code right now that would run on affordable hardware that could simulate a pitch surface with grass and which could deform or have lumps dug out of it, using traditional techniques. It would be a nightmare to try doing that same with voxels.
 
Back
Top