360度ビューワー
なんとなーく新しく買ったカメラに360度写すことが出来る機能があったのでやってみました。
こんな感じ
http://moeten.info/flex/20100205_papervision3dCamera360Test/bin-release/main.html
使用したテクスチャ
今回シリンダーにテクスチャを貼っているけど、プレーンにテクスチャを貼ってテクスチャをずらしてもいいんじゃないかなぁって思う。
ちなみに動画で撮影すれば360度な動画がみれますよ。
カメラはモバイルHDスナップカメラMHS-PM5K。
ただ、やはり360度撮影となると解像度が足りない感じ。
カメラ自体は1080Pで撮影できるのですが、360度撮影となると720Pまでとなります。
ソースはこちら
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:view="org.papervision3d.view.*" creationComplete="init();" width="622" height="504" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #DEDEDE]"> <mx:Script> <![CDATA[ import mx.events.ItemClickEvent; import org.papervision3d.objects.primitives.Cylinder; import org.papervision3d.materials.BitmapFileMaterial; private var cylinder:Cylinder; //初期化関数 private function init():void{ //BasicViewをステージに追加 myUI.addChild( bv ); bv.cameraAsCamera3D.x = 0; bv.cameraAsCamera3D.z = 0; bv.cameraAsCamera3D.y = 0; //オブジェクトの作成 var mat:BitmapFileMaterial = new BitmapFileMaterial("DSC00020.jpg",true); mat.doubleSided = true; mat.precise = true; mat.smooth = true; cylinder = new Cylinder( mat , 80 , 100 , 100 , 100 , 80 , false , false ); bv.scene.addChild( cylinder ); //レンダリング。bv.startRendering();を自前で。 this.addEventListener(Event.ENTER_FRAME , onTimer ); } //レンダリング private function onTimer( e:Event ):void{ bv.renderer.renderScene( bv.scene , bv.camera , bv.viewport ); cylinder.rotationY += (myUI.width - myUI.mouseX )/ 100; } private function onClick(e:ItemClickEvent):void{ cylinder.rotationY = e.item.angle; } ]]> </mx:Script> <view:BasicView id="bv"/> <mx:UIComponent id="myUI" width="300" height="300"/> <mx:LinkBar id="link" x="263.5" y="6" labelField="label" itemClick="onClick(event)"> <mx:Object label="a" angle="0"/> <mx:Object label="b" angle="90"/> <mx:Object label="c" angle="180"/> <mx:Object label="d" angle="270"/> </mx:LinkBar> <mx:Label x="280.5" y="476" text="360 Video"/> </mx:Application>