<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brainfold &#187; terrain generation</title>
	<atom:link href="http://www.brainfold.org/blog/tag/terrain-generation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brainfold.org/blog</link>
	<description>On Python, game development and everything</description>
	<lastBuildDate>Sat, 15 May 2010 21:58:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>There&#8217;s noise in my pictures</title>
		<link>http://www.brainfold.org/blog/2008/06/05/theres-noise-in-my-pictures/</link>
		<comments>http://www.brainfold.org/blog/2008/06/05/theres-noise-in-my-pictures/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 20:31:27 +0000</pubDate>
		<dc:creator>Jussi Lepistö</dc:creator>
				<category><![CDATA[Artillery Brawl]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[terrain generation]]></category>

		<guid isPermaLink="false">http://www.brainfold.org/blog/?p=61</guid>
		<description><![CDATA[It took a bit longer than I expected (coding progress if inversely proportional to outside temperature), but my noise experiments are done at least for the moment. So, time for some explanation and pretty pictures. I decided simple value noise (essentially just random values) with Fractional Brownian Motion (fBm) would be enough for now. Besides, [...]]]></description>
			<content:encoded><![CDATA[<p>It took a bit longer than I expected (coding progress if inversely proportional to outside temperature), but my noise experiments are done at least for the moment. So, time for some explanation and pretty pictures.</p>
<p>I decided simple value noise (essentially just random values) with Fractional Brownian Motion (fBm) would be enough for now. Besides, with my implementation it will be easy to expand later to Perlin, Simplex or some other type of noise. Natalya Tatarchuk’s <a href="http://developer.amd.com/assets/Tatarchuk-Noise%28GDC07-D3D_Day%29.pdf">talk</a> that I already linked previously has an excellent explanation of fBm when applied to noise. I already have vague plans in mind for more complex multi-stage terrain generation with terrain types, maybe some erosion etc, but I'll have to concentrate on more important stuff first. Like gameplay. But first, the pictures I promised, click for larger versions. And don't mind the ugly terrain texture.</p>
<p><span id="more-61"></span></p>
<p>Value noise (with linear interpolation) on its own isn't particularly spectacular:</p>
<p><a href="http://www.brainfold.org/blog/wp-content/uploads/2008/06/value_linear.png"><img class="size-medium wp-image-68" title="Value noise, linear interpolation" src="http://www.brainfold.org/blog/wp-content/uploads/2008/06/value_linear-300x233.png" alt="" width="300" height="233" /></a></p>
<p>With quintic interpolation (6t<sup>5</sup> - 15t<sup>4</sup> + 10t<sup>3</sup>), as used in Simplex noise, it looks much better, but it's still quite boring:</p>
<p><a href="http://www.brainfold.org/blog/wp-content/uploads/2008/06/value_quintic.png"><img class="alignnone size-medium wp-image-67" title="Value noise, quintic interpolation" src="http://www.brainfold.org/blog/wp-content/uploads/2008/06/value_quintic-300x233.png" alt="" width="300" height="233" /></a></p>
<p>Combining several frequencies of noise with fBm immediately generates much more interesting results. Four octaves of noise is enough to start showing a difference:</p>
<p><a href="http://www.brainfold.org/blog/wp-content/uploads/2008/06/fbm_4.png"><img class="alignnone size-medium wp-image-62" title="Value noise with Fractional Brownian Motion, 4 octaves" src="http://www.brainfold.org/blog/wp-content/uploads/2008/06/fbm_4-300x233.png" alt="" width="300" height="233" /></a></p>
<p>Increasing octaves to eight provides more interesting details:</p>
<p><a href="http://www.brainfold.org/blog/wp-content/uploads/2008/06/fbm_8.png"><img class="alignnone size-medium wp-image-63" title="Value noise with Fractional Brownian Motion, 8 octaves" src="http://www.brainfold.org/blog/wp-content/uploads/2008/06/fbm_8-300x233.png" alt="" width="300" height="233" /></a></p>
<p>Increasing octaves further doesn't really add anything you can see in this application. This is a picture of terrain with 16 octaves of noise:</p>
<p><a href="http://www.brainfold.org/blog/wp-content/uploads/2008/06/fbm_16.png"><img class="alignnone size-medium wp-image-64" title="Value noise with Fractional Brownian Motion, 16 octaves" src="http://www.brainfold.org/blog/wp-content/uploads/2008/06/fbm_16-300x233.png" alt="" width="300" height="233" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brainfold.org/blog/2008/06/05/theres-noise-in-my-pictures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Day n: noise</title>
		<link>http://www.brainfold.org/blog/2008/06/01/day-n-noise/</link>
		<comments>http://www.brainfold.org/blog/2008/06/01/day-n-noise/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 20:01:22 +0000</pubDate>
		<dc:creator>Jussi Lepistö</dc:creator>
				<category><![CDATA[Artillery Brawl]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[Pyglet]]></category>
		<category><![CDATA[terrain generation]]></category>

		<guid isPermaLink="false">http://www.brainfold.org/blog/?p=60</guid>
		<description><![CDATA[I'm back again. Yesterday, I continued game development for a change by taking advantage of some Pyglet 1.1 features in my game, and doing small improvements to controls. Then I noticed how awful the current terrain generation method is, and decided to start researching noise. Perlin noise at first, then I found about Simplex noise, [...]]]></description>
			<content:encoded><![CDATA[<p>I'm back again. Yesterday, I continued game development for a change by taking advantage of some <a href="http://www.pyglet.org/">Pyglet</a> 1.1 features in my game, and doing small improvements to controls. Then I noticed how awful the current terrain generation method is, and decided to start researching noise. Perlin noise at first, then I found about Simplex noise, Fractional Brownian motion... and I'm still on that path. Natalya Tatarchuk's Game Developers Conference <a href="http://developer.amd.com/assets/Tatarchuk-Noise(GDC07-D3D_Day).pdf">talk</a> was especially helpful. I hope to get something concrete done with noise next week. The good news is, that means finally more screenshots! And hopefully a longer entry for a change...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brainfold.org/blog/2008/06/01/day-n-noise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
