At the recent VWBPE 2015 in Ebbe Linden’s (Altberg) speech he mentions voxels. This suggests, at the very least, the Lab is looking at voxels for possible use in NGP (Next Generation Platform – SL’s probable successor). But, what does that mean for us? And what is a voxel?
In the comments of one of my articles in the series Max Graf pointed me to the web site Procedural World. They are big on voxels and use then in ways that may be similar to what we could see in NGP.
The image shows a voxel as a cube. One 3D coordinate and a set of parameters like height, length, and width define the voxel. Other attributes are added as needed.
We are used to working with mesh, which is a fishnet of points used to represent the surface of a shape. If the stack of cubes were made of mesh then each corner of a cube would be a vertex represented by a 3D coordinate. It should be obvious each cube would require 8 coordinates.
Mesh needs attributes too. We use a bunch. And, voxels need most of those too. So, the savings gained with voxels is in the size of a coordinate list used to represent a shape. Also, an advantage is we can control lots of pixels with a few voxels. That is the same reason we use mesh, because with a relatively small list of vertices we can control millions of pixels.
I think it should be obvious that voxels possibly to be used in NGP are not going to be the big blocky cubes like I’ve shown so far. It is possible to have highly detailed models made of voxels. You can see this on 3D Coat where they are sculpting voxel based characters.
At some point a voxel starts to look like a mesh. You can see that in the video. What is not apparent is the smaller amount of work and data needed to make complex models. 40 West Designs attempts to explain the advantages in: Voxels vs. Polygons. This is where you will learn that a voxel’s shape can be represented by a math formula. The mandelblub fractal shapes can be used as a voxel shape. That can add a staggering amount of detail from a minimum of data. So, we do not have to have cubes.
Imagine we use a math formula that generates a set of spikes sticking out of a plan. We could use that to represent grass and have a good looking low data field of grass. Anything that would best be generated by a ‘procedural’ process is going to work well with voxels and reduce the render load without reducing visual quality. In many cases we will have much better results than we could achieve with mesh models.
Procedural process are where we can tell the system put trees or flowers on a surface at random using a collection of voxel trees and flowers. The system figures out which trees, flowers, and where.
This last video shows what I think voxel editing in NGP may look like.
Whether we will have something like this in NGP or not… we can’t know. But…. may be… It certainly is an interesting way to build.
The same is true of Second Life. Mesh was a major new building block for the SL world. So, adding voxels probably wouldn’t be any harder. But, mesh took YEARS to add to SL. So, I am doubtful they will be adding voxels to Second Life. But, it would change the dynamic of SL where we build more and more stuff outside in the RL world.