Forum archive
future of voxels
- Hi Ken,
I recently found out about your voxel engine and was very impressed like most others here ;) I always kinda liked these blocky gfx from the early heightfield landscapes that apeared in lots of demos.
I was surprised to read that you've lost interest in developing / thinking further on voxlap :( (http://jonof.edgenetwork.org/forum/viewtopic.php?t=646)
Voxlap seems to be the only decent realtime voxel engine around to date, and you seem to be the only one that knows a lot about it. I have a couple of questions about the subject and I hope you have time to answer them :roll:
1.) Do you think voxels will ever go mainstream? To me it seems that voxels are to polygons what bitmaps are to vector gfx...
2.) Why represent voxels as cubes? Why not creating a polygon mesh from the data using an algo like marching cubes?
3.) in polygon graphics, arent the vertices just the "voxel data" for polygons? if you'd draw a cube or sprite on each vertex wouldn't you get something very similar? What would the difference be between a voxel model and a polygon model (besides voxel models also can have points inside)
4.) What do you think that the current possibilities are to render voxels hardware accelerated? I believe raycasting algorithms you seem to use could be implemented in shaders as well? If you'd have to rewrite a voxel engine from scratch would you take the same approach?
5.) will you document a technical description of how the voxel engine works at some point...eventually...maybe? :)
OK, enough ramblings!
I hope you have time / interest to answer them!
Martijn 1.) Do you think voxels will ever go mainstream? To me it seems that voxels are to polygons what bitmaps are to vector gfx...
Yeah. That analogy is what got me started in voxels. It all looks so simple in theory. Rendering a bunch of solid shaded cubes isn't exactly rocket science. The tricky part is all in the optimization. Unfortunately, simplicity is really the only benefit to voxels. When you realize how quickly a 3D voxel array can consume your CPU and RAM, you'll find yourself resorting to tricks that are even messier than the stuff you'd find in a mature polygon engine.
It doesn't matter what hardware you use, voxels will always require more clock cycles per effect than other methods. Voxels might well suited to parallel processing, but so is general raytracing. Because of this, I believe raytracing has more of a future than voxels.2.) Why represent voxels as cubes? Why not creating a polygon mesh from the data using an algo like marching cubes?
Marching cubes would be feasible for sprite objects, but not for the raycasted world. It just doesn't fit into my raycasting algorithm. Believe me, you're not the first person to suggest this.3.) in polygon graphics, arent the vertices just the "voxel data" for polygons? if you'd draw a cube or sprite on each vertex wouldn't you get something very similar? What would the difference be between a voxel model and a polygon model (besides voxel models also can have points inside)
Huh? I don't see your thinking. Polygonal models are a mesh of triangles. Voxel models are an array of cubes.4.) What do you think that the current possibilities are to render voxels hardware accelerated? I believe raycasting algorithms you seem to use could be implemented in shaders as well? If you'd have to rewrite a voxel engine from scratch would you take the same approach?
With support for looping, just about everything is possible with PS3.0 shaders. That doesn't automatically make voxels practical. I have no experience with pixel shaders, so I can't answer this question.
If I wrote Voxlap from scratch, I wouldn't change much. Probably the only thing would be to make sure the code can take advantage of multi-threading (for HyperThread / Dual Core machines).5.) will you document a technical description of how the voxel engine works at some point...eventually...maybe?
It's called the source code .. that isn't sufficient? : P At some point, I might release some technical demos that show how small parts of the engine work. These should be just as good as a tutorial.Voxels might well suited to parallel processing, but so is general raytracing. Because of this, I believe raytracing has more of a future than voxels.
But raytracing can perfectly be used to render voxel data right? :)Huh? I don't see your thinking. Polygonal models are a mesh of triangles. Voxel models are an array of cubes.
Sorry that question was horribly formulated, my brain must have fried for a second there...
What I really meant to say was that voxels are mostly associated with cubes. But voxel data is of course just x,y,z coordinates with associated color, which *can* be visualized by using cubes. You hear that a lot of VFX companies use voxels to create stunning fluid effects and alike, but I assume they just use this "cloud" of x,y,z coordinates to apply some fluid equations on and render this cloud of coordinates different than rendering using cubes?It's called the source code .. that isn't sufficient? : P At some point, I might release some technical demos that show how small parts of the engine work. These should be just as good as a tutorial.
I always prefer a good description over reading someone else's sourcecode... but yeah I might be just lazy ;) Anyway i'll download the source and have a look at it, thx for sharing that!It's called the source code .. that isn't sufficient? : P At some point, I might release some technical demos that show how small parts of the engine work. These should be just as good as a tutorial.
Hmm... no disrespect, your code is definitely optimized and great and so on but it's horrible to read and understand the abstraction behind your rendering algo!!!