Originally posted by Torvaldr
Thanks for the post Tissmogi. I did some reading last night after I read those posts and found out some interesting information.
For one, the wikipedia entry is really weak. They don't have any pertinent research links in the first paragraph where they define voxel, and then go on to talk about implementation in gaming.
I found these particularly interesting: http://people.cs.uct.ac.za/~jgain/publications/voxspace.pdf
The latter describes voxel as a "volume element analogous to a pixel". The keyword there being volume element, which isn't limited to a cube at all. Boxes don't seem to be a defining characteristic of a voxel. The grid used to map them is cubic and it seems the most common implementation is to make boxed voxels. Like you said, it's not always the most efficient way to manage that space, but seems to have advantages in procedural generation of content (the first pdf discusses this). It would be interesting to read a lay-friendly explanation of this technology. Some of the stuff I came across went way over my head.
Think of voxels not as a physical cube but as a volume of unknown size ( it can be very small or extremely big depending on how much detail you want ). At every corner of the cubic volume there is a value.
If the values are 0 or 255 then the cube is completely inside (underground) or outside ( air / invisible ) so we ignore it, nothing to draw here.
But if the values of these corners are between 1 and 254 then it is part of the terrain surface and some polygons have to be created with points on one of the 12 edges.
Exactly where a point is placed along an edge is determined by interpolation. The point should be placed where the density value is approximately zero. For example, if the density at end A of the edge is 0.1 and at end B is -0.3, the point would be placed 25 percent of the way from A to B.
I hope that made a little more sense.
What is interesting is that Minecraft doesn't always use voxel calculations for what I am assuming it being costly and inefficient.
As far as i know Minecraft uses voxels only to procedurally create the landscape. After that you have polygons.
I think some of us aren't aware or forget that everything has to be rasterized for screen display or printing, no matter what method the shape was calculated. So by the time it hits our screens or paper they aren't voxels anymore but interpreted pixels. I think there are some screens that can line draw, but I don't that has manifested itself commonly. I heard about this a few years ago as possibility for future tech, but haven't heard much about it since.
I'm really glad to see this sort of thing affecting development of newer games. It can help shift the current design paradigm and broaden our horizons.
The devs at Pathea (Planet Explorers) are doing a lot more than just reimplementing Minecraft or Cubeworld. I think they are taking some of those ideas and iterating on them, but they are also adding their own ideas to the game design. The game could end up offering a lot to those who like to build, or just want to adventure, or do both. It would be a blast to design and share our own campaigns.
Planet Explorers uses a marching cubes algorithm for the landscape. I really like their approach especially since they use a real 3D version of the marching cubes that is able to create caves. Many games use simplified versions that are only able to create surfaces which makes it 2D ( yes, the surface looks 3D but it is not ).
I have been experimenting with voxels using GPU based approaches to create more complex procedural landscapes and you can do amazing things entirely in GPU only which frees up your CPU. The problem this procedural approach has is that it is not instant and we need to find ways to "mask" the chunk loading and the level of detail subdivision. I am sure we will see a lot more voxel based solutions in the near future when GPUs become even more powerful.