読者です 読者をやめる 読者になる 読者になる

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>