<?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>What Ev &#187; XNA</title>
	<atom:link href="http://what-ev.net/tag/xna/feed/" rel="self" type="application/rss+xml" />
	<link>http://what-ev.net</link>
	<description>Chris Cascioli - Graphics Programming &#124; Game Design</description>
	<lastBuildDate>Mon, 14 Jun 2010 04:37:23 +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>XNA Fur Rendering</title>
		<link>http://what-ev.net/2009/11/22/xna-fur-rendering/</link>
		<comments>http://what-ev.net/2009/11/22/xna-fur-rendering/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 02:24:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[My Graphics Programming]]></category>
		<category><![CDATA[fur]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[tech demo]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://what-ev.net/?p=109</guid>
		<description><![CDATA[I was pretty sick last weekend, and sticking to my odd &#8220;get sick, code something&#8221; habit, I decided to finally try to make a fur rendering demo.  I read a few articles about it years ago, so I knew the general concept behind it: render lots of &#8220;shells&#8221; around the model with an appropriate [...]]]></description>
			<content:encoded><![CDATA[<p>I was pretty sick last weekend, and sticking to my odd &#8220;get sick, code something&#8221; habit, I decided to finally try to make a fur rendering demo.  I read a few articles about it years ago, so I knew the general concept behind it: render lots of &#8220;shells&#8221; around the model with an appropriate fur texture.  The fur texture is basically a transparent texture with dots on it, and as the shells get layered on top of each other, the dots are essentially extruded into individual furs (without having to render each fur individually).</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/o36G4AiapiE&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/o36G4AiapiE&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>I&#8217;ve seen fur effects used in a few games, notably <a href="http://cubemedia.ign.com/media/previews/image/starfoxa/fur1_640w.jpg">Star Fox Adventures</a> for the GameCube, and the more recent <a href="http://image.com.com/gamespot/images/2007/303/915692_20071030_screen109.jpg">Super Mario Galaxy</a> for the Wii.  I have no idea if they are using the same technique, but the Super Mario Galaxy queen bee looks similar.</p>
<p>What really got me thinking about finally starting this demo was an article I found on <a href="http://www.reddit.com">reddit</a>.  The article is from <a href="http://www.xbdev.net">xbdev.net</a>, and is (appropriately) called <a href="http://www.xbdev.net/directx3dx/specialX/Fur/index.php">Generating Fur in DirectX or OpenGL Easily</a>.  While it&#8217;s not the most well-written article I&#8217;ve ever read (especially the comments in the provided code), it has some nice diagrams and screenshots of the technique in progress.  If you&#8217;re interested in learning more about fur rendering, I&#8217;d suggest starting there.</p>
<p>After reading that article, I decided to go for it.  I got the basics up and running pretty quickly.  I added some camera controls and the ability to change a few things on the fly (like the fur length), mostly for testing purposes.  One of the first things you notice with basic fur rendering is that everything is the same color, so you only notice the &#8220;fur&#8221; aspect of it around the edges.  I added some basic N dot L lighting and I modified the fur by the model&#8217;s texture so it wasn&#8217;t all the exactly the same.  This helped a bit, but the hairs were still bleeding into each other and not looking very fur-like.  Clearly some sort of individual fur shading was needed.</p>
<p>I went back to the fur article linked above to check out their shadowing technique.  To be honest, I&#8217;m not 100% sure I even implemented it the way they explained it (which I would have to describe as &#8220;poorly&#8221;).  The gist of it is to re-render each shell, offsetting the texture a bit and making it look like a shadow.  I didn&#8217;t like it from the start.  Double the number of shells that need to be rendered?  No thanks.  I didn&#8217;t need to render an actual shadow of each fur.  I just wanted the fur to get darker the &#8220;deeper&#8221; it was, so that&#8217;s what I did.  The shells closer to the model are rendered a bit darker, and they get brighter as they get further away.  The last piece of this puzzle was to make sure the model itself was rendered slightly darker, giving the illusion that the fur is shading the scalp.</p>
<p>One thing I did implement from the article was the concept of gravity affecting the fur.  Each shell is offset a tiny bit in the negative Y direction (based on a power function) to give the impression that the fur is bending due to gravity.  It&#8217;s a very nice effect, and it was easy to implement.  I decided to take it a step further and make the fur react as you drag the model around.  When you drag it, the fur gets stretched in the opposite direction and slowly interpolates back to its normal &#8220;bent&#8221; position.  It&#8217;s fake physics, but it looks neat.</p>
<p>I&#8217;ve got some plans to continue this the next time I&#8217;m bored.  A few features off the top of my head would be: multiple models &#038; swapping at run time, more controls for different settings (gravity, fur density, etc) and adding a fur length map, so certain sections of the model can have different lengths of fur (or be bald).</p>
<p>-Chris</p>
]]></content:encoded>
			<wfw:commentRss>http://what-ev.net/2009/11/22/xna-fur-rendering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Dimension Break Video</title>
		<link>http://what-ev.net/2009/05/13/new-dimension-break-video/</link>
		<comments>http://what-ev.net/2009/05/13/new-dimension-break-video/#comments</comments>
		<pubDate>Wed, 13 May 2009 21:19:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[My Games]]></category>
		<category><![CDATA[Dimension Break]]></category>
		<category><![CDATA[portals]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://what-ev.net/wordpress/?p=32</guid>
		<description><![CDATA[I finally got around to putting together a video of the old portal tech test I did for Dimension Break.  It&#8217;s nothing fancy, but I&#8217;ve wanted to be able to show it for a while now. I&#8217;d really like to go back and polish it up a bit. Maybe finally implement the more Portal-esque [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got around to putting together a video of the old portal tech test I did for Dimension Break.  It&#8217;s nothing fancy, but I&#8217;ve wanted to be able to show it for a while now. I&#8217;d really like to go back and polish it up a bit. Maybe finally implement the more <em>Portal</em>-esque portals for fun.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/6UscfH0DMT8&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/6UscfH0DMT8&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>-Chris</p>
]]></content:encoded>
			<wfw:commentRss>http://what-ev.net/2009/05/13/new-dimension-break-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dimension Break Video</title>
		<link>http://what-ev.net/2009/04/05/dimension-break-video/</link>
		<comments>http://what-ev.net/2009/04/05/dimension-break-video/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 05:08:35 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[My Games]]></category>
		<category><![CDATA[Dimension Break]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://what-ev.net/wordpress/?p=27</guid>
		<description><![CDATA[I made a video of Dimension Break with some footage I took before the GDC.  I have it up on games.rit.edu, as well as YouTube.

I wish I could have taken some better videos, but the game isn&#8217;t quite ready yet.  Hopefully soon though!
-Chris
]]></description>
			<content:encoded><![CDATA[<p>I made a video of Dimension Break with some footage I took before the GDC.  I have it up on games.rit.edu, as well as YouTube.</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/oe0MjVY04U8&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/oe0MjVY04U8&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>I wish I could have taken some better videos, but the game isn&#8217;t quite ready yet.  Hopefully soon though!</p>
<p>-Chris</p>
]]></content:encoded>
			<wfw:commentRss>http://what-ev.net/2009/04/05/dimension-break-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
