<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Kevin Cao's Blog</title> <link>http://kevincao.com</link> <description>designer, developer, director</description> <lastBuildDate>Sun, 24 Jan 2010 04:55:25 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/kevincao" /><feedburner:info uri="kevincao" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:emailServiceId>kevincao</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Making of Avatar</title><link>http://feedproxy.google.com/~r/kevincao/~3/RyH0TTBI46w/</link> <comments>http://kevincao.com/2010/01/making-of-avatar/#comments</comments> <pubDate>Sun, 24 Jan 2010 04:55:25 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Inspiration]]></category> <category><![CDATA[Video Pick]]></category> <category><![CDATA[camera]]></category> <category><![CDATA[film]]></category> <category><![CDATA[live-action]]></category> <category><![CDATA[VFX]]></category><guid isPermaLink="false">http://kevincao.com/2010/01/making-of-avatar/</guid> <description><![CDATA[昨天晚上有幸观看了一票难求的IMax版Avatar，被该片出色的3D视觉效果震撼了（剧情乏善可陈）。今天刚好翻到一段23分钟的Avatar幕后介绍，膜拜学习一下。影片创造了一整个星球的世界观，从场景、生物，再到外星人类和他们的语言，概念设计非常重要。很多观众都对潘多拉星球的各种景观感到新奇和惊叹，从幕后片看到创作团队找的灵感很多是来自中国的场景。
从特效层面来说，演员的运动捕捉和面部表情捕捉技术还算是以前见到过的。革命性的3D拍摄技术介绍出现在12’55”以后：虚拟相机（Virtual Camera）：这项实时追踪技术可以让拍摄人员通过操作真实的相机来拍摄CG世界。
3D相机（3D Fusion）：能够同时拍摄2D和3D画面。更加小型化？这个应该是说他们的相机不是很笨重的器材，能够用手持拍摄，从而得到大型设备拍不到的更细节的图像。
Simul Camera：整合了前两种技术的系统，能够实时地在实拍画面里合成上CG元素，从而在拍摄的时候就能看到最终的效果。Related Posts :2008/07/09 -- 电影特效公司小全2007/04/26 -- Digital Domain 2007 Reel2007/04/10 -- Studio Daily2009/12/08 -- Experiment #07: Papervision 3D Camera Rig2009/10/17 -- Psyop Resources]]></description> <content:encoded><![CDATA[<p>昨天晚上有幸观看了一票难求的IMax版Avatar，被该片出色的3D视觉效果震撼了（剧情乏善可陈）。今天刚好翻到一段23分钟的Avatar幕后介绍，膜拜学习一下。</p><div><object
width="500" height="290" allowFullScreen="true"><param
name="movie" value="http://d.yimg.com/m/up/ypp/movies/player.swf"></param><param
name="flashVars" value="vid=17711648&amp;repeat=1&amp;siteHostUrl=http%3A//movies.yahoo.com"></param><param
name="wmode" value="transparent"></param><embed
width="500" height="290" allowFullScreen="true" src="http://d.yimg.com/m/up/ypp/movies/player.swf" type="application/x-shockwave-flash" flashvars="vid=17711648&repeat=1&siteHostUrl=http%3A//movies.yahoo.com"></embed></object></div><p>影片创造了一整个星球的世界观，从场景、生物，再到外星人类和他们的语言，概念设计非常重要。很多观众都对潘多拉星球的各种景观感到新奇和惊叹，从幕后片看到创作团队找的灵感很多是来自中国的场景。</p><p>从特效层面来说，演员的运动捕捉和面部表情捕捉技术还算是以前见到过的。革命性的3D拍摄技术介绍出现在12’55”以后：</p><ol><li>虚拟相机（Virtual Camera）：这项实时追踪技术可以让拍摄人员通过操作真实的相机来拍摄CG世界。</li><li>3D相机（3D Fusion）：能够同时拍摄2D和3D画面。更加小型化？这个应该是说他们的相机不是很笨重的器材，能够用手持拍摄，从而得到大型设备拍不到的更细节的图像。</li><li>Simul Camera：整合了前两种技术的系统，能够实时地在实拍画面里合成上CG元素，从而在拍摄的时候就能看到最终的效果。</li></ol><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2008/07/09 -- <a
href="http://kevincao.com/2008/07/a-film-studio-list/" title="电影特效公司小全">电影特效公司小全</a></li><li>2007/04/26 -- <a
href="http://kevincao.com/2007/04/digital-domain-2007-reel/" title="Digital Domain 2007 Reel">Digital Domain 2007 Reel</a></li><li>2007/04/10 -- <a
href="http://kevincao.com/2007/04/studiodaily/" title="Studio Daily">Studio Daily</a></li><li>2009/12/08 -- <a
href="http://kevincao.com/2009/12/experiment-07-papervision-3d-camera-rig/" title="Experiment #07: Papervision 3D Camera Rig">Experiment #07: Papervision 3D Camera Rig</a></li><li>2009/10/17 -- <a
href="http://kevincao.com/2009/10/psyop-resources/" title="Psyop Resources">Psyop Resources</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/PVS0mlrE9uwausW4Tgvc_XIzyjo/0/da"><img src="http://feedads.g.doubleclick.net/~a/PVS0mlrE9uwausW4Tgvc_XIzyjo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PVS0mlrE9uwausW4Tgvc_XIzyjo/1/da"><img src="http://feedads.g.doubleclick.net/~a/PVS0mlrE9uwausW4Tgvc_XIzyjo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=RyH0TTBI46w:kvlXcldTJQY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=RyH0TTBI46w:kvlXcldTJQY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=RyH0TTBI46w:kvlXcldTJQY:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2010/01/making-of-avatar/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://kevincao.com/2010/01/making-of-avatar/</feedburner:origLink></item> <item><title>Best of Kevin Cao 2009</title><link>http://feedproxy.google.com/~r/kevincao/~3/ce8IprXxTB8/</link> <comments>http://kevincao.com/2009/12/best-of-kevin-cao-2009/#comments</comments> <pubDate>Thu, 31 Dec 2009 06:56:40 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Life]]></category> <category><![CDATA[Thought]]></category> <category><![CDATA[as3ds]]></category> <category><![CDATA[Augmented Reality]]></category> <category><![CDATA[Cinema 4D]]></category> <category><![CDATA[experiment]]></category> <category><![CDATA[Face Detection]]></category> <category><![CDATA[FLARToolKit]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[interactive]]></category> <category><![CDATA[papervision3d]]></category><guid isPermaLink="false">http://kevincao.com/2009/12/best-of-kevin-cao-2009/</guid> <description><![CDATA[今天是2009年的最后一天，看见很多网站都做了自己的回顾和总结，我也按耐不住的翻出了久未关注的Google Analytics数据来做了一番分析。
2009年本站共发表博文63篇。迎来了36831位访客，产生了78994次pageview，分别比2008年上升了14.11%和23.83%。PR在3，4之间徘徊，对一个普通的技术型博客而言，成绩一般，但我也满足。自从delicious、twitter等各种便捷的分享渠道成熟以来，blog的更新比以前少了。但我还是坚持写：写些高质量的文章，多些想法和经验的分享，创造有价值的原创内容，这是我给自己这个小小博客的坚持。
2009年十大最受欢迎的文章：八个我最常用的AS3开源类库 (2009-08)
这种引诱式标题的效果果然出色，这篇是我第一次用这种标题写博。当然文章的内容也融合我自己的归纳总结，价值还是很高的。
Experiment #06: Page Flip 3D (2009-08)
Papervision3D试验系列里的访问量第一名，很多人是冲着这个效果来的吧。这一年里花了很多精力和业余时间来学习3D。在Evernote里存了很多学习心得和笔记。来年再整理分享出来吧。
Flash字体嵌入方法总结系列 (2009-06)
这个话题内容比较多，所以用系列的方式来写，由浅入深。一边总结一边还开发了自己的第一个AIR工具，收获颇丰。
FLARToolKit Start Up Guide (2009-03)
今年是AR技术爆发的一年，我的十大里面有三个位置都是和这个主题有关的。这篇是我初接触AR时整理的入门介绍文。两个月后我用AR开发了求婚卡片：
Making of AR Proposal (2009-05)
5月前的一周，我一直埋头做的就是这个东西。终于在五一节把这件事情搞定了（劳动节宿命下的劳碌命……）。
Experiment #05: Rubik’s Cube (2009-04)
这个魔方效果其实我年初为福特做的一个项目里面开发的，时过2个月才整理并发布出来。
Ge – Smart Grid (2009-02)
这篇是GE网站的介绍文，是AR网站的商业应用先锋。至今还记得看到那个房子展开动画的震撼。就冲着这种先锋精神，我把今年FWA的票投给了它。
AS3 Data Structures For Game Developers (AS3DS) (2009-02)
介绍了一个好用的类库。
Face Detection in Flash, Next Big Wave? (2009-03)
介绍了面部识别类库，可惜至今还无缘上手尝试。
TweenMax is Updated (2009-02)
介绍TweenMax的新闻类文章，后续还有过更新。但是现在版本11的正式版已经出来了，新闻成了旧闻。正如前面说到的，获取新闻有更方便快捷的渠道。有的想法如果140字以内就说完的，就发到twitter上去吧。十大热门文章大都是技术开发相关的，确实说明我今年在motion和动画方面做的工作少了不少。但其实我还是经常在关注这方面的内容，特别是今年逐步自学了Cinema 4D后，更是喜欢上这款三维软件。现在还是在积累阶段，2010年希望能做一些更酷的motion出来吧。
博客之外，今年最大的成就，就是把终身大事给定了。5月份那会儿做的求婚AR和视频，得到了很多人的关注和祝福。10月和11月分别在福州和厦门举行了婚礼，反倒比较低调：）
再见了2009。
Related Posts :2009/05/06 -- Making of AR Proposal2009/09/03 -- 八个我最常用的AS3开源类库2009/08/13 -- Experiment #06: [...]]]></description> <content:encoded><![CDATA[<p>今天是2009年的最后一天，看见很多网站都做了自己的回顾和总结，我也按耐不住的翻出了久未关注的<a
href="http://www.google.com/analytics/" target="_blank">Google Analytics</a>数据来做了一番分析。</p><p>2009年本站共发表博文63篇。迎来了36831位访客，产生了78994次pageview，分别比2008年上升了14.11%和23.83%。PR在3，4之间徘徊，对一个普通的技术型博客而言，成绩一般，但我也满足。自从delicious、twitter等各种便捷的分享渠道成熟以来，blog的更新比以前少了。但我还是坚持写：写些高质量的文章，多些想法和经验的分享，创造有价值的原创内容，这是我给自己这个小小博客的坚持。</p><p>2009年十大最受欢迎的文章：</p><p><span
id="more-1210"></span></p><ol><li><a
href="http://kevincao.com/2009/09/8-as3-lib/">八个我最常用的AS3开源类库</a> <em>(2009-08)</em><br
/> 这种引诱式标题的效果果然出色，这篇是我第一次用这种标题写博。当然文章的内容也融合我自己的归纳总结，价值还是很高的。</li><li><a
href="http://kevincao.com/2009/08/experiment-06-page-flip-3d/">Experiment #06: Page Flip 3D</a> <em>(2009-08)<br
/> </em>Papervision3D试验系列里的访问量第一名，很多人是冲着这个效果来的吧。这一年里花了很多精力和业余时间来学习3D。在Evernote里存了很多学习心得和笔记。来年再整理分享出来吧。</li><li><a
href="http://kevincao.com/2009/06/flash-font-1/" target="_blank">Flash字体嵌入方法总结系列</a> <em>(2009-06)</em><br
/> 这个话题内容比较多，所以用系列的方式来写，由浅入深。一边总结一边还开发了自己的第一个AIR工具，收获颇丰。</li><li><a
href="http://kevincao.com/2009/03/flartoolkit-start-up-guide/" target="_blank">FLARToolKit Start Up Guide</a> <em>(2009-03)</em><br
/> 今年是AR技术爆发的一年，我的十大里面有三个位置都是和这个主题有关的。这篇是我初接触AR时整理的入门介绍文。两个月后我用AR开发了求婚卡片：</li><li><a
href="http://kevincao.com/2009/05/making-of-ar-proposal/" target="_blank">Making of AR Proposal</a> <em>(2009-05)</em><br
/> 5月前的一周，我一直埋头做的就是这个东西。终于在五一节把这件事情搞定了（劳动节宿命下的劳碌命……）。</li><li><a
href="http://kevincao.com/2009/04/experiment-05-rubiks-cube/" target="_blank">Experiment #05: Rubik’s Cube</a> <em>(2009-04)</em><br
/> 这个魔方效果其实我年初为福特做的一个项目里面开发的，时过2个月才整理并发布出来。</li><li><a
href="http://kevincao.com/2009/02/ge-smart-grid/" target="_blank">Ge – Smart Grid</a> <em>(2009-02)</em><br
/> 这篇是GE网站的介绍文，是AR网站的商业应用先锋。至今还记得看到那个房子展开动画的震撼。就冲着这种先锋精神，我把今年FWA的票投给了它。</li><li><a
href="http://kevincao.com/2009/02/as3-data-structures-for-game-developers-as3ds/" target="_blank">AS3 Data Structures For Game Developers (AS3DS)</a> <em>(2009-02)</em><br
/> 介绍了一个好用的类库。</li><li><a
href="http://kevincao.com/2009/03/face-detection-in-flash-next-big-wave/" target="_blank">Face Detection in Flash, Next Big Wave?</a> <em>(2009-03)</em><br
/> 介绍了面部识别类库，可惜至今还无缘上手尝试。</li><li><a
href="http://kevincao.com/2009/02/tweenmax-is-updated/" target="_blank">TweenMax is Updated</a> <em>(2009-02)</em><br
/> 介绍TweenMax的新闻类文章，后续还有过<a
href="http://kevincao.com/2009/05/greensock-tweening-platform-v11-beta/" target="_blank">更新</a>。但是现在版本11的正式版已经出来了，新闻成了旧闻。正如前面说到的，获取新闻有更方便快捷的渠道。有的想法如果140字以内就说完的，就发到twitter上去吧。</li></ol><p>十大热门文章大都是技术开发相关的，确实说明我今年在motion和动画方面做的工作少了不少。但其实我还是经常在关注这方面的内容，特别是今年逐步自学了Cinema 4D后，更是喜欢上这款三维软件。现在还是在积累阶段，2010年希望能做一些更酷的motion出来吧。</p><p>博客之外，今年最大的成就，就是把终身大事给定了。5月份那会儿做的求婚AR和视频，得到了很多人的关注和祝福。10月和11月分别在福州和厦门举行了婚礼，反倒比较低调：）</p><p>再见了2009。</p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/05/06 -- <a
href="http://kevincao.com/2009/05/making-of-ar-proposal/" title="Making of AR Proposal">Making of AR Proposal</a></li><li>2009/09/03 -- <a
href="http://kevincao.com/2009/09/8-as3-lib/" title="八个我最常用的AS3开源类库">八个我最常用的AS3开源类库</a></li><li>2009/08/13 -- <a
href="http://kevincao.com/2009/08/experiment-06-page-flip-3d/" title="Experiment #06: Page Flip 3D">Experiment #06: Page Flip 3D</a></li><li>2009/05/05 -- <a
href="http://kevincao.com/2009/05/ar-proposal/" title="AR Proposal">AR Proposal</a></li><li>2009/03/15 -- <a
href="http://kevincao.com/2009/03/face-detection-in-flash-next-big-wave/" title="Face Detection in Flash, Next Big Wave?">Face Detection in Flash, Next Big Wave?</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/0w5dHOy58BVK17HoPXGC1-Rt-tE/0/da"><img src="http://feedads.g.doubleclick.net/~a/0w5dHOy58BVK17HoPXGC1-Rt-tE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/0w5dHOy58BVK17HoPXGC1-Rt-tE/1/da"><img src="http://feedads.g.doubleclick.net/~a/0w5dHOy58BVK17HoPXGC1-Rt-tE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=ce8IprXxTB8:Sxb8ege4qOw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=ce8IprXxTB8:Sxb8ege4qOw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=ce8IprXxTB8:Sxb8ege4qOw:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/12/best-of-kevin-cao-2009/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://kevincao.com/2009/12/best-of-kevin-cao-2009/</feedburner:origLink></item> <item><title>6 Tutorials for Cinema 4D + After Effects</title><link>http://feedproxy.google.com/~r/kevincao/~3/GZyUKlvf4IQ/</link> <comments>http://kevincao.com/2009/12/5-tutorials-for-cinema-4d-after-effects/#comments</comments> <pubDate>Sat, 26 Dec 2009 06:06:22 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[After Effects]]></category> <category><![CDATA[Cinema 4D]]></category> <category><![CDATA[motion]]></category> <category><![CDATA[tutorial]]></category><guid isPermaLink="false">http://kevincao.com/?p=1205</guid> <description><![CDATA[Cinema 4D + After Effects works great!
C4D Training: Combining Cinema 4D and After EffectsCG tuts+: How to Export 3d Camera Data from Cinema 4D into After EffectsAE tuts+: Integrating Cinema 4D into After EffectsGSG: How to Export Your Scene From Cinema 4D to After EffectsMotionworks: Explosive TV promo graphicsUpdated!
Pariah Studios: Cinema 4D to After Effects TutorialRelated [...]]]></description> <content:encoded><![CDATA[<p>Cinema 4D + After Effects works great!</p><p>C4D Training: <a
href="http://www.c4dtraining.com/blog/?p=28" target="_blank">Combining Cinema 4D and After Effects</a></p><p><a
href="http://www.c4dtraining.com/blog/?p=28" target="_blank"><img
class="alignnone" title="c4dtraining" src="http://www.c4dtraining.com/Tutorials/emitterProject/FirstFrameSM.png" alt="" width="490" height="163" /></a><span
id="more-1205"></span></p><p>CG tuts+: <a
href="http://cg.tutsplus.com/tutorials/maxon-cinema-4d/how-to-export-3d-camera-data-from-cinema-4d-into-after-effects/" target="_blank">How to Export 3d Camera Data from Cinema 4D into After Effects</a></p><p><a
href="http://cg.tutsplus.com/tutorials/maxon-cinema-4d/how-to-export-3d-camera-data-from-cinema-4d-into-after-effects/" target="_blank"><img
class="alignnone" title="cgtut" src="http://cgtuts.s3.amazonaws.com/034_C4D_2_AE/Preview-image.jpg" alt="" width="200" height="200" /></a></p><p>AE tuts+: <a
href="http://ae.tutsplus.com/tutorials/workflow/integrating-c4d-into-ae/" target="_blank">Integrating Cinema 4D into After Effects</a></p><p><a
href="http://ae.tutsplus.com/tutorials/workflow/integrating-c4d-into-ae/" target="_blank"><img
class="alignnone" title="aetuts" src="http://aetuts.s3.cdn.plus.org/113_c4dintoae/preview.jpg" alt="" width="200" height="200" /></a></p><p>GSG: <a
href="http://greyscalegorilla.com/blog/2009/10/how-to-export-your-scene-from-cinema-4d-to-after-effects/" target="_blank">How to Export Your Scene From Cinema 4D to After Effects</a></p><p><a
href="http://greyscalegorilla.com/blog/2009/10/how-to-export-your-scene-from-cinema-4d-to-after-effects/" target="_blank"><img
class="alignnone size-thumbnail wp-image-1206" title="gsg" src="http://kevincao.com/wp-content/uploads/2009/12/2009-12-26_00647-150x150.png" alt="" width="150" height="150" /></a></p><p>Motionworks: <a
href="http://www.motionworks.com.au/2009/10/fast-furious/">Explosive TV promo graphics</a></p><p><a
href="http://www.motionworks.com.au/2009/10/fast-furious/" target="_blank"><img
class="alignnone" title="motionworks" src="http://www.motionworks.com.au/wp-content/blogimages/fastfurious_lrg.jpg" alt="" width="421" height="408" /></a></p><p>Updated!</p><p>Pariah Studios: <a
href="http://pariahstudios.co.uk/tut_005.html" target="_blank">Cinema 4D to After Effects Tutorial</a></p><p><a
href="http://pariahstudios.co.uk/tut_005.html" target="_blank"><img
class="alignnone" title="pariah" src="http://pariahstudios.co.uk/Tutorials_files/shapeimage_5.png" alt="" width="255" height="136" /></a></p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/12/24 -- <a
href="http://kevincao.com/2009/12/mg-6-price-announcement-video/" title="MG 6 Price Announcement Video">MG 6 Price Announcement Video</a></li><li>2009/11/16 -- <a
href="http://kevincao.com/2009/11/pv3d-3d-post-software-workflow/" title="Papervision 3D + 3D/Post Software Workflow">Papervision 3D + 3D/Post Software Workflow</a></li><li>2009/12/08 -- <a
href="http://kevincao.com/2009/12/experiment-07-papervision-3d-camera-rig/" title="Experiment #07: Papervision 3D Camera Rig">Experiment #07: Papervision 3D Camera Rig</a></li><li>2008/11/23 -- <a
href="http://kevincao.com/2008/11/camera-tip-trick-in-motion-graphics/" title="Camera Tip &amp; Trick in Motion Graphics">Camera Tip &amp; Trick in Motion Graphics</a></li><li>2008/06/24 -- <a
href="http://kevincao.com/2008/06/ae-advanced-ramp/" title="AE &#8211; Advanced Ramp">AE &#8211; Advanced Ramp</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/swVDPvMtFPczdU8_B9U6l27_GkM/0/da"><img src="http://feedads.g.doubleclick.net/~a/swVDPvMtFPczdU8_B9U6l27_GkM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/swVDPvMtFPczdU8_B9U6l27_GkM/1/da"><img src="http://feedads.g.doubleclick.net/~a/swVDPvMtFPczdU8_B9U6l27_GkM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=GZyUKlvf4IQ:Vc9bFhB7-Ns:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=GZyUKlvf4IQ:Vc9bFhB7-Ns:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=GZyUKlvf4IQ:Vc9bFhB7-Ns:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/12/5-tutorials-for-cinema-4d-after-effects/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://kevincao.com/2009/12/5-tutorials-for-cinema-4d-after-effects/</feedburner:origLink></item> <item><title>MG 6 Price Announcement Video</title><link>http://feedproxy.google.com/~r/kevincao/~3/GGobvQoLHuw/</link> <comments>http://kevincao.com/2009/12/mg-6-price-announcement-video/#comments</comments> <pubDate>Thu, 24 Dec 2009 10:13:44 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[After Effects]]></category> <category><![CDATA[Cinema 4D]]></category> <category><![CDATA[motion]]></category> <category><![CDATA[Particular]]></category> <category><![CDATA[portfolio]]></category> <category><![CDATA[workflow]]></category><guid isPermaLink="false">http://kevincao.com/?p=1194</guid> <description><![CDATA[12月22日，上汽MG6上市。客户希望在价格宣布的环节有些亮点，为此我们设计了一条揭晓短片。可惜因为某些原因最后一刻没有用上，只能算自娱自乐。成片就差音乐没有配好，其他都完成了。
点击观看正好借此机会，我尝试了一下Cinema 4D与After Effects协同工作：火焰的轨迹在C4D里面做好动画，包括镜头的运动也调好。再把数据导出为aec格式，AE里就能直接用了。非常完美的工作流！火焰是用Particular插件做的，多调几种不同的形态叠在一起，更出层次。最后找了一些火焰和爆破的素材用作叠加和背景，效果就出来了。Related Posts :2009/12/26 -- 6 Tutorials for Cinema 4D + After Effects2009/11/16 -- Papervision 3D + 3D/Post Software Workflow2007/03/16 -- Showreel 20072006/05/12 -- Project &#8211; Ssangyong Launch Event Video2005/06/30 -- Project &#8211; Polo Movie]]></description> <content:encoded><![CDATA[<p>12月22日，上汽MG6上市。客户希望在价格宣布的环节有些亮点，为此我们设计了一条揭晓短片。可惜因为某些原因最后一刻没有用上，只能算自娱自乐。成片就差音乐没有配好，其他都完成了。</p><p><img
style="border-width: 0px; display: inline;" title="mg6_1" src="http://kevincao.com/wp-content/uploads/2009/12/image.png" border="0" alt="mg6_1" width="246" height="122" /><img
style="border: 0pt none; display: inline;" title="mg_2" src="http://kevincao.com/wp-content/uploads/2009/12/image1.png" border="0" alt="image" width="247" height="122" /> <a
rel="shadowbox;height=400;width=800" href="http://kevincao.com/wp-content/uploads/2009/12/final.flv"><img
style="border: 0pt none; display: inline;" title="点击观看" src="http://kevincao.com/wp-content/uploads/2009/12/mg6.jpg" border="0" alt="mg6_2" width="500" height="250" /></a></p><p><a
rel="shadowbox;height=400;width=800" href="http://kevincao.com/wp-content/uploads/2009/12/final.flv">点击观看</a></p><p><span
id="more-1194"></span></p><p>正好借此机会，我尝试了一下Cinema 4D与After Effects协同工作：火焰的轨迹在C4D里面做好动画，包括镜头的运动也调好。再把数据导出为aec格式，AE里就能直接用了。非常完美的工作流！</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/12/20091224_00594.png" rel="shadowbox[post-1194];player=img;"><img
style="display: inline; border-width: 0px;" title="c4d" src="http://kevincao.com/wp-content/uploads/2009/12/20091224_00594_thumb.png" border="0" alt="c4d" width="500" height="354" /></a></p><p>火焰是用<a
href="http://www.trapcode.com/products_particular.html" target="_blank">Particular</a>插件做的，多调几种不同的形态叠在一起，更出层次。最后找了一些火焰和爆破的素材用作叠加和背景，效果就出来了。</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/12/20091224_00595.png" rel="shadowbox[post-1194];player=img;"><img
style="display: inline; border-width: 0px;" title="ae" src="http://kevincao.com/wp-content/uploads/2009/12/20091224_00595_thumb.png" border="0" alt="ae" width="500" height="363" /></a></p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/12/26 -- <a
href="http://kevincao.com/2009/12/5-tutorials-for-cinema-4d-after-effects/" title="6 Tutorials for Cinema 4D + After Effects">6 Tutorials for Cinema 4D + After Effects</a></li><li>2009/11/16 -- <a
href="http://kevincao.com/2009/11/pv3d-3d-post-software-workflow/" title="Papervision 3D + 3D/Post Software Workflow">Papervision 3D + 3D/Post Software Workflow</a></li><li>2007/03/16 -- <a
href="http://kevincao.com/2007/03/showreel-2007/" title="Showreel 2007">Showreel 2007</a></li><li>2006/05/12 -- <a
href="http://kevincao.com/2006/05/project-ssangyong-launch-event-video/" title="Project &#8211; Ssangyong Launch Event Video">Project &#8211; Ssangyong Launch Event Video</a></li><li>2005/06/30 -- <a
href="http://kevincao.com/2005/06/project-polo-movie/" title="Project &#8211; Polo Movie">Project &#8211; Polo Movie</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/CVE72cIAqUhY4dj46f8RI07zerc/0/da"><img src="http://feedads.g.doubleclick.net/~a/CVE72cIAqUhY4dj46f8RI07zerc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/CVE72cIAqUhY4dj46f8RI07zerc/1/da"><img src="http://feedads.g.doubleclick.net/~a/CVE72cIAqUhY4dj46f8RI07zerc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=GGobvQoLHuw:BEhTxRZH3lU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=GGobvQoLHuw:BEhTxRZH3lU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=GGobvQoLHuw:BEhTxRZH3lU:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/12/mg-6-price-announcement-video/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://kevincao.com/2009/12/mg-6-price-announcement-video/</feedburner:origLink></item> <item><title>X’mas</title><link>http://feedproxy.google.com/~r/kevincao/~3/NF_cPu8qtfk/</link> <comments>http://kevincao.com/2009/12/xmas/#comments</comments> <pubDate>Thu, 24 Dec 2009 06:50:13 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Develop]]></category> <category><![CDATA[Life]]></category> <category><![CDATA[interactive]]></category> <category><![CDATA[website]]></category><guid isPermaLink="false">http://kevincao.com/?p=1179</guid> <description><![CDATA[新鲜出炉！ES创意部呕心沥血制作之圣诞树工坊，祝大家圣诞快乐～
ES X'mas 2009Related Posts :2009/11/13 -- Project &#8211; Mercedes-Benz StarElite Experience Website2009/07/21 -- Project &#8211; Mercedes-Benz E-Class Web Special 20092009/05/14 -- FWA Special Day2009/05/05 -- Diesel &#8211; Only The Brave2009/05/05 -- Project &#8211; Mercedes-Benz E-Class Web Special]]></description> <content:encoded><![CDATA[<p>新鲜出炉！ES创意部呕心沥血制作之圣诞树工坊，祝大家圣诞快乐～</p><p><a
href="http://www.energysource-cn.com/card/2009/" target="_self">ES X'mas 2009</a></p><p><a
href="http://www.energysource-cn.com/card/2009/" target="_blank"><img
class="alignnone size-full wp-image-1180" title="xmas" src="http://kevincao.com/wp-content/uploads/2009/12/2009-12-24_00592.jpg" alt="" width="500" height="264" /></a></p><p><img
class="alignnone size-full wp-image-1181" title="xmas2" src="http://kevincao.com/wp-content/uploads/2009/12/2009-12-24_00593.jpg" alt="" width="500" height="264" /></p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/11/13 -- <a
href="http://kevincao.com/2009/11/project-mercedes-benz-starelite-experience-website/" title="Project &#8211; Mercedes-Benz StarElite Experience Website">Project &#8211; Mercedes-Benz StarElite Experience Website</a></li><li>2009/07/21 -- <a
href="http://kevincao.com/2009/07/project-mercedes-e-class-web-special-2009/" title="Project &#8211; Mercedes-Benz E-Class Web Special 2009">Project &#8211; Mercedes-Benz E-Class Web Special 2009</a></li><li>2009/05/14 -- <a
href="http://kevincao.com/2009/05/fwa-special-day/" title="FWA Special Day">FWA Special Day</a></li><li>2009/05/05 -- <a
href="http://kevincao.com/2009/05/diesel-only-the-brave/" title="Diesel &#8211; Only The Brave">Diesel &#8211; Only The Brave</a></li><li>2009/05/05 -- <a
href="http://kevincao.com/2009/05/project-mercedes-benz-e-class-web-special/" title="Project &#8211; Mercedes-Benz E-Class Web Special">Project &#8211; Mercedes-Benz E-Class Web Special</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/w13EZyEtCAuSBEiOJf5IzoRHBWw/0/da"><img src="http://feedads.g.doubleclick.net/~a/w13EZyEtCAuSBEiOJf5IzoRHBWw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/w13EZyEtCAuSBEiOJf5IzoRHBWw/1/da"><img src="http://feedads.g.doubleclick.net/~a/w13EZyEtCAuSBEiOJf5IzoRHBWw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=NF_cPu8qtfk:9LArtggG9wk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=NF_cPu8qtfk:9LArtggG9wk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=NF_cPu8qtfk:9LArtggG9wk:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/12/xmas/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://kevincao.com/2009/12/xmas/</feedburner:origLink></item> <item><title>深入Flash CS4编译技术</title><link>http://feedproxy.google.com/~r/kevincao/~3/dEp9ifxGqYU/</link> <comments>http://kevincao.com/2009/12/master-flash-cs4-compile/#comments</comments> <pubDate>Wed, 09 Dec 2009 10:10:50 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Develop]]></category> <category><![CDATA[ActionScript]]></category> <category><![CDATA[swc]]></category> <category><![CDATA[tutorial]]></category><guid isPermaLink="false">http://kevincao.com/2009/12/%e6%b7%b1%e5%85%a5flash-cs4%e7%bc%96%e8%af%91%e6%8a%80%e6%9c%af/</guid> <description><![CDATA[Compiled Clip和SWC File
Compiled Clip和SWC File都包含经过编译后的Flash内容，区别在于：一个是“Clip”，存在于库中；另一个是“File”，是独立的文件。如上图所示，在为ActionScript导出的元件上点击右键，可以看到生成Compiled Clip和导出SWC File的选项。这里常见的误解是以为这个操作只会编译当前选择的元件，实际的情况是除此之外还会把库中所有第一帧导出的元件也一同编译进来。要确认Compiled Clip或者SWC File中包含了些什么类，可以用闪客精灵等破解软件或者Flash Develop自带的SWC浏览工具来分析。Flash CS4编译时获取类定义的顺序Flash CS4中关于ActionScript类的路径设置共有三处，分别是：Source path，就是放.as文件的地方。
Library path，包含SWC文件的路径。
External library path，也是SWC文件的路径，不过这个SWC中包含的类定义不会被编译到最终swf文件中。发布swf文件的时候，Flash编译器优先在Source Path中寻找是否有类定义。其次是Compiled Clip，最后是SWC和外部SWC。
如果源文件中包含有Compiled Clip，则编译器还可以在Compiled Clip中寻找类定义。Flash自带的组件就是用了这种方式。
如果源文件绑定了文档类，则该类必须能在Source Path或Compiled Clip中找到。SWC或外部SWC文件中即使包含了该类，也是无效的，编译器会自动生成默认的类定义来代替。
外部SWC文件的进阶用法
在进行模块化ActionScript/Flex项目开发的时候，灵活应用RSL（运行时共享库）来减少文件大小是非常重要的手段。这里面就要用到使用外部SWC文件编译的技术。比如我们制作了一个module.fla文件，在发布选项里面勾选“Export SWC”，就会在发布module.swf文件的同时还生成module.swc。接下来在其他模块中如何调用module.swf中的类定义呢？
通常我们采用默认的加载方式，module.swf是被加载到当前应用程序域下的子域中。然后通过ApplicationDomain.getDefinition()方法来得到module里的类定义。
RSL的做法是把module.swf加载到当前应用程序域中，这样一来其他任意模块可以直接用类名访问到module.swf中的类定义。
loader.load&#40;new URLRequest&#40;&#34;module.swf&#34;&#41;, new LoaderContext&#40;false, ApplicationDomain.currentDomain&#41;&#41;;
但是直接引用的类，必须是编译器找得到的。在满足我们不增加文件大小前提下的选择就只有使用外部SWC文件的方式。把module.swc加进外部SWC路径中，编译正常通过，最终的swf文件中不包含module中的类定义。
这里要特别注意区分运行时和编译时两种情境。编译时的类是通过外部SWC得到的。运行时的类则是从当前应用程序域中获取的。
至此我们可以看到ActionScript 3和以前的加载方式有很大的不同，特别要熟练领会应用程序域的概念，让文件的划分更为合理，这在模块化开发中是十分重要的。
优化编译速度
因为Compiled Clip和SWC File是编译过的，在最终发布的时候无需再次编译，所以能够加快编译的时间，这在类的数量非常大的时候很有用。在使用第三方类库的时候，也尽量使用SWC File，还可以避免非程序员意外修改了源代码的情况。
此外如果你使用外部编辑器，如Flex/FDT/Flash Develop等，它们已经提供了很好的代码检查功能。我们可以在ActionScript设置对话框里面取消下面两个选项的勾选，这样也可以加快一点编译速度。本文中包含的一些测试的源文件下载。
更多相关资料：Modular Applications
使用RSL来减小Flex生成的SWF文件的大小
就这样，创建了自己的运行时共享库（RSL）Related Posts :2009/11/16 -- Interacting with Papervision 3D2009/06/04 -- Flash字体嵌入方法总结—(4)进阶篇2009/06/04 -- Flash字体嵌入方法总结&#8212;(3)ActionScript提高篇2009/06/04 -- Flash字体嵌入方法总结—(2)ActionScript基础篇2009/12/26 -- 6 Tutorials for Cinema 4D + After Effects]]></description> <content:encoded><![CDATA[<p><strong>Compiled Clip和SWC File</strong></p><p>Compiled Clip和SWC File都包含经过编译后的Flash内容，区别在于：一个是“Clip”，存在于库中；另一个是“File”，是独立的文件。</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/12/20091209_00391.png" rel="shadowbox[post-1177];player=img;" target="_blank"><img
style="display: inline" title="2009-12-09_00391" src="http://kevincao.com/wp-content/uploads/2009/12/20091209_00391_thumb.png" alt="2009-12-09_00391" width="265" height="380" /></a></p><p>如上图所示，在为ActionScript导出的元件上点击右键，可以看到生成Compiled Clip和导出SWC File的选项。这里常见的误解是以为这个操作只会编译当前选择的元件，实际的情况是除此之外还会把库中所有第一帧导出的元件也一同编译进来。要确认Compiled Clip或者SWC File中包含了些什么类，可以用闪客精灵等破解软件或者Flash Develop自带的SWC浏览工具来分析。</p><p><span
id="more-1177"></span></p><p><strong>Flash CS4编译时获取类定义的顺序</strong></p><p><a
href="http://kevincao.com/wp-content/uploads/2009/12/20091209_00390.png" rel="shadowbox[post-1177];player=img;" target="_blank"><img
style="display: inline" title="2009-12-09_00390" src="http://kevincao.com/wp-content/uploads/2009/12/20091209_00390_thumb.png" alt="2009-12-09_00390" width="362" height="500" /></a></p><p>Flash CS4中关于ActionScript类的路径设置共有三处，分别是：</p><ul><li>Source path，就是放.as文件的地方。</li><li>Library path，包含SWC文件的路径。</li><li>External library path，也是SWC文件的路径，不过这个SWC中包含的类定义不会被编译到最终swf文件中。</li></ul><p>发布swf文件的时候，Flash编译器优先在Source Path中寻找是否有类定义。其次是Compiled Clip，最后是SWC和外部SWC。</p><p>如果源文件中包含有Compiled Clip，则编译器还可以在Compiled Clip中寻找类定义。Flash自带的组件就是用了这种方式。</p><p>如果源文件绑定了文档类，则该类必须能在Source Path或Compiled Clip中找到。SWC或外部SWC文件中即使包含了该类，也是无效的，编译器会自动生成默认的类定义来代替。</p><p><strong>外部SWC文件的进阶用法</strong></p><p>在进行模块化ActionScript/Flex项目开发的时候，灵活应用RSL（运行时共享库）来减少文件大小是非常重要的手段。这里面就要用到使用外部SWC文件编译的技术。比如我们制作了一个module.fla文件，在发布选项里面勾选“Export SWC”，就会在发布module.swf文件的同时还生成module.swc。</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/12/20091209_00392.png" rel="shadowbox[post-1177];player=img;" target="_blank"><img
style="display: inline" title="2009-12-09_00392" src="http://kevincao.com/wp-content/uploads/2009/12/20091209_00392_thumb.png" alt="2009-12-09_00392" width="391" height="87" /></a></p><p>接下来在其他模块中如何调用module.swf中的类定义呢？</p><p>通常我们采用默认的加载方式，module.swf是被加载到当前应用程序域下的子域中。然后通过ApplicationDomain.getDefinition()方法来得到module里的类定义。</p><p>RSL的做法是把module.swf加载到<strong>当前应用程序域</strong>中，这样一来其他任意模块可以直接用类名访问到module.swf中的类定义。</p><pre class="actionscript">loader.<span style="color: #0099cc;">load</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> URLRequest<span style="color: #b1b100;">&#40;</span><span style="color: #66cc66;">&quot;module.swf&quot;</span><span style="color: #b1b100;">&#41;</span>, <span style="color: #0099cc; font-weight: bold;">new</span> LoaderContext<span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">false</span>, ApplicationDomain.<span style="color: #FF9999;">currentDomain</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#41;</span>;</pre><p>但是直接引用的类，必须是编译器找得到的。在满足我们不增加文件大小前提下的选择就只有使用外部SWC文件的方式。把module.swc加进外部SWC路径中，编译正常通过，最终的swf文件中不包含module中的类定义。</p><p>这里要特别注意区分<strong>运行时</strong>和<strong>编译时</strong>两种情境。编译时的类是通过外部SWC得到的。运行时的类则是从当前应用程序域中获取的。</p><p>至此我们可以看到ActionScript 3和以前的加载方式有很大的不同，特别要熟练领会应用程序域的概念，让文件的划分更为合理，这在模块化开发中是十分重要的。</p><p><strong>优化编译速度</strong></p><p>因为Compiled Clip和SWC File是编译过的，在最终发布的时候无需再次编译，所以能够加快编译的时间，这在类的数量非常大的时候很有用。在使用第三方类库的时候，也尽量使用SWC File，还可以避免非程序员意外修改了源代码的情况。</p><p>此外如果你使用外部编辑器，如Flex/FDT/Flash Develop等，它们已经提供了很好的代码检查功能。我们可以在ActionScript设置对话框里面取消下面两个选项的勾选，这样也可以加快一点编译速度。</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/12/20091209_003901.png" rel="shadowbox[post-1177];player=img;" target="_blank"><img
style="display: inline" title="2009-12-09_00390" src="http://kevincao.com/wp-content/uploads/2009/12/20091209_00390_thumb1.png" alt="2009-12-09_00390" width="296" height="45" /></a></p><p>本文中包含的一些测试的<a
href="http://dl.dropbox.com/u/129805/kevincao/demo/FlashCS4CompileDemo.zip" target="_blank">源文件下载</a>。</p><p>更多相关资料：</p><ul><li><a
href="http://blogs.adobe.com/rgonzalez/2006/06/modular_applications_part_1.html" target="_blank">Modular Applications</a></li><li><a
href="http://koda.javaeye.com/blog/344450" target="_blank">使用RSL来减小Flex生成的SWF文件的大小</a></li><li><a
href="http://www.riahome.cn/?p=1405">就这样，创建了自己的运行时共享库（RSL）</a></li></ul><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/11/16 -- <a
href="http://kevincao.com/2009/11/interacting-with-papervision-3d/" title="Interacting with Papervision 3D">Interacting with Papervision 3D</a></li><li>2009/06/04 -- <a
href="http://kevincao.com/2009/06/flash-font-4/" title="Flash字体嵌入方法总结—(4)进阶篇">Flash字体嵌入方法总结—(4)进阶篇</a></li><li>2009/06/04 -- <a
href="http://kevincao.com/2009/06/flash-font-3/" title="Flash字体嵌入方法总结&mdash;(3)ActionScript提高篇">Flash字体嵌入方法总结&mdash;(3)ActionScript提高篇</a></li><li>2009/06/04 -- <a
href="http://kevincao.com/2009/06/flash-font-2/" title="Flash字体嵌入方法总结—(2)ActionScript基础篇">Flash字体嵌入方法总结—(2)ActionScript基础篇</a></li><li>2009/12/26 -- <a
href="http://kevincao.com/2009/12/5-tutorials-for-cinema-4d-after-effects/" title="6 Tutorials for Cinema 4D + After Effects">6 Tutorials for Cinema 4D + After Effects</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/4tJGY9Aywgdiiod6H9Wof-_2etg/0/da"><img src="http://feedads.g.doubleclick.net/~a/4tJGY9Aywgdiiod6H9Wof-_2etg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4tJGY9Aywgdiiod6H9Wof-_2etg/1/da"><img src="http://feedads.g.doubleclick.net/~a/4tJGY9Aywgdiiod6H9Wof-_2etg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=dEp9ifxGqYU:ALL5W1LDetE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=dEp9ifxGqYU:ALL5W1LDetE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=dEp9ifxGqYU:ALL5W1LDetE:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/12/master-flash-cs4-compile/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://kevincao.com/2009/12/master-flash-cs4-compile/</feedburner:origLink></item> <item><title>Experiment #07: Papervision 3D Camera Rig</title><link>http://feedproxy.google.com/~r/kevincao/~3/H16bm3URizs/</link> <comments>http://kevincao.com/2009/12/experiment-07-papervision-3d-camera-rig/#comments</comments> <pubDate>Tue, 08 Dec 2009 09:59:13 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Develop]]></category> <category><![CDATA[After Effects]]></category> <category><![CDATA[camera]]></category> <category><![CDATA[experiment]]></category> <category><![CDATA[motion]]></category> <category><![CDATA[papervision3d]]></category><guid isPermaLink="false">http://kevincao.com/2009/12/experiment-07-papervision-3d-camera-rig/</guid> <description><![CDATA[最近又看到一篇讲Camera Rig的教程，概念还是一样，有兴趣的朋友可以翻看我去年写的关于这个话题的文章。今天突发奇想地将这种方法应用到Papervision 3D上，两小时后就有了这个：
&#160; （hint：点任意物体更改镜头的旋转中心）
相比内置的orbit方法，除了在控制Camera动画上更方便以外，还间接解决了万向节死锁的问题。
source download
Related Posts :2008/11/23 -- Camera Tip &#38; Trick in Motion Graphics2009/12/31 -- Best of Kevin Cao 20092009/12/26 -- 6 Tutorials for Cinema 4D + After Effects2009/12/24 -- MG 6 Price Announcement Video2009/11/16 -- Papervision 3D + 3D/Post Software Workflow]]></description> <content:encoded><![CDATA[<p>最近又看到一篇讲<a
href="http://maltaannon.com/articles/after-effects/simple-camera-rig/" target="_blank">Camera Rig的教程</a>，概念还是一样，有兴趣的朋友可以翻看我去年写的<a
href="http://kevincao.com/2008/11/camera-tip-trick-in-motion-graphics/" target="_blank">关于这个话题的文章</a>。今天突发奇想地将这种方法应用到Papervision 3D上，两小时后就有了<a
href="http://kevincao.com/experiment/flash/pv3d/camrig/" target="_blank">这个</a>：</p><p><a
href="http://kevincao.com/experiment/flash/pv3d/camrig/" target="_blank"><img
title="camrig" style="display: inline" height="256" alt="camrig" src="http://kevincao.com/wp-content/uploads/2009/12/camrig.jpg" width="500" /></a>&#160; <br
/>（hint：点任意物体更改镜头的旋转中心）</p><p>相比内置的orbit方法，除了在控制Camera动画上更方便以外，还间接解决了万向节死锁的问题。</p><p><a
href="http://kevincao-playground.googlecode.com/files/camrig.zip" target="_blank">source download</a></p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2008/11/23 -- <a
href="http://kevincao.com/2008/11/camera-tip-trick-in-motion-graphics/" title="Camera Tip &amp; Trick in Motion Graphics">Camera Tip &amp; Trick in Motion Graphics</a></li><li>2009/12/31 -- <a
href="http://kevincao.com/2009/12/best-of-kevin-cao-2009/" title="Best of Kevin Cao 2009">Best of Kevin Cao 2009</a></li><li>2009/12/26 -- <a
href="http://kevincao.com/2009/12/5-tutorials-for-cinema-4d-after-effects/" title="6 Tutorials for Cinema 4D + After Effects">6 Tutorials for Cinema 4D + After Effects</a></li><li>2009/12/24 -- <a
href="http://kevincao.com/2009/12/mg-6-price-announcement-video/" title="MG 6 Price Announcement Video">MG 6 Price Announcement Video</a></li><li>2009/11/16 -- <a
href="http://kevincao.com/2009/11/pv3d-3d-post-software-workflow/" title="Papervision 3D + 3D/Post Software Workflow">Papervision 3D + 3D/Post Software Workflow</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/rtOG8SzIsVD2Mhv6Ok4QeOufUm8/0/da"><img src="http://feedads.g.doubleclick.net/~a/rtOG8SzIsVD2Mhv6Ok4QeOufUm8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rtOG8SzIsVD2Mhv6Ok4QeOufUm8/1/da"><img src="http://feedads.g.doubleclick.net/~a/rtOG8SzIsVD2Mhv6Ok4QeOufUm8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=H16bm3URizs:cY934Ksmnvw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=H16bm3URizs:cY934Ksmnvw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=H16bm3URizs:cY934Ksmnvw:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/12/experiment-07-papervision-3d-camera-rig/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://kevincao.com/2009/12/experiment-07-papervision-3d-camera-rig/</feedburner:origLink></item> <item><title>Roxik新作：Verbatim机器人大战</title><link>http://feedproxy.google.com/~r/kevincao/~3/UQyWoimXTjs/</link> <comments>http://kevincao.com/2009/11/roxik-verbatim/#comments</comments> <pubDate>Wed, 18 Nov 2009 06:26:10 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Web Pick]]></category> <category><![CDATA[3D]]></category> <category><![CDATA[ActionScript]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[interactive]]></category> <category><![CDATA[web-design]]></category><guid isPermaLink="false">http://kevincao.com/?p=1162</guid> <description><![CDATA[绝对必看之牛x大作：
http://www.verbatim.jp/senshuken/开场展示给用户的是随机挑选出来的机器人，变形出现的动作做得非常精彩。选择自己制造吧，系统先会随机给用户一圈零件，然后我们要靠回答问题来组装身体部件。答对的问题越多，机器人的初始能力值就越高。然机器人造好以后就可以和其他人PK升级，还可以选择和几个Boss对战。作战的时候下方有三个特殊技能可以使用，灵活运用并取得胜利吧。当然就这么看着他们随机斗来斗去也是一件乐事。胜利了的机器人有获胜的动作，失败了就表现的垂头丧气，骨骼动画表现的非常出色。
和去年的动物园网站一样，这是个非常耐玩的网站，并且在技术上又有新的突破。Roxik无愧于Site of the Year得主的实力。
Related Posts :2009/11/13 -- Project &#8211; Mercedes-Benz StarElite Experience Website2009/07/21 -- Project &#8211; Mercedes-Benz E-Class Web Special 20092009/03/15 -- Face Detection in Flash, Next Big Wave?2008/10/08 -- Flash on the Beach 20082008/06/08 -- Amazing Eco Zoo Website]]></description> <content:encoded><![CDATA[<p>绝对必看之牛x大作：</p><p><a
href="http://www.verbatim.jp/senshuken/" target="_blank">http://www.verbatim.jp/senshuken/</a></p><p><img
class="alignnone" title="senshuken1" src="http://p1.xemestudio.com/7/2/7234.png" alt="" width="500" height="285" /></p><p>开场展示给用户的是随机挑选出来的机器人，变形出现的动作做得非常精彩。</p><p><img
class="alignnone" title="senshuken2" src="http://p1.xemestudio.com/7/2/7237.png" alt="" width="500" height="285" /><span
id="more-1162"></span></p><p>选择自己制造吧，系统先会随机给用户一圈零件，然后我们要靠回答问题来组装身体部件。答对的问题越多，机器人的初始能力值就越高。</p><p><img
class="alignnone" title="senshuken3" src="http://p1.xemestudio.com/7/2/7240.png" alt="" width="500" height="285" /></p><p>然机器人造好以后就可以和其他人PK升级，还可以选择和几个Boss对战。作战的时候下方有三个特殊技能可以使用，灵活运用并取得胜利吧。当然就这么看着他们随机斗来斗去也是一件乐事。</p><p><img
class="alignnone" title="senshuken4" src="http://p1.xemestudio.com/7/2/7243.png" alt="" width="500" height="285" /></p><p>胜利了的机器人有获胜的动作，失败了就表现的垂头丧气，骨骼动画表现的非常出色。</p><p>和去年的<a
href="http://kevincao.com/2008/06/amazing-eco-zoo-website/" target="_blank">动物园网站</a>一样，这是个非常耐玩的网站，并且在技术上又有新的突破。<a
href="http://roxik.com/" target="_blank">Roxik</a>无愧于Site of the Year得主的实力。</p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/11/13 -- <a
href="http://kevincao.com/2009/11/project-mercedes-benz-starelite-experience-website/" title="Project &#8211; Mercedes-Benz StarElite Experience Website">Project &#8211; Mercedes-Benz StarElite Experience Website</a></li><li>2009/07/21 -- <a
href="http://kevincao.com/2009/07/project-mercedes-e-class-web-special-2009/" title="Project &#8211; Mercedes-Benz E-Class Web Special 2009">Project &#8211; Mercedes-Benz E-Class Web Special 2009</a></li><li>2009/03/15 -- <a
href="http://kevincao.com/2009/03/face-detection-in-flash-next-big-wave/" title="Face Detection in Flash, Next Big Wave?">Face Detection in Flash, Next Big Wave?</a></li><li>2008/10/08 -- <a
href="http://kevincao.com/2008/10/flash-on-the-beach-2008/" title="Flash on the Beach 2008">Flash on the Beach 2008</a></li><li>2008/06/08 -- <a
href="http://kevincao.com/2008/06/amazing-eco-zoo-website/" title="Amazing Eco Zoo Website">Amazing Eco Zoo Website</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/AIefZ5dnGSgH8rgkCL5RdLDAqtE/0/da"><img src="http://feedads.g.doubleclick.net/~a/AIefZ5dnGSgH8rgkCL5RdLDAqtE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AIefZ5dnGSgH8rgkCL5RdLDAqtE/1/da"><img src="http://feedads.g.doubleclick.net/~a/AIefZ5dnGSgH8rgkCL5RdLDAqtE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=UQyWoimXTjs:DVY95JYKkQE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=UQyWoimXTjs:DVY95JYKkQE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=UQyWoimXTjs:DVY95JYKkQE:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/11/roxik-verbatim/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://kevincao.com/2009/11/roxik-verbatim/</feedburner:origLink></item> <item><title>Papervision 3D + 3D/Post Software Workflow</title><link>http://feedproxy.google.com/~r/kevincao/~3/PpyUUV0KCy0/</link> <comments>http://kevincao.com/2009/11/pv3d-3d-post-software-workflow/#comments</comments> <pubDate>Mon, 16 Nov 2009 11:07:54 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Develop]]></category> <category><![CDATA[After Effects]]></category> <category><![CDATA[Cinema 4D]]></category> <category><![CDATA[papervision3d]]></category> <category><![CDATA[tip]]></category> <category><![CDATA[tutorial]]></category> <category><![CDATA[workflow]]></category><guid isPermaLink="false">http://kevincao.com/?p=1148</guid> <description><![CDATA[在使用Flash 3D的实际工作中，我们经常会需要在3D空间中摆放物体，或者是去匹配平面Layout。但是由于可视环境的缺乏，我们常常要：调参数——看效果——再调参数……周而复始，费时费力。能不能有更好的方法呢？本文就介绍一下使用常见的后期或三维软件来做Layout，再完美转换回Papervision 3D中的方法。
首先我们来看看After Effects（AE），AE的三维层功能用来摆平面那是相当方便快捷。下图中我建立了一个985×600的合成，然后随便摆放了两个平面。想象一下左边平面贴一张图片，右边平面贴文字，是不是就是一个常见的3D场景呢？接下来，就跟我一起把这个Layout还原到Papervision 3D中去吧。
第一步是相机参数的匹配，在AE中打开相机参数设置窗口：图中显示了一个35mm相机的数据。我们把Units（单位）一栏从millimeters改为pixels：窗口中的数值全部都转换成了像素单位。其中Focal Length就是我们需要的camera.focus。但camera.zoom不是图中那个Zoom值，而是Comp Size和Film Size的比值，即：
600 / 62.16 = 9.65
怎么样，是不是很方便呢？但如果手头刚好没有AE怎么办？没关系，把以下等式记下来，你也可以自己计算：
1英寸=25.4毫米=72像素(72dpi)
根据这个等式，35mm相机的Focal Length计算如下，结果和AE里的完全一样。
35 * 72 / 25.4 = 99.21
只要计算好camera的focus和zoom这两个属性，相机参数就可以完全匹配了。
//35mm
camera.focus = 99.21;
camera.zoom = 9.65;
下面我们来谈谈camera.fov（Field of View）。这个值对应的是图中的Angle of View值，该值有三种计算方式（Measure Film Size）：Vertically（垂直）
Horizontally（水平）
Diagonally（对角线）Papervision 3D中的fov对应的是垂直方式，所以我们把垂直方式下计算得出的Angle of View赋给camera.fov：
camera.fov = 34.79
这和上面提到的设置camera.focus的效果是一样的。但是我比较推荐用focus来控制，这是因为fov值依赖于viewport.viewportHeight，如果视口的高度发生变化（比如设置了viewport.autoScaleToStage的情况 ），fov也会跟着改变。但是focus是不会变的。
下一步是物体坐标的匹配。我们知道Papervision 3D使用左手坐标系，y轴向上。检查AE使用的坐标系，发现y轴是相反的。所以AE中的坐标在Papervision 3D中使用时要注意：
y，rotationX，rotationZ值都要取反。
示例中相机和两个平面的位置信息如下：对应的代码为：
camera.x = 492.5;
camera.y = -300;
camera.z = -666.7;
&#160;
camera.target.x = 492.5;
camera.target.y = -300;
camera.target.z = 0;
&#160;
greenPlane = new Plane&#40;new ColorMaterial&#40;0x00ff00&#41;, 500, 400&#41;;
greenPlane.x [...]]]></description> <content:encoded><![CDATA[<p>在使用Flash 3D的实际工作中，我们经常会需要在3D空间中摆放物体，或者是去匹配平面Layout。但是由于可视环境的缺乏，我们常常要：调参数——看效果——再调参数……周而复始，费时费力。能不能有更好的方法呢？本文就介绍一下使用常见的后期或三维软件来做Layout，再完美转换回Papervision 3D中的方法。</p><p>首先我们来看看After Effects（AE），AE的三维层功能用来摆平面那是相当方便快捷。下图中我建立了一个985×600的合成，然后随便摆放了两个平面。</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/11/20091116_00352.png" rel="shadowbox[post-1148];player=img;" target="_blank"><img
style="display: inline" title="viewport" src="http://kevincao.com/wp-content/uploads/2009/11/20091116_00352_thumb.png" alt="viewport" width="500" height="157" /></a></p><p>想象一下左边平面贴一张图片，右边平面贴文字，是不是就是一个常见的3D场景呢？接下来，就跟我一起把这个Layout还原到Papervision 3D中去吧。</p><p>第一步是相机参数的匹配，在AE中打开相机参数设置窗口：<span
id="more-1148"></span></p><p><a
href="http://kevincao.com/wp-content/uploads/2009/11/20091116_00353.png" rel="shadowbox[post-1148];player=img;" target="_blank"><img
style="display: inline" title="camera setting 1" src="http://kevincao.com/wp-content/uploads/2009/11/20091116_00353_thumb.png" alt="camera setting 1" width="500" height="364" /></a></p><p>图中显示了一个35mm相机的数据。我们把Units（单位）一栏从millimeters改为pixels：</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/11/20091116_00349.png" rel="shadowbox[post-1148];player=img;" target="_blank"><img
style="display: inline" title="camera setting 2" src="http://kevincao.com/wp-content/uploads/2009/11/20091116_00349_thumb.png" alt="camera setting 2" width="500" height="364" /></a></p><p>窗口中的数值全部都转换成了像素单位。其中Focal Length就是我们需要的camera.focus。但camera.zoom不是图中那个Zoom值，而是Comp Size和Film Size的比值，即：</p><blockquote><p>600 / 62.16 = 9.65</p></blockquote><p>怎么样，是不是很方便呢？但如果手头刚好没有AE怎么办？没关系，把以下等式记下来，你也可以自己计算：</p><blockquote><p>1英寸=25.4毫米=72像素(72dpi)</p></blockquote><p>根据这个等式，35mm相机的Focal Length计算如下，结果和AE里的完全一样。</p><blockquote><p>35 * 72 / 25.4 = 99.21</p></blockquote><p>只要计算好camera的<strong>focus</strong>和<strong>zoom</strong>这两个属性，相机参数就可以完全匹配了。</p><pre class="actionscript"><span style="color: #666666; ">//35mm</span>
<span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">focus</span> = <span style="color: #CC3366;">99.21</span>;
<span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">zoom</span> = <span style="color: #CC3366;">9.65</span>;</pre><p>下面我们来谈谈camera.fov（Field of View）。这个值对应的是图中的Angle of View值，该值有三种计算方式（Measure Film Size）：</p><ol><li>Vertically（垂直）</li><li>Horizontally（水平）</li><li>Diagonally（对角线）</li></ol><p>Papervision 3D中的fov对应的是<strong>垂直方式</strong>，所以我们把垂直方式下计算得出的Angle of View赋给camera.fov：</p><pre class="actionscript"><span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">fov</span> = <span style="color: #CC3366;">34.79</span></pre><p>这和上面提到的设置camera.focus的效果是一样的。但是我比较推荐用focus来控制，这是因为fov值依赖于viewport.viewportHeight，如果视口的高度发生变化（比如设置了viewport.autoScaleToStage的情况 ），fov也会跟着改变。但是focus是不会变的。</p><p>下一步是物体坐标的匹配。我们知道Papervision 3D使用左手坐标系，y轴向上。检查AE使用的坐标系，发现y轴是相反的。所以AE中的坐标在Papervision 3D中使用时要注意：</p><blockquote><p><strong>y，rotationX，rotationZ值都要取反</strong>。</p></blockquote><p>示例中相机和两个平面的位置信息如下：</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/11/20091116_00351.png" rel="shadowbox[post-1148];player=img;" target="_blank"><img
style="display: inline" title="position setting" src="http://kevincao.com/wp-content/uploads/2009/11/20091116_00351_thumb.png" alt="position setting" width="319" height="370" /></a></p><p>对应的代码为：</p><pre class="actionscript"><span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">x</span> = <span style="color: #CC3366;">492.5</span>;
<span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">y</span> = <span style="color: #CC3366;">-300</span>;
<span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">z</span> = <span style="color: #CC3366;">-666.7</span>;
&nbsp;
<span style="color: #0099cc;">camera</span>.<span style="color: #0099cc;">target</span>.<span style="color: #FF9999;">x</span> = <span style="color: #CC3366;">492.5</span>;
<span style="color: #0099cc;">camera</span>.<span style="color: #0099cc;">target</span>.<span style="color: #FF9999;">y</span> = <span style="color: #CC3366;">-300</span>;
<span style="color: #0099cc;">camera</span>.<span style="color: #0099cc;">target</span>.<span style="color: #FF9999;">z</span> = <span style="color: #CC3366;">0</span>;
&nbsp;
greenPlane = <span style="color: #0099cc; font-weight: bold;">new</span> Plane<span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> ColorMaterial<span style="color: #b1b100;">&#40;</span>0x00ff00<span style="color: #b1b100;">&#41;</span>, <span style="color: #CC3366;">500</span>, <span style="color: #CC3366;">400</span><span style="color: #b1b100;">&#41;</span>;
greenPlane.<span style="color: #FF9999;">x</span> = <span style="color: #CC3366;">628.5</span>;
greenPlane.<span style="color: #FF9999;">y</span> = <span style="color: #CC3366;">-290</span>;
greenPlane.<span style="color: #FF9999;">z</span> = <span style="color: #CC3366;">219.7</span>;
greenPlane.<span style="color: #FF9999;">rotationY</span> = <span style="color: #CC3366;">38</span>;
greenPlane.<span style="color: #FF9999;">rotationZ</span> = <span style="color: #CC3366;">4</span>;
scene.<span style="color: #FF9999;">addChild</span><span style="color: #b1b100;">&#40;</span>greenPlane<span style="color: #b1b100;">&#41;</span>;
&nbsp;
redPlane = <span style="color: #0099cc; font-weight: bold;">new</span> Plane<span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> ColorMaterial<span style="color: #b1b100;">&#40;</span>0xff0000<span style="color: #b1b100;">&#41;</span>, <span style="color: #CC3366;">500</span>, <span style="color: #CC3366;">400</span><span style="color: #b1b100;">&#41;</span>;
redPlane.<span style="color: #FF9999;">x</span> = <span style="color: #CC3366;">77.6</span>;
redPlane.<span style="color: #FF9999;">y</span> = <span style="color: #CC3366;">-347.2</span>;
redPlane.<span style="color: #FF9999;">z</span> = <span style="color: #CC3366;">1132</span>;
redPlane.<span style="color: #FF9999;">rotationX</span> = <span style="color: #CC3366;">-30</span>;
redPlane.<span style="color: #FF9999;">rotationZ</span> = <span style="color: #CC3366;">-10</span>;
scene.<span style="color: #FF9999;">addChild</span><span style="color: #b1b100;">&#40;</span>redPlane<span style="color: #b1b100;">&#41;</span>;</pre><p><strong>注意</strong>：Papervision 3D 2.0使用欧拉角来表示旋转值，这是一种<a
href="http://blog.csdn.net/kesalin/archive/2008/03/09/2161254.aspx" target="_blank">有局限性</a>的算法，并不能和AE中的旋转值完全匹配。我在测试中发现一旦rotationY值非0，rotationX值就不能匹配。让我们一起期待3.0能够解决这个问题。</p><blockquote><p><a
href="http://dl.dropbox.com/u/129805/kevincao/demo/pvae.zip" target="_blank">After Effects示例和代码下载</a></p></blockquote><p>以上就是AE转换Papervision 3D的全步骤，你可以下载上面的示例自己试验一下。弄懂原理以后，再扩展到其他软件里也就很简单了。下面我们再来看看Cinema 4D中的情况。</p><p>我建立了一个1000x700的场景，放了一个圆柱和立方体。在Cinema 4D的视图中显示如下：</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/11/20091117_00354.png" rel="shadowbox[post-1148];player=img;" target="_blank"><img
style="display: inline" title="cinema4d" src="http://kevincao.com/wp-content/uploads/2009/11/20091117_00354_thumb.png" alt="cinema4d" width="500" height="350" /></a></p><p>先来看看Cinema 4D中的Camera的参数如下：</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/11/20091117_00357.png" rel="shadowbox[post-1148];player=img;" target="_blank"><img
style="display: inline" title="camera" src="http://kevincao.com/wp-content/uploads/2009/11/20091117_00357_thumb.png" alt="camera" width="293" height="266" /></a></p><p>这是一个50mm的镜头，Focal Length和AE中的一样，直接赋给camera.focus就可以了。此外再多解释一下这里的Field of View：在Cinema 4D中这个值是用<strong>水平方式</strong>计算的，需要换算后才能用到camera.fov上，比例等于场景的长宽比（这里就是10/7）。</p><p>接下来我们再来看看变换属性的转换，以绿色圆柱为例：</p><p><a
href="http://kevincao.com/wp-content/uploads/2009/11/20091117_00356.png" rel="shadowbox[post-1148];player=img;" target="_blank"><img
style="display: inline" title="2009-11-17_00356" src="http://kevincao.com/wp-content/uploads/2009/11/20091117_00356_thumb.png" alt="2009-11-17_00356" width="361" height="104" /></a></p><p>Papervision 3D和Cinema 4D都使用左手坐标系。所以各个变换属性都是一一对应的。但是Cinema 4D中的旋转值是使用H（heading），P（pitch），B（bank）来表示的，对应关系如下：</p><ul><li>H 对应 do3d.localRotationY</li><li>P 对应 do3d.localRotationX</li><li>B 对应 do3d.localRotationZ</li></ul><p>由此得到相应的ActionScript代码如下：</p><pre class="actionscript">cylinder = <span style="color: #0099cc; font-weight: bold;">new</span> Cylinder<span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> FlatShadeMaterial<span style="color: #b1b100;">&#40;</span>light, 0x00ff00, 0x003300<span style="color: #b1b100;">&#41;</span>, <span style="color: #CC3366;">88</span>, <span style="color: #CC3366;">330</span>, <span style="color: #CC3366;">24</span>, <span style="color: #CC3366;">1</span><span style="color: #b1b100;">&#41;</span>;
cylinder.<span style="color: #FF9999;">x</span> = <span style="color: #CC3366;">11</span>;
cylinder.<span style="color: #FF9999;">y</span> = <span style="color: #CC3366;">32</span>;
cylinder.<span style="color: #FF9999;">z</span> = <span style="color: #CC3366;">400</span>;
cylinder.<span style="color: #FF9999;">localRotationY</span> = <span style="color: #CC3366;">100</span>;
cylinder.<span style="color: #FF9999;">localRotationZ</span> = <span style="color: #CC3366;">295</span>;
scene.<span style="color: #FF9999;">addChild</span><span style="color: #b1b100;">&#40;</span>cylinder<span style="color: #b1b100;">&#41;</span>;</pre><p>好了，运行代码，看看渲染结果是否和在Cinema 4D中看到的完全一致呢。</p><blockquote><p><a
href="http://dl.dropbox.com/u/129805/kevincao/demo/pvc4d.zip" target="_blank">Cinema 4D示例和代码下载</a></p></blockquote><p>其他的软件系统也都可以用类似的方法转换：相机的参数基本都一样，只要再弄清楚目标3D系统使用什么坐标系就可以了。此外还有些单位的问题也需要注意一下，比如Maya中很多的数值范围都是0～1的，在转换时统一放大100倍会更好处理。</p><p>使用上面介绍的方法，你可以利用自己所熟悉的后期或三维软件来做设计和开发的辅助，当然你也可以尝试使用<a
href="http://kevincao.com/2009/05/amazing-vizualpv3d/">VizualPV3D</a>或者<a
href="http://www.closier.nl/prefab/">preFab</a>等“原生”Flash 3D系统来做可视化编辑。等这些软件成熟以后，会是一个不错的选择。希望本文对你有帮助，欢迎留言探讨。</p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/12/26 -- <a
href="http://kevincao.com/2009/12/5-tutorials-for-cinema-4d-after-effects/" title="6 Tutorials for Cinema 4D + After Effects">6 Tutorials for Cinema 4D + After Effects</a></li><li>2009/12/24 -- <a
href="http://kevincao.com/2009/12/mg-6-price-announcement-video/" title="MG 6 Price Announcement Video">MG 6 Price Announcement Video</a></li><li>2009/11/16 -- <a
href="http://kevincao.com/2009/11/interacting-with-papervision-3d/" title="Interacting with Papervision 3D">Interacting with Papervision 3D</a></li><li>2008/06/24 -- <a
href="http://kevincao.com/2008/06/ae-advanced-ramp/" title="AE &#8211; Advanced Ramp">AE &#8211; Advanced Ramp</a></li><li>2009/12/31 -- <a
href="http://kevincao.com/2009/12/best-of-kevin-cao-2009/" title="Best of Kevin Cao 2009">Best of Kevin Cao 2009</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/7dk40ufLzt09_vFDS-dQBOfMJzQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/7dk40ufLzt09_vFDS-dQBOfMJzQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7dk40ufLzt09_vFDS-dQBOfMJzQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/7dk40ufLzt09_vFDS-dQBOfMJzQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=PpyUUV0KCy0:PZzhnmnMAK0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=PpyUUV0KCy0:PZzhnmnMAK0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=PpyUUV0KCy0:PZzhnmnMAK0:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/11/pv3d-3d-post-software-workflow/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://kevincao.com/2009/11/pv3d-3d-post-software-workflow/</feedburner:origLink></item> <item><title>Interacting with Papervision 3D</title><link>http://feedproxy.google.com/~r/kevincao/~3/AkJQGIci69c/</link> <comments>http://kevincao.com/2009/11/interacting-with-papervision-3d/#comments</comments> <pubDate>Mon, 16 Nov 2009 06:15:44 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Develop]]></category> <category><![CDATA[ActionScript]]></category> <category><![CDATA[papervision3d]]></category> <category><![CDATA[tip]]></category> <category><![CDATA[tutorial]]></category><guid isPermaLink="false">http://kevincao.com/?p=1133</guid> <description><![CDATA[本文讨论Papervision 3D中与鼠标互动相关的进阶问题：3D物体的hit检测
InteractiveSceneManager
VirtualMouse
Mouse3D我们知道要让Papervision 3D的互动机制开始运作，必须满足以下两个条件：viewport.interactive = true;
do3d.material.interactive = true;然后我们就可以监听do3d发出的事件（InteractiveSceneEvent）。
那么Papervision 3D是怎样实现3D物体与鼠标的hit检测呢？
来看看Viewport类提供的以下实例方法：hitTestPoint2D()
hitTestMouse()
hitTestPointObject()这些方法就是三维hit检测的实现（实现方法属于图形学的范畴，本文不深入讨论，有兴趣的可以研究代码）。这些方法返回一个包含了所有检测信息的RenderHitData对象实例，该实例有以下属性：x,y,z：碰撞点的3D位置。u,v：碰撞点的uv，通常是0～1的范围，但是MovieClipMaterial例外。displayObject3D：碰撞的do3d。material：碰撞的材质。renderable：实现了IRenderable接口的对象，通常是Triangle3D（三角面）。isHit：是否碰撞。点击查看RenderHitData示例 &#124; 源代码
我们知道Papervision 3D中互动事件的管理由InteractiveSceneManager类来实现，可以通过以下代码得到对该类实例的引用。
viewport.interactiveSceneManager
InteractiveSceneManager实例在每帧更新时会调用updateRenderHitData()，该方法正是调用viewport.hitTestPoint2D()来更新的renderHitData的信息，从而进行一系列的检测，并发送对应的InteractiveSceneEvent。
VirtualMouse(虚拟鼠标)：
viewport.interactiveSceneManager.virtualMouse
在我们理解的MovieClip作为贴图被贴到3D物体上时，实际上是缓存的位图贴到3D物体上，所以就会失去了原来的互动特性。而虚拟鼠标就是用于触发MovieClipMaterial的互动。
Papervision 3D中的VirtualMouse原身是senocular写的类。理解虚拟鼠标的原理对我们开发时遇到的问题会有很大的帮助。
在Papervision 3D内部，对应虚拟鼠标的xy坐标的就是renderHitData的uv。
Mouse3D：
viewport.interactiveSceneManager.mouse3D
Mouse3D很容易和VirtualMouse混淆起来，但其实他们是很不一样的。Mouse3D是DisplayObject3D的子类，说明它其实也是一个3D物体。Mouse3D类扩展的唯一实例方法是updatePosition()，作用是计算并对齐碰撞点的法线方向。在实际应用中，我们可以用Mouse3D帮助对齐3D物体到碰撞的表面，用copyTransform()方法就可以了。
关于OBJECT_OVER和OBJECT_OUT：
InteractiveSceneManager.enableOverOut属性可以开关这两个事件的检测。特别还需注意的是如果鼠标没有移动，就不会发出OBJECT_OVER和OBJECT_OUT事件。这会在某些情况下出现问题：比如鼠标没动，而物体在动的情况。这种情况可以自行通过viewport.hitTestMouse()判断来解决。所以监听这两个事件的时候要特别注意。
Related Posts :2009/11/16 -- Papervision 3D + 3D/Post Software Workflow2008/11/26 -- Papervision3D旋转和矩阵2008/11/25 -- Barcinski &#038; Jeanjean Website (Part3)2008/04/18 -- PV3D优化CPU占用技巧2008/04/12 -- PV3D GreatWhite]]></description> <content:encoded><![CDATA[<p>本文讨论Papervision 3D中与鼠标互动相关的进阶问题：</p><ol><li>3D物体的hit检测</li><li>InteractiveSceneManager</li><li>VirtualMouse</li><li>Mouse3D</li></ol><p>我们知道要让Papervision 3D的互动机制开始运作，必须满足以下两个条件：</p><ol><li>viewport.interactive = true;</li><li>do3d.material.interactive = true;</li></ol><p>然后我们就可以监听do3d发出的事件（InteractiveSceneEvent）。</p><p>那么Papervision 3D是怎样实现<strong>3D物体与鼠标的hit检测</strong>呢？</p><p>来看看Viewport类提供的以下实例方法：</p><ol><li>hitTestPoint2D()</li><li>hitTestMouse()</li><li>hitTestPointObject()</li></ol><p><span
id="more-1133"></span></p><p>这些方法就是三维hit检测的实现（实现方法属于图形学的范畴，本文不深入讨论，有兴趣的可以研究代码）。这些方法返回一个包含了所有检测信息的RenderHitData对象实例，该实例有以下属性：</p><ul><li><div>x,y,z：碰撞点的3D位置。</div></li><li><div>u,v：碰撞点的uv，通常是0～1的范围，但是MovieClipMaterial例外。</div></li><li><div>displayObject3D：碰撞的do3d。</div></li><li><div>material：碰撞的材质。</div></li><li><div>renderable：实现了IRenderable接口的对象，通常是Triangle3D（三角面）。</div></li><li><div>isHit：是否碰撞。</div></li></ul><p><a
href="http://dl.dropbox.com/u/129805/kevincao/hitTestDemo/HitTestDemo.swf" rel="shadowbox[post-1133];width=640;height=385;" target="_blank">点击查看RenderHitData示例</a> | <a
href="http://dl.dropbox.com/u/129805/kevincao/hitTestDemo/HitTestDemo.as" target="_blank">源代码</a></p><p>我们知道Papervision 3D中互动事件的管理由InteractiveSceneManager类来实现，可以通过以下代码得到对该类实例的引用。</p><blockquote><p>viewport.interactiveSceneManager</p></blockquote><p>InteractiveSceneManager实例在每帧更新时会调用updateRenderHitData()，该方法正是调用viewport.hitTestPoint2D()来更新的renderHitData的信息，从而进行一系列的检测，并发送对应的InteractiveSceneEvent。</p><p><strong>VirtualMouse(虚拟鼠标)</strong>：</p><blockquote><p>viewport.interactiveSceneManager.virtualMouse</p></blockquote><p>在我们理解的MovieClip作为贴图被贴到3D物体上时，实际上是缓存的位图贴到3D物体上，所以就会失去了原来的互动特性。而虚拟鼠标就是用于触发MovieClipMaterial的互动。</p><p>Papervision 3D中的VirtualMouse原身是<a
href="http://www.senocular.com/flash/actionscript.php?file=ActionScript_3.0/com/senocular/ui/VirtualMouse.as" target="_blank">senocular写的类</a>。理解虚拟鼠标的原理对我们开发时遇到的问题会有很大的帮助。</p><p>在Papervision 3D内部，对应虚拟鼠标的xy坐标的就是renderHitData的uv。</p><p><strong>Mouse3D</strong>：</p><blockquote><p>viewport.interactiveSceneManager.mouse3D</p></blockquote><p>Mouse3D很容易和VirtualMouse混淆起来，但其实他们是很不一样的。Mouse3D是DisplayObject3D的子类，说明它其实也是一个3D物体。Mouse3D类扩展的唯一实例方法是updatePosition()，作用是计算并对齐碰撞点的法线方向。在实际应用中，我们可以用Mouse3D帮助对齐3D物体到碰撞的表面，用copyTransform()方法就可以了。</p><p><strong>关于OBJECT_OVER和OBJECT_OUT</strong>：</p><p>InteractiveSceneManager.enableOverOut属性可以开关这两个事件的检测。特别还需注意的是如果鼠标没有移动，就不会发出OBJECT_OVER和OBJECT_OUT事件。这会在某些情况下出现问题：比如鼠标没动，而物体在动的情况。这种情况可以自行通过viewport.hitTestMouse()判断来解决。所以监听这两个事件的时候要特别注意。</p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/11/16 -- <a
href="http://kevincao.com/2009/11/pv3d-3d-post-software-workflow/" title="Papervision 3D + 3D/Post Software Workflow">Papervision 3D + 3D/Post Software Workflow</a></li><li>2008/11/26 -- <a
href="http://kevincao.com/2008/11/papervision3d-rotation-tip/" title="Papervision3D旋转和矩阵">Papervision3D旋转和矩阵</a></li><li>2008/11/25 -- <a
href="http://kevincao.com/2008/11/barcinski-jeanjean-website-part3/" title="Barcinski &#038; Jeanjean Website (Part3)">Barcinski &#038; Jeanjean Website (Part3)</a></li><li>2008/04/18 -- <a
href="http://kevincao.com/2008/04/pv3d-issue-of-optimizing-cpu-usage/" title="PV3D优化CPU占用技巧">PV3D优化CPU占用技巧</a></li><li>2008/04/12 -- <a
href="http://kevincao.com/2008/04/pv3d-greatwhite/" title="PV3D GreatWhite">PV3D GreatWhite</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/74W4d6sUo3zqJSlyyq6NISVJq2s/0/da"><img src="http://feedads.g.doubleclick.net/~a/74W4d6sUo3zqJSlyyq6NISVJq2s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/74W4d6sUo3zqJSlyyq6NISVJq2s/1/da"><img src="http://feedads.g.doubleclick.net/~a/74W4d6sUo3zqJSlyyq6NISVJq2s/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=AkJQGIci69c:hC1L3TWeUZ4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=AkJQGIci69c:hC1L3TWeUZ4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=AkJQGIci69c:hC1L3TWeUZ4:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/11/interacting-with-papervision-3d/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://kevincao.com/2009/11/interacting-with-papervision-3d/</feedburner:origLink></item> <item><title>Project – Mercedes-Benz StarElite Experience Website</title><link>http://feedproxy.google.com/~r/kevincao/~3/FxOZPOo_0fQ/</link> <comments>http://kevincao.com/2009/11/project-mercedes-benz-starelite-experience-website/#comments</comments> <pubDate>Fri, 13 Nov 2009 02:26:10 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[3D]]></category> <category><![CDATA[CG]]></category> <category><![CDATA[interactive]]></category> <category><![CDATA[Mercedes-Benz]]></category> <category><![CDATA[motion]]></category> <category><![CDATA[portfolio]]></category> <category><![CDATA[project]]></category> <category><![CDATA[web-design]]></category> <category><![CDATA[website]]></category><guid isPermaLink="false">http://kevincao.com/2009/11/project-mercedes-benz-starelite-experience-website/</guid> <description><![CDATA[
Title : Mercedes-Benz StarElite Experience Website
Client : Mercedes-Benz China
Agency : Energy Source
Date : 2009.11.11
Art &#38; Design : ES Neo Team
Motion &#38; Flash : ES Guru Team
Integrate &#38; Develop : ES Tech Team
3D : Motion Magic
Related Posts :2009/07/21 -- Project &#8211; Mercedes-Benz E-Class Web Special 20092009/05/05 -- Project &#8211; Mercedes-Benz SUV Family Web Special2009/05/05 -- Project [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.starelite.com.cn/china/experience/" target="_blank"><img
style="display: inline" title="starelite" src="http://kevincao.com/wp-content/uploads/2009/11/starelite.jpg" alt="starelite" width="500" height="296" /></a></p><blockquote><p>Title : <a
href="http://www.starelite.com.cn/china/experience/">Mercedes-Benz StarElite Experience Website</a><br
/> Client : Mercedes-Benz China<br
/> Agency : Energy Source<br
/> Date : 2009.11.11</p><p>Art &amp; Design : ES Neo Team<br
/> Motion &amp; Flash : ES Guru Team<br
/> Integrate &amp; Develop : ES Tech Team<br
/> 3D : Motion Magic</p></blockquote><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/07/21 -- <a
href="http://kevincao.com/2009/07/project-mercedes-e-class-web-special-2009/" title="Project &#8211; Mercedes-Benz E-Class Web Special 2009">Project &#8211; Mercedes-Benz E-Class Web Special 2009</a></li><li>2009/05/05 -- <a
href="http://kevincao.com/2009/05/project-mercedes-benz-suv-family-web-special/" title="Project &#8211; Mercedes-Benz SUV Family Web Special">Project &#8211; Mercedes-Benz SUV Family Web Special</a></li><li>2009/05/05 -- <a
href="http://kevincao.com/2009/05/project-mercedes-benz-autoshow-2009-web-special/" title="Project &#8211; Mercedes-Benz Autoshow 2009 Web Special">Project &#8211; Mercedes-Benz Autoshow 2009 Web Special</a></li><li>2009/05/05 -- <a
href="http://kevincao.com/2009/05/project-mercedes-benz-e-class-web-special/" title="Project &#8211; Mercedes-Benz E-Class Web Special">Project &#8211; Mercedes-Benz E-Class Web Special</a></li><li>2009/03/16 -- <a
href="http://kevincao.com/2009/03/mercedes-benz-b-class-web-special/" title="Project &#8211; Mercedes-Benz B-Class Web Special">Project &#8211; Mercedes-Benz B-Class Web Special</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/_8fgc13A_xwSJKtAHObeA7imHkg/0/da"><img src="http://feedads.g.doubleclick.net/~a/_8fgc13A_xwSJKtAHObeA7imHkg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_8fgc13A_xwSJKtAHObeA7imHkg/1/da"><img src="http://feedads.g.doubleclick.net/~a/_8fgc13A_xwSJKtAHObeA7imHkg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=FxOZPOo_0fQ:Gk0Fs9I5Png:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=FxOZPOo_0fQ:Gk0Fs9I5Png:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=FxOZPOo_0fQ:Gk0Fs9I5Png:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/11/project-mercedes-benz-starelite-experience-website/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://kevincao.com/2009/11/project-mercedes-benz-starelite-experience-website/</feedburner:origLink></item> <item><title>Psyop Resources</title><link>http://feedproxy.google.com/~r/kevincao/~3/J92X_lCD9Pw/</link> <comments>http://kevincao.com/2009/10/psyop-resources/#comments</comments> <pubDate>Sat, 17 Oct 2009 11:46:36 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Inspiration]]></category> <category><![CDATA[Resources]]></category> <category><![CDATA[Video Pick]]></category> <category><![CDATA[making of]]></category> <category><![CDATA[motion]]></category> <category><![CDATA[studio]]></category> <category><![CDATA[VFX]]></category><guid isPermaLink="false">http://kevincao.com/?p=1119</guid> <description><![CDATA[Psyop不用多加介绍，喜欢Motion的应该都知道这家公司。最近他们在Vimeo上放了很多作品和幕后的高清版本（请自备楼梯）。
我最喜欢下面这段《Rewind》，展示了这一令人羡慕的团队的幕后工作的整个过程。项目中break和项目后庆祝的一幕很平实，却让我很感动，很久没有好好体会这样的激情了。
update：由于Psyop的要求，我删除了优库上的转载，喜欢的朋友请自行上Vimeo。http://vimeo.com/6717553
update2：Psyop开设了优库频道，近期就会上传，请被墙住的爱好者们保持关注。http://u.youku.com/user_show/uid_psyop
Related Posts :2008/11/20 -- Sea Orchestra: The Making Of on Vimeo2005/10/10 -- Motion &#8211; 公司&#038;工作室网址集合2009/07/08 -- Sehsucht &#8220;Idea&#8221;2009/01/13 -- Anything You Synthesize2008/11/11 -- Next Season]]></description> <content:encoded><![CDATA[<p><a
href="http://www.psyop.tv/" target="_blank">Psyop</a>不用多加介绍，喜欢Motion的应该都知道这家公司。最近他们在Vimeo上放了很多<a
href="http://bit.ly/3HW3lV" target="_blank">作品</a>和<a
href="http://bit.ly/1jkkY7" target="_blank">幕后</a>的高清版本（请自备楼梯）。</p><p>我最喜欢下面这段《Rewind》，展示了这一令人羡慕的团队的幕后工作的整个过程。项目中break和项目后庆祝的一幕很平实，却让我很感动，很久没有好好体会这样的激情了。</p><p>update：由于Psyop的要求，我删除了优库上的转载，喜欢的朋友请自行上Vimeo。<a
href="http://vimeo.com/6717553" target="_blank">http://vimeo.com/6717553</a></p><p>update2：Psyop开设了优库频道，近期就会上传，请被墙住的爱好者们保持关注。<a
href="http://u.youku.com/user_show/uid_psyop" target="_blank">http://u.youku.com/user_show/uid_psyop</a></p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2008/11/20 -- <a
href="http://kevincao.com/2008/11/sea-orchestra-the-making-of-on-vimeo/" title="Sea Orchestra: The Making Of on Vimeo">Sea Orchestra: The Making Of on Vimeo</a></li><li>2005/10/10 -- <a
href="http://kevincao.com/2005/10/motion-studio-collection/" title="Motion &#8211; 公司&#038;工作室网址集合">Motion &#8211; 公司&#038;工作室网址集合</a></li><li>2009/07/08 -- <a
href="http://kevincao.com/2009/07/sehsucht-idea/" title="Sehsucht &#8220;Idea&#8221;">Sehsucht &#8220;Idea&#8221;</a></li><li>2009/01/13 -- <a
href="http://kevincao.com/2009/01/anything-you-synthesize/" title="Anything You Synthesize">Anything You Synthesize</a></li><li>2008/11/11 -- <a
href="http://kevincao.com/2008/11/next-season/" title="Next Season">Next Season</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/67kpqDcYDlLrmzL1zCkLYlTISNI/0/da"><img src="http://feedads.g.doubleclick.net/~a/67kpqDcYDlLrmzL1zCkLYlTISNI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/67kpqDcYDlLrmzL1zCkLYlTISNI/1/da"><img src="http://feedads.g.doubleclick.net/~a/67kpqDcYDlLrmzL1zCkLYlTISNI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=J92X_lCD9Pw:Ia0JedFXJgI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=J92X_lCD9Pw:Ia0JedFXJgI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=J92X_lCD9Pw:Ia0JedFXJgI:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/10/psyop-resources/feed/</wfw:commentRss> <slash:comments>6</slash:comments> <feedburner:origLink>http://kevincao.com/2009/10/psyop-resources/</feedburner:origLink></item> <item><title>Papervision 3D 3.0</title><link>http://feedproxy.google.com/~r/kevincao/~3/0L8T27scF4k/</link> <comments>http://kevincao.com/2009/10/papervision-3-0/#comments</comments> <pubDate>Thu, 15 Oct 2009 01:26:02 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Develop]]></category> <category><![CDATA[3D]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[papervision3d]]></category><guid isPermaLink="false">http://kevincao.com/?p=1117</guid> <description><![CDATA[昨天在Twitter上发布了Papervision 3D  Team正在开发Papervision 3D下一版本的消息。在这里再补充说明一下：Papervision 3D 3.0是基于Flash Player 10分支开发的，原先的2.1版本将会停止开发，也就是说PV3D今后的版本全面转向FP10。
同时发布的消息还有：Ben Hopkins加入开发组，相信他在计算机图形方面的先锋技术能够帮助这一开源技术得到更好的提升。
新的版本通过Github分发和管理，大家可以到这里取得源代码。Git是一种先进的版本控制系统，可惜我刚玩溜SVN，又要学习新的东西了。Git在Windows上的图形界面工具可以去这里下载，这里有视频教程。有过版本控制经验的开发者应该能很快上手，Andy Zupko直夸好用哦。
Related Posts :2009/12/31 -- Best of Kevin Cao 20092009/11/18 -- Roxik新作：Verbatim机器人大战2008/10/08 -- Flash on the Beach 20082008/06/08 -- Amazing Eco Zoo Website2008/05/14 -- Rhythm of Lines 源代码放出]]></description> <content:encoded><![CDATA[<p>昨天在Twitter上发布了<a
href="http://blog.papervision3d.org/2009/10/13/papervision3d-is-shifting-gears/" target="_blank">Papervision 3D  Team正在开发Papervision 3D下一版本</a>的消息。在这里再补充说明一下：Papervision 3D 3.0是基于Flash Player 10分支开发的，原先的2.1版本将会停止开发，也就是说PV3D今后的版本全面转向FP10。</p><p>同时发布的消息还有：<a
href="http://kode80.com/">Ben Hopkins</a>加入开发组，相信他在计算机图形方面的先锋技术能够帮助这一开源技术得到更好的提升。</p><p>新的版本通过<a
href="http://github.com/" target="_blank">Github</a>分发和管理，大家可以到<a
href="http://github.com/Papervision3D/Papervision3D" target="_blank">这里</a>取得源代码。Git是一种先进的版本控制系统，可惜我刚玩溜SVN，又要学习新的东西了。Git在Windows上的图形界面工具可以去<a
href="http://code.google.com/p/msysgit/" target="_blank">这里</a>下载，<a
href="http://book.git-scm.com/6_git_on_windows.html" target="_blank">这里</a>有视频教程。有过版本控制经验的开发者应该能很快上手，<a
href="http://blog.zupko.info/?p=312" target="_blank">Andy Zupko直夸好用哦</a>。</p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/12/31 -- <a
href="http://kevincao.com/2009/12/best-of-kevin-cao-2009/" title="Best of Kevin Cao 2009">Best of Kevin Cao 2009</a></li><li>2009/11/18 -- <a
href="http://kevincao.com/2009/11/roxik-verbatim/" title="Roxik新作：Verbatim机器人大战">Roxik新作：Verbatim机器人大战</a></li><li>2008/10/08 -- <a
href="http://kevincao.com/2008/10/flash-on-the-beach-2008/" title="Flash on the Beach 2008">Flash on the Beach 2008</a></li><li>2008/06/08 -- <a
href="http://kevincao.com/2008/06/amazing-eco-zoo-website/" title="Amazing Eco Zoo Website">Amazing Eco Zoo Website</a></li><li>2008/05/14 -- <a
href="http://kevincao.com/2008/05/rhythm-of-lines-source/" title="Rhythm of Lines 源代码放出">Rhythm of Lines 源代码放出</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/cly1SKCBa24b-5KDomhaNgA6xRA/0/da"><img src="http://feedads.g.doubleclick.net/~a/cly1SKCBa24b-5KDomhaNgA6xRA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cly1SKCBa24b-5KDomhaNgA6xRA/1/da"><img src="http://feedads.g.doubleclick.net/~a/cly1SKCBa24b-5KDomhaNgA6xRA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=0L8T27scF4k:4lCH1TEOhZ4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=0L8T27scF4k:4lCH1TEOhZ4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=0L8T27scF4k:4lCH1TEOhZ4:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/10/papervision-3-0/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://kevincao.com/2009/10/papervision-3-0/</feedburner:origLink></item> <item><title>Uniqlo Collection 2009</title><link>http://feedproxy.google.com/~r/kevincao/~3/bhRNVVhytGI/</link> <comments>http://kevincao.com/2009/09/uniqlo-collection-2009/#comments</comments> <pubDate>Mon, 14 Sep 2009 03:07:36 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Thought]]></category> <category><![CDATA[Web Pick]]></category> <category><![CDATA[interactive]]></category> <category><![CDATA[Uniqlo]]></category> <category><![CDATA[web-design]]></category><guid isPermaLink="false">http://kevincao.com/?p=1115</guid> <description><![CDATA[
Uniqlo的Collection 2009网站又再次为Uniqlo  Style创造了一个新高度。这次是运用大量男女模特的T台走秀视频，更可以直接点击视频中的模特链接去商品页面。乍一看可能觉得没什么，但是请看：多人走秀的视频一共有140段左右，每个模特单独又有20多段（共68人），总共的视频是千位这个数量级。先是拍摄的工作量就已经让人头大了，还要把每段视频的模特位置信息track下来为flash所用，后期工作庞大的信息量也是很考验执行功力的。
好的互动网站就应当如此，用让人印象深刻的震撼画面去吸引眼球，用流畅的互动体验去营造出自然的沉浸感。光是大量视频堆砌的网站只是徒有一身华丽的外衣，而深入到到骨子里的互动血液才更值得去修炼。
Related Posts :2009/11/18 -- Roxik新作：Verbatim机器人大战2009/11/13 -- Project &#8211; Mercedes-Benz StarElite Experience Website2009/08/10 -- EnergyLab2009/07/21 -- Project &#8211; Mercedes-Benz E-Class Web Special 20092009/05/05 -- Diesel &#8211; Only The Brave]]></description> <content:encoded><![CDATA[<p><img
class="alignnone size-medium wp-image-1114" title="uniqlo2009" src="http://kevincao.com/wp-content/uploads/2009/09/2009-09-14_00443-500x323.jpg" alt="uniqlo2009" width="500" height="323" /></p><p>Uniqlo的<a
href="http://www.uniqlo.com/collection" target="_blank">Collection 2009</a>网站又再次为Uniqlo  Style创造了一个新高度。这次是运用大量男女模特的T台走秀视频，更可以直接点击视频中的模特链接去商品页面。乍一看可能觉得没什么，但是请看：多人走秀的视频一共有140段左右，每个模特单独又有20多段（共68人），总共的视频是千位这个数量级。先是拍摄的工作量就已经让人头大了，还要把每段视频的模特位置信息track下来为flash所用，后期工作庞大的信息量也是很考验执行功力的。</p><p>好的互动网站就应当如此，用让人印象深刻的震撼画面去吸引眼球，用流畅的互动体验去营造出自然的沉浸感。光是大量视频堆砌的网站只是徒有一身华丽的外衣，而深入到到骨子里的互动血液才更值得去修炼。</p><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/11/18 -- <a
href="http://kevincao.com/2009/11/roxik-verbatim/" title="Roxik新作：Verbatim机器人大战">Roxik新作：Verbatim机器人大战</a></li><li>2009/11/13 -- <a
href="http://kevincao.com/2009/11/project-mercedes-benz-starelite-experience-website/" title="Project &#8211; Mercedes-Benz StarElite Experience Website">Project &#8211; Mercedes-Benz StarElite Experience Website</a></li><li>2009/08/10 -- <a
href="http://kevincao.com/2009/08/energylab/" title="EnergyLab">EnergyLab</a></li><li>2009/07/21 -- <a
href="http://kevincao.com/2009/07/project-mercedes-e-class-web-special-2009/" title="Project &#8211; Mercedes-Benz E-Class Web Special 2009">Project &#8211; Mercedes-Benz E-Class Web Special 2009</a></li><li>2009/05/05 -- <a
href="http://kevincao.com/2009/05/diesel-only-the-brave/" title="Diesel &#8211; Only The Brave">Diesel &#8211; Only The Brave</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/uuPA8w7DqdqE11UKvZ31qU_bd_U/0/da"><img src="http://feedads.g.doubleclick.net/~a/uuPA8w7DqdqE11UKvZ31qU_bd_U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uuPA8w7DqdqE11UKvZ31qU_bd_U/1/da"><img src="http://feedads.g.doubleclick.net/~a/uuPA8w7DqdqE11UKvZ31qU_bd_U/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=bhRNVVhytGI:OflcO2S__sc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=bhRNVVhytGI:OflcO2S__sc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=bhRNVVhytGI:OflcO2S__sc:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/09/uniqlo-collection-2009/feed/</wfw:commentRss> <slash:comments>8</slash:comments> <feedburner:origLink>http://kevincao.com/2009/09/uniqlo-collection-2009/</feedburner:origLink></item> <item><title>RubiksCube’s Interactive Material Issue</title><link>http://feedproxy.google.com/~r/kevincao/~3/OKGZp6qgfr8/</link> <comments>http://kevincao.com/2009/09/rubikscubes-interactive-material-issue/#comments</comments> <pubDate>Fri, 04 Sep 2009 06:21:57 +0000</pubDate> <dc:creator>Kevin</dc:creator> <category><![CDATA[Develop]]></category> <category><![CDATA[ActionScript]]></category> <category><![CDATA[experiment]]></category> <category><![CDATA[papervision3d]]></category> <category><![CDATA[Quaternion]]></category><guid isPermaLink="false">http://kevincao.com/?p=1107</guid> <description><![CDATA[有人问到RubiksCube怎么加互动材质的问题，抽空做了一下，需要注意的地方写在注释里了。
查看示例 &#124; 下载（需要类库的去我之前那篇里面找）
跳转后查看详细代码。
package demo.papervision3d
&#123;
import gs.TweenLite;
import gs.easing.Elastic;
&#160;
import com.kvc.extend.papervision3d.RubiksCube;
&#160;
import org.papervision3d.core.math.Quaternion;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.view.BasicView;
&#160;
import flash.display.Bitmap;
import flash.display.StageQuality;
import flash.events.*;
&#160;
/**
* @author Kevin Cao
*/
&#91;SWF&#40;width=&#34;1000&#34;, height=&#34;600&#34;, backgroundColor=&#34;#cccccc&#34;, frameRate=&#34;30&#34;&#41;&#93;
public class RubiksCubeDemo2 extends BasicView
&#123;
&#160;
private var rubiksCube : RubiksCube;
&#160;
&#91;Embed&#40;source=&#34;../../../assets/front.jpg&#34;&#41;&#93;
private var FrontAsset : Class;
&#160;
&#91;Embed&#40;source=&#34;../../../assets/back.jpg&#34;&#41;&#93;
private var BackAsset : Class;
&#160;
&#91;Embed&#40;source=&#34;../../../assets/left.jpg&#34;&#41;&#93;
private var LeftAsset : Class;
&#160;
&#91;Embed&#40;source=&#34;../../../assets/right.jpg&#34;&#41;&#93;
private var RightAsset : Class;
&#160;
&#91;Embed&#40;source=&#34;../../../assets/top.jpg&#34;&#41;&#93;
private var TopAsset : Class;
&#160;
&#91;Embed&#40;source=&#34;../../../assets/bottom.jpg&#34;&#41;&#93;
private var BottomAsset : Class;
&#160;
private [...]]]></description> <content:encoded><![CDATA[<p>有人问到RubiksCube怎么加互动材质的问题，抽空做了一下，需要注意的地方写在注释里了。<br
/> <a
href="http://kevincao.com/experiment/flash/pv3d/rubikscube2/" target="_blank">查看示例</a> | <a
href="http://dl.getdropbox.com/u/129805/kevincao/RubiksCubeDemo2.as" target="_blank">下载</a>（需要类库的去我<a
href="http://kevincao.com/2009/04/experiment-05-rubiks-cube/" target="_blank">之前那篇</a>里面找）</p><p>跳转后查看详细代码。<span
id="more-1107"></span></p><pre class="actionscript">package demo.<span style="color: #FF9999;">papervision3d</span>
<span style="color: #b1b100;">&#123;</span>
	<span style="color: #0099cc;">import</span> gs.<span style="color: #FF9999;">TweenLite</span>;
	<span style="color: #0099cc;">import</span> gs.<span style="color: #FF9999;">easing</span>.<span style="color: #FF9999;">Elastic</span>;
&nbsp;
	<span style="color: #0099cc;">import</span> com.<span style="color: #FF9999;">kvc</span>.<span style="color: #FF9999;">extend</span>.<span style="color: #FF9999;">papervision3d</span>.<span style="color: #FF9999;">RubiksCube</span>;
&nbsp;
	<span style="color: #0099cc;">import</span> org.<span style="color: #FF9999;">papervision3d</span>.<span style="color: #FF9999;">core</span>.<span style="color: #0099cc;">math</span>.<span style="color: #FF9999;">Quaternion</span>;
	<span style="color: #0099cc;">import</span> org.<span style="color: #FF9999;">papervision3d</span>.<span style="color: #FF9999;">events</span>.<span style="color: #FF9999;">InteractiveScene3DEvent</span>;
	<span style="color: #0099cc;">import</span> org.<span style="color: #FF9999;">papervision3d</span>.<span style="color: #FF9999;">materials</span>.<span style="color: #FF9999;">BitmapMaterial</span>;
	<span style="color: #0099cc;">import</span> org.<span style="color: #FF9999;">papervision3d</span>.<span style="color: #FF9999;">objects</span>.<span style="color: #FF9999;">DisplayObject3D</span>;
	<span style="color: #0099cc;">import</span> org.<span style="color: #FF9999;">papervision3d</span>.<span style="color: #FF9999;">view</span>.<span style="color: #FF9999;">BasicView</span>;
&nbsp;
	<span style="color: #0099cc;">import</span> flash.<span style="color: #FF9999;">display</span>.<span style="color: #FF9999;">Bitmap</span>;
	<span style="color: #0099cc;">import</span> flash.<span style="color: #FF9999;">display</span>.<span style="color: #FF9999;">StageQuality</span>;
	<span style="color: #0099cc;">import</span> flash.<span style="color: #FF9999;">events</span>.<span style="color: #FF9999;">*</span>;
&nbsp;
	<span style="color: #666666; ">/**
	 * @author Kevin Cao
	 */</span>
	<span style="color: #b1b100;">&#91;</span>SWF<span style="color: #b1b100;">&#40;</span><span style="color: #0099cc;">width</span>=<span style="color: #66cc66;">&quot;1000&quot;</span>, <span style="color: #0099cc;">height</span>=<span style="color: #66cc66;">&quot;600&quot;</span>, <span style="color: #0099cc;">backgroundColor</span>=<span style="color: #66cc66;">&quot;#cccccc&quot;</span>, frameRate=<span style="color: #66cc66;">&quot;30&quot;</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#93;</span>
	<span style="color: #0099cc;">public</span> <span style="color: #0099cc; font-weight: bold;">class</span> RubiksCubeDemo2 <span style="color: #0099cc;">extends</span> BasicView
	<span style="color: #b1b100;">&#123;</span>
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> rubiksCube : RubiksCube;
&nbsp;
		<span style="color: #b1b100;">&#91;</span>Embed<span style="color: #b1b100;">&#40;</span>source=<span style="color: #66cc66;">&quot;../../../assets/front.jpg&quot;</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#93;</span>
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> FrontAsset : <span style="color: #0099cc; font-weight: bold;">Class</span>;
&nbsp;
		<span style="color: #b1b100;">&#91;</span>Embed<span style="color: #b1b100;">&#40;</span>source=<span style="color: #66cc66;">&quot;../../../assets/back.jpg&quot;</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#93;</span>
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> BackAsset : <span style="color: #0099cc; font-weight: bold;">Class</span>;
&nbsp;
		<span style="color: #b1b100;">&#91;</span>Embed<span style="color: #b1b100;">&#40;</span>source=<span style="color: #66cc66;">&quot;../../../assets/left.jpg&quot;</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#93;</span>
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> LeftAsset : <span style="color: #0099cc; font-weight: bold;">Class</span>;
&nbsp;
		<span style="color: #b1b100;">&#91;</span>Embed<span style="color: #b1b100;">&#40;</span>source=<span style="color: #66cc66;">&quot;../../../assets/right.jpg&quot;</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#93;</span>
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> RightAsset : <span style="color: #0099cc; font-weight: bold;">Class</span>;
&nbsp;
		<span style="color: #b1b100;">&#91;</span>Embed<span style="color: #b1b100;">&#40;</span>source=<span style="color: #66cc66;">&quot;../../../assets/top.jpg&quot;</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#93;</span>
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> TopAsset : <span style="color: #0099cc; font-weight: bold;">Class</span>;
&nbsp;
		<span style="color: #b1b100;">&#91;</span>Embed<span style="color: #b1b100;">&#40;</span>source=<span style="color: #66cc66;">&quot;../../../assets/bottom.jpg&quot;</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#93;</span>
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> BottomAsset : <span style="color: #0099cc; font-weight: bold;">Class</span>;
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> <span style="color: #0099cc;">isDown</span> : <span style="color: #0099cc;">Boolean</span> = <span style="color: #0099cc; font-weight: bold;">false</span>;
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> <span style="color: #0099cc;">_x</span> : <span style="color: #0099cc;">Number</span>;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> <span style="color: #0099cc;">_y</span> : <span style="color: #0099cc;">Number</span>;
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> _vx : <span style="color: #0099cc;">Number</span> = <span style="color: #CC3366;">0</span>;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">var</span> _vy : <span style="color: #0099cc;">Number</span> = <span style="color: #CC3366;">0</span>;
&nbsp;
		<span style="color: #0099cc;">public</span> <span style="color: #0099cc; font-weight: bold;">function</span> RubiksCubeDemo2<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span>
		<span style="color: #b1b100;">&#123;</span>
			init<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span>;
		<span style="color: #b1b100;">&#125;</span>
&nbsp;
		protected <span style="color: #0099cc; font-weight: bold;">function</span> init<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span> : <span style="color: #0099cc;">void</span>
		<span style="color: #b1b100;">&#123;</span>
			<span style="color: #666666; ">// viewport's interactive set to true.</span>
			viewport.<span style="color: #FF9999;">interactive</span> = <span style="color: #0099cc; font-weight: bold;">true</span>;
&nbsp;
			<span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">z</span> = <span style="color: #CC3366;">-1500</span>;
			<span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">focus</span> = <span style="color: #CC3366;">200</span>;
			<span style="color: #0099cc;">camera</span>.<span style="color: #FF9999;">zoom</span> = <span style="color: #CC3366;">2</span>;
&nbsp;
			<span style="color: #0099cc; font-weight: bold;">var</span> frontMat : BitmapMaterial = <span style="color: #0099cc; font-weight: bold;">new</span> BitmapMaterial<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> FrontAsset<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span> as Bitmap<span style="color: #b1b100;">&#41;</span>.<span style="color: #FF9999;">bitmapData</span><span style="color: #b1b100;">&#41;</span>;
			<span style="color: #0099cc; font-weight: bold;">var</span> backtMat : BitmapMaterial = <span style="color: #0099cc; font-weight: bold;">new</span> BitmapMaterial<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> BackAsset<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span> as Bitmap<span style="color: #b1b100;">&#41;</span>.<span style="color: #FF9999;">bitmapData</span><span style="color: #b1b100;">&#41;</span>;
			<span style="color: #0099cc; font-weight: bold;">var</span> leftMat : BitmapMaterial = <span style="color: #0099cc; font-weight: bold;">new</span> BitmapMaterial<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> LeftAsset<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span> as Bitmap<span style="color: #b1b100;">&#41;</span>.<span style="color: #FF9999;">bitmapData</span><span style="color: #b1b100;">&#41;</span>;
			<span style="color: #0099cc; font-weight: bold;">var</span> rightMat : BitmapMaterial = <span style="color: #0099cc; font-weight: bold;">new</span> BitmapMaterial<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> RightAsset<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span> as Bitmap<span style="color: #b1b100;">&#41;</span>.<span style="color: #FF9999;">bitmapData</span><span style="color: #b1b100;">&#41;</span>;
			<span style="color: #0099cc; font-weight: bold;">var</span> topMat : BitmapMaterial = <span style="color: #0099cc; font-weight: bold;">new</span> BitmapMaterial<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> TopAsset<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span> as Bitmap<span style="color: #b1b100;">&#41;</span>.<span style="color: #FF9999;">bitmapData</span><span style="color: #b1b100;">&#41;</span>;
			<span style="color: #0099cc; font-weight: bold;">var</span> bottomMat : BitmapMaterial = <span style="color: #0099cc; font-weight: bold;">new</span> BitmapMaterial<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">new</span> BottomAsset<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span> as Bitmap<span style="color: #b1b100;">&#41;</span>.<span style="color: #FF9999;">bitmapData</span><span style="color: #b1b100;">&#41;</span>;
&nbsp;
			<span style="color: #666666; ">// material's interactive set to true.</span>
			frontMat.<span style="color: #FF9999;">interactive</span> = backtMat.<span style="color: #FF9999;">interactive</span> = leftMat.<span style="color: #FF9999;">interactive</span> = rightMat.<span style="color: #FF9999;">interactive</span> = topMat.<span style="color: #FF9999;">interactive</span> = bottomMat.<span style="color: #FF9999;">interactive</span> = <span style="color: #0099cc; font-weight: bold;">true</span>;
&nbsp;
			rubiksCube = <span style="color: #0099cc; font-weight: bold;">new</span> RubiksCube<span style="color: #b1b100;">&#40;</span>RubiksCube.<span style="color: #FF9999;">createMaterialListArray</span><span style="color: #b1b100;">&#40;</span>frontMat, backtMat, leftMat, rightMat, topMat, bottomMat<span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#41;</span>;
&nbsp;
			<span style="color: #666666; ">// IMPORTANT: add event listener to each child cube rather than rubikscube object itself.</span>
			<span style="color: #FF9999;">for</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc; font-weight: bold;">var</span> i : uint = <span style="color: #CC3366;">0</span>;i &amp;lt; <span style="color: #CC3366;">26</span>; i++<span style="color: #b1b100;">&#41;</span>
			<span style="color: #b1b100;">&#123;</span>
				rubiksCube.<span style="color: #FF9999;">getChildByName</span><span style="color: #b1b100;">&#40;</span><span style="color: #66cc66;">&quot;cube&quot;</span> + <span style="color: #b1b100;">&#40;</span>i + <span style="color: #CC3366;">1</span><span style="color: #b1b100;">&#41;</span><span style="color: #b1b100;">&#41;</span>.<span style="color: #FF9999;">addEventListener</span><span style="color: #b1b100;">&#40;</span>InteractiveScene3DEvent.<span style="color: #FF9999;">OBJECT_CLICK</span>, clickHandler<span style="color: #b1b100;">&#41;</span>;
			<span style="color: #b1b100;">&#125;</span>
&nbsp;
			scene.<span style="color: #FF9999;">addChild</span><span style="color: #b1b100;">&#40;</span>rubiksCube<span style="color: #b1b100;">&#41;</span>;
&nbsp;
			startRendering<span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span>;
&nbsp;
			<span style="color: #0099cc;">stage</span>.<span style="color: #FF9999;">addEventListener</span><span style="color: #b1b100;">&#40;</span>KeyboardEvent.<span style="color: #FF9999;">KEY_UP</span>, keyUpHandler<span style="color: #b1b100;">&#41;</span>;
			<span style="color: #0099cc;">stage</span>.<span style="color: #FF9999;">addEventListener</span><span style="color: #b1b100;">&#40;</span>MouseEvent.<span style="color: #FF9999;">MOUSE_DOWN</span>, downHandler<span style="color: #b1b100;">&#41;</span>;
			<span style="color: #0099cc;">stage</span>.<span style="color: #FF9999;">addEventListener</span><span style="color: #b1b100;">&#40;</span>MouseEvent.<span style="color: #FF9999;">MOUSE_UP</span>, upHandler<span style="color: #b1b100;">&#41;</span>;
&nbsp;
			<span style="color: #0099cc;">stage</span>.<span style="color: #0099cc;">quality</span> = StageQuality.<span style="color: #FF9999;">LOW</span>;
		<span style="color: #b1b100;">&#125;</span>
&nbsp;
		override protected <span style="color: #0099cc; font-weight: bold;">function</span> onRenderTick<span style="color: #b1b100;">&#40;</span>evt : Event = <span style="color: #0099cc; font-weight: bold;">null</span><span style="color: #b1b100;">&#41;</span> : <span style="color: #0099cc;">void</span>
		<span style="color: #b1b100;">&#123;</span>
			<span style="color: #FF9999;">if</span><span style="color: #b1b100;">&#40;</span>!<span style="color: #0099cc;">isDown</span><span style="color: #b1b100;">&#41;</span>
			<span style="color: #b1b100;">&#123;</span>
				<span style="color: #FF9999;">if</span><span style="color: #b1b100;">&#40;</span>_vx != <span style="color: #CC3366;">0</span> || _vy != <span style="color: #CC3366;">0</span><span style="color: #b1b100;">&#41;</span>
				<span style="color: #b1b100;">&#123;</span>
					_vx *= .<span style="color: #CC3366;">9</span>;
					_vy *= .<span style="color: #CC3366;">9</span>;
					<span style="color: #FF9999;">if</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc;">Math</span>.<span style="color: #0099cc;">abs</span><span style="color: #b1b100;">&#40;</span>_vx<span style="color: #b1b100;">&#41;</span> &amp;lt; .<span style="color: #CC3366;">5</span><span style="color: #b1b100;">&#41;</span>
					<span style="color: #b1b100;">&#123;</span>
						_vx = <span style="color: #CC3366;">0</span>;
					<span style="color: #b1b100;">&#125;</span>
					<span style="color: #FF9999;">if</span><span style="color: #b1b100;">&#40;</span><span style="color: #0099cc;">Math</span>.<span style="color: #0099cc;">abs</span><span style="color: #b1b100;">&#40;</span>_vy<span style="color: #b1b100;">&#41;</span> &amp;lt; .<span style="color: #CC3366;">5</span><span style="color: #b1b100;">&#41;</span>
					<span style="color: #b1b100;">&#123;</span>
						_vy = <span style="color: #CC3366;">0</span>;
					<span style="color: #b1b100;">&#125;</span>
					<span style="color: #0099cc; font-weight: bold;">var</span> q : Quaternion = Quaternion.<span style="color: #FF9999;">createFromEuler</span><span style="color: #b1b100;">&#40;</span>-_vx, <span style="color: #CC3366;">0</span>, -_vy, <span style="color: #0099cc; font-weight: bold;">true</span><span style="color: #b1b100;">&#41;</span>;
					rubiksCube.<span style="color: #FF9999;">transform</span>.<span style="color: #FF9999;">calculateMultiply3x3</span><span style="color: #b1b100;">&#40;</span>q.<span style="color: #FF9999;">matrix</span>, rubiksCube.<span style="color: #FF9999;">transform</span><span style="color: #b1b100;">&#41;</span>;
				<span style="color: #b1b100;">&#125;</span>
			<span style="color: #b1b100;">&#125;</span>
&nbsp;
			<span style="color: #0099cc;">super</span>.<span style="color: #FF9999;">onRenderTick</span><span style="color: #b1b100;">&#40;</span><span style="color: #b1b100;">&#41;</span>;
		<span style="color: #b1b100;">&#125;</span>
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">function</span> keyUpHandler<span style="color: #b1b100;">&#40;</span>evt : KeyboardEvent<span style="color: #b1b100;">&#41;</span> : <span style="color: #0099cc;">void</span>
		<span style="color: #b1b100;">&#123;</span>
			<span style="color: #0099cc; font-weight: bold;">var</span> command : <span style="color: #0099cc;">String</span> = <span style="color: #0099cc;">String</span>.<span style="color: #0099cc;">fromCharCode</span><span style="color: #b1b100;">&#40;</span>evt.<span style="color: #FF9999;">charCode</span><span style="color: #b1b100;">&#41;</span>;
			<span style="color: #FF9999;">switch</span><span style="color: #b1b100;">&#40;</span>command<span style="color: #b1b100;">&#41;</span>
			<span style="color: #b1b100;">&#123;</span>
				<span style="color: #666666; ">//default command</span>
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;l&quot;</span>:
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;r&quot;</span>:
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;u&quot;</span>:
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;d&quot;</span>:
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;f&quot;</span>:
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;b&quot;</span>:
					<span style="color: #FF9999;">if</span><span style="color: #b1b100;">&#40;</span>evt.<span style="color: #FF9999;">ctrlKey</span> &amp;amp;&amp;amp; evt.<span style="color: #FF9999;">altKey</span><span style="color: #b1b100;">&#41;</span>
					<span style="color: #b1b100;">&#123;</span>
						<span style="color: #666666; ">// reverse</span>
						rubiksCube.<span style="color: #FF9999;">singleRotate</span><span style="color: #b1b100;">&#40;</span>command + <span style="color: #66cc66;">&quot;'&quot;</span><span style="color: #b1b100;">&#41;</span>;
					<span style="color: #b1b100;">&#125;</span> <span style="color: #FF9999;">else</span> <span style="color: #b1b100;">&#123;</span>
						rubiksCube.<span style="color: #FF9999;">singleRotate</span><span style="color: #b1b100;">&#40;</span>command<span style="color: #b1b100;">&#41;</span>;
					<span style="color: #b1b100;">&#125;</span>
					<span style="color: #FF9999;">break</span>;
&nbsp;
				<span style="color: #666666; ">//combo command</span>
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;1&quot;</span>:
					rubiksCube.<span style="color: #FF9999;">comboRotate</span><span style="color: #b1b100;">&#40;</span><span style="color: #66cc66;">&quot;l-u-b'-d-r'&quot;</span>, <span style="color: #CC3366;">2</span><span style="color: #b1b100;">&#41;</span>;
					<span style="color: #FF9999;">break</span>;
				<span style="color: #FF9999;">case</span> <span style="color: #66cc66;">&quot;2&quot;</span>:
					rubiksCube.<span style="color: #FF9999;">comboRotate</span><span style="color: #b1b100;">&#40;</span><span style="color: #66cc66;">&quot;r-d'-b-u'-l'&quot;</span>, <span style="color: #CC3366;">2</span><span style="color: #b1b100;">&#41;</span>;
					<span style="color: #FF9999;">break</span>;
			<span style="color: #b1b100;">&#125;</span>
		<span style="color: #b1b100;">&#125;</span>
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">function</span> downHandler<span style="color: #b1b100;">&#40;</span>event : MouseEvent<span style="color: #b1b100;">&#41;</span> : <span style="color: #0099cc;">void</span>
		<span style="color: #b1b100;">&#123;</span>
			<span style="color: #0099cc;">_x</span> = mouseX;
			<span style="color: #0099cc;">_y</span> = mouseY;
			<span style="color: #0099cc;">isDown</span> = <span style="color: #0099cc; font-weight: bold;">true</span>;
			<span style="color: #0099cc;">stage</span>.<span style="color: #FF9999;">addEventListener</span><span style="color: #b1b100;">&#40;</span>MouseEvent.<span style="color: #FF9999;">MOUSE_MOVE</span>, moveHandler<span style="color: #b1b100;">&#41;</span>;
		<span style="color: #b1b100;">&#125;</span>
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">function</span> upHandler<span style="color: #b1b100;">&#40;</span>event : MouseEvent<span style="color: #b1b100;">&#41;</span> : <span style="color: #0099cc;">void</span>
		<span style="color: #b1b100;">&#123;</span>
			<span style="color: #0099cc;">isDown</span> = <span style="color: #0099cc; font-weight: bold;">false</span>;
			<span style="color: #0099cc;">stage</span>.<span style="color: #FF9999;">removeEventListener</span><span style="color: #b1b100;">&#40;</span>MouseEvent.<span style="color: #FF9999;">MOUSE_MOVE</span>, moveHandler<span style="color: #b1b100;">&#41;</span>;
		<span style="color: #b1b100;">&#125;</span>
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">function</span> moveHandler<span style="color: #b1b100;">&#40;</span>event : MouseEvent<span style="color: #b1b100;">&#41;</span> : <span style="color: #0099cc;">void</span>
		<span style="color: #b1b100;">&#123;</span>
			_vx = <span style="color: #b1b100;">&#40;</span>mouseX - <span style="color: #0099cc;">_x</span><span style="color: #b1b100;">&#41;</span> * .<span style="color: #CC3366;">4</span>;
			_vy = <span style="color: #b1b100;">&#40;</span>mouseY - <span style="color: #0099cc;">_y</span><span style="color: #b1b100;">&#41;</span> * .<span style="color: #CC3366;">4</span>;
			<span style="color: #0099cc;">_x</span> = mouseX;
			<span style="color: #0099cc;">_y</span> = mouseY;
&nbsp;
			<span style="color: #0099cc; font-weight: bold;">var</span> q : Quaternion = Quaternion.<span style="color: #FF9999;">createFromEuler</span><span style="color: #b1b100;">&#40;</span>-_vx, <span style="color: #CC3366;">0</span>, -_vy, <span style="color: #0099cc; font-weight: bold;">true</span><span style="color: #b1b100;">&#41;</span>;
			rubiksCube.<span style="color: #FF9999;">transform</span>.<span style="color: #FF9999;">calculateMultiply3x3</span><span style="color: #b1b100;">&#40;</span>q.<span style="color: #FF9999;">matrix</span>, rubiksCube.<span style="color: #FF9999;">transform</span><span style="color: #b1b100;">&#41;</span>;
		<span style="color: #b1b100;">&#125;</span>
&nbsp;
		<span style="color: #0099cc;">private</span> <span style="color: #0099cc; font-weight: bold;">function</span> clickHandler<span style="color: #b1b100;">&#40;</span>event : InteractiveScene3DEvent<span style="color: #b1b100;">&#41;</span> : <span style="color: #0099cc;">void</span>
		<span style="color: #b1b100;">&#123;</span>
			<span style="color: #0099cc; font-weight: bold;">var</span> cube : DisplayObject3D = event.<span style="color: #0099cc;">target</span> as DisplayObject3D;
&nbsp;
			<span style="color: #666666; ">// tricky: make scale and rotation value get updated from transform matrix.</span>
			cube.<span style="color: #FF9999;">yaw</span><span style="color: #b1b100;">&#40;</span><span style="color: #CC3366;">0</span><span style="color: #b1b100;">&#41;</span>;
&nbsp;
			<span style="color: #0099cc; font-weight: bold;">var</span> s : <span style="color: #0099cc;">Number</span> = cube.<span style="color: #FF9999;">scale</span> == <span style="color: #CC3366;">1</span> ? <span style="color: #CC3366;">0.8</span> : <span style="color: #CC3366;">1</span>;
			TweenLite.<span style="color: #FF9999;">to</span><span style="color: #b1b100;">&#40;</span>cube, <span style="color: #CC3366;">0.3</span>, <span style="color: #b1b100;">&#123;</span>scale:s, ease:Elastic.<span style="color: #FF9999;">easeOut</span><span style="color: #b1b100;">&#125;</span><span style="color: #b1b100;">&#41;</span>;
		<span style="color: #b1b100;">&#125;</span>
	<span style="color: #b1b100;">&#125;</span>
<span style="color: #b1b100;">&#125;</span></pre><h3  class="related_post_title">Related Posts :</h3><ul
class="related_post"><li>2009/04/20 -- <a
href="http://kevincao.com/2009/04/quaternion-rotation-demo/" title="Quaternion Rotation Demo">Quaternion Rotation Demo</a></li><li>2009/04/18 -- <a
href="http://kevincao.com/2009/04/experiment-05-rubiks-cube/" title="Experiment #05: Rubik&#8217;s Cube">Experiment #05: Rubik&#8217;s Cube</a></li><li>2008/11/26 -- <a
href="http://kevincao.com/2008/11/experiment-03-four-cameras-viewer/" title="Experiment #03: Four Cameras Viewer">Experiment #03: Four Cameras Viewer</a></li><li>2009/12/31 -- <a
href="http://kevincao.com/2009/12/best-of-kevin-cao-2009/" title="Best of Kevin Cao 2009">Best of Kevin Cao 2009</a></li><li>2009/12/08 -- <a
href="http://kevincao.com/2009/12/experiment-07-papervision-3d-camera-rig/" title="Experiment #07: Papervision 3D Camera Rig">Experiment #07: Papervision 3D Camera Rig</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/64HXmja4hu-0NGHZITf_XgBmj-4/0/da"><img src="http://feedads.g.doubleclick.net/~a/64HXmja4hu-0NGHZITf_XgBmj-4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/64HXmja4hu-0NGHZITf_XgBmj-4/1/da"><img src="http://feedads.g.doubleclick.net/~a/64HXmja4hu-0NGHZITf_XgBmj-4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kevincao?a=OKGZp6qgfr8:aPindpyaPtY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kevincao?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kevincao?a=OKGZp6qgfr8:aPindpyaPtY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/kevincao?i=OKGZp6qgfr8:aPindpyaPtY:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://kevincao.com/2009/09/rubikscubes-interactive-material-issue/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://kevincao.com/2009/09/rubikscubes-interactive-material-issue/</feedburner:origLink></item> </channel> </rss><!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk
Database Caching using memcached

Served from: apache2-kant.hulk.dreamhost.com @ 2010-02-08 23:11:32 -->
