4 ms·
Hmm, what's so amazing about it? It's a voxel graphic engine, of course it's going to have great detail and no polygons (duh). That's not new. Commanche had thi
by tobiasu 15y ago
Hmm, what's so amazing about it? It's a voxel graphic engine, of course it's going to have great detail and no polygons (duh). That's not new. Commanche had this in 1992...
I'm not at all an expert in this area, can someone who is explain what the downsides of voxel graphics are? There must be some serious problems with it, because the technology is well known.
Is there something new that makes this particular engine stand out above the previous engines?
- baby 15y agonotch posted something about downsides of voxel. Like you can't see the same object from different angles, you have a hard time animating things...
- timknauf 15y agoI can see how animations might be difficult, depending on what sort of data structure one uses to store the voxel data. But why would you not be able to see the same object from different angles?
- wladimir 15y agoI think he means that you cannot rotate an object and keep it aligned to the voxel grid at the same time. It would be a lossy operation, and require interpolation, just like rotating an image on a 2D grid.
- roel_v 15y agoBut if the resolution of your grid is smaller than the size of the voxel, that wouldn't matter much - and you could keep rounding errors in check by anchoring larger units of voxels at a certain location in space. I can see the drawbacks of the voxel cloud approach (requires much memory, what algorithm is fast enough to do voxel culling on such a massive amount of data, what about animation) but the 'can't do rotation' doesn't seem like a particularly strong argument (unless I'm misunderstanding the actual argument, which is very well possible...)
- ajuc 15y agoRotatin (in general - transforming) voxels in real time is difficult compared to polygons, because with polygons you only transform vertices, and in voxels you have to transform every voxel. EDIT: If you are spekaing about preprocessing data - yes - you can rotate as much as you want, the only problem will be that object instanced 1000 times with different orientation/scale will take 1000 times more memory than object instanced 1000 times with the same orientation/scale. With polygons there is no difference.
- roel_v 15y agoSorry, by 'preprocessing' I meant things still done on each frame, but anything that is not raw pushing-vertices-into-the-gpu-pipeline, i.e. all polygon culling, LoD simplification etc. But yeah, the amount of data you'd have to work on would be much greater, but the way I interpret all of this is that he's found algos to do that very fast, regardless of whether it's a lot of data.
- wladimir 15y agoI'm not saying it is entirely impossible. However, rotating volume data (which voxels are) is computationally a lot more intensive. With polygonal objects you can just change the transformation matrix and re-render the screen and you're done. At most, you have to deform the vertices that make up the outer shell of the object to do things like make a person walk. With voxels, you'd have to recompute all the voxels of the object on a 3d grid. Also there are issues with ragged boundaries, which can be prevented by using antialiasing, but which is probably trickier (=more computationally intensive) than in 2D...
- roel_v 15y agoI'm still not convinced by these arguments ;) The displacement of the voxels can also be done with a simple matrix transformation, as far as I see it; same like you'd do for the nodes in a 3d model, same as you'd do it with a 'traditional' 3d pipeline (OpenGL/DirectX) - unless I'm behind the curve and animation itself is done on the GPU nowadays, but I don't think it is. Ragged boundaries wouldn't be an issue as long as there are enough voxels. What I understand, that's the whole point - you just have lots and lots of voxels, at a much finer resolution than you'd ever want to render at, so that you just (by brute force) render once without having to worry about anti-aliasing, gaps between planes etc.
- Fargren 15y agoI think the big deal is that it's supposed to convert poligon based graphics to voxels in real time. Which I doubt it can actually do, but if it can, it would be kind of cool.
- timknauf 15y agoTheir polygon-to-voxel technology is a sideline, I believe, and it doesn't sound like it's realtime.
- stefs 15y agothe polygon to voxel conversion is just so artists can use existing tools like 3dmax or maya, which work on polygon models. think of the trees in their demo, the models have to come from somewhere. so realtime conversion is not needed. as far as i can tell their voxel tech is just for non-moving objects like the landscape, buildings, etc. animated and moving actors are still rendered as polygons and blended into the scene (according to the article, this already works to a certain degree, but they weren't able to give a live demo, just a video).
- jawngee 15y agoComanche had shitty detail, as did all the games that came after (Delta Force, etc.) that used the same engine. With this you can zoom down to the pebble. Supposing this is legit, I'm cautiously optimistic, homie has probably uncovered some very novel techniques that allow the granular level of detail you couldn't do before with voxels, with optimizations that don't require GPU .. this is pretty amazing.
- timknauf 15y agoI think the big deal is supposed to be the incredible level of detail apparently achieved without being all that taxing on the hardware (though the jury is out on whether it's some sort of trickery - it sounds too good to be true). Edit: They claim in the article to have devised an approach that no-one else has come up with, and they give this as the reason why no-one else is doing something similar.
- mjhall 15y agoI think the major downside is the world is immutable. For the search algorithm to run in short enough times to render in real time the point cloud needs to be organised very carefully. Part of the point cloud needs to move for animation, which involves re-indexing at least part of the world. Doing this once per frame is probably far too expensive (at least currently), which is why animation doesn't feature in their videos. That doesn't mean this technology should be dismissed; most world data in 3D scene graphs is static, so it does have applications. I don't see it overtaking rasterised graphics entirely, but I think there is value in it. I'm not an expert either, so take my comment with a healthy bucket of salt.
- gizmo 15y agoThe big downside is that you have no idea ahead of time what parts end up on screen and which parts don't. With a voxel engine you create a giant tree that allows you to do a quick logarithmic lookup to a voxel for every pixel on the screen (more or less). Suppose you're standing on a hill and look down on the valley below. If the terrain and world below is created by artists and contains many unique objects then you end up with a voxel tree that's terabytes large. You can't keep it in memory, so performance will be awful. The only way (afaik) to keep the memory usage in check is to force reuse everywhere. So you then create ultra high resolution models of 100 different bricks and mortar. The artist then composes those "lego pieces" into different buildings. That would work, but then everything is going to look very repetitive again (which brings us back to square one). Then of course there are the problems with lighting, animation and so on.
- modeless 15y agoIt's actually the reverse! Voxels make it easy to figure out what's on screen and what's not. That's their main advantage over polygons. The main disadvantage is that they are generally slower to render, but as you add more details, polygon renderers waste time on details that are far away or off screen while voxel renderers can discard those more easily, and eventually there's a tipping point. You're right that lighting and animation are real problems with voxels. Animation in particular is pretty much impossible, which means you have to fall back to polygons for anything that moves or changes, which in modern games is a lot of stuff.
- gizmo 15y ago> It's actually the reverse! Voxels make it easy to figure out what's on screen and what's not. No no, I explicitly said "ahead of time". It's easy to determine what's on screen when you're about to render the frame, but you have to load every single object in memory because every single object is a "candidate" that may end up on the screen, you just don't know ahead of time. You can't cull the voxel tree, even though 99% of the voxel tree won't be used when rending a frame. So the memory overhead is immense. Voxel trees don't make it easy to discard things that are far away at all, because there aren't any low-resolution objects that you can use for far-away objects. You have to load many objects in memory even when you use them to render just a pixel or two. The polygon-based worlds we have today use various low-resolution models for when you view at a distance, and as you get closer the higher resolution models "pop in". This tech advertises that you have infinite detail and that there's no need for objects with different level of detail. This means that the complete point cloud of every object has to be loaded in memory and that's a very real problem and it's in complete contradiction to the claims made by the company that artists can create infinitely detailed worlds without having to worry about vertex counts or whatever. Artists have to compose their world out of re-usable high-detail objects or the sparse voxel octree will be way too large. This means the artists will be much more constrained than they are today, not less.
- mambodog 15y agoTo be accurate, Commanche didn't have a true volumetric renderer, it was just raycasting a heightmap[1]; essentially just as much of a hollow shell as polygon rendering techniques. However, you are correct to point out that this tech is not particularly revolutionary; others such as the Atomontage engine[2] show voxels can be leveraged to create detailed, destructible organic environments. [1] http://www.flipcode.com/archives/Realtime_Voxel_Landscape_Engines-Part_2_Rendering_the_Landscapes_Structure.shtml http://www.flipcode.com/archives/Realtime_Voxel_Landscape_En... [2] http://www.youtube.com/watch?v=_CCZIBDt1uM http://www.youtube.com/watch?v=_CCZIBDt1uM