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

<channel>
	<title>Stefan Lienhard</title>
	<atom:link href="http://www.stefanlienhard.ch/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stefanlienhard.ch</link>
	<description>I care because you do.</description>
	<lastBuildDate>Mon, 05 Apr 2010 11:24:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>8-bit Lego</title>
		<link>http://www.stefanlienhard.ch/2009/08/23/8-bit-lego/</link>
		<comments>http://www.stefanlienhard.ch/2009/08/23/8-bit-lego/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 19:40:48 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Braindead]]></category>

		<guid isPermaLink="false">http://blog.dexta.ch/?p=130</guid>
		<description><![CDATA[Simply amazing:]]></description>
			<content:encoded><![CDATA[<p>Simply amazing:</p>
<p><object width="450" height="276"><param name="movie" value="http://www.youtube.com/v/4qsWFFuYZYI&#038;hl=en&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/4qsWFFuYZYI&#038;hl=en&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="276"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stefanlienhard.ch/2009/08/23/8-bit-lego/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Still Alive</title>
		<link>http://www.stefanlienhard.ch/2009/07/17/still-alive/</link>
		<comments>http://www.stefanlienhard.ch/2009/07/17/still-alive/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 20:45:46 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Braindead]]></category>

		<guid isPermaLink="false">http://blog.dexta.ch/?p=112</guid>
		<description><![CDATA[It&#8217;s been almost an year since  my last post, lots of good, horrible, awesome, stupid an strange things have happened in the meantime. As you surely know, I&#8217;m too lazy to give you a summary of what&#8217;s been going on &#8230; <a href="http://www.stefanlienhard.ch/2009/07/17/still-alive/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been almost an year since  my last post, lots of good, horrible, awesome, stupid an strange things have happened in the meantime. As you surely know, I&#8217;m too lazy to give you a summary of what&#8217;s been going on and I&#8217;ll most likely be too lazy for posting in the future too&#8230; I just felt that hitting the update button of WordPress without writing at least one new post would&#8217;ve been a waste of time. <img src='http://www.stefanlienhard.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I&#8217;ve been back to the wannabe metropolis for two weeks now and have been interning at big G and it&#8217;s been fun. Good people, good work, good food, good time.</p>
<p>So long, I need some cake now&#8230;</p>
<blockquote><p>And believe me I am still alive.<br />
I&#8217;m doing science and I&#8217;m still alive.<br />
I feel fantastic and I&#8217;m still alive.<br />
While you&#8217;re dying I&#8217;ll be still alive.<br />
And when you&#8217;re dead I will be still alive.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.stefanlienhard.ch/2009/07/17/still-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Threadless &#8211; Nude No More</title>
		<link>http://www.stefanlienhard.ch/2008/08/27/threadless-nude-no-more/</link>
		<comments>http://www.stefanlienhard.ch/2008/08/27/threadless-nude-no-more/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 23:28:36 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Fashion]]></category>

		<guid isPermaLink="false">http://blog.dexta.ch/2008/08/27/threadless-nude-no-more/</guid>
		<description><![CDATA[The best online store for geeky and creative T-shirts, www.threadless.com, has launched a &#8220;back to school&#8221; sale&#8230; every T for only 12$! Let me give you a small overview over my humble collection: I even got two of the T-shirts &#8230; <a href="http://www.stefanlienhard.ch/2008/08/27/threadless-nude-no-more/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The best online store for geeky and creative T-shirts, <a href="http://threadless.com/?from=dexterli" title="Threadless">www.threadless.com</a>, has launched a &#8220;back to school&#8221; sale&#8230; every T for only 12$!</p>
<p>Let me give you a small overview over my humble collection:</p>
<p><a href="http://www.threadless.com/product/879/Wingtips" title="Wingtips"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/8791.jpg" alt="Wingtips" /></a> <a href="http://www.threadless.com/product/1275/Giraffes_United_Against_Ceiling_Fans" title="Giraffes United Against Ceiling Fans"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/1275.jpg" alt="Giraffes United Against Ceiling Fans" /></a> <a href="http://www.threadless.com/product/1044/Big_Cats" title="Big Cats"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/10441.jpg" alt="Big_Cats" /></a> <a href="http://www.threadless.com/product/438/Stone_Jungle" title="Stone Jungle"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/438.jpg" alt="Stone Jungle" /></a></p>
<p><a href="http://www.threadless.com/product/693/I_Want_To_Be_Friends" title="I Want To Be Friends"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/693.jpg" alt="I Want To Be Friends" /></a> <a href="http://www.threadless.com/product/1325/Field_Study_01" title="Field Study 01"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/1325.jpg" alt="Field Study 01" /></a> <a href="http://www.threadless.com/product/119/MP_3" title="MP(3)"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/119.jpg" alt="MP(3)" /></a> <a href="http://www.threadless.com/product/1123/Brazilian_Spirit" title="Brazilian Spirit"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/1123.jpg" alt="Brazilian Spirit" /></a></p>
<p><a href="http://www.threadless.com/product/1158/Wizard_Rock" title="Wizard Rock"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/1158.jpg" alt="Wizard Rock" /></a> <a href="http://www.threadless.com/product/613/Paper_Tiger" title="Paper Tiger"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/613.jpg" alt="Paper Tiger" /></a> <a href="http://www.threadless.com/product/562/Infinity_MPG" title="Infinity MPG"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/562.jpg" alt="Infinity MPG" /></a> <a href="http://www.threadless.com/product/744/Star_Men_in_Moon_s_Milk%22" title="Star Men in Moon's Milk"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/744.jpg" alt="Star Men in Moon's Milk" /></a></p>
<p><a href="http://www.threadless.com/product/48/Beautiful_Land" title="Beautiful Land"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/48.jpg" alt="Beautiful Land" /></a> <a href="http://www.threadless.com/product/397/The_Outdoor_Mix" title="The Outdoor Mix"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/397.jpg" alt="The Outdoor Mix" /></a> <a href="http://www.threadless.com/product/582/Mob_Musicians" title="Mob Musicians"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/582.jpg" alt="Mob Musicians" /></a> <a href="http://www.threadless.com/product/1084/Watch_Your_Back" title="Watch Your Back"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/1084.jpg" alt="Watch Your Back" /></a></p>
<p><a href="http://www.threadless.com/product/708/Peace_and_Hate_Can_You_Tell_The_Difference" title="Peace and Hate Can You Tell The Difference"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/708.jpg" alt="Peace and Hate Can You Tell The Difference" /></a> <a href="http://www.threadless.com/product/809/I_Have_Something_To_Tell_You" title="I Have Something To Tell You"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/809.jpg" alt="I Have Something To Tell You" /></a> <a href="http://www.threadless.com/product/807/War_And_Peas" title="War And Peas"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/807.jpg" alt="War And Peas" /></a> <a href="http://www.threadless.com/product/798/One_of_These_Days_We_ll_Fly_Away" title="One of These Days We'll Fly Away"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/798.jpg" alt="One of These Days We'll Fly Away" /></a></p>
<p><a href="http://www.threadless.com/product/751/The_Madness_of_Mission_6" title="The Madness of Mission 6"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/751.jpg" alt="The Madness of Mission 6" /></a> <a href="http://www.threadless.com/product/368/Biblical_Disaster" title="Biblical Disaster"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/368.jpg" alt="Biblical Disaster" /></a> <a href="http://www.threadless.com/product/300/We_Are_Made_of_Carbon" title="We Are Made of Carbon"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/300.jpg" alt="We Are Made of Carbon" /></a> <a href="http://www.threadless.com/product/576/Funkalicious" title="Funkalicious"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/576.jpg" alt="Funkalicious" /></a></p>
<p><a href="http://www.threadless.com/product/452/Fish_Tank" title="Fish Tank"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/452.jpg" alt="Fish Tank" /></a> <a href="http://www.threadless.com/product/678/Mechanical_Mayhem" title="Mechanical Mayhem"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/678.jpg" alt="Mechanical Mayhem" /></a> <a href="http://www.threadless.com/product/619/Reach_For_The_Stars" title="Reach For The Stars"><img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/619.jpg" alt="Reach For The Stars" /></a> <a href="http://www.threadless.com/product/256/Dark_Side_of_the_Garden" title="Dark Side of the Garden"> <img src="http://www.stefanlienhard.ch/wp-content/uploads/2008/08/256.jpg" alt="Dark Side of the Garden" /></a></p>
<p>I even got two of the T-shirts two times and one isn&#8217;t actually a T-shirt, I&#8217;m the proud owner of a threadless hoody <img src='http://www.stefanlienhard.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  .</p>
<p>Convinced? <a href="http://threadless.com/?from=dexterli" title="Threadless">Go and buy shirts!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stefanlienhard.ch/2008/08/27/threadless-nude-no-more/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GL_EXT_framebuffer_object with Multisampling</title>
		<link>http://www.stefanlienhard.ch/2008/08/27/gl_ext_framebuffer_object-with-multisampling/</link>
		<comments>http://www.stefanlienhard.ch/2008/08/27/gl_ext_framebuffer_object-with-multisampling/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 22:45:22 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://blog.dexta.ch/2008/08/27/gl_ext_framebuffer_object-with-multisampling/</guid>
		<description><![CDATA[I&#8217;ve been using OpenGL Framebuffer Objects (FBOs) a lot lately. One day I was trying to render smoother, anti-aliased edges by using multisampling in combination with a FBO. After iterating through all possible options of OpenGL and the window context &#8230; <a href="http://www.stefanlienhard.ch/2008/08/27/gl_ext_framebuffer_object-with-multisampling/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using OpenGL Framebuffer Objects (FBOs) a lot lately. One day I was trying to render smoother, anti-aliased edges by using multisampling in combination with a FBO. After iterating through all possible options of OpenGL and the window context I was only confused&#8230; my FBO refused to multisample.</p>
<p>My buddy Google who&#8217;s usually most helpful proved to be really bitchy in this matter. But after long arguments with Google I finally got some interesting sources.</p>
<p>This is nothing new, this is nothing revolutionary&#8230; this is meant for people with a similar problem as the one I had and help them to find their way to the solution a little quicker than I did.</p>
<p><span id="more-22"></span> The standard example for using a Framebuffer Object to render to a texture (for more details and explanations ckeck the <a title="Framebuffer Object 101" href="http://www.gamedev.net/reference/programming/features/fbo1/">FBO 101</a>):</p>
<pre>// depth buffer
glGenRenderbuffersEXT(1, &amp;depthBuffer);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, depthBuffer);
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, width, height);

// create fbo and attach depth buffer
glGenFramebuffersEXT(1, &amp;fbo);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthBuffer);

// create texture
glGenTextures(1, &amp;texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
// set your texture parameters here if required ...

// attach texture
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, texture, 0);

...

// rendering procedure
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
glPushAttrib(GL_VIEWPORT_BIT);
glViewport(0, 0, width, height);
// ... draw ...
glPopAttrib();
// you have to unbind all fbos before you can render to the main window
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);</pre>
<p>Now we extend the previous example a little bit by using <em>GL_EXT_framebuffer_multisample</em> and <em>GL_EXT_framebuffer_blit</em> in addition to the <em>GL_EXT_framebuffer_object</em> extension so that we can use multisampling for anti-aliasing. The only tricky part is that we now use two FBOs. One is a normal FBO which also the texture is attached to. Only the second FBO is multisampled. While rendering, the multisampled FBO&#8217;s content is blitted to the normal FBO.</p>
<pre>// multi sampled color buffer
glGenRenderbuffersEXT(1, &amp;colorBuffer);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, colorBuffer);
glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples, GL_RGBA8, width, height);

// multi sampled depth buffer
glGenRenderbuffersEXT(1, &amp;depthBuffer);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, depthBuffer);
glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples, GL_DEPTH_COMPONENT, width, height);

