Thank you for your detailed answers.
realazthat wrote:
PolyVox provides voxel storage and, currently two polygonization anglorithms. The CubicExtractor extracts a "boxy" minecraft-like mesh. There is also a Marching Cubes extractor (
https://secure.wikimedia.org/wikipedia/ ... hing_cubes), which is useful for smooth terrain-like environments. So, it isn't necessarily just "boxes".
I've read in this forum something about the "Transvoxelâ„¢ Algorithm" and a dual contor algorithm. So there are ways for optimizing terrain polygonization. Despite that, i think a capable graphic programmer can make use of several tessellation methods provided by modern GPU's.
realazthat wrote:
That guy has some impressive implementation that everyone on the internet drools at. IIRC he uses a Dual Contouring extraction algorithm, and has some impressive shading. IIRC Dual Contouring allows for some things that Marching Cubes cannot express, like sharp corners. Aside from some technical issues, I'd say it's possible yes, but putting it together would be nice amount of work. Also, it would be impossible with Marching Cubes to represent general shapes like buildings (no sharp corners, unless ofc you do *really* high resolution voxels where it doesn't matter, not useful for a game), but it would be generally possible for (finite) terrain.
Didn't know that the guy is working on "something big", saw his voxel studio. I think he is going commercial,but maybe the community can learn something from this as well. Still, there is a long way from some vids and screens to a real useful product.
I'm not sure if it is true, but i read that ID is using some voxel technology for ID Tech 6, the Rage Engine. If they did, they did it bad. ID Tech 6 looks ugly. And still very polygonal
( Sorry JC, but with doom and quake you let people scream out loud "awwweeesome", but Rage? Just...mhm...)
The advantage of Voxels is IMHO the flexibility in changing structure of complex objects. Like destructible environment, or random generated terrain ( AHL, LibNoise etc. ) or the ability of applying physics to them. The disadvantage is the "cubic" look. Even the videos of this guy mentioned above look very cubic.
I came up with the idea of applying geometry shaders to the pure voxel representation. maybe this is the way to go, to have something like real-time-polygonization directly on the gpu.
realazthat wrote:
Dunno for sure, but most physics engines allow you to send triangle lists to them, so it shouldn't be too hard.
You are right. I've made some experiments with bullet and quake3, but i didnt went further down the road, because quake3 is just quake3: you dont need real physics
realazthat wrote:
I've seen ker's minecraft client (
viewtopic.php?f=18&t=256) and there is the VolumeChangeTracker (
http://www.volumesoffun.com/polyvox/doc ... acker.html). Though putting it together with the Marching Cubes algorithm is something I haven't seen done much, but theoretically possible.
Sounds interesting. I think i'll have a look at the code.
In general, my thoughts went into the direction to have a dynamic environment which is changeable during gameplay, while keeping the amount of realism higher than usual approaches ( like in Minecraft).
IMHO this means, you need a simplyfied layer like a voxel representation of the world, which should be able to paginate for flexible network transfer. As well as the render should create a more realistic look and feel ( like polygonization, dynamic LOD and GPU Tesselation ) a server should provide a solid physical representation of the world for simulations like flowing water or bouncing elements.
Ok, thanks again for the answers. As i already said, i'm not trying to make a game. Just thoughts
regards,
otty