

Generating Complex Procedural Terrains Using the GPU (2008) - younata
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html

======
voltagex_
Tangentially related:

[http://iquilezles.org/www/articles/morenoise/morenoise.htm](http://iquilezles.org/www/articles/morenoise/morenoise.htm)

[http://iquilezles.org/www/articles/fog/fog.htm](http://iquilezles.org/www/articles/fog/fog.htm)

[http://iquilezles.org/www/articles/compilingsmall/compilings...](http://iquilezles.org/www/articles/compilingsmall/compilingsmall.htm)

and the finished product is "Elevated" on
[http://iquilezles.org/prods/](http://iquilezles.org/prods/)

~~~
TacticalCoder
Somehow I do find that "Elevated" in 4 KB beats all these 50 bytes spreadsheet
in JavaScript that have made it lately on HN! (4 KB, including the music)

~~~
voltagex_
There's difficulty in both but I've always had respect for the demoscene.

------
highCs
This demo drew attention a lot in the game industry. Also, there is no mention
to it in the nvidia paper but another noteworthy voxel terrain demo was the
cave demo (voxlap engine) from Ken Silverman (3D realms / Duke Nukem 3D
'Build' editor) [1].

[1]
[http://advsys.net/ken/voxlap/voxlap03.htm](http://advsys.net/ken/voxlap/voxlap03.htm)

------
jheriko
its also possible to achieve similar effects using whittaker iteration as a
'sloppy but fast' alternative to the sphere tracing/distance field approach

there is not much good reference on it though (which is why i am compelled to
self link)

[http://software.intel.com/sites/billboard/article/star-
chart...](http://software.intel.com/sites/billboard/article/star-chart-
developer-diary-part-2) [http://jheriko-rtw.blogspot.co.uk/2009/05/whittakers-
method-...](http://jheriko-rtw.blogspot.co.uk/2009/05/whittakers-method-and-
brief-history-of.html)

its less well known by far... Steven Wittens came across it, and I shamelessly
nicked it, back when we were doing AVS presets for Winamp. Speaking of Winamp,
back then Geiss (the author of this article) created Monkey - it used D3D and
hardware acceleration iirc, but also rendered an isosurface similar to the
method described in this article.

It was an interesting period of actual innovation in those days...

------
femto
Another take on the marching cubes algorithm is here:

[http://www.cs.unc.edu/~marc/tutorial/node130.html](http://www.cs.unc.edu/~marc/tutorial/node130.html)

It more clearly states that marching cubes is a method of converting
volumetric data into a bounding surface.

------
mef51
This looks super interesting. Does anyone know any other good resources for
graphics programming?

~~~
pushedx
[http://www.iquilezles.org/www/index.htm](http://www.iquilezles.org/www/index.htm)

I come back to Inigo's site every few months to add to my appreciation of the
demoscene. It isn't like stage magic, it's even more amazing when you see how
the trick is done. He was hired by Pixar in 2009. I'm assuming they recruited
him.

~~~
vilya
There's an article in Computer Graphics World about the procedural terrain and
foliage generation in Pixar's Brave which apparently Inigo Quilez was behind:

[http://www.cgw.com/Publications/CGW/2012/Volume-35-Issue-4-J...](http://www.cgw.com/Publications/CGW/2012/Volume-35-Issue-4-June-
July-2012/The-Royal-Treatment.aspx)

It's a bit light on technical details, but pretty cool to read about.

------
binarycrusader
See also Eric Lengyel's take on this which he calls the Transvoxel Algorithm:

[http://www.terathon.com/voxels/](http://www.terathon.com/voxels/)

------
svantana
Very nice, but is this practical for games? What about collision detection, AI
players etc? Or would you use it mainly for backgrounds, skies and such?

------
leokun
I wonder if this is now No Man's Sky works.

~~~
ramidarigaz
I don't know what tech No Man's Sky is using, but Voxel Farm[0] does something
very similar (it's being used in Everquest Next and StarForge among other
things). However, instead of marching cubes it uses dual contouring which
produces nicer results. Also, it was made by one guy. His blog is amazing:
[http://procworld.blogspot.com/](http://procworld.blogspot.com/)

[0][http://voxelfarm.com/vfweb/index.html](http://voxelfarm.com/vfweb/index.html)

