<?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>Unity Technologies Blog &#187; Aras Pranckevičius</title>
	<atom:link href="http://blogs.unity3d.com/author/aras/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.unity3d.com</link>
	<description>A glimpse inside Unity Technologies...</description>
	<lastBuildDate>Fri, 20 Nov 2009 21:07:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fridays Are For Fun!</title>
		<link>http://blogs.unity3d.com/2009/11/18/fridays-are-for-fun/</link>
		<comments>http://blogs.unity3d.com/2009/11/18/fridays-are-for-fun/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 09:42:15 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Company News]]></category>
		<category><![CDATA[Rants & Raves]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/?p=1852</guid>
		<description><![CDATA[At end of April 2009, Joachim sent this out to all developers at Unity:
We want to try one more thing&#8230; On Friday work on something cool.
I think there are a lot of low hanging fruits in Unity where somebody with drive can just do something cool that pushes us forward. Things that are hard to [...]]]></description>
			<content:encoded><![CDATA[<p>At end of April 2009, Joachim sent this out to all developers at Unity:</p>
<blockquote><p>We want to try one more thing&#8230; On Friday work on something cool.</p>
<p>I think there are a lot of low hanging fruits in Unity where somebody with drive can just do something cool that pushes us forward. Things that are hard to put in words, but just make sense when you see it done.</p>
<p>So every Friday, developers can work on something cool, something they have been craving to do for a long time. A feature, a demo, a tutorial, a video tutorial, docs, cleaning the toilet, something on the website. Whatever. Be creative, push the envelope.</p></blockquote>
<p><span id="more-1852"></span>In other words, we started to work on &#8220;anything cool&#8221; on Fridays. This was dubbed as FAFF (Fridays Are For Fun).</p>
<p>Boy, what a positive effect on team morale that was!</p>
<p>It also resulted in some FAFF work being polished &amp; promoted into official releases already. Things like:</p>
<ul>
<li><a href="http://unity3d.com/support/documentation/Components/animeditor-AnimationEvents.html">Animation Events</a> in Unity 2.6 animation editor</li>
<li>Display <a href="http://feedback.unity3d.com/pages/15792-unity/suggestions/163534">realtime brush preview</a> in terrain editing tools</li>
<li>Timeline Charts for <a href="http://unity3d.com/support/documentation/Manual/Profiler.html">Unity 2.6 profiler</a></li>
<li><a href="http://feedback.unity3d.com/pages/15792-unity/suggestions/163793">Custom Icons</a> for standalone game builds</li>
<li><a href="http://unity3d.com/support/resources/unity-extensions/head-look-controller">Head Look Controller</a> sample project</li>
<li>Precise raycast-based snapping in Unity 2.6</li>
</ul>
<p>&#8230;all started out as Friday projects!</p>
<p>Developers have experimented with lots of other stuff on Fridays. Some of them were just playing around or learning Unity better. Some Fridays were for evaluating various middleware packages, implementing some features or doing some fancy R&amp;D. Some of the projects were an interesting kind of &#8220;fun&#8221;. Like improving internal build farm setup, a system for better tracking of crash reports, improving the website, or other similar things that often involve Perl scripts. Well, eveyone has his own kind of fun <img src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So yeah. On Fridays, we just ignore the schedule and work on something cool. Something that pushes our own tech &#8211; something that we can&#8217;t defend from a business standpoint but that&#8217;s just too great to not get done.  If it rocks, we&#8217;ll ship it. Because, at the end of the day &#8211; who knows where the next killer idea will come from.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2009/11/18/fridays-are-for-fun/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Summer of Code: Progress of Terrain Erosion Tools</title>
		<link>http://blogs.unity3d.com/2009/08/23/summer-of-code-progress-of-terrain-erosion-tools/</link>
		<comments>http://blogs.unity3d.com/2009/08/23/summer-of-code-progress-of-terrain-erosion-tools/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 14:51:37 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Company News]]></category>
		<category><![CDATA[Unity Summer of Code]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/?p=1263</guid>
		<description><![CDATA[This blog post is written by Sándor Moldán who is working on a set of Terrain Erosion tools for Unity. The project is one of four selected projects that were selected for the Unity Summer of Code.
The objective of this Unity Summer of Code project was to develop a toolset for the Unity Editor which [...]]]></description>
			<content:encoded><![CDATA[<p><em>This blog post is written by Sándor Moldán who is working on a set of Terrain Erosion tools for Unity. The project is one of <a href="http://blogs.unity3d.com/2009/07/22/unity-summer-of-code-takes-off/">four selected projects</a> that were selected for the <a href="http://unity3d.com/usc/">Unity Summer of Code</a>.</em></p>
<p>The objective of this Unity Summer of Code project was to develop a toolset for the Unity Editor which would streamline and improve the workflow involved in creating terrains for games.<br />
<a href="http://blogs.unity3d.com/wp-content/uploads/2009/08/Terrain_Screenshot.jpg"><img src="http://blogs.unity3d.com/wp-content/uploads/2009/08/Terrain_Screenshot.jpg" alt="Terrain Erosion Tools screenshot" title="Terrain Erosion Tools screenshot" width="640" height="240" class="alignnone size-full wp-image-1264" /></a></p>
<p><span id="more-1263"></span>While there are currently a number of third party tools that can already produce high quality terrains, I felt that they lacked two vital qualities. Besides the impact of the additional cost of these tools – particularly to indie developers, when using these tools it is left to the artist to develop an effective workflow for getting height and texture maps out of their proprietary software and into Unity. This can be a somewhat painful process. Secondly and more importantly, it is impossible to leverage the power of the tools to procedurally generate landscapes at runtime. My aim was to overcome these constraints by integrating terrain generation tools directly into the Unity engine and editor.</p>
<p>The toolset I am developing is divided into three areas – terrain generation, erosion and texturing. So far there are 5 different erosion filters – thermal, tidal, wind and two types of hydraulic erosion, 2 ‘generators’ that use Voronoi and cloud fractal algorithms to create base terrain, a couple of useful tools that allow the user to smooth or normalise the terrain and finally a procedural terrain texturing tool.</p>
<p>All ten of these features will be provided both as filters which can be applied in the Unity Editor and as fully documented API functions which will allow users to generate terrain and apply filters at runtime through their own scripts. Additionally, thermal, fast-hydraulic and tidal erosion filters can also be applied directly to the terrain object using brushes in the editor.<br />
<a href="http://blogs.unity3d.com/wp-content/uploads/2009/08/Terrain_UI_Screenshot.jpg"><img src="http://blogs.unity3d.com/wp-content/uploads/2009/08/Terrain_UI_Screenshot.jpg" alt="Terrain Erosion Tools UI" title="Terrain Erosion Tools UI" width="640" height="320" class="alignnone size-full wp-image-1265" /></a></p>
<p><strong>Where it’s up to, what still needs to be done</strong></p>
<p>I feel that the project has progressed well over the last five or so weeks. There have certainly been some obstacles and not everything has gone my way, but with just over a week remaining I am on track towards delivering at least 16 of the 19 features that I originally scoped for the project, plus two completely new ones. Given that my aim was to deliver a minimum of 12 of the scoped features within the Unity Summer of Code timeline, I’m quite happy with the result.</p>
<p>Over the next week my main aim is to tidy up the documentation for this project, which I believe is vital in allowing Unity artists and developers to get the most out of these tools. I will also focus on cleaning up my code and optimising it where possible and finally I will continue working away on the remaining features – namely a few UI tweaks, yet a third different approach to hydraulic erosion, and glacial erosion.</p>
<p><strong>What went well</strong></p>
<p>I started the project with a fairly limited knowledge about creating properly integrated custom tools for the Unity Editor and had only given the Editor GUI documentation a cursory glance. I found that despite a few minor hurdles, I was able to quite easily create a useful and intuitive interface for my tools. I was also pretty happy with some of the optimisations I was able made to my erosion code. Being able to run 50 thermal erosion iterations on a 512 x 512 terrain object in barely more than 6 seconds totally exceeded my wildest expectations.</p>
<p>Also, after many unsuccessful attempts to get Unity’s undo feature to work with my code, one of the Unity guys, Rune, was kind enough to explain it to us – and in typical Unity style, it turned out to be much simpler that I had thought it would be.</p>
<p>Even though I had originally considered undo as a ‘nice to have’ feature, I quickly realised that it was really an imperative. Getting the best results from these tools can require a bit of trial and error, and allowing users to run a filter, undo it, tweak a few settings and run it again without completely ruining their terrain object in the process is vital in making this project a practical solution for Unity artists and developers.</p>
<p><strong>What didn’t go so well</strong></p>
<p>While I consider my scripting skills in JavaScript and C# to be reasonably good, I have to admit that mathematics is not really my strong point. Some of the equations I used in my tools, such as Voronoi diagrams and the Diamond-Square algorithm were fairly easy to implement in code – but for the vast majority of my tools I initially approached the algorithms logically rather than algorithmically.</p>
<p>For the most part this worked well and produced good results. However, when I started looking for a more physically correct approach to erosion caused by fluid mediums – namely water and ice – I realised that the complexity of the mathematics involved in computational fluid dynamics, such as Shallow Water Models, Navier-Stokes equations and so on, was far beyond my level of understanding and well beyond my capacity to learn in such a short period. This was rather disappointing, as it has meant that I have not yet found an effective solution for glacial erosion.</p>
<p>That said, there is still a lot more that I want to achieve with this toolset. After I deliver my project at the end of the Unity Summer of Code, I fully intend to revisit some of these prohibitively complex features once I have the time to do all the learning and research that will be required to get them to work the way that I want them to.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2009/08/23/summer-of-code-progress-of-terrain-erosion-tools/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Presentations from Assembly 2009 demo party</title>
		<link>http://blogs.unity3d.com/2009/08/20/assembly-2009-presentations/</link>
		<comments>http://blogs.unity3d.com/2009/08/20/assembly-2009-presentations/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 18:51:19 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/?p=1225</guid>
		<description><![CDATA[We have a ton of people at Unity who have been or are involved in the demoscene. Assembly is one of the largest demoscene parties, and this year we were sponsoring the event, sent in some folks there and had a couple of seminar presentations. Our presentations were not directly Unity related, but still might [...]]]></description>
			<content:encoded><![CDATA[<p>We have <em>a ton</em> of people at Unity who have been or are involved in the <a href="http://en.wikipedia.org/wiki/Demoscene">demoscene</a>. <a href="http://en.wikipedia.org/wiki/Assembly_(demo_party)">Assembly</a> is one of the largest demoscene parties, and <a href="http://www.assembly.org/summer09/?set_language=en">this year</a> we were sponsoring the event, sent in some folks there and had a couple of seminar presentations. Our presentations were not directly Unity related, but still might be interesting for some of you.</p>
<p><span id="more-1225"></span><br />
I talked about developing graphics technology for small games (<a href='http://blogs.unity3d.com/wp-content/uploads/2009/08/Assembly09-Graphics-Tech-for-Small-Games.pdf'>PDF slides</a>). Mostly on hardware statistics, GPU features, testing and stability.<br />
<object width='504' height='284'><param name='allowfullscreen' value='true' /><param name='allowscriptaccess' value='always' /><param name='movie' value='http://vimeo.com/moogaloop.swf?clip_id=6128236&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1' /><embed src='http://vimeo.com/moogaloop.swf?clip_id=6128236&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1' type='application/x-shockwave-flash' allowfullscreen='true' allowscriptaccess='always' width='504' height='284'></embed></object></p>
<p>ReJ talked about low level iPhone (pre-3GS) rendering details (<a href='http://blogs.unity3d.com/wp-content/uploads/2009/08/Assembly09-iPhone-Learning-GPU-from-Driver-Code.pdf'>PDF slides</a>). On inner workings of iPhone&#8217;s GPU, OpenGL ES drivers, command buffers, VFP assembly and so on. Some awesome tech stuff in there!<br />
<object width='504' height='284'><param name='allowfullscreen' value='true' /><param name='allowscriptaccess' value='always' /><param name='movie' value='http://vimeo.com/moogaloop.swf?clip_id=6064955&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1' /><embed src='http://vimeo.com/moogaloop.swf?clip_id=6064955&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1' type='application/x-shockwave-flash' allowfullscreen='true' allowscriptaccess='always' width='504' height='284'></embed></object></p>
<p>If you&#8217;re going to watch some demos from Assembly 2009, make sure to see:</p>
<ul>
<li><a href="http://capped.tv/cncd_orange_fairlight-frameranger">Frameranger</a> (1st place demo). Imagine that on a big screen and a good sound system!</li>
<li><a href="http://capped.tv/united_force_digital_dynamite-the_golden_path">The Golden Path</a> (3rd place demo) &#8211; for something fresh.</li>
<li><a href="http://capped.tv/youth_uprising_mlat_design_out-muon_baryon">Muon Baryon</a> (1st place 4 kilobyte intro) &#8211; that&#8217;s what kids do with sphere marching on the GPU these days. Everything in 4 kilobytes!</li>
</ul>
<p>&#8230;see you at <a href="http://en.wikipedia.org/wiki/Breakpoint_(demo_party)">Breakpoint</a> next year? <img src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2009/08/20/assembly-2009-presentations/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fixed function T&amp;L in vertex shaders: implemented</title>
		<link>http://blogs.unity3d.com/2009/06/10/fixed-function-tl-in-vertex-shaders-implemented/</link>
		<comments>http://blogs.unity3d.com/2009/06/10/fixed-function-tl-in-vertex-shaders-implemented/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 18:56:37 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/?p=826</guid>
		<description><![CDATA[Unity roadmap blog post said:
Currently Unity mixes the fixed function pipeline for vertex lit objects and vertex shaders for pixel lit lights. On Direct3D this creates some rendering artifacts on very close or self intersecting surfaces. We want to end this by implementing a full fixed function emulator in vertex shaders. You won’t have to [...]]]></description>
			<content:encoded><![CDATA[<p>Unity <a href="http://blogs.unity3d.com/2009/04/10/unity-roadmap/">roadmap blog post</a> said:</p>
<blockquote><p>Currently Unity mixes the fixed function pipeline for vertex lit objects and vertex shaders for pixel lit lights. On Direct3D this creates some rendering artifacts on very close or self intersecting surfaces. We want to end this by implementing a full fixed function emulator in vertex shaders. You won’t have to do anything, it will just work!
</p></blockquote>
<p>Well, the good news is that we have done it, and it is definitely coming in Unity 2.6!</p>
<p>It is funny, because the problem seems like a simple one: <em>&#8220;there are double-lighting artifacts on close surfaces&#8221;</em>. The solution, however, is <em>&#8220;we need to implement whole fixed function pipeline manually&#8221;</em>, which involves combining shader assembly fragments, doing register allocations, packing vertex pipeline state into bits and other low level hacking.</p>
<p>In other words, it required quite a bit of thinking and implementation effort, so I decided to write up a technical report on how we solved it. If you&#8217;re a graphics programmer or love programmer speak or just have nothing better to do: <a href="http://aras-p.info/texts/VertexShaderTnL.html"><strong>here&#8217;s the report</strong></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2009/06/10/fixed-function-tl-in-vertex-shaders-implemented/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Blast from the recent past &#8211; Unity 2.5</title>
		<link>http://blogs.unity3d.com/2009/05/16/blast-from-the-recent-past-unity-25/</link>
		<comments>http://blogs.unity3d.com/2009/05/16/blast-from-the-recent-past-unity-25/#comments</comments>
		<pubDate>Sat, 16 May 2009 05:40:33 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Rants & Raves]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/?p=753</guid>
		<description><![CDATA[For some reason I was browsing through old emails and found some old development screenshots of Unity 2.5.
Unity 2.5 was the first version of the editor running on Windows and eventually was released in March 2009. Some development of it started at end of 2007, just after Unity 2.0 was released. First there was some [...]]]></description>
			<content:encoded><![CDATA[<p>For some reason I was browsing through old emails and found some old development screenshots of Unity 2.5.</p>
<p>Unity 2.5 was the first version of the editor running on Windows and eventually was released in March 2009. Some development of it started at end of 2007, just after Unity 2.0 was released. First there was some serious code shuffling, converting from Objective C into C++, refactoring into platform independent interfaces and similar highly invisible stuff.</p>
<p>Here&#8217;s the first Unity running on Windows screenshot I could find (this is February 2008): <span id="more-753"></span><br />
<a href="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080205.png"><img class="alignnone size-medium wp-image-754" title="Unity on Windows!" src="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080205-300x211.png" alt="Unity on Windows!" width="300" height="211" /></a></p>
<p>This was the version dubbed &#8220;Can Haz Menus&#8221;. However, a couple of days later it was &#8220;CanHazGUI&#8221; already:<br />
<a href="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080207.png"><img class="alignnone size-medium wp-image-755" title="Unity Windows GUI" src="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080207-251x300.png" alt="Unity Windows GUI" width="251" height="300" /></a></p>
<p>That&#8217;s true, whole editor at that time only had a view into the Project, and you could not really do anything with it, except to use the scrollbar. Or maybe collapse and expand the folders &#8211; I forget. Things were progressing <em>really</em> fast though. About a week later I sent this status report mail:</p>
<blockquote><p>Working on Windows editor. Not much to say, so I&#8217;ll attach a cute picture instead. It&#8217;s getting there.</p></blockquote>
<p><a href="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080213.png"><img class="alignnone size-medium wp-image-756" title="Cute Picture" src="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080213-300x201.png" alt="Cute Picture" width="300" height="201" /></a><br />
<em>(Back then I was the only person with a working 2.5 for Windows build, and I did work separately from the main office. Occasionally I had to send screenshots as an argument for getting my salary!)</em></p>
<p>&#8230;and then came work for <a href="http://unity3d.com/unity/whats-new/unity-2.1">Unity 2.1</a>, <a href="http://unity3d.com/unity/features/iphone-publishing">Unity iPhone</a>, <a href="http://www.fusionfall.com/">Fusion Fall</a> and whatnot. Work on 2.5 was progressing, but at a bit slower pace. And of course, &#8220;getting something on screen&#8221; is <em>much</em> less work than &#8220;getting it to actually work&#8221;.</p>
<p>Here&#8217;s how the Windows editor looked in September 2008:<br />
<a href="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080902.png"><img class="alignnone size-medium wp-image-758" title="Scene View" src="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080902-300x234.png" alt="Scene View" width="300" height="234" /></a></p>
<p>This was approaching final look of 2.5 already. Of course, occasionally we&#8217;d run into funny situations where it did not quite work. For example, at that time if you dropped a refractive glass shader into scene, it would turn the editor into this:<br />
<a href="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080918.png"><img class="alignnone size-medium wp-image-759" title="Funny Bug" src="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20080918-300x220.png" alt="Funny Bug" width="300" height="220" /></a></p>
<p>It took another half a year to add all new &amp; missing features, fix a ton of large &amp; small issues until it got to a real release:<br />
<a href="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20090318.jpg"><img class="alignnone size-medium wp-image-760" title="2.5" src="http://blogs.unity3d.com/wp-content/uploads/2009/05/25blast-20090318-300x222.jpg" alt="2.5" width="300" height="222" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2009/05/16/blast-from-the-recent-past-unity-25/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hardware of the casual gamer, launched</title>
		<link>http://blogs.unity3d.com/2008/08/28/hardware-of-the-casual-gamer-launched/</link>
		<comments>http://blogs.unity3d.com/2008/08/28/hardware-of-the-casual-gamer-launched/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 08:49:25 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/?p=91</guid>
		<description><![CDATA[Almost a month ago I said we&#8217;re preparing reports of Unity Web Player hardware statistics.
Well, here they are: unity3d.com/webplayer/hwstats
Operating system versions, desktop resolutions, graphics driver versions, shader models, memory sizes and some more. All broken down by quarter so some sort of &#8220;trends&#8221; can be seen (sure, changes can be caused by general hardware change [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.unity3d.com/2008/08/01/hardware-of-the-casual-gamer/">Almost a month ago I said</a> we&#8217;re preparing reports of Unity Web Player hardware statistics.</p>
<p>Well, here they are: <a href="http://unity3d.com/webplayer/hwstats/"><strong>unity3d.com/webplayer/hwstats</strong></a></p>
<p>Operating system versions, desktop resolutions, graphics driver versions, shader models, memory sizes and some more. All broken down by quarter so some sort of &#8220;trends&#8221; can be seen (sure, changes can be caused by general hardware change or simply different people groups playing different games).</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2008/08/28/hardware-of-the-casual-gamer-launched/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hardware of the casual gamer</title>
		<link>http://blogs.unity3d.com/2008/08/01/hardware-of-the-casual-gamer/</link>
		<comments>http://blogs.unity3d.com/2008/08/01/hardware-of-the-casual-gamer/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 08:35:20 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/?p=78</guid>
		<description><![CDATA[Pretty much everyone knows Valve&#8217;s hardware survey &#8211; it&#8217;s a very valuable resource that shows what hardware the typical &#8220;hardcore PC gamer&#8221; has (that is, gamers that play Valve&#8217;s games).
However, the &#8220;casual gamer&#8221;, which is what Unity games are mostly targeted at, probably has slightly different hardware. &#8220;Slightly&#8221; being a very relative term of course.
Lo [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty much everyone knows <a href="http://www.steampowered.com/status/survey.html">Valve&#8217;s hardware survey</a> &#8211; it&#8217;s a very valuable resource that shows what hardware the typical &#8220;hardcore PC gamer&#8221; has (that is, gamers that play Valve&#8217;s games).</p>
<p>However, the &#8220;casual gamer&#8221;, which is what Unity games are mostly targeted at, probably has <em>slightly</em> different hardware. &#8220;Slightly&#8221; being a very relative term of course.</p>
<p>Lo and behold &#8211; we have a glimpse into that data.<br />
<span id="more-78"></span><br />
How? First time the Unity Web Player is installed, it submits anonymous hardware details (details in the <a href="http://unity3d.com/unity/webplayer-end-user-license-2.x">EULA</a>). This happens only once, and contains no personally identifiable information. It&#8217;s much like visitor statistics trackers on the websites that gather your OS, browser information and whatnot.</p>
<p>We still haven&#8217;t prepared nicely laid out, colored and formatted reports into that data that we can share publicly like Valve, but we&#8217;re working on that. So in the meantime I&#8217;ll share some images without fancy graphs or colors, bear with me.</p>
<p>Remember, all this data is from people who installed Unity Web Player (most likely because they wanted to play some Unity content on the web). Hardware of standalone game players might be different, and hardware of <em>your game&#8217;s</em> players might be different as well. The data set is well over a million samples at the moment.</p>
<p>Enough talk, let&#8217;s show some pictures.</p>
<p><strong>What operating systems do we have?</strong></p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-os.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-os.png" alt="" title="Operating systems" width="271" height="70" class="alignnone size-full wp-image-86" /></a><br />
This one should be easy to understand.</p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-windows.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-windows.png" alt="" title="Windows Versions" width="311" height="99" class="alignnone size-full wp-image-89" /></a><br />
What Windows versions are out there?</p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-osx.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-osx.png" alt="" title="OS X versions" width="272" height="83" class="alignnone size-full wp-image-87" /></a><br />
We should know OS X versions as well, right? Hey, Leopard already took over Tiger!</p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-64bit.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-64bit.png" alt="" title="32 vs 64 bit Windows" width="370" height="71" class="alignnone size-full wp-image-80" /></a><br />
Hmm, looks like 64 bit Windows haven&#8217;t <em>really</em> taken off yet&#8230;</p>
<p><strong>Enough about OS, what about CPU?</strong></p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-cpu.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-cpu.png" alt="" title="CPU Vendors" width="289" height="128" class="alignnone size-full wp-image-82" /></a><br />
Poor Transmeta&#8230; <img src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (for the record, that&#8217;s 43 Transmeta CPUs)</p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-cores1.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-cores1.png" alt="" title="CPU Cores" width="245" height="114" class="alignnone size-full wp-image-90" /></a><br />
Multicore CPUs are taking off (well, at least dual core ones).</p>
<p><strong>Graphics card?</strong></p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-shader.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-shader.png" alt="" title="Shader versions" width="233" height="235" class="alignnone size-full wp-image-88" /></a><br />
<em>Capabilities</em> of the graphics cards.</p>
<p>The capabilities are not as bad (certainly better than I expected).  I mean, about 70% of them support shader model 2.0 or higher!</p>
<p>What <em>is</em> is troubling is the 3.7% that run in OpenGL 1.1 software mode&#8230; That means they <em>don&#8217;t have</em> graphics drivers installed or have disabled hardware acceleration. This is just crazy, I mean, without the drivers, even dragging windows around is <em>horribly slow</em>&#8230; how people even <em>use</em> the computer this way?</p>
<p>Another interesting point is that DirectX 8.0 level hardware (GeForce 3/4Ti) is pretty much dead. I guess that&#8217;s because there never was an entry-level graphics card from that range (before there was GeForce 4MX, which is DX7 level, and it was followed by GeForce FX 5200, which is DX9 level).</p>
<p>However, the above was <em>technical capabilities</em> of the graphics cards. Let&#8217;s take a look at <em>which</em> cards are out there:</p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-gfx.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-gfx.png" alt="" title="Graphics cards" width="350" height="445" class="alignnone size-full wp-image-84" /></a></p>
<p>Uh-oh. Can you say &#8220;low end&#8221;? The first decent card here is GeForce 8600, <em>15th</em> on the list. Everything above &#8211; slow, slow, slow. Some <em>horribly slow</em>. Well, that&#8217;s casual gamer&#8230;</p>
<p>Here&#8217;s a rough performance indicator, graphics card fillrate in gigapixels/second:</p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-gfxfill.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-gfxfill.png" alt="" title="Graphics card fillrate" width="172" height="248" class="alignnone size-full wp-image-85" /></a></p>
<p>For the record, fillrate of GeForce 8600 is 4.3 GP/s, Radeon X1600 is 2 GP/s, Radeon HD 2600 is 2.8 GP/s, and Intel 945 (GMA 950) is 1.6 GP/s. The difference from high-end to low-end in video memory bandwidth is even larger.</p>
<p>On a somewhat unrelated note, here&#8217;s DirectX 10 card distribution:</p>
<p><a href='http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-dx10.png'><img src="http://blogs.unity3d.com/wp-content/uploads/2008/08/hwstats-dx10.png" alt="" title="DX10 distribution" width="520" height="113" class="alignnone size-full wp-image-83" /></a></p>
<p>DirectX 10 can only be used starting with Windows Vista, <em>and</em> on DX10 capable graphics card. So that&#8217;s 2.6% of the Unity web game players &#8211; still not a <em>very</em> significant amount.</p>
<p><strong>In conclusion</strong></p>
<p>So here was the glimpse. We&#8217;ll prepare more and nicer reports into the hardware data sometime soon. Stay tuned!</p>
<p><strong>Edit</strong>: it&#8217;s live &#8211; <a href="http://unity3d.com/webplayer/hwstats/">unity3d.com/webplayer/hwstats</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2008/08/01/hardware-of-the-casual-gamer/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Terrain lighting &amp; shadows, and the road towards it</title>
		<link>http://blogs.unity3d.com/2008/04/14/terrain-lighting-shadows-and-the-road-towards-it/</link>
		<comments>http://blogs.unity3d.com/2008/04/14/terrain-lighting-shadows-and-the-road-towards-it/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 08:01:33 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/2008/04/14/terrain-lighting-shadows-and-the-road-towards-it/</guid>
		<description><![CDATA[People have been asking: why built-in shadows don&#8217;t work on Unity&#8217;s terrain? (here, here, &#8230;) Yes, right now (Unity 2.0.2) they don&#8217;t. Why &#8211; because we didn&#8217;t have time to make them work yet. Both terrain and built-in shadows are new features in Unity 2.0, and those two don&#8217;t happen to just work together.
Here&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>People have been asking: why built-in shadows don&#8217;t work on Unity&#8217;s terrain? (<a href="http://blogs.unity3d.com/2008/04/10/sliced-bread-is-overrated/#comment-113">here</a>, <a href="http://forum.unity3d.com/viewtopic.php?t=9507&#038;highlight=shadow+terrain">here</a>, &#8230;) Yes, <em>right now</em> (Unity 2.0.2) they don&#8217;t. Why &#8211; because we didn&#8217;t have time to make them work yet. Both terrain and built-in shadows are new features in Unity 2.0, and those two don&#8217;t happen to <em>just work</em> together.</p>
<p>Here&#8217;s a glimpse into what is needed to get it working.<span id="more-70"></span></p>
<p><em>The Plan</em>, straight from our internal planning wiki, with some explanations added:</p>
<p><strong>o)</strong> Convert all terrain code to use <a href="http://blogs.unity3d.com/2007/12/06/intermediate-rendering-or-what-goes-into-a-feature/">Intermediate Mode Render Calls</a>. This makes all the points below <em>possible</em>, and makes things like Projectors or wireframe terrain rendering in scene view <em>pretty much just work</em>.</p>
<p><strong>o)</strong> Update terrain shaders for proper rendering order and soft vegetation. Expand ShaderLab so that a shader pass can indicate it should only be executed when Soft Vegetation is on.</p>
<p><strong>o)</strong> Proper vertex lights on terrain, implemented in a vertex shader. Currently terrain handles up to four directional lights; we need to expand it to handle point lights as well. <em>I think</em> we&#8217;ll treat spot lights (when in vertex lit mode) as point lights; as calculating multiple spot lights in a vertex shader is next to impossible because of instruction count limits. Spotlights are not very useful in vertex lighting mode, right?</p>
<p><strong>o)</strong> Implemented pixel lit shaders for terrain. This will get light cookies, per-pixel lit terrain, and ability for terrain to receive shadows.</p>
<p><strong>o)</strong> Add option <em>somewhere</em> for pixel or vertex lit terrain (defaults to vertex lit).</p>
<p><strong>o)</strong> Proper vertex lights on trees. Very similar to &#8220;vertex lights on terrain&#8221; point above.</p>
<p><strong>o)</strong> Make tree shaders able to cast shadows. Because trees are scaled &#038; animated in a vertex shader, the shadow-casting shader needs to apply the same animation as well.</p>
<p><strong>o)</strong> Make Projectors not affect grass / trees. How? We&#8217;ll expand ShaderLab so a any shader can say &#8220;no Projectors on me, thanks&#8221;, and modify grass &#038; tree shaders to do that.</p>
<p><strong>o)</strong> Make projectors <em>not</em> affect terrain when game content is built with Unity 2.0. This is web player backwards compatibility &#8211; there <em>are</em> Unity games out there that use projectors and terrains, and they should continue functioning exactly like they did before. So Projectors <em>should not</em> affect terrain in this case.</p>
<p><strong>o)</strong> Make tree shadows not <del datetime="2008-04-14T07:55:16+00:00">s*ck</del><ins datetime="2008-04-14T07:55:16+00:00">look bad</ins> when they are squashed for billboarding. Trees are squashed into a planar shape when they approach billboards; this is to make the mesh-to-billboard transition less noticeable. However, this makes shadows from those trees look <em>very wrong</em>. Not sure how to handle this; <em>I think</em> we&#8217;ll just stop casting shadows when trees are starting to squash.</p>
<p><strong>o)</strong> Redo Lightmapped terrain shaders:
<ul>
<li>Use existing shaders for game content built with Unity 2.0. Again, existing web player games should work like they did before! For reference, in Unity 2.0.2 lightmapped terrain was not affected by <em>any lights at all</em>.</li>
<li>Make new set of terrain shaders that follows the convention of other <a href="http://unity3d.com/support/documentation/Components/shader-LightmapFamily.html">Lightmapped shaders</a>: lightmap, plus additional lights on top. Whoa, hey, we need <em>two new sets</em> of those shaders: for vertex-lit terrain and for pixel-lit terrain!</li>
</ul>
<p><strong>o)</strong> Optimize the bejesus out of rendering internals. Why &#8211; because the old terrain rendering code was like this:</p>
<ol>
<li>Figure out which parts of terrain and vegetation are visible.</li>
<li>Set terrain shader.</li>
<li>For each terrain chunk: draw it&#8217;s mesh!</li>
<li>Set tree shader.</li>
<li>For each tree: draw it&#8217;s mesh!</li>
<li>&#8230;similar for billboarded trees, grass, and so on.</li>
</ol>
<p>This is all simple &#038; nice. Of course this was <em>exactly</em> the problem why shadows, projectors and such didn&#8217;t work on terrain &#8211; everything was <em>just rendered</em> immediately. Now, the new terrain code just submits any visible parts of terrain as <a href="http://blogs.unity3d.com/2007/12/06/intermediate-rendering-or-what-goes-into-a-feature/">Intermediate Renderers</a>, and the rendering code <em>figures the rest out</em>&#8230; But that means it&#8217;s going through generic rendering &#8220;pipeline&#8221;, that has to figure out lighting, sort out objects, set shaders and their parameters, etc. The major overhead in switching to this &#8220;proper rendering&#8221; is the lost ability to do this:</p>
<ol>
<li>Set the shader.</li>
<li>Draw <em>lots and lots</em> of objects with it.</li>
</ol>
<p>The rendering code in Unity does sort objects by shader, and does <em>ultimately</em> figure out that they are using same shader, possibly same set of textures, even possibly same set of lights and same set of material parameters &#8211; but some time is spent <em>just figuring out that nothing actually changed between the objects</em>.</p>
<p>Well, the upside is that optimizing rendering internals makes <em>everything else</em> run somewhat faster as well!</p>
<p><em>(I am here right now&#8230; the points above are done, the points below are on the list)</em></p>
<p><strong>o)</strong> Make hills/trees outside of view be able to cast shadows <em>(how?)</em></p>
<p><strong>o)</strong> Expand shaders of detail meshes so they can cast shadows.</p>
<p><strong>o)</strong> Optimize terrain &#038; tree vertex lit shaders. Right now they process four vertex lights, where each can be directional or point light. This is noticeably slower than <em>old</em> shaders, that only supported directional lights (point lights need more calculations). We need to write multiple combinations of those shaders, specialized for specific situations (&#8221;one directional light&#8221;, &#8220;two direcitonal lights&#8221;, &#8220;two arbitrary lights&#8221;, and so on).</p>
<p><strong>o)</strong> Add option somewhere for terrain to <em>not</em> cast shadows.</p>
<p><strong>o)</strong> Add option somewhere for trees to <em>not</em> cast shadows.</p>
<p><strong>o)</strong> Add option somewhere for detail objects to <em>not</em> cast shadows.</p>
<p><strong>o)</strong> <em>(maybe, don&#8217;t know how to do)</em> Option for grass to receive shadows.</p>
<p><strong>o)</strong> Reduce memory allocations in terrain code. Because of intermediate rendering, some of temporary arrays are not actually needed anymore.</p>
<p>Whew, that was quite a list! I&#8217;m not sure I&#8217;m able to even <em>read</em> through all of that&#8230; well, back to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2008/04/14/terrain-lighting-shadows-and-the-road-towards-it/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Sliced bread is overrated</title>
		<link>http://blogs.unity3d.com/2008/04/10/sliced-bread-is-overrated/</link>
		<comments>http://blogs.unity3d.com/2008/04/10/sliced-bread-is-overrated/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 07:10:30 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Rants & Raves]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/2008/04/10/sliced-bread-is-overrated/</guid>
		<description><![CDATA[Just had this chat conversation:
&#8230;
Joachim: yeah it&#8217;s awesome
Joachim: function Start () { /* super secret code snippet */ }
Aras: whoa
Joachim: it rocks
Joachim: automatically instantiates material for you
Joachim: the same way we do it for scripts
Joachim: best thing since sliced bread i think
Aras: 
Aras: hey, back in the day the terrain was best thing since sliced [...]]]></description>
			<content:encoded><![CDATA[<p>Just had this chat conversation:</p>
<blockquote><p>&#8230;<br />
<em>Joachim:</em> yeah it&#8217;s awesome<br />
<em>Joachim:</em> function Start () { <em>/* super secret code snippet */</em> }<br />
<em>Aras:</em> whoa<br />
<em>Joachim:</em> it rocks<br />
<em>Joachim:</em> automatically instantiates material for you<br />
<em>Joachim:</em> the same way we do it for scripts<br />
<em>Joachim:</em> best thing since sliced bread i think<br />
<em>Aras:</em> <img src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<em>Aras:</em> hey, back in the day the terrain was best thing since sliced bread!<br />
<em>Joachim:</em> sliced bread appears to be always worse depending on what i work on.<br />
<em>Aras:</em> maybe sliced bread is just not so good in fact<br />
<em>Aras:</em> sliced bread is overrated
</p></blockquote>
<p>And no, I won&#8217;t say <em>what</em> we were talking about <img src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2008/04/10/sliced-bread-is-overrated/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Holy FPU precision, Batman!</title>
		<link>http://blogs.unity3d.com/2008/01/22/holy-fpu-precision-batman/</link>
		<comments>http://blogs.unity3d.com/2008/01/22/holy-fpu-precision-batman/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 09:41:25 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[Rants & Raves]]></category>

		<guid isPermaLink="false">http://blogs.unity3d.com/2008/01/22/holy-fpu-precision-batman/</guid>
		<description><![CDATA[One of our customers found an interesting bug the other day: embedding Unity Web Player into a web page makes some javascript animation libraries not work correctly. For example, script.aculo.us or Dojo Toolkit would stop doing some of their tasks. But only on Windows, and only on some browsers (Firefox and Safari).
Wait a moment&#8230; Unity [...]]]></description>
			<content:encoded><![CDATA[<p>One of our customers found an interesting bug the other day: embedding Unity Web Player into a web page makes some javascript animation libraries not work correctly. For example, <a href="http://script.aculo.us/">script.aculo.us</a> or <a href="http://dojotoolkit.org/">Dojo Toolkit</a> would stop doing some of their tasks. But only on Windows, and only on some browsers (Firefox and Safari).</p>
<p>Wait a moment&#8230; Unity plugin makes nice wobbling web page elements not wobble anymore!? Sounds like an <em>interesting</em> issue&#8230;</p>
<p><span id="more-55"></span></p>
<p>So I prepared for a debug session and tried the usual &#8220;divide by two until you locate the problem&#8221; approach.</p>
<ul>
<li>Unity Web Player is composed of two parts: a small browser plugin, and the actual &#8220;engine&#8221; (let&#8217;s call it &#8220;runtime&#8221;). First I change the plugin so that it only loads the data, but never loads or starts the runtime. Everything works. So the problem is not in the plugin. <em>Good</em>.</li>
<li>Load the runtime and do basic initialization (create child window, load Mono, &#8230;), but never actually start playing the content &#8211; everything works.</li>
<li>Load the runtime and <em>fully</em> initialize everything, but never actually start playing the content &#8211; the bug appears! By now I know that the problem is <em>somewhere</em> in the initialization.</li>
</ul>
<p>Initialization reads some settings from the data file, creates some &#8220;manager objects&#8221; for the runtime,     initializes graphics device, loads first game &#8220;level&#8221; and then the game can play.</p>
<p>What of the above could cause <em>something</em> inside browser&#8217;s JavaScript engine stop working? And do that only on Windows, and only on some browsers? My first guess was the most platform-specific part: intialization of the graphics device, which on Windows usually happens to be Direct3D.</p>
<p>So I continued:</p>
<ul>
<li>Try using OpenGL instead of Direct3D &#8211; everything works. By now it&#8217;s confirmed that initializing Direct3D causes something else in the browser not work.</li>
<li>&#8220;A-ha!&#8221; moment: tell Direct3D to not change floating point precision (via a <a href="http://msdn2.microsoft.com/en-us/library/bb172527(VS.85).aspx">create flag</a>). Voilà, everything works!</li>
</ul>
<p>I don&#8217;t know how I <em>actually</em> came up with the idea of testing floating point precision flag. Maybe I remembered some related problems we had a while ago, where Direct3D would cause timing calculations be &#8220;off&#8221;, if the user&#8217;s machine was not rebooted for a couple of weeks or more. That time around we properly changed our timing code to use 64 bit integers, but left Direct3D precision setting intact.</p>
<blockquote><p>
Side note: Intel x86 floating point unit (FPU) can operate in various <a href="http://www.stereopsis.com/FPU.html">precision modes</a>, usually 32, 64 or 80 bit. By default Direct3D 9 sets FPU precision to 32 bit (i.e. single precision). Telling D3D to not change FPU settings <em>could</em> lower performance somewhat, but in my tests it did not have any noticeable impact.
</p></blockquote>
<p>So there it was. A debugging session, one line of change in the code, and fancy javascript webpage animations work on Windows in Firefox and Safari. This is coming out in Unity 2.0.2 update soon.</p>
<p>The moral? Something in one place can affect seemingly <em>completely</em> unrelated things in another place!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.unity3d.com/2008/01/22/holy-fpu-precision-batman/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
