<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jp.ferv.blog &#187; Papervision3D</title>
	<atom:link href="http://ferv.jp/blog/tag/papervision3d/feed/" rel="self" type="application/rss+xml" />
	<link>http://ferv.jp/blog</link>
	<description>「ActionScriptは素晴らしい。コンパイルする価値がある。」って偉い人が言ってた。</description>
	<lastBuildDate>Sun, 15 Aug 2010 00:42:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DisplayObject3D.buttonMode</title>
		<link>http://ferv.jp/blog/2009/11/11/displayobject3d-buttonmode/</link>
		<comments>http://ferv.jp/blog/2009/11/11/displayobject3d-buttonmode/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 19:46:34 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://ferv.jp/blog/?p=1073</guid>
		<description><![CDATA[Papervision3DのDisplayObject3DにはbuttonModeがないけど、実装するとしたらこんな感じなのかなー。左の青いのがbuttonModeをtrueにしたPlaneで、右の赤いのがbuttonM [...]]]></description>
			<content:encoded><![CDATA[<p>Papervision3DのDisplayObject3DにはbuttonModeがないけど、実装するとしたらこんな感じなのかなー。左の青いのがbuttonModeをtrueにしたPlaneで、右の赤いのがbuttonModeをfalseにしたPlane。<br />
<code>viewport.containerSprite.buttonMode = true;</code>ってしちゃうと、Scene3Dにaddした全てのオブジェクト上でボタンカーソルになっちゃうから、下のサンプルみたいにオブジェクト毎にbuttonModeを切り替えられないし・・・</p>
<div style="text-align:center;width:465px;"><iframe title="DisplayObject3D.buttonMode - wonderfl build flash online" scrolling="no" src="http://wonderfl.net/blogparts/c63dd924cb3e2e7310aea28ad81082877eb38653" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.net/code/c63dd924cb3e2e7310aea28ad81082877eb38653" title="DisplayObject3D.buttonMode - wonderfl build flash online">DisplayObject3D.buttonMode &#8211; wonderfl build flash online</a></div>
<p>ただ、このサンプルみたくオブジェクトが動いてる時にマウスアウトイベントが取れないことがある。Planeがカメラに平行なときにPlaneの端にマウスオーバーしてマウスを止めておいて回転で勝手にマウスアウトになるタイミングとか。こいつを避けるためにはもう一工夫いりそう。</p>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2009/11/11/displayobject3d-buttonmode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>移行完了</title>
		<link>http://ferv.jp/blog/2009/10/20/complete_transition/</link>
		<comments>http://ferv.jp/blog/2009/10/20/complete_transition/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 20:22:21 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[BetweenAS3]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://ferv.jp/blog/?p=933</guid>
		<description><![CDATA[したと思う。今までディレクトリとか気にしてなかったけど、一応今回の移行でブログより上の階層つくってみた。BetweenAS3をどうしても使ってみたくてトップページを作った。
BetweenAS3使った感想は、最速（Be [...]]]></description>
			<content:encoded><![CDATA[<p>したと思う。今までディレクトリとか気にしてなかったけど、一応今回の移行でブログより上の階層つくってみた。BetweenAS3をどうしても使ってみたくて<a href="http://ferv.jp/">トップページ</a>を作った。</p>
<p>BetweenAS3使った感想は、最速（<a href="http://www.be-interactive.org/works/20090428/Particle/index.html">BetweenAS3 Performance Comparison Demo</a>）で機能満載（<a href="http://clockmaker.jp/blog/2009/07/betweenas3/">BetweenAS3で時間軸を制御! ActionScriptでタイムリマップを試してみる</a>）でもう鼻血でた。すごすぎる。<br/>
そしてなんだろう。使用感（スクリプト的な意味で）が肌に合っちゃった。恋なの？<br/>
とりあえずトップでのトランジションは全部BetweenAS3。ちなみに3Dのレンダリング（といってもCubeしか使ってないけど・・・）はPapervision3D。<br/>
わくわくしてきまくりんぐなんで、BetweenAS3未体験な方は<a href="http://www.libspark.org/wiki/BetweenAS3">BetweenAS3</a>を見ながら使ってみるべき。</p>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2009/10/20/complete_transition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FrustumClippingとCamera3D.target</title>
		<link>http://ferv.jp/blog/2009/06/04/frustumclipping_camera3dtarget/</link>
		<comments>http://ferv.jp/blog/2009/06/04/frustumclipping_camera3dtarget/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 06:51:42 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=852</guid>
		<description><![CDATA[Planeを倒して床を表現するとき、Planeがカメラに近いところでカリングされてしまう。

これを解消するために、レンダラのclippingをFrustumClippingにする。けど、カメラにtargetを指定しているとなんかFrustumClippingされてる領域がカメラを回す方向と逆にずれる。

仕]]></description>
			<content:encoded><![CDATA[<p>Planeを倒して床を表現するとき、Planeがカメラに近いところでカリングされてしまう。</p>
<p><a rel="shadowbox;width=600;height=400;" href="http://ferv.jp/blog/wp-content/uploads/2009/06/cameratargetwithfrustumclipping_target.swf"><img src="http://ferv.jp/blog/wp-content/uploads/2009/06/target.png" alt="target" title="target" width="600" height="150" class="alignnone size-full wp-image-857" /></a></p>
<p>これを解消するために、レンダラのclippingをFrustumClippingにする。けど、カメラにtargetを指定しているとなんかFrustumClippingされてる領域がカメラを回す方向と逆にずれる。</p>
<p><a rel="shadowbox;width=600;height=400;" href="http://ferv.jp/blog/wp-content/uploads/2009/06/cameratargetwithfrustumclipping_target_clipping.swf"><img src="http://ferv.jp/blog/wp-content/uploads/2009/06/target_clipping.png" alt="target_clipping" title="target_clipping" width="600" height="150" class="alignnone size-full wp-image-857" /></a><p>
<p>仕方ないから、カメラにtargetを指定するのをやめて、カメラ位置を更新する毎にlookAt()してみる。</p>
<p><a rel="shadowbox;width=600;height=400;" href="http://ferv.jp/blog/wp-content/uploads/2009/06/cameratargetwithfrustumclipping_lookat_clipping.swf"><img src="http://ferv.jp/blog/wp-content/uploads/2009/06/lookat_clipping.png" alt="lookat_clipping" title="lookat_clipping" width="600" height="150" class="alignnone size-full wp-image-858" /></a><p>
<p>で、一応解決。<br />
FrustumClippingクラスについては<a href="http://blog.r3c7.net/?p=229">[PV3D2.0] FrustumClipping</a><span class="at"><a href="http://blog.r3c7.net/">note.x</a></span>を参照。</p>
<p>最後のサンプルの「FrustumClippingして、lookAt()でカメラを振り向かせる」ソース。</p>
	<ul class="syntax_hilite_header">		<li class="language">ActionScript</li>		<li class="filename">CameraTargetWithFrustumClipping.as</li>	<li class="source"><a href="#actionscript-2_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="actionscript-2_plane"><pre>package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import org.papervision3d.cameras.Camera3D;
	import org.papervision3d.core.clipping.FrustumClipping;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.materials.special.CompositeMaterial;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.objects.primitives.Cone;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.render.BasicRenderEngine;
	import org.papervision3d.scenes.Scene3D;
	import org.papervision3d.view.Viewport3D;

	[SWF(backgroundColor = 0x000000, width = 600, height = 400, frameRate = 30)]
	public class CameraTargetWithFrustumClipping extends Sprite
	{

		private var _render:BasicRenderEngine;
		private var _scene:Scene3D;
		private var _camera:Camera3D;
		private var _viewport:Viewport3D;

		private var _floor:Plane;
		private var _cone:Cone;

		private var _cameraRadius:Number;
		private var _cameraAngle:Number;

		public function CameraTargetWithFrustumClipping()
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
		}

		private function onAddedToStage(e:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
			init();
		}

		private function init():void
		{
			var colorMaterial:ColorMaterial = new ColorMaterial(0x0099CC);
			var wireframeMaterial:WireframeMaterial = new WireframeMaterial(0x00CCFF);
			var compositeMaterial:CompositeMaterial = new CompositeMaterial();
			compositeMaterial.addMaterial(colorMaterial);
			compositeMaterial.addMaterial(wireframeMaterial);

			init3D();
			initFloor(compositeMaterial);
			initCone(compositeMaterial);
			initEvent();
		}

		private function init3D():void
		{
			_cameraRadius = 1000;
			_cameraAngle = 0;

			_render = new BasicRenderEngine();
			_render.clipping = new FrustumClipping(FrustumClipping.ALL);
			_scene = new Scene3D();
			_camera = new Camera3D();
			_viewport = new Viewport3D(stage.stageWidth, stage.stageHeight);

			addChild(_viewport);
		}

		private function initFloor(compositeMaterial:CompositeMaterial):void
		{
			_floor = new Plane(compositeMaterial, 2000, 2000, 4, 4);
			_floor.rotationX = 90;
			_floor.y = -350;

			_scene.addChild(_floor);
		}

		private function initCone(compositeMaterial:CompositeMaterial):void
		{
			_cone = new Cone(compositeMaterial, 300, 400);
			//_camera.target = _cone;    // _camera.target を使うのをやめて

			_scene.addChild(_cone);
		}

		private function initEvent():void
		{
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}

		private function onEnterFrame(e:Event):void
		{
			_cameraAngle += Math.PI / 180 * 3;
			_camera.x = _cameraRadius * Math.cos(_cameraAngle);
			_camera.z = _cameraRadius * Math.sin(_cameraAngle);
			_camera.lookAt(_cone);       // _camera.lookAt() を使う

			render();
		}

		private function render():void
		{
			_render.renderScene(_scene, _camera, _viewport);
		}


	}

}</pre></div><div class="syntax_hilite">
<div id="actionscript-2">
<div class="actionscript actionscript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">package</div></li>
<li class="li2"><div class="de2"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="me1">Sprite</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">Event</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">cameras</span>.<span class="me1">Camera3D</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">core</span>.<span class="me1">clipping</span>.<span class="me1">FrustumClipping</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">materials</span>.<span class="me1">ColorMaterial</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">materials</span>.<span class="me1">special</span>.<span class="me1">CompositeMaterial</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">materials</span>.<span class="me1">WireframeMaterial</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">objects</span>.<span class="me1">primitives</span>.<span class="me1">Cone</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">objects</span>.<span class="me1">primitives</span>.<span class="me1">Plane</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">render</span>.<span class="me1">BasicRenderEngine</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">scenes</span>.<span class="me1">Scene3D</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">view</span>.<span class="me1">Viewport3D</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#91;</span>SWF<span class="br0">&#40;</span><span class="kw3">backgroundColor</span> = 0x000000, <span class="kw3">width</span> = <span class="nu0">600</span>, <span class="kw3">height</span> = <span class="nu0">400</span>, frameRate = <span class="nu0">30</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">class</span> CameraTargetWithFrustumClipping <span class="kw3">extends</span> Sprite</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _render:BasicRenderEngine;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _scene:Scene3D;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _camera:Camera3D;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _viewport:Viewport3D;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _floor:Plane;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _cone:Cone;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _cameraRadius:<span class="kw3">Number</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _cameraAngle:<span class="kw3">Number</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> CameraTargetWithFrustumClipping<span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">stage</span><span class="br0">&#41;</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> addEventListener<span class="br0">&#40;</span>Event.<span class="me1">ADDED_TO_STAGE</span>, onAddedToStage<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onAddedToStage<span class="br0">&#40;</span><span class="kw3">e</span>:Event<span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; removeEventListener<span class="br0">&#40;</span>Event.<span class="me1">ADDED_TO_STAGE</span>, onAddedToStage<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; init<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> colorMaterial:ColorMaterial = <span class="kw2">new</span> ColorMaterial<span class="br0">&#40;</span>0x0099CC<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> wireframeMaterial:WireframeMaterial = <span class="kw2">new</span> WireframeMaterial<span class="br0">&#40;</span>0x00CCFF<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> compositeMaterial:CompositeMaterial = <span class="kw2">new</span> CompositeMaterial<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compositeMaterial.<span class="me1">addMaterial</span><span class="br0">&#40;</span>colorMaterial<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compositeMaterial.<span class="me1">addMaterial</span><span class="br0">&#40;</span>wireframeMaterial<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; init3D<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; initFloor<span class="br0">&#40;</span>compositeMaterial<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; initCone<span class="br0">&#40;</span>compositeMaterial<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; initEvent<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> init3D<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _cameraRadius = <span class="nu0">1000</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _cameraAngle = 0;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _render = <span class="kw2">new</span> BasicRenderEngine<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _render.<span class="me1">clipping</span> = <span class="kw2">new</span> FrustumClipping<span class="br0">&#40;</span>FrustumClipping.<span class="me1">ALL</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scene = <span class="kw2">new</span> Scene3D<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _camera = <span class="kw2">new</span> Camera3D<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _viewport = <span class="kw2">new</span> Viewport3D<span class="br0">&#40;</span><span class="kw3">stage</span>.<span class="me1">stageWidth</span>, <span class="kw3">stage</span>.<span class="me1">stageHeight</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; addChild<span class="br0">&#40;</span>_viewport<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> initFloor<span class="br0">&#40;</span>compositeMaterial:CompositeMaterial<span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _floor = <span class="kw2">new</span> Plane<span class="br0">&#40;</span>compositeMaterial, <span class="nu0">2000</span>, <span class="nu0">2000</span>, <span class="nu0">4</span>, <span class="nu0">4</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _floor.<span class="me1">rotationX</span> = <span class="nu0">90</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _floor.<span class="me1">y</span> = -<span class="nu0">350</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scene.<span class="me1">addChild</span><span class="br0">&#40;</span>_floor<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> initCone<span class="br0">&#40;</span>compositeMaterial:CompositeMaterial<span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _cone = <span class="kw2">new</span> Cone<span class="br0">&#40;</span>compositeMaterial, <span class="nu0">300</span>, <span class="nu0">400</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//_camera.target = _cone; &nbsp; &nbsp;// _camera.target を使うのをやめて</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scene.<span class="me1">addChild</span><span class="br0">&#40;</span>_cone<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> initEvent<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; addEventListener<span class="br0">&#40;</span>Event.<span class="me1">ENTER_FRAME</span>, <span class="kw3">onEnterFrame</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> <span class="kw3">onEnterFrame</span><span class="br0">&#40;</span><span class="kw3">e</span>:Event<span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _cameraAngle += <span class="kw3">Math</span>.<span class="kw3">PI</span> <span class="sy0">/</span> <span class="nu0">180</span> <span class="sy0">*</span> <span class="nu0">3</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _camera.<span class="me1">x</span> = _cameraRadius <span class="sy0">*</span> <span class="kw3">Math</span>.<span class="kw3">cos</span><span class="br0">&#40;</span>_cameraAngle<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _camera.<span class="me1">z</span> = _cameraRadius <span class="sy0">*</span> <span class="kw3">Math</span>.<span class="kw3">sin</span><span class="br0">&#40;</span>_cameraAngle<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _camera.<span class="me1">lookAt</span><span class="br0">&#40;</span>_cone<span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp; <span class="co1">// _camera.lookAt() を使う</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; render<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> render<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _render.<span class="me1">renderScene</span><span class="br0">&#40;</span>_scene, _camera, _viewport<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
</ol></div>
</div></div><br />]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2009/06/04/frustumclipping_camera3dtarget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlickrSpiral</title>
		<link>http://ferv.jp/blog/2009/05/27/flickrspiral/</link>
		<comments>http://ferv.jp/blog/2009/05/27/flickrspiral/#comments</comments>
		<pubDate>Tue, 26 May 2009 17:23:31 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=807</guid>
		<description><![CDATA[
FlickrのAPI用のAS3ライブラリas3flickrlibの習作としてこんなんつくってみた。as3flickrlibのASDocとFlickrのAPIのドキュメントを見ながらだけど、ドキュメントがまとまってて使い [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="shadowbox;width=800;height=600;" href="http://ferv.jp/blog/wp-content/uploads/2009/05/flickrspiral.swf"><img src="http://ferv.jp/blog/wp-content/uploads/2009/05/flickrspiral.png" alt="flickrspiral" title="flickrspiral" width="600" height="150" class="alignnone size-full wp-image-817" /></a></p>
<p>FlickrのAPI用のAS3ライブラリ<a href="http://code.google.com/p/as3flickrlib/">as3flickrlib</a>の習作としてこんなんつくってみた。<a href="http://as3flickrlib.googlecode.com/svn/trunk/docs/index.html">as3flickrlibのASDoc</a>と<a href="http://www.flickr.com/services/api/">FlickrのAPIのドキュメント</a>を見ながらだけど、ドキュメントがまとまってて使いやすいイメージ。</p>
<p>Papervision3Dの方は、FlickrAPIからInterestingnessの一覧を取得してスパイラルに配置。画像をクリックしたらカメラ移動みたいなありがちな感じ。</p>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2009/05/27/flickrspiral/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

