Chris wrote:
I'm looking into the feasibility of making a voxel tool, and just have some general questions on the technology. The tool operates on voxelized meshes.
Ok, these are rather vague estimates... hopefully accurate to within an order or magnitude

Chris wrote:
1. Approximately how much would disk space would a typical RLE 2048x2048x2048 voxel file use (e.g. storing the voxelization high detail character)?
1) As beyzend says this can vary hugely depending on your exact data, but in general I have seen that zipping up the data reduces it to a few percent of the raw data size. I think that a compression rate of 100 to 1 is probably the right kind of level to aim for. Assuming 1 byte per voxel, your raw volume would be 2048^3 = 8GB of data. So if you compress it I would estimate 80MB.
Chris wrote:
2. How long would it take to load this RLE voxelization...
I'm not sure how long the loading would take, I've never really measured this in PolyVox. Perhaps you can find some real-life hard drive transfer speeds (sustained, not burst)?
Chris wrote:
marching cube it...
As I recall, PolyVox can run the Marching Cubes algorithm on a 256^3 volume in about one second on my two year old PC. Logically this means 64 seconds for your much larger volume. That's on only one core though, and it's quite easy parallelise so you should expect a linear increase as you increase the number of cores.
Chris wrote:
recursively to different LOD's...
Not exactly sure... probably each LOD level will take 1/8th the time of the one above it. So maybe add 15% to the non-lod time. But this could vary depending on exactly where the bottleneck is.
Chris wrote:
and send them to the GPU?
Again I'm not sure... but you should be able to find details on how fast the bus in on modern GPUs. Maybe estimate 30 bytes per vertex and 2 vertices for each partially occupied cell (some vertex sharing will also take place).
Chris wrote:
How long would it take to load a detailed game-scene (trees/rock/terrain/characters) by this approach?
In total... maybe one or two minutes? Let's say two.
Chris wrote:
3. I'm not really sure how texture storage works with voxel methods.. could you explain this/point me to the right class/bit of reading? does each voxel store a material enum.. or point to a normal, how does this get shared when converted to triangles?
PolyVox just stores a material ID per voxel. This can be interpreted as a color, a texture, or what ever you wish at rendering time. If your textureing voxel terrain then triplanar texturing is a good option, as beyzend pointed out.
Chris wrote:
4. Would it be possible to store additional data (e.g two bytes and one float) on some of the voxels, which can get parsed to the GPU vertice storage, as generated from the marching cubes?
In principle, yes. The traditional Marching Cubes algorithm just operates over a density field, so really the material ID is an example of the kind of data you describe. It's a integer value in the volume, and gets converted into a float and attached to the vertices which are passed to the GPU.