<?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>diogo&#039;s coding corner</title>
	<atom:link href="http://diogo.codingcorner.net/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://diogo.codingcorner.net</link>
	<description>game development and real-time graphics</description>
	<lastBuildDate>Sun, 28 Feb 2010 18:50:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fluid Simulation</title>
		<link>http://diogo.codingcorner.net/index.php/blog/fluid-simulation/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/fluid-simulation/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 10:53:51 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=875</guid>
		<description><![CDATA[Just came across a very cool looking fluid simulation using DX11/DirectCompute, by Jan Vlietinck. It solves solves the Navier- Stokes differential equations to simulate an incompressible fluid, using either a Semi-Lagrangian scheme or the second order MacCormack technique.
On the rendering side, ray marching on the 200&#215;200x200 volume shows the amplitude of the maximum speed vectors:

A demo, [...]]]></description>
			<content:encoded><![CDATA[<p>Just came across a very cool looking fluid simulation using DX11/DirectCompute, by Jan Vlietinck. It solves solves the Navier- Stokes differential equations to simulate an incompressible fluid, using either a Semi-Lagrangian scheme or the second order MacCormack technique.</p>
<p>On the rendering side, ray marching on the 200&#215;200x200 volume shows the amplitude of the maximum speed vectors:</p>
<p align="center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/z_7DgpJK-eI" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/z_7DgpJK-eI"></embed></object></p>
<p>A demo, including source code, can be found at the author&#8217;s website:<br />
<a href="http://users.skynet.be/fquake/">http://users.skynet.be/fquake/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/fluid-simulation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CryEngine 3 &#8211; Global Illumination</title>
		<link>http://diogo.codingcorner.net/index.php/blog/cryengine-3-global-illumination/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/cryengine-3-global-illumination/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 16:43:13 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=843</guid>
		<description><![CDATA[Crytek finally revealed details about their diffuse global illumination technique. Papers and videos can be found here.
It seems to be loosely based on irradiance volumes, instant radiosity and photon mapping. Part of this clever approach was presented by Alex Evans back at Siggraph 2006, where he discussed fast lighting approximations using irradiance slices. Anton Kaplanyan, who developed [...]]]></description>
			<content:encoded><![CDATA[<p>Crytek finally revealed details about their diffuse global illumination technique. Papers and videos can be found <a href="http://www.crytek.com/technology/presentations"><strong>here</strong></a>.</p>
<p>It seems to be loosely based on <strong><a href="http://ati.amd.com/developer/gdc/Tatarchuk_Irradiance_Volumes.pdf">irradiance volumes</a>,</strong> <strong><a href="http://www.liensberger.it/Web/Blog/wp-content/uploads/Instant_Radiosity_kl08.pdf">instant radiosity</a><span style="font-weight: normal;"> and <a href="http://graphics.ucsd.edu/~henrik/papers/book/"><strong>photon mapping</strong></a></span></strong>. Part of this clever approach was presented by Alex Evans back at Siggraph 2006, where he discussed <a href="http://ati.amd.com/developer/siggraph06/Evans-Fast_Approximations_for_Lighting_of_Dynamic_Scenes-print.pdf"><strong>fast lighting approximations</strong></a> using irradiance slices. Anton Kaplanyan, who developed this technique at Crytek, went even further by improving quality and tackling scalability issues.</p>
<p align="center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/B-_pnqXLIg4&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/B-_pnqXLIg4&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: left;">Instant radiosity works by using virtual point lights to approximate global illumination. To get decent quality out of IR, hundreds (if not thousands) of virtual point lights need to be generated. Kaplanyan opted for <a href="http://www-sop.inria.fr/reves/Carsten.Dachsbacher/download/rsm.pdf"><strong>reflective shadow maps</strong></a>, a GPU friendly way of generating VPLs. Due to high fillrate demands, however, even deferred lighting wasn&#8217;t fast enough for the huge number of VPLs required. This is where light propagation volumes (or radiance volumes) came in very handy.</p>
<p style="text-align: left;">VPL SH-based radiance info is injected into the radiance volumes using point based rendering. Light is then propagated in the volume using the computed outgoing radiance flux. During the lighting pass the volume textures can be sampled directly, anywhere in the scene, in order to generate the lighting contribution, at each point, from the SH coefficients. Check the <a href="http://www.crytek.com/fileadmin/user_upload/inside/presentations/2009/Light_Propagation_Volumes.pdf"><strong>paper</strong></a> for a detailed explanation of the process.</p>
<p style="text-align: left;">Normal mapped surfaces, and even glossy reflections, are supported. Cascaded volumes are used when dealing with larger scenes. To improve the quality for local, more high frequency details, this approach is combined with <a href="http://www.mpi-inf.mpg.de/~ritschel/Papers/SSDO.pdf"><strong>screen space global illumination</strong></a>.</p>
<p style="text-align: left;">The performance, even on consoles, is very good and fairly stable due to the nature of the technique. Quality should scale very well with memory/hardware.</p>
<p style="text-align: left;">All in all, a very fast, current-gen, console-friendly approach to diffuse GI for dynamic scenes.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/cryengine-3-global-illumination/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Last day at Splash Damage</title>
		<link>http://diogo.codingcorner.net/index.php/blog/last-day-at-splash-damage/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/last-day-at-splash-damage/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 17:32:57 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=826</guid>
		<description><![CDATA[Yesterday was my last day at Splash Damage. It&#8217;s been a great ride but it&#8217;s time for me to move on. I miss my girlfriend, my family, the warmth of the motherland and an infinite urge to dedicate my peak productive years to personal endeavours. I&#8217;ve learned a lot over the past year and I [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was my last day at Splash Damage. It&#8217;s been a great ride but it&#8217;s time for me to move on. I miss my girlfriend, my family, the warmth of the motherland and an infinite urge to dedicate my peak productive years to personal endeavours. I&#8217;ve learned a lot over the past year and I would like to personally thank everyone at SD: I&#8217;m sure <a href="http://diogo.codingcorner.net/?p=797"><strong>Brink</strong></a> will become a kick ass game, thanks to all your effort.</p>
<p>That said, I am currently &#8220;on holiday&#8221;, arranging my move back to Portugal. My personal work is on hold; I&#8217;ll get back to it as soon as I have some stability.</p>
<p>Feel free to <a href="http://diogo.codingcorner.net/?page_id=351"><strong>contact me</strong></a> if you&#8217;re interested in discussing business opportunities.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/last-day-at-splash-damage/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Raytracing</title>
		<link>http://diogo.codingcorner.net/index.php/blog/raytracing/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/raytracing/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 20:39:55 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=818</guid>
		<description><![CDATA[In the last couple of weeks I began researching into high quality global illumination rendering. I finally started reading &#8220;Physically Based Rendering&#8221; by Pharr et al., which was kindly donated by Luis Alvarado. A few months ago I devoured &#8220;Realistic Image Synthesis Using Photon Mapping&#8221; by Jensen; it&#8217;s an excellent book. I&#8217;ve been wanting to [...]]]></description>
			<content:encoded><![CDATA[<p>In the last couple of weeks I began researching into high quality global illumination rendering. I finally started reading &#8220;<a href="http://www.pbrt.org/"><strong>Physically Based Rendering</strong></a>&#8221; by Pharr et al., which was kindly donated by Luis Alvarado. A few months ago I devoured &#8220;<strong><a href="http://graphics.ucsd.edu/~henrik/papers/book/">Realistic Image Synthesis Using Photon Mapping</a></strong>&#8221; by Jensen; it&#8217;s an excellent book. I&#8217;ve been wanting to do this for a while now because GI is growing more relevant to real-time rendering at an accelerated rate.</p>
<p>The first step was to build a framework to read and process scene information. I decided to go for FBX; turns out the sdk is a bit dodgy but functional. The next step was to build an acceleration structure and a raytracing core and this is what I&#8217;m working on right now. Here&#8217;s the first image with basic diffuse lighting and shadows from a point light:</p>
<p style="text-align: center;"><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/07/cornellbox_basic.png"><img class="aligncenter size-medium wp-image-819" title="cornellbox_basic" src="http://diogo.codingcorner.net/wp-content/uploads/2009/07/cornellbox_basic-300x300.png" alt="cornellbox_basic" width="300" height="300" /></a></p>
<p style="text-align: left;">It took around 3.8 seconds at 140K rays/second (including shading). I have my Centrino Duo mobile CPU down clocked to 1GHz because of overheating; this will force me to optimize the raytracing core before I can start investing time on something like path tracing. The next step is to replace the Octree with a KdTree or BVH with both mono and packed ray traversal. My goal is to achieve a minimum of 2 million rays/second per-core on the same scene.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;"></p>
<h3 class="r"><a class="l" onmousedown="return rwt(this,'','','res','1','AFQjCNEFw2nesq_vBajC85tU9ikZ_3_kDw','&amp;sig2=_lZmFO8rcBnEKtNLNyqZCw')" href="http://graphics.ucsd.edu/%7Ehenrik/papers/book/"><em>Realistic Image Synthesis Using Photon Mapping</em></a></h3>
<p><span style="display: inline-block;"><button class="w10"></button><button class="w20"></button></span></p>
<p></span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/raytracing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brink, Splash Damage (2008-2009)</title>
		<link>http://diogo.codingcorner.net/index.php/games/brink-splash-damage-2008-2009/</link>
		<comments>http://diogo.codingcorner.net/index.php/games/brink-splash-damage-2008-2009/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 21:47:18 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=797</guid>
		<description><![CDATA[Brink is an immersive shooter that blends single-player, co-op, and multiplayer gameplay into one seamless experience, allowing you to develop your character across all modes of play. You decide the role you want to assume in the world of Brink as you fight to save yourself and mankind’s last refuge for humanity. Brink offers a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Brink is an immersive shooter that blends single-player, co-op, and multiplayer gameplay into one seamless experience, allowing you to develop your character across all modes of play. You decide the role you want to assume in the world of Brink as you fight to save yourself and mankind’s last refuge for humanity. Brink offers a compelling mix of dynamic battlefields, extensive customization options, and an innovative control system that will keep you coming back for more.</p>
<p style="text-align: center;"><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink1.jpg"><img class="size-medium wp-image-802 aligncenter" style="border: 1px solid black;" title="brink" src="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink1-222x300.jpg" alt="brink" width="180" height="243" /></a></p>
<p style="text-align: left;">A man-made floating city called the Ark, made up of hundreds of separate floating islands, is on the brink of all-out civil war. Originally built as an experimental self-sufficient and 100% “green” habitat, the reported rapid rise of the Earth’s oceans has forced the Ark to become a refuge for humanity. Crammed with the original Ark founders, their descendants, as well as tens of thousands of refugees, the Ark exists in total isolation from the rest of the world. With 25 years of social unrest, the inhabitants of the Ark have reached their breaking point. It’s up to you to decide the future of the Ark and the human race.</p>
<table class="aligncenter" border="0" align="center">
<tbody>
<tr>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/01/ugo1.jpg"></a><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-1.jpg"><img class="alignleft size-medium wp-image-803" style="border: 1px solid black;" title="brink-e3-2009-1" src="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-1-300x168.jpg" alt="brink-e3-2009-1" width="240" height="134" /></a></td>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-2.jpg"><img class="size-medium wp-image-804 alignright" style="border: 1px solid black;" title="brink-e3-2009-2" src="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-2-300x168.jpg" alt="brink-e3-2009-2" width="240" height="134" /></a></td>
</tr>
<tr>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/01/ugo3.jpg"></a><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-3.jpg"><img class="alignleft size-medium wp-image-805" style="border: 1px solid black;" title="brink-e3-2009-3" src="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-3-300x168.jpg" alt="brink-e3-2009-3" width="240" height="134" /></a></td>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-4.jpg"><img class="size-medium wp-image-801 alignright" style="border: 1px solid black;" title="brink-e3-2009-4" src="http://diogo.codingcorner.net/wp-content/uploads/2009/06/brink-e3-2009-4-300x168.jpg" alt="brink-e3-2009-4" width="240" height="134" /></a></td>
</tr>
</tbody>
</table>
<p>This game is currently under development in partnership with Bethesda Softworks.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/games/brink-splash-damage-2008-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real-time photorealistic rendering</title>
		<link>http://diogo.codingcorner.net/index.php/blog/real-time-photoealistic-rendering/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/real-time-photoealistic-rendering/#comments</comments>
		<pubDate>Fri, 22 May 2009 19:38:37 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=750</guid>
		<description><![CDATA[Randomcontrol, the makers of fryrender, recently announced &#8220;fryrenderRT&#8221; the first commercial unbiased render engine with real-time visualization capabilities. They provide a player app that allows you to move the camera freely within a pre-computed scene and still have view-dependent glossy surfaces behaving accurately; pre-computing scenes with unbiased lighting may take up to hours or even [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.randomcontrol.com">Randomcontrol</a></strong>, the makers of <strong><a href="http://randomcontrol.com/fryrender">fryrender</a></strong>, recently announced &#8220;<a href="http://www.randomcontrol.com/rt"><strong>fryrenderRT</strong></a>&#8221; the first commercial unbiased render engine with real-time visualization capabilities. They provide a player app that allows you to move the camera freely within a pre-computed scene and still have view-dependent glossy surfaces behaving accurately; pre-computing scenes with unbiased lighting may take up to hours or even days.</p>
<p>Here&#8217;s a sneak peek showing off glossy materials:</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/dn3r_aecBew"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/dn3r_aecBew&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>From what I&#8217;ve gathered it seems to work by storing global lighting information at each point (vertex/texel), much like the Precomputed Radiance Transfer techniques currently used in games. These tend to focus on Spherical Harmonic encoding due to efficient representation of low frequency lighting; it&#8217;s possible that RC&#8217;s technique is similar but instead based on encoding of nonlinear <strong><a href="http://graphics.stanford.edu/papers/allfreqmat/">wavelets</a></strong> or <strong><a href="http://people.csail.mit.edu/wojciech/VDPLT/">gaussians</a></strong> which have been shown to work well for all-frequency relighting.</p>
<p>What does this mean for games?<br />
- The video above runs on a mid-range ATI 4850 at 20 frames per second which is VERY promising.<br />
- Static geometry is also a limitation for light maps.<br />
- The high offline rendering times already exist when developing games that rely on high-quality directional or SH-based lightmaps. However, a biased version of the offline renderer could help reduce the hardware costs and generate good enough results for most games.<br />
- Local memory requirements are certainly much higher than lightmaps. However, more compact representations trading quality for memory footprint could be used. e.g. partial wavelet coefficients.<br />
- Local memory on GPUs will eventually outpace or be merged with system ram. A virtual page-based approach could also be used to help keep most of the data in disk.</p>
<p>I believe this technique has potential for use in games in the near future. These could very well be the next generation light maps.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/real-time-photoealistic-rendering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instant Radiosity</title>
		<link>http://diogo.codingcorner.net/index.php/blog/instant-radiosity/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/instant-radiosity/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 17:39:42 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=737</guid>
		<description><![CDATA[I&#8217;ve been following the state of real-time Instant Radiosity for a while now. I see it as one of the best options for a gpu-friendly transition to more complex global illumination techniques like photon mapping. Unfortunately I never got around to implement it myself in order to verify it&#8217;s feasibility. Today I stumbled upon one [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been following the state of real-time Instant Radiosity for a while now. I see it as one of the best options for a gpu-friendly transition to more complex global illumination techniques like photon mapping. Unfortunately I never got around to implement it myself in order to verify it&#8217;s feasibility. Today I stumbled upon one of the best examples so far:</p>
<table class="aligncenter" border="0" align="center">
<tbody>
<tr>
<td><a href="http://www.infinity-universe.com/Infinity/images/stories/Journals/DeferredLighting/def_lighting_8.jpg"><img class="alignleft" style="border: 1px solid black;" src="http://www.infinity-universe.com/Infinity/images/stories/Journals/DeferredLighting/def_lighting_8.jpg" alt="" width="277" height="221" /></a></td>
<td><a href="http://www.infinity-universe.com/Infinity/images/stories/Journals/DeferredLighting/def_lighting_9.jpg"><img class="alignright" style="border: 1px solid black;" src="http://www.infinity-universe.com/Infinity/images/stories/Journals/DeferredLighting/def_lighting_9.jpg" alt="" width="277" height="221" /></a></td>
</tr>
</tbody>
</table>
<p>Flavien Brebion, aka Ysaneya, is the guy behind <strong><a href="http://www.infinity-universe.com">Infinity</a></strong>. He is also the guy behind the bold attempt at Instant Radiosity in the shots above. In his journal he talks about the technique and provides some statistics on its effectiveness when combined with deferred lighting. Follow <strong><a href="http://members.gamedev.net/ysaneya/journal/">this link</a></strong> to read all about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/instant-radiosity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compilation woes</title>
		<link>http://diogo.codingcorner.net/index.php/blog/compilation-woes/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/compilation-woes/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 11:47:42 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=728</guid>
		<description><![CDATA[These past few days I&#8217;ve been patiently experimenting with Mono. Getting libmono to compile on Visual Studio was straightforward. However, if you&#8217;re compiling from the trunk be aware that the win32 build gets broken every once in a while.
Compiling the class libraries, however, is a different kind of challenge. After installing cygwin and following all [...]]]></description>
			<content:encoded><![CDATA[<p>These past few days I&#8217;ve been patiently experimenting with <strong><a href="http://www.mono-project.com">Mono</a></strong>. Getting libmono to compile on Visual Studio was straightforward. However, if you&#8217;re compiling from the trunk be aware that the win32 build gets broken every once in a while.</p>
<p>Compiling the class libraries, however, is a different kind of challenge. After installing cygwin and following all the steps in <strong><a href="http://www.codeproject.com/KB/cross-platform/mono_on_windows.aspx">this tutorial</a></strong>, I get compiler errors for undefined symbols in a few libraries. Of course, if the mono <strong><a href="http://www.go-mono.com/daily">daily-builds</a></strong> were operational I wouldnt have to compile them myself.</p>
<p>In the meantime I&#8217;ve just downloaded the <a href="http://unity3d.com/"><strong>Unity 2.5</strong></a> trial to see what all the fuss is about. It uses Mono as a scripting platform, something I&#8217;m looking to achieve for my development framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/compilation-woes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skin Shader (2009)</title>
		<link>http://diogo.codingcorner.net/index.php/research/skin-shader-2009/</link>
		<comments>http://diogo.codingcorner.net/index.php/research/skin-shader-2009/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 18:11:40 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=658</guid>
		<description><![CDATA[This is essentially a RenderMonkey implementation of the GPU Gems 3 Chapter 14 named &#8220;Advanced Techniques for Realistic Real-Time Skin Rendering&#8221; by Eugene d’Eon and David Luebke. It includes all the steps described in the chapter except for translucent shadow maps.








The RenderMonkey project is available here; it includes media files created by João Sapiro Vaz [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">This is essentially a RenderMonkey implementation of the <a href="http://developer.nvidia.com/object/gpu-gems-3.html"><strong>GPU Gems 3</strong></a> Chapter 14 named &#8220;<strong><a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch14.html">Advanced Techniques for Realistic Real-Time Skin Rendering</a></strong>&#8221; by Eugene d’Eon and David Luebke. It includes all the steps described in the chapter except for translucent shadow maps.</p>
<table class="aligncenter" border="0" align="center">
<tbody>
<tr>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/skinbig1.png"></a><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/skinbigspec.png"><img class="aligncenter size-medium wp-image-713" title="skinbigspec" src="http://diogo.codingcorner.net/wp-content/uploads/2009/03/skinbigspec-183x300.png" alt="skinbigspec" width="183" height="300" /></a></td>
</tr>
</tbody>
</table>
<p style="text-align: left;">
<p>The RenderMonkey project is available <a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/skinshaderrm.zip"><strong>here</strong></a>; it includes media files created by João Sapiro Vaz aka <a href="http://gamedev-pt.net/forum.vertopico.php?tid=2273&amp;pag=2"><strong>johny</strong></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/research/skin-shader-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Final Skin shader</title>
		<link>http://diogo.codingcorner.net/index.php/blog/final-skin-shader/</link>
		<comments>http://diogo.codingcorner.net/index.php/blog/final-skin-shader/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 17:44:26 +0000</pubDate>
		<dc:creator>diogo</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://diogo.codingcorner.net/?p=630</guid>
		<description><![CDATA[As promised by O2, my broadband internet was activated on friday. I&#8217;m done with the skin shader but still haven&#8217;t given up on Mono.
I took the liberty to take some screenshots of the several steps required for the final composition. The only step I didn&#8217;t bother to implement was the translucent shadow maps which are [...]]]></description>
			<content:encoded><![CDATA[<p>As promised by O2, my broadband internet was activated on friday. I&#8217;m done with the skin shader but still haven&#8217;t given up on Mono.</p>
<p>I took the liberty to take some screenshots of the several steps required for the final composition. The only step I didn&#8217;t bother to implement was the translucent shadow maps which are used to simulate light transfer through thin regions such as ears. The RenderMonkey project is available <strong><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/skinshaderrm.zip">here</a></strong>; it includes the media files created by <strong> <a href="http://gamedev-pt.net/forum.vertopico.php?tid=2273&amp;pag=2">johny</a></strong>.</p>
<p>The diffusion profiles:</p>
<table class="aligncenter" border="0" align="center">
<tbody>
<tr>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/diffusion_profiles1.png"><img class="aligncenter size-large wp-image-651" title="diffusion_profiles1" src="http://diogo.codingcorner.net/wp-content/uploads/2009/03/diffusion_profiles1-1024x295.png" alt="diffusion_profiles1" width="358" height="104" /></a></td>
</tr>
</tbody>
</table>
<p>The composition of diffuse, sum of diffusion profiles and specular:</p>
<table class="aligncenter" border="0" align="center">
<tbody>
<tr>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/composition_steps.png"><img class="aligncenter size-medium wp-image-632" title="composition_steps" src="http://diogo.codingcorner.net/wp-content/uploads/2009/03/composition_steps-300x130.png" alt="composition_steps" width="240" height="104" /></a></td>
</tr>
</tbody>
</table>
<p>Comparison of a basic shader (left) with the skin shader (right):</p>
<table class="aligncenter" border="0" align="center">
<tbody>
<tr>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/comparison21.png"><img class="aligncenter size-medium wp-image-720" style="border: 1px solid black;" title="comparison21" src="http://diogo.codingcorner.net/wp-content/uploads/2009/03/comparison21-172x300.png" alt="comparison21" width="88" height="154" /></a></td>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/comparison3.png"><img class="aligncenter size-medium wp-image-638" style="border: 1px solid black;" title="comparison3" src="http://diogo.codingcorner.net/wp-content/uploads/2009/03/comparison3-172x300.png" alt="comparison3" width="88" height="154" /></a></td>
<td><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/comparison1.png"><img class="size-medium wp-image-636 aligncenter" style="border: 1px solid black;" title="comparison1" src="http://diogo.codingcorner.net/wp-content/uploads/2009/03/comparison1-172x300.png" alt="comparison1" width="88" height="154" /></a></td>
</tr>
</tbody>
</table>
<p>Final result in high resolution:</p>
<table class="aligncenter" border="0" align="center">
<tbody>
<tr>
<td>
<p style="text-align: center;"><a href="http://diogo.codingcorner.net/wp-content/uploads/2009/03/skinbigspec.png"><img class="aligncenter size-medium wp-image-713" title="skinbigspec" src="http://diogo.codingcorner.net/wp-content/uploads/2009/03/skinbigspec-183x300.png" alt="skinbigspec" width="132" height="216" /></a></p>
</td>
</tr>
</tbody>
</table>
<p>Note that the seams are back because I added support for shadow maps and that basically killed my initial workaround. This issue could be addressed through the use of a <strong><a href="http://research.microsoft.com/en-us/um/people/hoppe/proj/sphereparam/">spherical parameterization</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://diogo.codingcorner.net/index.php/blog/final-skin-shader/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
