<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A coder's journal</title>
	<atom:link href="http://necrophobic.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://necrophobic.wordpress.com</link>
	<description>A programmer's blog</description>
	<lastBuildDate>Mon, 01 Oct 2007 05:02:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='necrophobic.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>A coder's journal</title>
		<link>http://necrophobic.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://necrophobic.wordpress.com/osd.xml" title="A coder&#039;s journal" />
	<atom:link rel='hub' href='http://necrophobic.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Terrain work in progress 4: Patch Manager</title>
		<link>http://necrophobic.wordpress.com/2007/10/01/terrain-work-in-progress-4-terrain-patch-manager/</link>
		<comments>http://necrophobic.wordpress.com/2007/10/01/terrain-work-in-progress-4-terrain-patch-manager/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 04:59:19 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/10/01/terrain-work-in-progress-4-terrain-patch-manager/</guid>
		<description><![CDATA[It has passed some time since the last update. In the last weeks I&#8217;ve been very working a lot in the company, and also with some new games to be played at home. But in the few moments left, I&#8217;ve created the patches manager and it&#8217;s working pretty well. The manager creates lots of terrain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=33&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It has passed some time since the last update. In the last weeks I&#8217;ve been very working a lot in the company, and also with some new games to be played at home. But in the few moments left, I&#8217;ve created the patches manager and it&#8217;s working pretty well. The manager creates lots of terrain patches, asks for them to load and render, updates the LOD level considering the camera position and so on. The result and the performance seems to be as good as the expected and the code is stable and organized.</p>
<p>For the next step, I&#8217;ve made only one modification from the original plan. Right now I should start working on the streaming of the terrain, but before that, I&#8217;ve decided to create one sample terrain, with a good size this time. This way, I can have a better benchmark of the current performance, and also a better test case for the streaming.</p>
<p>To create the terrain, I&#8217;ll need an application, a terrain slicer, to create the patches for a big terrain. With this tool, I can work with a large terrain and make a post-process to generate the various slices that I use as terrain patches. It will have the following specs:</p>
<ul>
<li>Each patch will have 128&#215;128 vertexes</li>
<li>The vertex size will have 2 meters (so each patch will have 256&#215;256 meters)</li>
<li>The view distance will be 2 kilometers</li>
<li>The total size of the terrain will be 32&#215;32 patches (a little more than 8&#215;8 kilometers)</li>
</ul>
<p>I&#8217;ll also make some simple tests with different settings to check the performance, so I can have a better idea about the impact of the patch size in the application. I&#8217;ll have some stall while moving the camera, since I have no streaming yet, but everything should be working nicely.</p>
<p>PS.: I&#8217;ll not post screen-shots from this update, since it looks similar with the tests I was doing before. The major difference is the internal structure/management.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=33&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/10/01/terrain-work-in-progress-4-terrain-patch-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>
	</item>
		<item>
		<title>Terrain work in progress 3: More organization and no more gaps</title>
		<link>http://necrophobic.wordpress.com/2007/08/26/terrain-work-in-progress-3-more-organization-and-no-more-gaps/</link>
		<comments>http://necrophobic.wordpress.com/2007/08/26/terrain-work-in-progress-3-more-organization-and-no-more-gaps/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 02:21:54 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/08/26/terrain-work-in-progress-3-more-organization-and-no-more-gaps/</guid>
		<description><![CDATA[Even with a delay after my last post (currently I&#8217;m facing a crunch time period at work), these are the news of the terrain project: As I&#8217;ve posted some time ago, I needed a version control system at my home computer, to organize my projects, keep track of code differences and also to make the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=31&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Even with a delay after my last post (currently I&#8217;m facing a crunch time period at work), these are the news of the terrain project:</p>
<p>As I&#8217;ve posted some time ago, I needed a version control system at my home computer, to organize my projects, keep track of code differences and also to make the backup process easier. After searching for some free repository services in the Internet, I&#8217;ve found 2 interesting options:</p>
<ul>
<li><a href="http://cvsdude.com">http://cvsdude.com</a> &#8211; 10 MB of space in the free service</li>
<li><a href="https://freepository.com">https://freepository.com</a> &#8211; 300 MB of space in the free service, but access is only allowed through the web browser</li>
</ul>
<p>As 10 MB is not enough memory for my needs, and I wanted an easy way to access my files (I didn&#8217;t like the web interface of the freepository) I&#8217;ve changed my mind. Instead of a remote server, I&#8217;ve made a <a href="http://subversion.tigris.org/">Subversion</a> local server on my machine. The installation was very easy and in a few moments I had my server and repository running.</p>
<p>The next step included organizing all my past projects, restoring of backups (some things had 12 years), cleaning up all the mess and adding everything to my repository. This took me a lot of time, since I had more code stored than I remembered. I should have made this a long time ago, but better late then never, right?</p>
<p>For the Subversion interface, I&#8217;ve chosen <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a>, a great tool that integrates in the windows explorer. Now I can make a dump of my repository to a file, and backup this file to a pen drive. So, everything set, I can continue my work towards the current main goal: a big terrain.</p>
<p>Below there is a screen-shot from the latest version. Finally I could spend some time on the code itself, so the interpolation of vertexes between different LOD levels was made:</p>
<p style="text-align:center;"><img src="http://necrophobic.files.wordpress.com/2007/08/nomoregaps.jpg?w=450" alt="No more gaps" /></p>
<p>You can notice that, even though there are missing vertexes on the lower level, both fit together perfectly. This was made using a very simple interpolation in the higher level, with 5 parameters for each terrain patch, controlling the blend between the current level and the lower one, a float value between 0 and 1 for each side (left, top, right, bottom) and one for the center. The center blend will be used when a LOD level is changed, so we avoid terrain popping from one position to another with a smooth interpolation.</p>
<p>Now I can work on the next part of the project. The creation of a squares manager. This will be an interesting thing, since the manager will make the transition between the LOD levels, increasing/decreasing the quality based on the distance to the camera. Also, it will be asking for new files to be loaded as needed, in the near future. So my current terrain patches will be the low level of my terrain implementation and this manager will organize parameters and data of these patches in a higher level.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=31&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/08/26/terrain-work-in-progress-3-more-organization-and-no-more-gaps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/08/nomoregaps.jpg" medium="image">
			<media:title type="html">No more gaps</media:title>
		</media:content>
	</item>
		<item>
		<title>Terrain work in progress 2: Heightmap</title>
		<link>http://necrophobic.wordpress.com/2007/08/14/terrain-work-in-progress-2-heightmap/</link>
		<comments>http://necrophobic.wordpress.com/2007/08/14/terrain-work-in-progress-2-heightmap/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 02:26:49 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/08/14/terrain-work-in-progress-2-heightmap/</guid>
		<description><![CDATA[Well, now I have height values in my terrain. In my first idea, I wanted to read the height values in the vertex buffer, so I could have a static vertex buffer for all my needs, and wouldn&#8217;t need to lock vertices every frame. But for some reasons, I&#8217;ve changed my mind, for some reasons: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=27&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, now I have height values in my terrain. In my first idea, I wanted to read the height values in the vertex buffer, so I could have a static vertex buffer for all my needs, and wouldn&#8217;t need to lock vertices every frame. But for some reasons, I&#8217;ve changed my mind, for some reasons:</p>
<ul>
<li>It&#8217;s not possible to access textures in the vertex shader below 3.0</li>
<li>My modest geForce 5600 has vertex shader  2.0</li>
<li>I don&#8217;t want to always run the software driver</li>
<li>Currently, I have some CPU cycles to spent while the card is rendering</li>
</ul>
<p>Below I&#8217;ve posted an screen-shot taken from my latest build. Keep in mind that it&#8217;s just for testing purposes, since it is very small, and each patch has only 33&#215;33 vertexes. It has no lightening yet (I still have to calculate the normals in the near future), so I&#8217;m just using the height as the color. You can see the LOD changes by the color, red are the even and green is the odd levels. I&#8217;ve also included a wire-frame of the terrain, so you can see what&#8217;s really going on.</p>
<p style="text-align:center;"><img src="http://necrophobic.files.wordpress.com/2007/08/wip2_filled.jpg?w=450" alt="Filled terrain" /></p>
<p style="text-align:center;"><img src="http://necrophobic.files.wordpress.com/2007/08/wip2_wire.jpg?w=450" alt="Wip2Wired" /></p>
<p>Regarding the height values, I still have one problem to solve. Since there are missing vertexes in lower levels comparing to the higher ones, you can see gaps between them. I&#8217;ve captured a screen-shot from a close up in one of these gaps:</p>
<p style="text-align:center;"><img src="http://necrophobic.files.wordpress.com/2007/08/wip2_wire_close.jpg?w=450" alt="Wip2GapCloseWire" /></p>
<p>This problem seems to be easily solved with an interpolation. These vertexes that doesn&#8217;t exist in the lower level need to be moved to the medium value of it&#8217;s neighbors. That&#8217;s the next thing I&#8217;ll do, since these gaps are really annoying.</p>
<p>Some things I&#8217;ve discovered that I need to do really soon:</p>
<ul>
<li>A texture slicer, so I can work with a larger version of the height-map, and cut into pieces for the terrain patches. Making this by hand is really boring and takes some time.</li>
<li>Create an account in a version control system, so I can keep track of my changes, and also keep the code backed up.</li>
</ul>
<p>And so the work goes on&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=27&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/08/14/terrain-work-in-progress-2-heightmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/08/wip2_filled.jpg" medium="image">
			<media:title type="html">Filled terrain</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/08/wip2_wire.jpg" medium="image">
			<media:title type="html">Wip2Wired</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/08/wip2_wire_close.jpg" medium="image">
			<media:title type="html">Wip2GapCloseWire</media:title>
		</media:content>
	</item>
		<item>
		<title>Terrain work in progress 1: basic app and terrain object</title>
		<link>http://necrophobic.wordpress.com/2007/08/11/terrain-work-in-progress-1-basic-app-and-terrain-object/</link>
		<comments>http://necrophobic.wordpress.com/2007/08/11/terrain-work-in-progress-1-basic-app-and-terrain-object/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 20:25:59 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/08/11/terrain-work-in-progress-1-basic-app-and-terrain-object/</guid>
		<description><![CDATA[Long time no see, unfortunately. These last days I had some trouble acquiring free time to work on the terrain, so the progress was slower than I wanted. Except from that, everything is going fine, and I&#8217;ve some screen-shots to share, showing different LOD configurations. What I have now: A basic viewer application, with camera [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=24&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Long time no see, unfortunately. These last days I had some trouble acquiring free time to work on the terrain, so the progress was slower than I wanted. Except from that, everything is going fine, and I&#8217;ve some screen-shots to share, showing different LOD configurations. What I have now:</p>
<ul>
<li>A basic viewer application, with camera fly commands.</li>
<li>A terrain object/resource, with some configurations and a wire-frame render mode.</li>
</ul>
<p><a href="http://necrophobic.files.wordpress.com/2007/08/wip1_.jpg" title="Work in Progress 1"></a></p>
<p style="text-align:center;"><a href="http://necrophobic.files.wordpress.com/2007/08/wip1_.jpg" title="Work in Progress 1"><img src="http://necrophobic.files.wordpress.com/2007/08/wip1_.jpg?w=450" alt="Work in Progress 1" /></a></p>
<p><a href="http://necrophobic.files.wordpress.com/2007/08/wip1_.jpg" title="Work in Progress 1"></a><a href="http://necrophobic.files.wordpress.com/2007/08/wip1.jpg" title="Terrain Buffers"></a></p>
<p>It&#8217;s not much, but it&#8217;s the base I need to work. The next step is reading the height values from a texture, updating the terrain vertex positions. Strangely, my little engine doesn&#8217;t have texture support yet, I never needed it on my previous experiments.</p>
<p>As usual, if anyone has questions or suggestions, feel free to add a comment <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=24&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/08/11/terrain-work-in-progress-1-basic-app-and-terrain-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/08/wip1_.jpg" medium="image">
			<media:title type="html">Work in Progress 1</media:title>
		</media:content>
	</item>
		<item>
		<title>Terrain tasks</title>
		<link>http://necrophobic.wordpress.com/2007/07/20/terrain-tasks/</link>
		<comments>http://necrophobic.wordpress.com/2007/07/20/terrain-tasks/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 04:13:09 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/07/20/terrain-tasks/</guid>
		<description><![CDATA[Now it&#8217;s time to have some work and finally have something done for the terrain project. This is the task list I&#8217;m planning to follow from now on, in this order: Main Tasks: Add the terrain type resource/object to the factory in the engine. (done) Create a test application, with a terrain instance, and some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=15&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now it&#8217;s time to have some work and finally have something done for the terrain project. This is the task list I&#8217;m planning to follow from now on, in this order:</p>
<p style="text-align:center;" align="justify"><img src="http://necrophobic.files.wordpress.com/2007/07/at_work.jpg?w=450" alt="At work" /></p>
<p><strong>Main Tasks:</strong></p>
<ul>
<li>Add the terrain type resource/object to  the factory in the engine. <em>(done)</em></li>
<li>Create a test application, with a terrain instance, and some controls to fly in the world with the camera. <em>(done)</em></li>
<li>Create the terrain squares logic, creating the needed vertex/index buffers. <em>(done)</em></li>
<li>Render the terrain squares, with wire-frame support, just to setup the shader skeleton and see something in the screen. (done)</li>
<li>Use interpolation to smooth the LOD intersections and also the LOD changes. (done)</li>
<li>Create the squares manager, which will make the culling, set each square LOD level and ask for data. (done)</li>
<li>Create a sample terrain. <em><strong>(in progress)</strong></em></li>
<li>Implement the file streaming.</li>
<li>Render each square using the height maps and the current settings.</li>
<li>Include normal maps to calculate the lights.</li>
<li>Include texture layers (grass, rocks, gravel&#8230;).</li>
<li><strike>Drink lots of beer</strike> Make a code cleanup / optimizations / leak detection / performance tests.</li>
</ul>
<p><strong>Optional Tasks:</strong></p>
<ul>
<li>Create a procedural terrain, and use it, instead the file streaming.</li>
<li>Add a sky-box.</li>
<li>Implement a walk-mode.</li>
</ul>
<p>And that&#8217;s it, I hope I didn&#8217;t forget anything, since it has enough tasks for some time. I expect that in the end I&#8217;ll have a good running terrain, and that all of this will be useful for someone besides me. I&#8217;ll update this blog with new posts between the tasks, and hopefully post some nice screen-shots.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=15&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/07/20/terrain-tasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/07/at_work.jpg" medium="image">
			<media:title type="html">At work</media:title>
		</media:content>
	</item>
		<item>
		<title>Terrain Planning</title>
		<link>http://necrophobic.wordpress.com/2007/07/17/terrain-planning/</link>
		<comments>http://necrophobic.wordpress.com/2007/07/17/terrain-planning/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 02:26:27 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Procedural]]></category>
		<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/07/17/terrain-planning/</guid>
		<description><![CDATA[Ok, it&#8217;s time to make some decisions on how I&#8217;ll implement this terrain. After reading some articles and thinking about what I do expect from my terrain, I have chosen a few things. I&#8217;m not sure if everything will work&#8230; also, some decisions may not be the best one, but I&#8217;ll take my chance. Main [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=9&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ok, it&#8217;s time to make some decisions on how I&#8217;ll implement this terrain. After reading some articles and thinking about what I do expect from my terrain, I have chosen a few things. I&#8217;m not sure if everything will work&#8230; also, some decisions may not be the best one, but I&#8217;ll take my chance.</p>
<h2>Main structure:</h2>
<p>As my terrain will be streamed (from a file, network or from a procedure), I need to divide it somehow. I&#8217;ve decided to make it in squares of the same size, so I can load single squares from a file, and use it also on my LOD calculation. Given the current LOD from a square, the data will be streamed (in the case of a file, the correct mip will be loaded from the disk). Also, with this approach, I can load first the lower version and substitute it from a better one as soon as the higher versions arrive from the stream. I&#8217;ve made an simple image of the system:</p>
<p><a href="http://necrophobic.files.wordpress.com/2007/07/first_grid.jpg" title="First LOD Grid"></a></p>
<p style="text-align:center;"><a href="http://necrophobic.files.wordpress.com/2007/07/first_grid.jpg" title="First LOD Grid"><img src="http://necrophobic.files.wordpress.com/2007/07/first_grid.jpg?w=450" alt="First LOD Grid" /></a></p>
<ul>
<li>Blue area: First LOD, with the highest resolution (in this example, 4&#215;4)</li>
<li>Yellow area: Medium quality LOD</li>
<li>Green area : Lower quality LOD</li>
<li>Blue Xs: Normal vertexes</li>
<li>Red Xs: As usual, red means problems. This vertexes must be interpolated to fix the fact that they do not exist on the lower LOD.</li>
</ul>
<p>As you can see, I&#8217;m not an artist, but I think that the drawing fulfills the objective.  Here, the camera is in the center of the terrain, so we load all squares surrounding it.  It should have the following features:</p>
<ul>
<li>Each new LOD will have 4 times less resolution than the previous one.</li>
<li>Configurable quality parameters, like the quality of the first LOD, distance from LOD to LOD, view distance&#8230;</li>
<li>LOD based on the distance from the camera and the currently available data. As the camera moves, squares will be released and new ones will be loaded.</li>
<li>The terrain can be loaded progressively (load lower resolution maps first, show it, and substitute when a better one is acquired)</li>
<li>Only one needed vertex buffer (with the higher resolution) and one index buffer for each LOD</li>
<li>Use of GPU to calculate the height of each vertex based on a height map texture</li>
<li>LOD and streaming of  other textures, not just the height field (normal maps, texture layers&#8230;)</li>
<li>Use of interpolation when changing the LOD levels and to avoid T-Junction problems between different levels.</li>
</ul>
<p><strong>Positives aspects:</strong></p>
<ul>
<li>Easy to use streaming (fixed size squares, easy to acquire and manage)</li>
<li>Good visual quality (full quality around the camera, decreased quality away from it, popping can be avoided with interpolation)</li>
<li>Reduced number of triangles (each LOD blit 4 times less triangles then the previous one)</li>
<li>Low usage of memory</li>
<li>Low use of CPU (which can be used to stream/process new data)</li>
<li>T-Junctions can be corrected on the vertex shader (more on that later)</li>
<li>If needed, it can be implemented completely in software (i.e.: low spec machines)</li>
</ul>
<p><strong>Negative aspects:</strong></p>
<ul>
<li>A square must always have neighbors with a maximum of 1 level of difference (not a real problem, due to the LOD nature)</li>
<li>High number of batches (much more important than triangles, these days&#8230;)</li>
<li>Collision detection with the terrain will have different results depending the LOD level.</li>
</ul>
<p><strong>Example:</strong> (considering a 16bit height map):</p>
<ul>
<li>LOD 0: 128&#215;128, 32768 triangles, 1 batch, height map: 32768 bytes</li>
<li>LOD 1: 64&#215;64, 8192 triangles, 8 batches, height map: 65536 bytes</li>
<li>LOD 2: 32&#215;32, 2048 triangles, 16 batches, height map: 32768 bytes</li>
<li>LOD 3: 16&#215;16, 512 triangles, 24 batches, height map: 12288 bytes</li>
<li>&#8230;</li>
</ul>
<p><strong>Overall</strong></p>
<p>My biggest concern is the number of batches, but each square will have a good coverage area. I think it&#8217;s a price to pay for the streamming feature of the terrain, and I believe it will be good enough. I&#8217;ll make some performance tests on the future, and, if necessary, I&#8217;ll consider different alternatives, but right now I think it will be ok this way.</p>
<p>About the collision detection problem, it can be a big issue depending on the use of the terrain. As I&#8217;m implementing it with the rendering and the size as the main objective, it will not be a problem. But it can be solved in different ways, depending on the needs. If we really need a good precision, or a constant terrain, we can add a constraint that a specific (i.e.: the highest) LOD level must always be available in all, or in some squares (i.e.: near the player).</p>
<p>By the previous example, we can see that the number of batches for each new LOD level increases the previous one with a fixed number (8, except for the first one). Also, the camera culling can eliminate unnecessary batch rendering, and each new LOD requires less texture memory than the previous one.In the near future I&#8217;ll post details on how I do plan to develop each of these features, with a list of the tasks I must accomplish to make this happening. As always, if you have any critics or suggestions, feel free to post.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=9&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/07/17/terrain-planning/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/07/first_grid.jpg" medium="image">
			<media:title type="html">First LOD Grid</media:title>
		</media:content>
	</item>
		<item>
		<title>Terrain study</title>
		<link>http://necrophobic.wordpress.com/2007/07/13/terrain-study/</link>
		<comments>http://necrophobic.wordpress.com/2007/07/13/terrain-study/#comments</comments>
		<pubDate>Fri, 13 Jul 2007 03:54:37 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[Procedural]]></category>
		<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[studies]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/07/13/terrain-study/</guid>
		<description><![CDATA[Well, back again to the terrain project, I would like to share some of the sources I&#8217;ve studied in the last days to find out how to implement my terrain. Some ideas are very nice, some fit my problems, others don&#8217;t. But it was a useful research. I&#8217;ll post some of them here. I&#8217;ll also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=6&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, back again to the terrain project, I would like to share some of the sources I&#8217;ve studied in the last days to find out how to implement my terrain. Some ideas are very nice, some fit my problems, others don&#8217;t. But it was a useful research. I&#8217;ll post some of them here. I&#8217;ll also put an image of each technique.</p>
<p align="center"><a href="http://www.gamedev.net/reference/articles/article2012.asp"><strong><span class="title">Super Frustums</span></strong></a></p>
<p style="text-align:center;"><img src="http://images.gamedev.net/features/programming/superfrustum/image004.jpg" alt="Super frustums" height="341" width="341" /></p>
<p>This one is very simple, but I liked the name. Also, it makes me remember that I want super large terrains and that camera culling is always a nice thing \o/</p>
<p align="center"><a href="http://www.gamedev.net/reference/articles/article1842.asp"><strong><span class="title">The Second Life of Brute Force Terrain Mapping</span></strong></a></p>
<p style="text-align:center;"><img src="http://www.gamedev.net/reference/programming/features/bruteforce/BFwire.jpg" alt="Brute force" height="286" width="382" /></p>
<p>This guy have guts, he likes brute force on terrain. Yeah, ok&#8230; I&#8217;ll skip it.</p>
<p align="center"><a href="http://www.gamasutra.com/features/20000228/ulrich_pfv.htm"><strong>Continuous LOD Terrain Meshing Using Adaptive Quadtrees</strong></a></p>
<p style="text-align:center;"><img src="http://www.gamasutra.com/features/20000228/figure_04.gif" alt="CLOD" height="283" width="291" /></p>
<p>It has some basic concepts on continuous LOD, and also about avoiding vertexes problems in junctions of terrain tiles, since they will have different topologies.</p>
<p align="center"><a href="http://www.gamasutra.com/features/20000403/turner_pfv.htm"><strong>Real-Time Dynamic Level of Detail Terrain Rendering with ROAM</strong></a></p>
<p style="text-align:center;"><img src="http://www.gamasutra.com/features/20000403/turner_03a.gif" alt="ROAM" height="136" width="130" /></p>
<p>ROAM is very interesting, a nice beautiful algorithm to implement, and produce great interesting meshes. But I&#8217;ll not be using it, since I want some more GPU intensive. And also because I want something more straight to the tiled streamed terrain I&#8217;m thinking about.</p>
<p align="center"><strong><a href="http://www.gamasutra.com/features/20061221/dallaire_01.shtml">Binary Triangle Trees for Terrain Tile Index Buffer Generation</a></strong></p>
<p align="center"><img src="http://www.gamasutra.com/features/20061221/figure5.gif" height="138" width="539" /></p>
<p align="justify">Nice and clean technique and article. It uses only one vertex buffer and some index buffers that map all different situations regarding T-Junction problems. It shows a solution to automaticaly generate these index buffers, and also reduces it&#8217;s number removing the need of special cases between even to odd levels.</p>
<p align="center"><a href="http://www.fsinsider.com/developers/Pages/GlobalTerrain.aspx"><strong> Global Terrain</strong></a></p>
<p style="text-align:center;"><img src="http://www.fsinsider.com/developers/PublishingImages/GlobalTerrain08.jpg" alt="Global Terrain" height="239" width="320" /></p>
<p>Wow, global terrain, that&#8217;s nice. Huge view distances, methods to gather terrain information from large, real world terrain and so on. Maybe a little too much for my necessity, but very nice to read and a good inspiration.</p>
<p align="center"><a href="http://purple.worldforge.org/~zzorn/thesis/LandscapeGeneration.pdf"><strong>Real-time generation of planetary landscapes</strong></a></p>
<p style="text-align:center;"><img src="http://necrophobic.files.wordpress.com/2007/07/planetary.jpg?w=450" alt="Planetary landscapes" /></p>
<p>Another planetary landscape. It&#8217;s a nice article and it makes a review of various methods (some covered here in this topic).</p>
<p align="center"><a href="http://www.gamedev.net/reference/articles/article1936.asp"><span class="title"><strong>Terrain Geomorphing in the Vertex Shader</strong></span></a></p>
<p style="text-align:center;"><img src="http://www.gamedev.net/columns/hardcore/geomorph/terrainshot_14s.jpg" alt="Geomorph" height="300" width="400" /></p>
<p>Geomorphing, this is interesting&#8230; Smooth transition between LODs, avoiding popping, use of shader&#8230; I like it. Also, has some PVS information, to avoid rendering tiles which are not visible.</p>
<p align="center"><a href="http://research.microsoft.com/~hoppe/gpugcm.pdf"><strong>Terrain Rendering Using GPU-Based Geometry Clipmaps</strong></a></p>
<p style="text-align:center;"><img src="http://necrophobic.files.wordpress.com/2007/07/clipmaps.jpg?w=450" alt="Clipmaps" /></p>
<p>This is a great, very recent terrain. It makes a nice use of the current GPUs, doesn&#8217;t require lots of different meshes to avoid T-junctions, does not require much CPU, gives a great view distance and has a great quality (yeah, I liked it).</p>
<p align="center"><strong>/*==============*/</strong></p>
<p>Well, that&#8217;s it. Now it&#8217;s time to get some of these ideas that fit to my problem, mix with some of my own, and gather the final ideas I&#8217;ll be implementing on the next days/weeks. In the next post I&#8217;ll post my code decisions, and also comment the &#8220;whys&#8221; and &#8220;hows&#8221; of them.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=6&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/07/13/terrain-study/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>

		<media:content url="http://images.gamedev.net/features/programming/superfrustum/image004.jpg" medium="image">
			<media:title type="html">Super frustums</media:title>
		</media:content>

		<media:content url="http://www.gamedev.net/reference/programming/features/bruteforce/BFwire.jpg" medium="image">
			<media:title type="html">Brute force</media:title>
		</media:content>

		<media:content url="http://www.gamasutra.com/features/20000228/figure_04.gif" medium="image">
			<media:title type="html">CLOD</media:title>
		</media:content>

		<media:content url="http://www.gamasutra.com/features/20000403/turner_03a.gif" medium="image">
			<media:title type="html">ROAM</media:title>
		</media:content>

		<media:content url="http://www.gamasutra.com/features/20061221/figure5.gif" medium="image" />

		<media:content url="http://www.fsinsider.com/developers/PublishingImages/GlobalTerrain08.jpg" medium="image">
			<media:title type="html">Global Terrain</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/07/planetary.jpg" medium="image">
			<media:title type="html">Planetary landscapes</media:title>
		</media:content>

		<media:content url="http://www.gamedev.net/columns/hardcore/geomorph/terrainshot_14s.jpg" medium="image">
			<media:title type="html">Geomorph</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/07/clipmaps.jpg" medium="image">
			<media:title type="html">Clipmaps</media:title>
		</media:content>
	</item>
		<item>
		<title>First project: a streaming, huge terrain</title>
		<link>http://necrophobic.wordpress.com/2007/07/03/a-streamming-huge-terrain/</link>
		<comments>http://necrophobic.wordpress.com/2007/07/03/a-streamming-huge-terrain/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 00:27:02 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Procedural]]></category>
		<category><![CDATA[Project:Terrain]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/07/03/a-streamming-huge-terrain/</guid>
		<description><![CDATA[It&#8217;s time to start the first project. I&#8217;ve decided to create a terrain, so I have a landscape to place other things in the future. Also it&#8217;s a classic thing that I&#8217;ve used in the last years, but I&#8217;ve never made one. To make things more interesting, I want a terrain that can grow indefinitely, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=4&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to start the first project. I&#8217;ve decided to create a terrain, so I have a landscape to place other things in the future. Also it&#8217;s a classic thing that I&#8217;ve used in the last years, but I&#8217;ve never made one. To make things more interesting, I want a terrain that can grow indefinitely, streaming from a file, or even being created on the fly (using a noise/fractal approach).</p>
<p style="text-align:center;"><a href="http://necrophobic.files.wordpress.com/2007/07/pampas.jpg" title="Pampas"><img src="http://necrophobic.files.wordpress.com/2007/07/pampas.jpg?w=450" alt="Pampas" /></a></p>
<p><strong>Objectives:</strong></p>
<ul>
<li>Create a fast, streaming terrain, with multiple LOD levels</li>
<li>Support for really huge terrains</li>
<li>Support for procedural terrain</li>
<li>Good performance/view distance</li>
<li>Simple walk/fly modes, so the landscape can be tested</li>
<li>Wire-frame mode</li>
</ul>
<p>So the next step is to make some research and choose an approach that fulfill all these objectives.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=4&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/07/03/a-streamming-huge-terrain/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>

		<media:content url="http://necrophobic.files.wordpress.com/2007/07/pampas.jpg" medium="image">
			<media:title type="html">Pampas</media:title>
		</media:content>
	</item>
		<item>
		<title>A fresh start</title>
		<link>http://necrophobic.wordpress.com/2007/07/01/a-fresh-start/</link>
		<comments>http://necrophobic.wordpress.com/2007/07/01/a-fresh-start/#comments</comments>
		<pubDate>Sun, 01 Jul 2007 06:59:15 +0000</pubDate>
		<dc:creator>necrophobic</dc:creator>
				<category><![CDATA[A coder's journal]]></category>

		<guid isPermaLink="false">http://necrophobic.wordpress.com/2007/07/01/a-fresh-start/</guid>
		<description><![CDATA[My first project is not exactly a coding one, but this blog itself. Like all the projects I want to develop in this journal, this blog also has an objective. As a programmer, I always have something new to try, technologies to study, personal projects I have curiosity to see implemented, etc. So I intend [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=3&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My first project is not exactly a coding one, but this blog itself. Like all the projects I want to develop in this journal, this blog also has an objective. As a programmer, I always have something new to try, technologies to study, personal projects I have curiosity to see implemented, etc. So I intend to keep this page as a documentation tool to share ideas and experiences about these projects I plan to do in my free time. It&#8217;s hard to program all day long at work, and code even more when you get home, but I think that this blog will help me to keep motivated.</p>
<p>The first task I have here is to define the first project I&#8217;ll work. I&#8217;ll make a post initiating the new project soon, stating the problem and objectives I want to fulfill. There are some technologies and experimental things I want to try, but to start, I&#8217;ll probably choose something as a base, so I can use it on other projects on the future.</p>
<p>I&#8217;ve made some simple things before, so I will probably use them in these projects. The small list is here:</p>
<ul>
<li>A (very) simple DirectX-based engine with a modular approach. It has only the basics (initialization, input and resource manager).</li>
<li>Simple types implemented using this engine. These types includes bitmaps, shaders, spheres and boxes.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/necrophobic.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/necrophobic.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/necrophobic.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/necrophobic.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/necrophobic.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/necrophobic.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/necrophobic.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/necrophobic.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/necrophobic.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/necrophobic.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/necrophobic.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/necrophobic.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/necrophobic.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/necrophobic.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/necrophobic.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/necrophobic.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=necrophobic.wordpress.com&amp;blog=1309575&amp;post=3&amp;subd=necrophobic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://necrophobic.wordpress.com/2007/07/01/a-fresh-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8d775f77474b8c246f5bb69549b58a8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">necrophobic</media:title>
		</media:content>
	</item>
	</channel>
</rss>