// create fbo for multi sampled content and attach depth and color buffers to it
glGenFramebuffersEXT(1, &amp;mfbo);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mfbo);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, colorBuffer);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthBuffer);

// create texture
glGenTextures(1, &amp;texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
// set your texture parameters here if required ...

// create final fbo and attach texture to it
glGenFramebuffersEXT(1, &amp;fbo);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, texture, 0);

...

// rendering procedure
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mfbo);
glPushAttrib(GL_VIEWPORT_BIT);
glViewport(0, 0, width, height);
// ... draw ...
glPopAttrib();
glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, mfbo);
glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, fbo);
glBlitFramebufferEXT(0, 0, width, height, 0, 0, width, height, GL_COLOR_BUFFER_BIT, GL_NEAREST);
// you have to unbind all fbos before you can render to the main window
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
...

// cleaning up
glDeleteRenderbuffersEXT(1, &amp;depthBuffer);
glDeleteRenderbuffersEXT(1, &amp;colorBuffer);
glDeleteFramebuffersEXT(1, &amp;mfbo);
glDeleteFramebuffersEXT(1, &amp;fbo);</pre>
<p>Make sure that your graphics device supports the <em>GL_EXT_framebuffer_multisample</em> and <em>GL_EXT_framebuffer_blit </em>extensions because usually if an extension is not available the compiler won&#8217;t complain and no error message will be displayed. Instead your application will simply crash (at least this is what happens when you access the OpenGL extensions through glew). If you&#8217;re using glew you can simply do such a check by calling <em>glewIsSupported(&#8230;)</em>. It took me a while to figure out that it was my laptop&#8217;s ATI Mobility Radeon X1400 inability to anti-alias a FBO and not my inattention that caused the crash <img src='http://www.stefanlienhard.ch/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  .</p>
<p>One last hint: If you want to render your FBO onto a non-power-of-two sized texture you might be better off using the <em>GL_ARB_texture_rectangle</em> extension. Replace <em>GL_TEXTURE_2D</em> with <em>GL_TEXTURE_RECTANGLE_ARB</em>&#8230; that&#8217;s it.</p>
<p>Enough extensions, happy hacking!</p>
<p>Update:<br />
Also see <a href="http://www.opengl.org/wiki/GL_EXT_framebuffer_multisample">http://www.opengl.org/wiki/GL_EXT_framebuffer_multisample</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stefanlienhard.ch/2008/08/27/gl_ext_framebuffer_object-with-multisampling/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>It&#039;s Hammertime</title>
		<link>http://www.stefanlienhard.ch/2008/02/13/its-hammertime/</link>
		<comments>http://www.stefanlienhard.ch/2008/02/13/its-hammertime/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 19:27:50 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Braindead]]></category>

		<guid isPermaLink="false">http://blog.dexta.ch/2008/02/13/its-hammertime/</guid>
		<description><![CDATA[The Antiblog is up and running, The Duke is back and I got new shoes: After 5 months of letting you wait my Antiblog is finally up. You can expect frequent updates about wicked geek stuff, strange goodies and explosives &#8230; <a href="http://www.stefanlienhard.ch/2008/02/13/its-hammertime/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The Antiblog is up and running, The Duke is back and I got new shoes:</p>
<p><a href="http://www.stefanlienhard.ch/wp-content/uploads/2008/02/8521-531283-p1.jpg"><img class="alignnone size-medium wp-image-19" title="Adidas ZX 750" src="http://www.stefanlienhard.ch/wp-content/uploads/2008/02/8521-531283-p1-300x225.jpg" alt="" width="300" height="225" /></a><a title="Adidas ZX 750" href="http://dexta.stylesheep.ch/wordpress/wp-content/uploads/2008/02/8521-531283-p.jpg"></a></p>
<p>After 5 months of letting you wait my Antiblog is finally up. You can expect frequent updates about wicked geek stuff, strange goodies and explosives from online stores, bloody extreme sports competitions and tutorials on &#8220;how to render the real world in OpenGL&#8221;. Only the weirdest things are good enough!</p>
<p>More coming soon&#8230; <img src='http://www.stefanlienhard.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.stefanlienhard.ch/2008/02/13/its-hammertime/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
