<?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>Everyday 3D &#187; flash player 10</title>
	<atom:link href="http://www.everyday3d.com/blog/index.php/category/flash-player-10/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.everyday3d.com/blog</link>
	<description>3D user experience on the web. Design, technology news. A blog by Bartek Drozdz.</description>
	<lastBuildDate>Fri, 01 Jul 2011 09:12:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>3D experiments with Flash Player 10 and AS3Dmod</title>
		<link>http://www.everyday3d.com/blog/index.php/2009/03/16/3d-experiments-with-flash-player-10-and-as3dmod/</link>
		<comments>http://www.everyday3d.com/blog/index.php/2009/03/16/3d-experiments-with-flash-player-10-and-as3dmod/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 10:50:32 +0000</pubDate>
		<dc:creator>bartek drozdz</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[as3dmod]]></category>
		<category><![CDATA[flash player 10]]></category>
		<category><![CDATA[3d animation]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[away3d]]></category>
		<category><![CDATA[fp10]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://www.everydayflash.com/blog/?p=54</guid>
		<description><![CDATA[Demos: [ 1 ] [ 2 ] [ 3 ] [ 4 ]&#160;&#160;&#160;&#160;&#160;&#160;Flash Player 10 required (obviously) Flash Player 10 has been around for a few months now. As most of you know, it brings some native 3D support. It&#8217;s not as robust as Papervision3D or Away3D, and in fact was not designed to compete [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/flash/as3dmod/fp10/as3dmod-fp10.gif" width="520" height="280" border="0" alt="Flash Player 10 3D experiments"></p>
<p><strong>Demos: <a href="http://www.everydayflash.com/flash/as3dmod/fp10/points3d.html" target="_blank">[ 1 ]</a> <a href="http://www.everydayflash.com/flash/as3dmod/fp10/walk.html" target="_blank">[ 2 ]</a> <a href="http://www.everydayflash.com/flash/as3dmod/fp10/tunnel.html" target="_blank">[ 3 ]</a> <a href="http://www.everydayflash.com/flash/as3dmod/fp10/twistedRibbon.html" target="_blank">[ 4 ]</a></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em>Flash Player 10 required (obviously)</em></p>
<p><strong>Flash Player 10</strong> has been around for a few months now. As most of you know, it brings some <strong>native 3D support</strong>. It&#8217;s not as robust as <a href="http://blog.papervision3d.org/" target="_blank">Papervision3D</a> or <a href="http://www.away3d.com/" target="_blank">Away3D</a>, and in fact was not designed to compete with those engines. Rather than that, it contains classes that perform 3D calculations and allows basic 3D manipulation of display objects.</p>
<p>The last months I focused on catching up with <strong>3D math</strong>. I ordered a book called <a href="http://www.amazon.co.uk/Primer-Graphics-Development-Wordware-Library/dp/1556229119/" target="_blank">&#8220;3D Math Primer&#8221;</a>, which explains in detail all the vector and matrix operations involved in 3D graphics. Even though the examples are in C++ I recommend this book to anyone doing 3D in Flash. The authors made a great effort to explain the subject with clarity. It worked pretty well for me and I understand the math behind 3D much better now. </p>
<p>Both <a href="http://blog.papervision3d.org/" target="_blank">Papervision3D</a> and <a href="http://www.away3d.com/" target="_blank">Away3D</a> were created so that <strong>we don&#8217;t have to deal directly with 3D calculations</strong>. If you are working on a project that involves non-trivial 3D and has a deadline, it&#8217;s better to choose one of those engines instead of &#8220;pure Flash Player 10&#8243;. </p>
<p>However, if you just want to do some <strong>casual experiments</strong> and learn something on the way, <strong>FP10 is great</strong>. It offers a small number of tools, focused around <strong>Vector3D and a Matrix3D</strong> classes. These classes offer low level functionality, so to use them one needs to understand what&#8217;s going on under the hood. This is a great way to learn! </p>
<p>Then I had this idea to port <strong>AS3Dmod to Flash Player 10</strong> and try to run the modifiers on objects created using FP10 3D classes. It turns out it was not so difficult. Instead of rendering textured 3D objects I just render a <strong>single pixel for each vertex</strong>. Thanks to this I get a relatively good performance even with as much as <strong>8000 vertices</strong>. I found that a modifier applied to such a large amount of vertices, gives interesting visual effects. I even wrote a very simple <strong>Wavefront OBJ importer</strong>, and I could import the 3d pants model from one of my <a href="http://www.everydayflash.com/blog/index.php/2009/02/09/making-things-walk-in-flash-3d/" target="_blank">previous posts</a> to <a href="http://www.everydayflash.com/flash/as3dmod/fp10/walk.html" target="_blank">render them in Flash Player 10</a>. </p>
<p>All my previous demos with AS3Dmod involved pretty <strong>small amount of vertices</strong> &#8211; most often no more than 500-600. At this level the performance of the modifiers was not a problem. But with 8000 vertices the modifiers start to have an big impact on the frame rate. A Perlin modifier alone takes <strong>4-5 FPS</strong>, which is quite a lot and it got me worried. I believe code optimizations are in order. An interesting solution could be to implement the <strong>modifiers as a Pixel Bender kernels</strong>. Anyway, I need to do some more research&#8230;</p>
<p>In the AS3Dmod SVN you&#8217;ll find the <a href="http://code.google.com/p/as3dmod/source/browse/#svn/branches/fp10" target="_blank">FP10</a> branch. The main difference between this version and the trunk is that it uses FP10 built-in <strong>Vector3D</strong> and <strong>Matrix3D</strong> classes as well as <strong>Vectors instead of Arrays</strong>. The sources for all experiments mentioned above, including a simple AS3Dmod plugin for FP10, are <a href="http://code.google.com/p/barteksplayground/source/browse/#svn/trunk/fp10/src/com/everydayflash/cart" target="_blank">available here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.everyday3d.com/blog/index.php/2009/03/16/3d-experiments-with-flash-player-10-and-as3dmod/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>

