<?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>Robert Muller Design &#187; 3D</title>
	<atom:link href="http://rmd.com.au/archives/category/3d/feed" rel="self" type="application/rss+xml" />
	<link>http://rmd.com.au</link>
	<description></description>
	<lastBuildDate>Fri, 08 Jan 2010 01:22:22 +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>Water For Life Microsite using Papervision3D</title>
		<link>http://rmd.com.au/archives/water-for-life</link>
		<comments>http://rmd.com.au/archives/water-for-life#comments</comments>
		<pubDate>Tue, 26 May 2009 13:52:58 +0000</pubDate>
		<dc:creator>Rob Muller</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Demoscene]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[My Work]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Euro RSCG]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://rmd.com.au/?p=336</guid>
		<description><![CDATA[Euro has just launched an integrated campaign for the NSW Government called &#8220;Water For Life&#8221;, which aims to inform the public about new water sources, and ways in which we can use our existing sources more efficiently. The campaign presents a &#8220;day-in-the-life&#8221; view of a water drop&#8217;s journey through our water system, and includes TV [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.waterforlife.com.au/"><img src="/wp-content/uploads/2009/05/water4life_01.jpg" alt="Water4Life Homepage" title="Water4Life Homepage" width="420" height="236" class="alignnone size-full wp-image-338" /></a></p>
<p>Euro has just launched an integrated campaign for the NSW Government called &#8220;Water For Life&#8221;, which aims to inform the public about new water sources, and ways in which we can use our existing sources more efficiently. The campaign presents a &#8220;day-in-the-life&#8221; view of a water drop&#8217;s journey through our water system, and includes TV commercials, printed and online advertising, and a microsite.</p>
<p>The aim of the microsite was to unify the journeys presented in each TV commercial, and provide a little more depth of information without becoming too heavy on details. We wanted to reuse and maintain the visual style of the TVCs, with the almost anthropomorphic focus on the water drop itself, so we decided to build a set of 3D scenes where people could discover additional information on water efficiency at various points on the drop&#8217;s journey.</p>
<p><a href="http://www.waterforlife.com.au/"><img src="/wp-content/uploads/2009/05/water4life_02b.jpg" alt="Water4Life Bathroom Scene" title="Water4Life Bathroom Scene" width="420" height="236" class="alignnone size-full wp-image-339" /></a></p>
<p>We used Papervision3D to render the scenes, which were partly modelled in 3D Studio Max and textured using a combination of texture-baking in 3DS and plenty of post-production in Photoshop. Then additional elements were added directly in Papervision, such as the refractive water drop, depth-of-field particles, tree decals, skyboxes, lens flares, etc.</p>
<p><a href="http://www.waterforlife.com.au/"><img src="/wp-content/uploads/2009/05/water4life_03.jpg" alt="Water4Life Map Scene" title="Water4Life Map Scene" width="420" height="236" class="alignnone size-full wp-image-337" /></a></p>
<p>I&#8217;m really happy with the final result, as well as the performance of the 3D scenes thanks to some optimisation tricks and techniques. I&#8217;m planning on doing a series of posts going into further detail on some of the effects and optimisation techniques, including source code where possible. If there&#8217;s anything specific you&#8217;d like me to cover, leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmd.com.au/archives/water-for-life/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>#tweetcoding Part 5 &#8211; Snake, Cube, Jellycube &amp; Headless Flasher</title>
		<link>http://rmd.com.au/archives/tweetcoding-part-5-snake-cube-jellycube-headless-flasher</link>
		<comments>http://rmd.com.au/archives/tweetcoding-part-5-snake-cube-jellycube-headless-flasher#comments</comments>
		<pubDate>Sat, 07 Mar 2009 07:50:09 +0000</pubDate>
		<dc:creator>Rob Muller</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[cube]]></category>
		<category><![CDATA[isometric]]></category>
		<category><![CDATA[jelly]]></category>
		<category><![CDATA[snake]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://rmd.com.au/?p=266</guid>
		<description><![CDATA[My next #tweetcoding entry is Snake, a game which needs no introduction. No game here unfortuntely &#8211; just the control mechanism, but I believe this was the first entry to use keyboard input. Use W, A, S and D to control the snake&#8230; although due to the code I&#8217;ve used which interprets keyboard commands into [...]]]></description>
			<content:encoded><![CDATA[<p>My next #tweetcoding entry is <a href="/labs/tweetcoding/snake.html">Snake</a>, a game which needs no introduction. No game here unfortuntely &#8211; just the control mechanism, but I believe this was the first entry to use keyboard input. Use W, A, S and D to control the snake&#8230; although due to the code I&#8217;ve used which interprets keyboard commands into horizontal and vertical velocities, other keys will also affect movement in unexpected ways. Here&#8217;s how it works:</p>
<p>The key codes for W and S (up and down) are 87 and 83, and the key codes for A and D (left and right) are 65 and 68. When a key is pressed, first I check if it is up/down, or left/right by testing whether its keycode is above 80 or not. If below, I subtract 66.5 from the key code, leaving either -1.5 or 1.5, which I use as the X velocity. If above 80, I subtract 85, leaving either -2 or 2, then multiply by .75 to ensure that the X and Y velocities match.</p>
<p>Of course, this means that other keys will also affect either the X or Y velocity at unpredictable speeds.</p>
<p><a href="/labs/tweetcoding/snake.html"><img src="/wp-content/uploads/2009/02/snake.jpg" alt="Snake" title="Snake" width="420" height="305" class="alignnone size-full wp-image-262" /></a></p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span>i<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #004993;">c</span>=q=<span style="color: #000000; font-weight:bold;">85</span><span style="color: #000066; font-weight: bold;">;</span>stage<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;keyDown&quot;</span><span style="color: #000066; font-weight: bold;">,</span>k<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#125;</span><span style="color: #339966; font-weight: bold;">function</span> k<span style="color: #000000;">&#40;</span>e<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #004993;">c</span>=e<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">keyCode</span><span style="color: #000000;">&#125;</span>v=h=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>c<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">80</span><span style="color: #000066; font-weight: bold;">?</span>v=<span style="color: #000000;">&#40;</span>c<span style="color: #000066; font-weight: bold;">-</span>q<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*.</span>75<span style="color: #000066; font-weight: bold;">:</span>h=c<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">66.5</span><span style="color: #000066; font-weight: bold;">;</span>ls<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">9</span><span style="color: #000066; font-weight: bold;">,</span>i<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span>q<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000;">&#40;</span>x<span style="color: #000066; font-weight: bold;">-</span>=h<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span>q<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">+</span>=v<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span></div></div>
<p>Number 12 &#8211; my attempt at creating a <a href="/labs/tweetcoding/cube.html">shaded 3D cube</a> cheats on two levels &#8211; 1: it&#8217;s not correct perspective 3D but isometric 3D, and 2: the &#8220;shading&#8221; is achieved with simple parallel lines which converge to mimic a shading effect as each plane turns away from the camera. The isometric effect is simple to produce &#8211; just scale the parent sprite/clip (in this case stage/root) by around 50%, and then rotate the children.</p>
<p><a href="/labs/tweetcoding/cube.html"><img src="/wp-content/uploads/2009/02/cube.jpg" alt="Cube" title="Cube" width="420" height="305" class="alignnone size-full wp-image-258" /></a></p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #004993;">scaleY</span>=<span style="color: #000066; font-weight: bold;">.</span>6<span style="color: #000066; font-weight: bold;">;</span>g<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>x=<span style="color: #000000; font-weight:bold;">275</span><span style="color: #000066; font-weight: bold;">;</span>y=<span style="color: #000000; font-weight:bold;">130</span><span style="color: #000066; font-weight: bold;">;</span>i<span style="color: #000066; font-weight: bold;">-</span>=<span style="color: #000066; font-weight: bold;">.</span>03<span style="color: #000066; font-weight: bold;">;</span>for<span style="color: #000000;">&#40;</span>q=<span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span>q<span style="color: #000066; font-weight: bold;">-</span>=<span style="color: #000000; font-weight:bold;">5</span><span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>j=m<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">cos</span><span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span>k=s<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span>mt<span style="color: #000000;">&#40;</span>k<span style="color: #000066; font-weight: bold;">,</span>j<span style="color: #000066; font-weight: bold;">+</span>q<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>ls<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">-</span>j<span style="color: #000066; font-weight: bold;">,</span>k<span style="color: #000066; font-weight: bold;">+</span>q<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">-</span>k<span style="color: #000066; font-weight: bold;">,</span>q<span style="color: #000066; font-weight: bold;">-</span>j<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>ls<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span>j<span style="color: #000066; font-weight: bold;">,</span>q<span style="color: #000066; font-weight: bold;">-</span>k<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span>k<span style="color: #000066; font-weight: bold;">,</span>j<span style="color: #000066; font-weight: bold;">+</span>q<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#125;</span></div></div>
<p><a href="/labs/tweetcoding/jellycube.html">Jellycube</a> was a natural progression from my previous entry, but also inspired by <a href="http://www.youtube.com/watch?v=eOm1uz33AV4">Human Target by Melon Dezign</a>. Melon&#8217;s style was always a big inspiration for my demogroup <a href="http://pouet.net/groups.php?which=1043">Reality</a>, particularly with their de-emphasis on cutting-edge effects in favour of design and humour. However, once again I wasn&#8217;t able to achieve my desired outcome &#8211; instead of squashing &#038; stretching the cube I was restricted to rotation only.</p>
<p><a href="/labs/tweetcoding/jellycube.html"><img src="/wp-content/uploads/2009/02/jellycube.jpg" alt="Jellycube" title="Jellycube" width="420" height="305" class="alignnone size-full wp-image-261" /></a></p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #004993;">scaleY</span>=<span style="color: #000066; font-weight: bold;">.</span>4<span style="color: #000066; font-weight: bold;">;</span>x=<span style="color: #000000; font-weight:bold;">275</span><span style="color: #000066; font-weight: bold;">;</span>for<span style="color: #000000;">&#40;</span>j=<span style="color: #004993;">y</span>=<span style="color: #000000; font-weight:bold;">160</span><span style="color: #000066; font-weight: bold;">;</span>j<span style="color: #000066; font-weight: bold;">-</span>=<span style="color: #000000; font-weight:bold;">8</span><span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span>o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span>=<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=bitmap%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:bitmap.html"><span style="color: #004993;">Bitmap</span></a><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=bitmapdata%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:bitmapdata.html"><span style="color: #004993;">BitmapData</span></a><span style="color: #000000;">&#40;</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">,</span>8e8<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=j<span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#125;</span>o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span>=s<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>j<span style="color: #000066; font-weight: bold;">+</span>i<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">999</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">x</span><span style="color: #000000;">&#125;</span></div></div>
<p>My 14th, and final entry is <a href="/labs/tweetcoding/headlessflasher.html">Headless Flasher</a>, an attempt at creating a stick figure running across the screen. This one was originally inspired by my cat Lucy, but it became pretty obvious that the 140 character limit wouldn&#8217;t allow four legs and a tail, so I switched over to a human stick figure. Unfortunately there was no room to add code for his head (or blood spurting out of his neck for that matter).</p>
<p><a href="/labs/tweetcoding/headlessflasher.html"><img src="/wp-content/uploads/2009/02/headlessflasher.jpg" alt="Headless Flasher" title="Headless Flasher" width="420" height="305" class="alignnone size-full wp-image-260" /></a></p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">l=lt<span style="color: #000066; font-weight: bold;">;</span>scaleX=<span style="color: #004993;">scaleY</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">20</span><span style="color: #000066; font-weight: bold;">;</span>g<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>j=s<span style="color: #000000;">&#40;</span>i<span style="color: #000066; font-weight: bold;">-</span>=<span style="color: #000066; font-weight: bold;">.</span>2<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>k=s<span style="color: #000000;">&#40;</span>i<span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>x=x<span style="color: #000066; font-weight: bold;">%</span>650<span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">;</span>y=<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">+</span>k<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">6</span><span style="color: #000066; font-weight: bold;">;</span>ls<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>mt<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">+</span>j<span style="color: #000066; font-weight: bold;">,</span>k<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>l<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>l<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">-</span>j<span style="color: #000066; font-weight: bold;">,-</span>k<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>mt<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>l<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">7</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>l<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">+</span>j<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>l<span style="color: #000000;">&#40;</span>j<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000066; font-weight: bold;">-</span>j<span style="color: #000000;">&#41;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://rmd.com.au/archives/tweetcoding-part-5-snake-cube-jellycube-headless-flasher/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Papervision3D Grass/Fur Effect</title>
		<link>http://rmd.com.au/archives/papervision3d-grass-fur-effect</link>
		<comments>http://rmd.com.au/archives/papervision3d-grass-fur-effect#comments</comments>
		<pubDate>Mon, 23 Feb 2009 05:46:37 +0000</pubDate>
		<dc:creator>Rob Muller</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[fur]]></category>
		<category><![CDATA[grass]]></category>
		<category><![CDATA[Papervision3D]]></category>
		<category><![CDATA[Playstation2]]></category>

		<guid isPermaLink="false">http://rmd.com.au/?p=64</guid>
		<description><![CDATA[To me, &#8220;Shadow of the Colossus&#8221; represents the pinnacle of PlayStation 2 games. Aside from the fact that it&#8217;s one of the most artistic games I&#8217;ve ever played, it&#8217;s also one of the most technically brilliant games on the platform, pushing the PS2 to its limits with real-time motion blur, HDR rendering, a LOD landscape [...]]]></description>
			<content:encoded><![CDATA[<p>To me, &#8220;Shadow of the Colossus&#8221; represents the pinnacle of PlayStation 2 games. Aside from the fact that it&#8217;s one of the most artistic games I&#8217;ve ever played, it&#8217;s also one of the most technically brilliant games on the platform, pushing the PS2 to its limits with real-time motion blur, <a href="http://en.wikipedia.org/wiki/High_dynamic_range_rendering">HDR rendering</a>, a <a href="http://en.wikipedia.org/wiki/Level_of_detail_(programming)">LOD</a> landscape system, <a href="http://en.wikipedia.org/wiki/Inverse_kinematics">IK</a> &#038; physics system, self-shadowing and, of course, the impressive fur shading. However, the PS2 can&#8217;t handle all of those things done &#8220;properly&#8221;, so some were achieved with ingenious tricks and shortcuts, all covered in this inspiring article on <a href="http://edusworld.org/ew/ficheros/2006/paginasWeb/making_of_sotc.html">The Making of &#8220;Shadow of the Colossus&#8221;</a>.</p>
<p>Since reading that article I&#8217;ve always wanted to recreate the fur effect, and have now done so using Papervision3D. As I was hoping to use it on a recent project, instead of fur I decided to <a href="/labs/grass/">simulate grass</a>:</p>
<p><a href="/labs/grass/"><img src="/wp-content/uploads/2009/01/grass_effect.jpg" alt="Papervision Grass Effect" title="grass_effect" width="435" height="413" class="size-full wp-image-65" /></a></p>
<p>The effect is achieved by drawing cross-sections of the fur/grass on a set of parallel layers &#8211; in this case I have 7 layers which, using 512&#215;512 alpha-transparent textures with 4&#215;4 segments, is pushing the limits of Flash/PV3D. However, because we&#8217;re only ever dealing with 7 textures, it can handle potentially infinite blades of grass &#8211; the example above has 3000. The grass is generated in real-time &#8211; I build the layers up by starting each blade of grass with a certain size &#038; direction, and growing it out on subsequent layers. The effect looks fine when the camera is close to perpendicular or the normal of the planes, but things start to fall apart when the planes and camera approach parallel.</p>
<p>The grass highlights are created with simple gradients, and I&#8217;ve also rendered basic shadows to the dirt layer (although they&#8217;re barely noticeable with such dense grass). Each blade of grass has a random colour, weighted heavily towards green but straying towards blue/brown in rare cases. Creating the effect of the grass moving in the wind is a simple matter of moving each plane along the X &#038; Z axis, with the motion increasing based on the distance from the base layer.</p>
<p>Being a huge fan of both Ico and SOTC, I&#8217;m really looking forward to seeing the next game from Fumito Ueda and Team ICO, and what they can do with the PS3 hardware.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmd.com.au/archives/papervision3d-grass-fur-effect/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>#tweetcoding Part 3 &#8211; Starfield, Sinescroller, TweetSynth &amp; VintageFlash</title>
		<link>http://rmd.com.au/archives/tweetcoding-part-3-starfield-sinescroller-tweetsynth-vintageflash</link>
		<comments>http://rmd.com.au/archives/tweetcoding-part-3-starfield-sinescroller-tweetsynth-vintageflash#comments</comments>
		<pubDate>Sun, 22 Feb 2009 00:35:56 +0000</pubDate>
		<dc:creator>Rob Muller</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Demoscene]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[starfield]]></category>
		<category><![CDATA[synthesis]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://rmd.com.au/?p=201</guid>
		<description><![CDATA[My fourth entry is Starfield &#8211; another classic demoscene effect. Nothing special about this one &#8211; it simply uses FP10&#8242;s new 3D abilities to move some 2&#215;2 pixel bitmaps. Would have been nice to get some rotation in there, but unfortunately most of the 140 characters are use up with creating the stars. for&#40;i=j=550;i--;&#41;&#123;if&#40;!o&#91;i&#93;&#41;&#123;o&#91;i&#93;=addChild&#40;new Bitmap&#40;new [...]]]></description>
			<content:encoded><![CDATA[<p>My fourth entry is <a href="/labs/tweetcoding/starfield.html">Starfield</a> &#8211; another classic demoscene effect. Nothing special about this one &#8211; it simply uses FP10&#8242;s new 3D abilities to move some 2&#215;2 pixel bitmaps. Would have been nice to get some rotation in there, but unfortunately most of the 140 characters are use up with creating the stars.</p>
<p><a href="/labs/tweetcoding/starfield.html"><img src="/wp-content/uploads/2009/02/starfield.jpg" alt="Starfield" title="Starfield" width="420" height="305" class="alignnone size-full wp-image-161" /></a></p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">for</span><span style="color: #000000;">&#40;</span>i=j=<span style="color: #000000; font-weight:bold;">550</span><span style="color: #000066; font-weight: bold;">;</span>i<span style="color: #000066; font-weight: bold;">--;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span>o<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>o<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>=<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=bitmap%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:bitmap.html"><span style="color: #004993;">Bitmap</span></a><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=bitmapdata%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:bitmapdata.html"><span style="color: #004993;">BitmapData</span></a><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>p=o<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>p<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=r<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>j<span style="color: #000066; font-weight: bold;">;</span>p<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=r<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>j<span style="color: #000066; font-weight: bold;">*.</span>72<span style="color: #000066; font-weight: bold;">;</span>p<span style="color: #000066; font-weight: bold;">.</span>z=r<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>j<span style="color: #000000;">&#125;</span>o<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">.</span>z<span style="color: #000066; font-weight: bold;">-</span>=<span style="color: #000000; font-weight:bold;">9</span><span style="color: #000066; font-weight: bold;">;</span>o<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">.</span>z<span style="color: #000066; font-weight: bold;">%</span>=j<span style="color: #000000;">&#125;</span></div></div>
<p>Fifth is <a href="/labs/tweetcoding/sinescroller.html">Sinescroller</a>. Perhaps the most common demoscene effect &#8211; scrollers go all the way back to the early crackintros in which coders would inject personal messages, greetings  or credits. Unfortunately this is a fairly unimpressive sinescroller &#8211; only 3 characters, and pretty poor kerning.</p>
<p><a href="/labs/tweetcoding/sinescroller.html"><img src="/wp-content/uploads/2009/02/sinescroller.jpg" alt="Sinescroller" title="Sinescroller" width="420" height="38" class="alignnone size-full wp-image-160" /></a></p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #004993;">x</span>=<span style="color: #000000; font-weight:bold;">550</span><span style="color: #000066; font-weight: bold;">;</span>t=<span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;R&quot;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #990000;">&quot;M&quot;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #990000;">&quot;D&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>for<span style="color: #000000;">&#40;</span>j=<span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">;</span>j<span style="color: #000066; font-weight: bold;">--;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span>o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span>o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span>=<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=textfield%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:textfield.html"><span style="color: #004993;">TextField</span></a><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span>=t<span style="color: #000000;">&#91;</span>j<span style="color: #000066; font-weight: bold;">%</span>4<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">,</span>o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=j<span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">9</span><span style="color: #000066; font-weight: bold;">;</span>p=o<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>p<span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">-</span>=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>p<span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">%</span>=<span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span>p<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=s<span style="color: #000000;">&#40;</span>i<span style="color: #000066; font-weight: bold;">+</span>=<span style="color: #000066; font-weight: bold;">.</span>5<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">9</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">9</span><span style="color: #000000;">&#125;</span></div></div>
<p><a href="/labs/tweetcoding/tweetsynth.html">TweetSynth</a> is my sixth entry, and the first entry to use audio <a href="http://twitter.com/zachberry/status/1229331282">by seven minutes</a>. Nothing to see here, but make sure your volume is down low first. I didn&#8217;t want to use random data, so I played with the numbers until it sounded interesting. Check out <a href="http://twitter.com/zachberry/status/1229276672">Zachberry&#8217;s entry</a> too &#8211; he managed to get a much more interesting sound going.</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span>i<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #000000;">&#40;</span>o=<span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=sound%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:sound.html"><span style="color: #004993;">Sound</span></a><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;sampleData&quot;</span><span style="color: #000066; font-weight: bold;">,</span>l<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>o<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">play</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>function l<span style="color: #000000;">&#40;</span>e<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #0033ff; font-weight: bold;">for</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">c</span>=5e3<span style="color: #000066; font-weight: bold;">;</span>c<span style="color: #000066; font-weight: bold;">--;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>w=e<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">writeFloat</span><span style="color: #000066; font-weight: bold;">;</span>w<span style="color: #000000;">&#40;</span>s<span style="color: #000000;">&#40;</span>i<span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>w<span style="color: #000000;">&#40;</span>s<span style="color: #000000;">&#40;</span>i<span style="color: #000066; font-weight: bold;">+</span>=<span style="color: #004993;">c</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#125;</span></div></div>
</p>
<p>Number seven is <a href="/labs/tweetcoding/vintageflash.html">VintageFlash</a>, an attempt at recreating an &#8220;old film effect&#8221;. Managed to squeeze three separate elements into this one &#8211; the background flicker, random noise to simulate dust, and the vertical lines simulating scratches in the film.</p>
<p><a href="/labs/tweetcoding/vintageflash.html"><img src="/wp-content/uploads/2009/02/vintageflash.jpg" alt="vintageflash" title="vintageflash" width="420" height="305" class="alignnone size-full wp-image-162" /></a></p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">p=<span style="color: #000000; font-weight:bold;">900</span><span style="color: #000066; font-weight: bold;">;</span>n=r<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">9</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000066; font-weight: bold;">;</span>ls<span style="color: #000000;">&#40;</span>p<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,.</span>1<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>if<span style="color: #000000;">&#40;</span>i=<span style="color: #000066; font-weight: bold;">!</span>i<span style="color: #000000;">&#41;</span>g<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>mt<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span>n<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span>p<span style="color: #000066; font-weight: bold;">,</span>n<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>if<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span>m<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">round</span><span style="color: #000000;">&#40;</span>n<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>o=n<span style="color: #000066; font-weight: bold;">*</span>p<span style="color: #000066; font-weight: bold;">;</span>ls<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>mt<span style="color: #000000;">&#40;</span>o<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span>o<span style="color: #000066; font-weight: bold;">+</span>=n<span style="color: #000066; font-weight: bold;">,</span>p<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>k=r<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>p<span style="color: #000066; font-weight: bold;">;</span>l=r<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>p<span style="color: #000066; font-weight: bold;">;</span>mt<span style="color: #000000;">&#40;</span>k<span style="color: #000066; font-weight: bold;">,</span>l<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>lt<span style="color: #000000;">&#40;</span>k<span style="color: #000066; font-weight: bold;">,</span>l<span style="color: #000066; font-weight: bold;">+</span>n<span style="color: #000000;">&#41;</span></div></div>
<p>Onwards to <a href="/archives/tweetcoding-part-4-bubbles-sineribbon-feedback-vortex">Part 4</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmd.com.au/archives/tweetcoding-part-3-starfield-sinescroller-tweetsynth-vintageflash/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Radial Spin/Zoom Motion Blur</title>
		<link>http://rmd.com.au/archives/flash-radial-spin-zoom-motion-blur</link>
		<comments>http://rmd.com.au/archives/flash-radial-spin-zoom-motion-blur#comments</comments>
		<pubDate>Tue, 10 Feb 2009 13:09:56 +0000</pubDate>
		<dc:creator>Rob Muller</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[blur]]></category>
		<category><![CDATA[motion blur]]></category>
		<category><![CDATA[radial blur]]></category>

		<guid isPermaLink="false">http://rmd.com.au/?p=106</guid>
		<description><![CDATA[Update &#8211; just posted the source to my MotionBlurSprite class. Following on from my previous post on motion blur, here&#8217;s a quick-and-dirty (and therefore pretty fast) method for achieving radial blur effects in Flash. Just slice your image up into a grid of smaller bitmaps, and apply a linear blur to each slice. You do [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong> &#8211; just posted the <a href="/archives/flash-motion-blur-sprite-source">source to my MotionBlurSprite class</a>.</p>
<p>Following on from my <a href="/archives/flash-motion-blur">previous post on motion blur</a>, here&#8217;s a quick-and-dirty (and therefore pretty fast) method for achieving radial blur effects in Flash. Just slice your image up into a grid of smaller bitmaps, and apply a linear blur to each slice. You do get seams between each slice where the blurred slices either don&#8217;t overlap properly, or overlap too much. While this is quite noticeable when the effect is applied to a static image, it looks pretty good when things are whizzing around.</p>
<p>Using this method, you can achieve a radial zoom blur:</p>
<p><img src="http://rmd.com.au/wp-content/uploads/2009/02/radial_blur_01.jpg" alt="Radial Zoom Blur" title="Radial Zoom Blur" width="420" height="280" class="alignnone size-full wp-image-144" /></p>
<p>&#8230;and radial spin blur:</p>
<p><img src="http://rmd.com.au/wp-content/uploads/2009/02/radial_blur_02.jpg" alt="Radial Spin Blur" title="Radial Spin Blur" width="420" height="280" class="alignnone size-full wp-image-144" /></p>
<p>&#8230;and of course combine motion blur, zoom blur and spin blur to achieve <a href="/labs/motionblur3d/">3D motion blur</a>:</p>
<p><a href="/labs/motionblur3d/"><img src="http://rmd.com.au/wp-content/uploads/2009/02/radial_blur_03.jpg" alt="3D Motion Blur" title="3D Motion Blur" width="420" height="280" class="alignnone size-full wp-image-144" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rmd.com.au/archives/flash-radial-spin-zoom-motion-blur/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
