Monday, May 19, 2014

Real life changes

Since I last posted a lot has happened. I had to quit my job at the Mercedes dealership and as a result I started my own small dealership. I have a lot riding on the outcome so the change of schedule and responsibilities caused me to stop development of the puzzle game.

A few months have gone by and while I have much to do at my dealership, I've also started to get some semblance of schedule back in my life, so I'm carving out some development time again.

This round of effort will probably not be on a game, but on a piece of technology I find interesting.

If you haven't read http://procworld.blogspot.com/ and you have any interest in procedural world generation you should leave this blog and immediately go read his entire site.

Moving on... while his procedural work interests me the more interesting thing to me is his method of triangulation.

He's generating landscape and now 3d models with voxel density fields and then triangulating them via the dual contouring method, although at this point his implementation has to be considered some type of hybrid version of it.

At some point he links to this paper. www.frankpetterson.com/publications/dualcontour/dualcontour.pdf which is the original white paper describing the technique. And after some study I also found this paper: www.cs.rice.edu/~jwarren/papers/techreport02408.pdf which address some of the issues you'll find with the original whitepaper.

After seeing the amazing things Miguel is doing "from his pajamas" I fire up the trusty compiler and start digging into the white papers...

Ugg, brick wall. The concept is somewhat complex, just wrapping your head around the difference between primal and dual methods. What does that really mean exactly?

Then the methods of determining vertex placement, quadratic error methods, f(x,y,z), gradients for normal calculation. Brain-asplode.

This next series of posts will be me deconstructing my efforts to understand the concept and master the math required to implement my own version. I believe I will actually be using a dual marching cubes method instead of dual contouring but I plan on implementing them both to be sure of which I prefer.


1 comment: