Voxel-based Terrain or: Drilling holes into terrain?

Hi guys!



I searched the forums for a while and I want to ask you a somewhat unspecific question:



Is it possible with JME to create a voxel-based terrain that allows you to drill holes in it or create overhangs? It is not possible with simple heightmaps, because you only have one height value for a coordinate…



I thought about loading a 3D model (or multiple tiles of 3D) or maybe creating the vertex position on the fly and show that as a terrain. The model has to be altered if the users drills into it and I don't know if that's possible with JME. I'm almost sure that you can implement it, but better check before trying… :wink:



Thanks for your replies!

volume rendering doesn’t lend itself well to boundary representation schemes, ie meshes…

you could use a 3d dataset and use an algorithm like marching cubes which would generate a mesh based on an iso surface in the dataset…

when you drill into the data set you could reconstruct the mesh at that part…i’ve seen this done in applications for medical imaging, for example orthopedic simulatiors…

however it is a pretty radical departure from terrain as a planar height field data set…

i’ve built a volume renderer using an implementation of the volume ray tracing equation and the shear warp factorisation of the viewing matrix algorithm in jme, just rendering to texture…

it’s painfully slow because i haven’t optimised my data set which is 256^3 ct slices…and here’s what it looks like…nor pretty eh  :slight_smile:



Nice! And this is full 3D now? Looks like a really challenging thing to develop.



Thanks for your tips, I guess I have to find some papers about this topic, the mesh construction and editing… maybe I can find some scientific papers on Google Scholar for it.

yes, look into marching cubes algo. constructing a mesh with that from a iso-surface/voxel data. they use that in for overhangs etc in the new crytec engine…

ncomp said:

i've built a volume renderer using an implementation of the volume ray tracing equation and the shear warp factorisation of the viewing matrix algorithm in jme, just rendering to texture....
it's painfully slow because i haven't optimised my data set which is 256^3 ct slices....and here's what it looks like...nor pretty eh  :)




Is this code available somewhere?

i'm afraid not…

it runs like a donkey and has a heap of crash bugs in it…

i never got the time to finish the implementation…

some day…

Marching tetrahedrons (a marching cubes variant) is available here:

http://www.jmonkeyengine.com/wiki/doku.php?id=rendering_scalar_fields



Irrisor plans to check in some improvements:

http://www.jmonkeyengine.com/jmeforum/index.php?topic=6700.0