So, it's been a while since I've posted a status to the community so I felt one was overdue.
At the beginning of the month, my wife went out of town for her every other month "checkup from the neck-up". The tumors are kind of still growing so they have put her on yet another medicine. When she is out of town, I watch the kids and then we had the added benefit of her getting snowed in down there for an extra data. Between that and all the stuff surrounding it, getting the house ready (on this new medicine it is even more important that she doesn't fall), dealing with the news, etc... there wasn't much time for Mythruna. Between all of that and trying to keep up with "day job" work, I really didn't even want to sit in front of the computer anymore.
Back somewhere in 2003 or 2004, I did some work with what can loosely be called "isosurfaces". A lot of the modern sandbox "voxel" games are using this approach to render their terrain. Back then I was using it for data visualization. We had lots of "fields" (think meta-balls
http://en.wikipedia.org/wiki/Metaballs) and were drawing surfaces on those fields at some threshold. Animated it looked kind of cool but we never did much with it other than skinning some data sets.
I've long had this sort of thing in the back of my mind as a potential way to deal with flowing water in Mythruna. For the record, I'm pretty sure that it won't work but it's still been the top of my list for things to try. Also, I have a directory where I keep design documents for "quick game ideas that might make me some money". At least half of those could benefit from some kind of voxel/isosurface technique.
Many may remember that I played with doing photorealistic style terrain back in around 2006. Actually that was my first playing around with jMonkeyEngine way back in its more primitive state. Things were just frustrating and I ended up abandoning it... still, I do get a bit of "terrain envy" when I see all of these nice looking voxel terrain engines showing up. I know a lot more about the subject now and was pretty sure I could throw something together quickly.
With Mythruna I made a conscious choice to make a block-world engine. That's part of the whole aesthetic and I don't plan to change my mind on that but the theory was always that the "land is blocks" but everything else is more organic. This is why trees are round, water wavy, animals and people will look regular, etc.. In my minds eye, I'd even like it if sand was smoother but I don't know that I will get there. If I do, then isosurfaces are the way to achieve that.
Creative momentum is a funny thing. When you are used to being obsessed with something and having that push you through it can be hard to stay motivated when you are "out of it". If you swing the other way and have things actively pulling you away from the computer every day then it gets even harder. If you add to that some aversion to sitting in front of the computer at all... you have a recipe for never getting anything done. That's kind of where I was headed. I needed a project to get the creative juices flowing. Something to get back in the habit of coding like a banshee every time I say down at the computer. Just nothing was really piquing my interest these days.
Anyway, two weeks ago or so I saw "yet another voxel terrain" engine show up, on the JME forums this time. This kind of was the straw that broke the camel's back. I thought "not only will I create a voxel terrain engine... but I will open source it making sure that the market gets flooded with them and block worlds are unique again..." There may have even been a maniacal laugh in there somewhere.

But seriously, I do plan to open source this piece... it's not directly related to the Mythruna engine but the improvements people contribute there will directly benefit my engine.
I'd read chapter one of GPU Gems about 10 times before:
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html It's got a nice compact technique (designed for GPUs actually) for generating terrain. This has long been on my to-do list to try out so a day or so later I had something cobbled together.
First, the fractal implementation they were using needed to be adapted and I wanted to visualize it before going through the work of surfacing it... so I just plopped down a bunch of point sprites:

Then the initial mesh implementation: (easier to test with lines than triangles)

Proper surface normal calculation: (little red lines are pointing in the surface normal direction)

Proper triangles and lighting:

I wanted to see what it would look like with a glass material (water is still in the back of my mind after all):

Now the fun part, basic triplanar texture mapping from the GPU gems article:

And finally, some of my own enhancements to give the grass more defined borders and also add multiresolution layering of the textures:

Adding in some JME post-processing filters and it really starts to look like something:

...personally I think that pic is really beautiful even without grass or trees. Never mind that there is grass growing underwater. It's not important.

Here is a video. Be sure to watch on HD:
https://www.youtube.com/watch?v=MabpkOVLF3cI'll even do one better. Here is a demo you can download:
http://mythruna.com/temp/IsoSurface/IsoSurfaceDemo-Windows.ziphttp://mythruna.com/temp/IsoSurface/IsoSurfaceDemo-Linux.ziphttp://mythruna.com/temp/IsoSurface/IsoSurfaceDemo-MacOSX.zipMost likely... if you have trouble running Mythruna then this may give you issues. With all options on, it hammers the snot out of my graphics card.
Controls:
-space bar toggles between camera and mouse cursor. (ie: hit the space bar to be able to click on stuff, space again to go back to flying)
-WASD moves
-mouse looks
-left shift runs (10 m/sec)
-left shift + control runs really fast (20 m/sec)
-F3 toggles the HUD
-F5 toggles the stats display
-SysReq/Prt Scr takes a screen shot
On the HUD, if you click on the section titles it will collapse/expand the section. The little orb on the right side of the section titles turns the effect on/off. (See video.)
By default, I've turned many of the effects off because they seem to cause issue on some computers. (Bugs in some JME code.)
I want to stress again that I will not be turning Mythruna into a voxel engine... but I do hope to use this technique for some things in the engine (perhaps crafting if nothing else).
Still, it's a fun little side project, may lead to some simple games I can throw onto a store somewhere, and it gets the creative juices flowing again. I'm even kind of excited to get back to the more boring things I was working on deep in Mythruna.