<?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>Code Laboratorium</title>
	<atom:link href="http://codelab.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codelab.wordpress.com</link>
	<description>Musings of a grumpy coder</description>
	<lastBuildDate>Fri, 30 Oct 2009 03:57:57 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='codelab.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/5e7c29372947f41bc38ed00ff54f9e2a?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Code Laboratorium</title>
		<link>http://codelab.wordpress.com</link>
	</image>
			<item>
		<title>OpenGL stereoscopic anaglyphs and patents</title>
		<link>http://codelab.wordpress.com/2009/10/30/opengl-stereoscopic-anaglyphs/</link>
		<comments>http://codelab.wordpress.com/2009/10/30/opengl-stereoscopic-anaglyphs/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 01:27:51 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[anaglyph]]></category>
		<category><![CDATA[anaglyphs]]></category>
		<category><![CDATA[colorcode]]></category>
		<category><![CDATA[colorcode3d]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[red/blue]]></category>
		<category><![CDATA[red/cyan]]></category>
		<category><![CDATA[stereoscopic]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=95</guid>
		<description><![CDATA[An anaglyph is a combination of two images into one, in such a way that they can later be separated by viewing the image through appropriately colored transparent filters. The objective is to present slightly shifted views of the same 3D environment to each eye, in order to achieve depth perception (i.e. really perceive the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=95&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>An anaglyph is a combination of two images into one, in such a way that they can later be separated by viewing the image through appropriately colored transparent filters. The objective is to present slightly shifted views of the same 3D environment to each eye, in order to achieve depth perception (i.e. really perceive the 3rd dimension).</p>
<p><img src="http://codelab.files.wordpress.com/2009/10/ccglasses-thumb.jpg?w=256&#038;h=160" alt="anaglyph glasses" title="ColorCode3D anaglyph glasses" width="256" height="160" class="alignright size-full wp-image-96" /></p>
<p>I&#8217;ve never dealt with anaglyphs in the past, but during my recent week-old obsession with stereoscopy, I&#8217;ve stumbled upon a pair of free anaglyph viewing glasses (made out of cardboard and cellophane of course). So I couldn&#8217;t help but try to find out how I can use them with my own programs.<br />
<span id="more-95"></span></p>
<p>I dug up a small dungeon editor I&#8217;ve written some time ago, and hacked stereoscopic rendering into it. I implemented various stereo rendering modes including cross-eyed (side-by side images), quad-buffered (the native OpenGL stereo mode), and anaglyphs.</p>
<p>Quad-buffering is of course the ideal method to present stereo views in OpenGL, but it requires support from the graphics driver and expensive hardware such as <a href="http://en.wikipedia.org/wiki/Shutter_glasses">shutter glasses</a> or a pair of polarized projectors and <a href="http://en.wikipedia.org/wiki/Polarized_glasses">polarized glasses</a>.</p>
<p>The problem with the glasses that I&#8217;ve got is that all articles regarding anaglyphs I&#8217;ve found on the internet talked about either red/blue or red/cyan glasses, while mine was obviously neither. It turns out my glasses are for a new variety of anaglyphs which go by the name <em>ColorCode3D</em> and are supposed to be able to keep more color information than previous red/blue and red/cyan methods (which generally only work for grayscale images).</p>
<p>This color-code thing is apparently patented and there&#8217;s no mention anywhere on how to combine stereo images for viewing with color-code glasses. The company who owns the patent has released a program for converting stereo pairs of images to colorcode anaglyphs, which is of course proprietary and doesn&#8217;t come with source code, ergo useless.</p>
<p>Then I remembered that there&#8217;s an upside to a patented algorithm if you choose to completely disregard patent law, which I definitely do. In order for an algorithm to become patented, it must be described in detail in a patent application which must be filed at the patent office. All such patent documents are publicly available at the web site of the US patent office. So I just got the patent document, and implemented the algorithm from that description.</p>
<p>It turns out the process is extremely simple, although just outside the reach of the OpenGL fixed function pipeline, which can be used to handle red/blue and red/cyan anaglyphs easily by employing additive blending and color masks. To combine the left/right stereo pair into a single color-code compatible image:</p>
<ul>
<li>The red channel of the left image is used as the red channel of the output image.</li>
<li>The green channel of the left image is used as the green channel of the output image.</li>
<li>All three color channels of the right image are converted to grayscale as follows: <img src='http://l.wordpress.com/latex.php?latex=%5Cleft%28r%5C+g%5C+b%5Cright%29+%5Ccdot+%5Cleft%280.15%5C+0.15%5C+0.7%5Cright%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\left(r\ g\ b\right) \cdot \left(0.15\ 0.15\ 0.7\right)' title='\left(r\ g\ b\right) \cdot \left(0.15\ 0.15\ 0.7\right)' class='latex' />, and are used as the blue channel of the output image.</li>
</ul>
<p>Here&#8217;s the small GLSL program I used to combine the two left and right images, previously rendered into two textures:<br />
<code>
<pre>uniform sampler2D tex_left, tex_right;

void main()
{
	vec3 left = texture2D(tex_left, gl_TexCoord[0].st).rgb;
	vec3 right = texture2D(tex_right, gl_TexCoord[0].st).rgb;

	vec3 col, coeff = vec3(0.15, 0.15, 0.7);
	col.r = left.r;
	col.g = left.g;
	col.b = dot(right, coeff);

	gl_FragColor = vec4(col, 1.0);
}</pre>
<p></code></p>
<p>The result is fantastic, I&#8217;m using the space navigator to navigate in the 3D dungeon without taking my eyes off the screen, and the stereoscopic effect is very evident indeed, creating the illusion of depth quite effectively.</p>
<p>Here are a few of screenshots in both color-code and the more common red/cyan anaglyph variety (note that I don&#8217;t have red/cyan glasses, so I can only assume that the red/cyan rendering works correctly, I haven&#8217;t tested it).</p>
<p>The second one with the jutting pillar is particularly nice. The geometry crosses the zero-parallax plane into the negative subspace, making the pillar seem to &#8220;come out of the screen&#8221;.</p>
<p><a href="http://codelab.files.wordpress.com/2009/10/stereo1.jpg"><img src="http://codelab.files.wordpress.com/2009/10/stereo1.jpg?w=150&#038;h=112" alt="colorcode (amber/blue) anaglyph 1" title="colorcode (amber/blue) anaglyph 1" width="150" height="112" class="alignnone size-thumbnail wp-image-101" /></a><a href="http://codelab.files.wordpress.com/2009/10/stereo2.jpg"><img src="http://codelab.files.wordpress.com/2009/10/stereo2.jpg?w=150&#038;h=112" alt="colorcode (amber/blue) anaglyph 2" title="colorcode (amber/blue) anaglyph 2" width="150" height="112" class="alignnone size-thumbnail wp-image-101" /></a></p>
<p><a href="http://codelab.files.wordpress.com/2009/10/stereo_redcyan1.jpg"><img src="http://codelab.files.wordpress.com/2009/10/stereo_redcyan1.jpg?w=150&#038;h=112" alt="red/cyan anaglyph 1" title="red/cyan anaglyph 1" width="150" height="112" class="alignnone size-thumbnail wp-image-108" /></a><a href="http://codelab.files.wordpress.com/2009/10/stereo_redcyan2.jpg"><img src="http://codelab.files.wordpress.com/2009/10/stereo_redcyan2.jpg?w=150&#038;h=112" alt="red/cyan anaglyph 2" title="red/cyan anaglyph 2" width="150" height="112" class="alignnone size-thumbnail wp-image-109" /></a></p>
<p><b>References</b></p>
<ol>
<li><a href="http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/stereographics/stereorender">Paul Bourke, Calculating Stereo Pairs</a></li>
<li><a href="http://local.wasp.uwa.edu.au/~pbourke/texture_colour/anaglyph">Paul Bourke, Creating Anaglyphs using OpenGL</a></li>
<li><a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;r=1&amp;f=G&amp;l=50&amp;co1=AND&amp;d=PTXT&amp;s1=6,687,003.PN.&amp;OS=PN/6,687,003&amp;RS=PN/6,687,003">US Patent #6,687,003: Method for recording and viewing stereoscopic images in color using multichrome filters</a></li>
</ol>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=95&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/10/30/opengl-stereoscopic-anaglyphs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/10/ccglasses-thumb.jpg" medium="image">
			<media:title type="html">ColorCode3D anaglyph glasses</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/10/stereo1.jpg?w=150" medium="image">
			<media:title type="html">colorcode (amber/blue) anaglyph 1</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/10/stereo2.jpg?w=150" medium="image">
			<media:title type="html">colorcode (amber/blue) anaglyph 2</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/10/stereo_redcyan1.jpg?w=150" medium="image">
			<media:title type="html">red/cyan anaglyph 1</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/10/stereo_redcyan2.jpg?w=150" medium="image">
			<media:title type="html">red/cyan anaglyph 2</media:title>
		</media:content>
	</item>
		<item>
		<title>FreeGLUT spaceball patch</title>
		<link>http://codelab.wordpress.com/2009/10/16/freeglut-spaceball-patch/</link>
		<comments>http://codelab.wordpress.com/2009/10/16/freeglut-spaceball-patch/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 05:41:21 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[freeglut]]></category>
		<category><![CDATA[glut]]></category>
		<category><![CDATA[space navigator]]></category>
		<category><![CDATA[spaceball]]></category>
		<category><![CDATA[spacenav]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=91</guid>
		<description><![CDATA[The original GLUT library used to support some less well-known input devices under IRIX, such as the Spaceball, a true 3D input device which can be used to control all 6 degrees of freedom (3 axis of rotation and 3 axis of translation) simultaneously. Unfortunately, nowadays, the more &#8220;exotic&#8221; input callbacks of GLUT such as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=91&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The original GLUT library used to support some less well-known input devices under IRIX, such as the Spaceball, a true 3D input device which can be used to control all 6 degrees of freedom (3 axis of rotation and 3 axis of translation) simultaneously. Unfortunately, nowadays, the more &#8220;exotic&#8221; input callbacks of GLUT such as the spaceball are left unimplemented.</p>
<p>So, yesterday I sat down and implemented the missing spaceball bits of <a href="http://freeglut.sourceforge.net">FreeGLUT</a>, which is the most widely used free GLUT implementation.</p>
<p>To avoid adding any extra dependencies to freeglut, I just ripped the relevant code from libspnav, which is part of my <a href="http://spacenav.sourceforge.net">free spacenav driver</a> project, and added it directly into freeglut.</p>
<p><a href="http://spacenav.sourceforge.net/glut">Here&#8217;s the patch</a> against the current freeglut svn head, as well as instructions on how to check out freeglut and apply it.</p>
<p>I&#8217;ve also submitted it to the freeglut-devel mailing list, so hopefully they&#8217;ll merge it and we&#8217;ll have spaceball input callbacks available with the prepackaged glut that comes with any GNU/Linux distribution in the future.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=91&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/10/16/freeglut-spaceball-patch/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>
	</item>
		<item>
		<title>S-ray goes public</title>
		<link>http://codelab.wordpress.com/2009/10/04/s-ray-goes-public/</link>
		<comments>http://codelab.wordpress.com/2009/10/04/s-ray-goes-public/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 02:25:51 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[caustics]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[global illumination]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[monte carlo]]></category>
		<category><![CDATA[photon mapping]]></category>
		<category><![CDATA[ray tracing]]></category>
		<category><![CDATA[renderer]]></category>
		<category><![CDATA[rendering]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=85</guid>
		<description><![CDATA[
S-ray is a photorealistic off-line renderer I&#8217;ve been writting on and off for the past few months. It&#8217;s basically a monte carlo ray tracer using the photon mapping algorithm to simulate global illumination effects, such as indirect diffuse lighting and caustics.
So, it&#8217;s time to open up the code and continue development in the open. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=85&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://code.google.com/p/sray/logo?logo_id=1254595975"></p>
<p>S-ray is a photorealistic off-line renderer I&#8217;ve been writting on and off for the past few months. It&#8217;s basically a monte carlo ray tracer using the photon mapping algorithm to simulate global illumination effects, such as indirect diffuse lighting and caustics.</p>
<p>So, it&#8217;s time to open up the code and continue development in the open. The code is available only through subversion at the moment, no official &#8220;0.1&#8243; release shall be made until at least the most important outstanding bugs are fixed. However, feel free to checkout the code and play around all you want. </p>
<p>The project is hosted at googlecode, and you can find it at: <a href="http://code.google.com/p/sray">http://code.google.com/p/sray</a><br />
As always, ideas, comments, or bug fixes are more than welcome.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=85&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/10/04/s-ray-goes-public/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>

		<media:content url="http://code.google.com/p/sray/logo?logo_id=1254595975" medium="image" />
	</item>
		<item>
		<title>s-ray: caustics through photon mapping</title>
		<link>http://codelab.wordpress.com/2009/09/02/s-ray-caustics-through-photon-mapping/</link>
		<comments>http://codelab.wordpress.com/2009/09/02/s-ray-caustics-through-photon-mapping/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 18:07:01 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[caustics]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[photon mapping]]></category>
		<category><![CDATA[ray tracing]]></category>
		<category><![CDATA[s-ray]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=78</guid>
		<description><![CDATA[The main feature set that I had planned for my new s-ray renderer is almost complete. The renderer is now capable of producing caustics, that is light being focused on surfaces by curved mirrors or lenses (or otherwise transmission through refractive objects).
Standard recursive ray tracing is incapable of producing caustics; instead a two-pass algorithm called [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=78&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The main feature set that I had planned for my new s-ray renderer is almost complete. The renderer is now capable of producing <a href="http://en.wikipedia.org/wiki/Caustic_(optics)">caustics</a>, that is light being focused on surfaces by curved mirrors or lenses (or otherwise transmission through refractive objects).</p>
<p>Standard recursive ray tracing is incapable of producing caustics; instead a two-pass algorithm called <a href="http://en.wikipedia.org/wiki/Photon_mapping">photon mapping</a> is used. Photon mapping works by tracing random photons as they leave the light sources and bounce around the scene, finally ending up on various surfaces. The second pass works just like regular ray tracing, with the difference that on every ray hit, the density of stored photons around that point is used to estimate the amount of light that has arrived there after being reflected or refracted.</p>
<p>Here are a couple of images produced by s-ray, showing both reflective and refractive caustics:</p>
<table>
<tr>
<td>
<div id="attachment_79" class="wp-caption alignnone" style="width: 310px"><img src="http://codelab.files.wordpress.com/2009/09/caust_ring.jpg?w=300&#038;h=225" alt="reflective caustics" title="caust_ring" width="300" height="225" class="size-medium wp-image-79" /><p class="wp-caption-text">reflective caustics</p></div></td>
<td><div id="attachment_80" class="wp-caption alignnone" style="width: 310px"><img src="http://codelab.files.wordpress.com/2009/09/caust_sph.jpg?w=300&#038;h=187" alt="refractive caustics" title="caust_sph" width="300" height="187" class="size-medium wp-image-80" /><p class="wp-caption-text">refractive caustics</p></div></td>
</tr>
</table>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=78&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/09/02/s-ray-caustics-through-photon-mapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/09/caust_ring.jpg?w=300" medium="image">
			<media:title type="html">caust_ring</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/09/caust_sph.jpg?w=300" medium="image">
			<media:title type="html">caust_sph</media:title>
		</media:content>
	</item>
		<item>
		<title>Spacenavd 0.4</title>
		<link>http://codelab.wordpress.com/2009/07/24/spacenavd-0-4/</link>
		<comments>http://codelab.wordpress.com/2009/07/24/spacenavd-0-4/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 23:39:43 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[3dconnexion]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[space navigator]]></category>
		<category><![CDATA[space pilot]]></category>
		<category><![CDATA[spaceball]]></category>
		<category><![CDATA[spacenav]]></category>
		<category><![CDATA[spacenavd]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=67</guid>
		<description><![CDATA[
I just released version 0.4 of my spacenavd user space driver for 6dof input devices, which fixes some long-standing reliability and ease of use issues.
First and foremost, I cleaned up the code, which started initially as a hack, and ended as an unmaintainable mess. I&#8217;ve split and isolated the linux specific parts so that I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=67&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://codelab.files.wordpress.com/2009/07/spnavbar1.jpg"><br />
I just released <a href="https://sourceforge.net/projects/spacenav/files/spacenav%20daemon/spacenavd%200.4/spacenavd-0.4.tar.gz/download">version 0.4 of my spacenavd user space driver for 6dof input devices</a>, which fixes some long-standing reliability and ease of use issues.</p>
<p>First and foremost, I cleaned up the code, which started initially as a hack, and ended as an unmaintainable mess. I&#8217;ve split and isolated the linux specific parts so that I may add support for other operating systems in the future (specifically I&#8217;d like to find the chance to add freebsd support soon).</p>
<p>I&#8217;ve also dropped the dodgy 30sec polling cycle to aquire the device if it&#8217;s disconnected, which had the effect of being able to use the device at some seemingly random time after plugging it in, and started using the <em>KOBJECT_UEVENT netlink socket</em> to get asyncronous notification of hotplug events from the kernel. Now the device lights up and is ready to use immediatly upon plugging it in the USB port.</p>
<p>More importantly, I lifted the responsibility of notifying the daemon that X has started and it may connect and start listening for X11 clients from the user. By using the excellent <em>inotify</em> API to detect when the X server&#8217;s socket is created in <code>/tmp/.X11-unix</code>, the daemon is now able to wake up and connect to the X server automatically as soon as it&#8217;s started up.</p>
<p>And finally, now spacenavd actively grabs the device when it starts, which solves the problem of the X server trying to use it as a mouse, without having to resort to messing around with the user&#8217;s HAL config files, to make hald ignore it.</p>
<p>To celebrate this milestone release, the free spacenav project now has a newly redesigned web site, which may help attract more attention compared to the previous plain-text web page. Thanks go to <a href="http://cybernoid.gr">cybernoid</a> for the <a href="http://spacenav.sourceforge.net">new web site</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=67&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/07/24/spacenavd-0-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/07/spnavbar1.jpg" medium="image" />
	</item>
		<item>
		<title>Sray raytracer under development</title>
		<link>http://codelab.wordpress.com/2009/06/12/sray-raytracer-under-development/</link>
		<comments>http://codelab.wordpress.com/2009/06/12/sray-raytracer-under-development/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 23:56:13 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=61</guid>
		<description><![CDATA[My new ray tracer is starting to look good, even though there&#8217;s still quite a lot of work to do before its first public release.
Anyway, I was bored today, so I thought I&#8217;d upload a video of an early test. It&#8217;s a test of the keyframe animation system, and of the motion blur effect produced [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=61&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My new ray tracer is starting to look good, even though there&#8217;s still quite a lot of work to do before its first public release.</p>
<p>Anyway, I was bored today, so I thought I&#8217;d upload a video of an early test. It&#8217;s a test of the keyframe animation system, and of the motion blur effect produced through monte carlo (distribution) ray tracing, when a non-zero shutter speed is selected.</p>
<p><a href="http://www.youtube.com/watch?v=Oem865j2u0A"><img src="http://codelab.files.wordpress.com/2009/06/mblur.jpg?w=300&#038;h=225" alt="sray motion blur test" title="sray motion blur test" width="300" height="225" class="alignnone size-medium wp-image-63" /></a><br />
Here&#8217;s a link to the <a href="http://www.youtube.com/watch?v=Oem865j2u0A">video on youtube</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=61&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/06/12/sray-raytracer-under-development/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/06/mblur.jpg?w=300" medium="image">
			<media:title type="html">sray motion blur test</media:title>
		</media:content>
	</item>
		<item>
		<title>Raytracing Anamorphic Images</title>
		<link>http://codelab.wordpress.com/2009/03/08/raytracing-anamorphic-images/</link>
		<comments>http://codelab.wordpress.com/2009/03/08/raytracing-anamorphic-images/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 07:13:28 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[anamorphic]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[ray tracing]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=44</guid>
		<description><![CDATA[A long time ago, I stumbled upon a couple of strikingly odd images on Jim Arvo&#8217;s web site, which are apparently called &#8220;anamorphic&#8221;. The idea behind an anamorphic image, is that it&#8217;s distorted in such a way, that its true shape can be seen only when viewed in a particular manner. In the case of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=44&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A long time ago, I stumbled upon a couple of <a href="http://www.ics.uci.edu/~arvo/images.html#Anamorphic">strikingly odd images</a> on Jim Arvo&#8217;s web site, which are apparently called &#8220;anamorphic&#8221;. The idea behind an anamorphic image, is that it&#8217;s distorted in such a way, that its true shape can be seen only when viewed in a particular manner. In the case of these images, you&#8217;re supposed to print the image and place a highly reflective cylindrical object, such as a chrome pipe, at a specific marked location in order to see the geometric shapes correctly.</p>
<p>I kept the images back then, with the purpose of either finding an appropriate cylindrical object, or raytracing them to see what they look like, but for some reason I&#8217;ve forgotten all about them until I accidentally found them again yesterday, in a dusty corner of my filesystem.</p>
<p>So I decided to hack some code to add perfect (<img src='http://l.wordpress.com/latex.php?latex=x%5E2+%2B+y%5E2+%3D+r%5E2&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='x^2 + y^2 = r^2' title='x^2 + y^2 = r^2' class='latex' />) cylinder primitives to my raytracer and do a couple of renderings with those images texture-mapped onto a ground quad (I could just do the same thing with another raytracer such as pov-ray but where&#8217;s the fun in that?).</p>
<p>So anyway here are the anamorphic images along with the renderings (click on the images for the full rendering):</p>
<p><a href="http://codelab.files.wordpress.com/2009/03/anarend11.png"><img src="http://codelab.files.wordpress.com/2009/03/anacmp1sm1.jpg"></a></p>
<p><a href="http://codelab.files.wordpress.com/2009/03/anarend2.png"><img src="http://codelab.files.wordpress.com/2009/03/anacmp2sm.jpg"></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=44&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/03/08/raytracing-anamorphic-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>

		<media:content url="http://codelab.files.wordpress.com/2009/03/anacmp1sm1.jpg" medium="image" />

		<media:content url="http://codelab.files.wordpress.com/2009/03/anacmp2sm.jpg" medium="image" />
	</item>
		<item>
		<title>Third OpenGL article</title>
		<link>http://codelab.wordpress.com/2009/01/11/third-opengl-article/</link>
		<comments>http://codelab.wordpress.com/2009/01/11/third-opengl-article/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 11:42:36 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[articles]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=37</guid>
		<description><![CDATA[The third part of my OpenGL graphics programming series for the greek linux format magazine is available for a few days now. So make sure you don&#8217;t miss the January-February issue of linux format, if you wish to learn about texture mapping. A technique which, when used properly, can greatly increase the realism of our [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=37&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The third part of my OpenGL graphics programming series for the greek linux format magazine is available for a few days now. So make sure you don&#8217;t miss the January-February issue of linux format, if you wish to learn about texture mapping. A technique which, when used properly, can greatly increase the realism of our 3D objects, at virtually no extra processing cost on modern graphics hardware.</p>
<p>This time the accompanying source code for the examples is not included in the magazine&#8217;s dvd, so go <a href="http://nuclear.sdf-eu.org/files/gl03_src.tar.gz">grab a copy</a> from my website.</p>
<p>Finally, I forgot to mention that the first of these articles is now available for <a href="http://nuclear.sdf-eu.org/articles/lxf_ogl/lxf_gl01.pdf">download</a> in PDF format.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=37&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2009/01/11/third-opengl-article/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>
	</item>
		<item>
		<title>Introductory OpenGL tutorials continued</title>
		<link>http://codelab.wordpress.com/2008/11/05/introductory-opengl-tutorials-continued/</link>
		<comments>http://codelab.wordpress.com/2008/11/05/introductory-opengl-tutorials-continued/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 02:40:26 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[linux format]]></category>
		<category><![CDATA[lxf]]></category>
		<category><![CDATA[matrix stack]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[phong]]></category>
		<category><![CDATA[shading]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=32</guid>
		<description><![CDATA[Just a short notice, the second part of my &#8220;introduction to 3D graphics with OpenGL&#8221; series should be available as we speak. This time, we&#8217;ll perform the full set of transformations that we described while discussing the rendering pipeline in the previous issue. We&#8217;ll use the matrix stack to separate the model from the view [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=32&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just a short notice, the second part of my &#8220;introduction to 3D graphics with OpenGL&#8221; series should be available as we speak. This time, we&#8217;ll perform the full set of transformations that we described while discussing the rendering pipeline in the previous issue. We&#8217;ll use the matrix stack to separate the model from the view parts of the modelview matrix, and render multiple objects properly. And finally we&#8217;re going to explain the mathematical model of shading and illumination, and we&#8217;ll apply lighting to our object in order to increase the realism of our simple 3D environment tremendously.</p>
<p>So, go and grab a copy of the november-december issue of the greek linux format magazine, and let me know what you think. As always I look forward to your comments, suggestions, corrections, etc.</p>
<p>By the way, due to popular demand, I will upload the first tutorial of the series in a couple of weeks, after the previous issue of linux format goes out of circulation.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=32&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2008/11/05/introductory-opengl-tutorials-continued/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>
	</item>
		<item>
		<title>Introductory OpenGL tutorials</title>
		<link>http://codelab.wordpress.com/2008/09/03/introductory-opengl-tutorials/</link>
		<comments>http://codelab.wordpress.com/2008/09/03/introductory-opengl-tutorials/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 20:12:28 +0000</pubDate>
		<dc:creator>Nuclear</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[linux format]]></category>
		<category><![CDATA[lxf]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://codelab.wordpress.com/?p=27</guid>
		<description><![CDATA[I recently started writing a series of introductory tutorials about graphics programming with OpenGL, for the greek linux format magazine.
The articles are written for the complete begginer, who hasn&#8217;t had any previous exposure to graphics programming. However, familiarity with the C programming language is definitely required.
What I&#8217;m aiming for, is to thoroughly explain the underlying [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=27&subd=codelab&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I recently started writing a series of introductory tutorials about graphics programming with OpenGL, for the <a href="http://www.linuxformat.gr/">greek linux format</a> magazine.</p>
<p>The articles are written for the complete begginer, who hasn&#8217;t had any previous exposure to graphics programming. However, familiarity with the C programming language is definitely required.</p>
<p>What I&#8217;m aiming for, is to thoroughly explain the underlying theory, in order to provide a stepping stone for someone who would like to eventually delve deeper into graphics algorithms, rather than just present raw examples for doing this and that with OpenGL.</p>
<p>In any case, the first article of the series will be published in the september-october issue of the greek linux format magazine, which should be available during the next few days. Any feedback, is greatly appreciated.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codelab.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codelab.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codelab.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codelab.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codelab.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codelab.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codelab.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codelab.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codelab.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codelab.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codelab.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codelab.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codelab.wordpress.com&blog=2300657&post=27&subd=codelab&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codelab.wordpress.com/2008/09/03/introductory-opengl-tutorials/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Nuclear</media:title>
		</media:content>
	</item>
	</channel>
</rss>