voxelTerrain - marching cubes, transvoxel - demo - vid - src

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: voxelTerrain - marching cubes, transvoxel - demo - vid -

Post by jacmoe »

qwertzui11 wrote:changed license to WTFPL because of http://www.ogre3d.org/forums/viewtopic.php?f=13&t=69449

Markus
Markus - I love you dude. :)

I can relate to wanting to make money, but I think you can do that anyway.
There will always be a want for talented programmers.
And by choosing a lenient license, you should be able to reach more people.
As I said in the other topic:
I am not sure if do-what-the-fuck-you-want is the right kind of license. Would have been happy with MIT or similar - anything which requires attribution, or at least that the original license headers stays intact so that people know you wrote it. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
qwertzui11
Halfling
Posts: 80
Joined: Wed May 14, 2008 10:44 am
Location: EU
x 22

Re: voxelTerrain - marching cubes, transvoxel - demo - vid -

Post by qwertzui11 »

:D
jacmoe wrote:I am not sure if do-what-the-fuck-you-want is the right kind of license. Would have been happy with MIT or similar - anything which requires attribution, or at least that the original license headers stays intact so that people know you wrote it. :)
i only implemented two algrithms and some sugar... In my opinion such licenses only make sense on great projects like ogre3d or bullet... Eg. if somebody would violate the license I'd never sue that one. That would never pay of...

Markus
Morgoth
Greenskin
Posts: 111
Joined: Tue Mar 30, 2004 12:56 am
Location: Poland -> Warsaw

Re: voxelTerrain - marching cubes, transvoxel - demo - vid -

Post by Morgoth »

Sorry for grave-digging, but I'm implementing my own MCs and I just found this topic. I'd like to ask how did you resolve the ambiguous cases in the mesh generation? And is your resulting mesh topologically correct or are you adding excessive triangles to hide possible holes?

I did a quite good amount of research in this topic recently, I've found some solutions but nothing seems to be really interesting, at least from performance point of view. I didn't realise that this problem persists for 20+ years and most of known 'solutions' are to rework the algorithm from scratch.

However I have some idea that I hope to check in a few days :).
[13:12] <Emul> no, I make small pottery dishes,
[13:13] <Emul> of course it's a software company fool! :-)
qwertzui11
Halfling
Posts: 80
Joined: Wed May 14, 2008 10:44 am
Location: EU
x 22

Re: voxelTerrain - marching cubes, transvoxel - demo - vid -

Post by qwertzui11 »

I did a cleaner reimplementation
http://www.ogre3d.org/forums/viewtopic.php?f=11&t=77978
the src is available at gihub too.
The holes get closed by the algo transvoxel http://www.terathon.com/voxels/

Have fun
Markus
Morgoth
Greenskin
Posts: 111
Joined: Tue Mar 30, 2004 12:56 am
Location: Poland -> Warsaw

Re: voxelTerrain - marching cubes, transvoxel - demo - vid -

Post by Morgoth »

Thank you for your answer but I'm not asking for the transvoxel part.

I know that adding LOD to Marching Cubes causes holes on LOD boundaries, and that transvoxel is used to cap those holes with special lookup table that represents connection between LOD levels.

However, apart from the LOD system there's a problem with MCs itself, that it doesn't create perfect mesh in all situations. There are some combinations, where different triangulations should be used and the correct triangulation depends not on the cube itself but on its neighbours. Most of the solutions I've seen try to add new cases to the lookup table, with additional voxel reads, which makes the solution slower and less parallelizable.
Did you do anything specific to solve this problem? I'm going to look at your code when I have some time, but asking you directly may be faster :).
[13:12] <Emul> no, I make small pottery dishes,
[13:13] <Emul> of course it's a software company fool! :-)