วิดีโอตัวอย่างของ Lego ครับ
หลังจากที่ได้ลองหาตัวอย่าง Sourcecode ตามเว็บไซด์ต่างๆที่เขียนด้วย Flex ดูแล้ว ก็พบว่าหลายๆตัวอย่างเช่นของ Saqoocha ก็พบว่า Starter Kid ซึ่งมันจะแสดงผลได้เพียง 1 Marker ต่อ 1 การแสดงผล เท่านั้น ซึ่ง Sourcecode ที่ได้มาก็จะเป็นประมาณนี้ครับ
จาก Sourcecode ที่แสดงข้างบนจะเห็นได้ว่า Application จะ init กล้อง 1 ตัว กับ Pattern 1 Marker เท่านั้น จะเป็นดังวิดีโอข้างล่างนี้ครับ
ซึ่ง Sourcecode ที่หามาได้ยังไม่ตรงกับจุดประสงค์ที่ต้องการเท่าไหร่เพราะหากเราต้องการที่จะแสดงผลแบบ Multimarker (หลาย Marker ต่อ 1 การแสดงผล) หรือ หลาย Marker ต่อ หลายการแสดงผล ก็จำเป็นต้องเขียนเพิ่มเติมนิดหน่อย ซึ่งจะมีให้ชมในตอนต่อไปนะครับ
package
{
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.media.Camera;
import flash.media.Video;
import flash.ui.Mouse;
import org.ascollada.*;
import org.ascollada.namespaces.collada;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.core.utils.Mouse3D;
import org.papervision3d.events.FileLoadEvent;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.DAE;
import org.papervision3d.render.LazyRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.view.stats.StatsView;
//import org.libspark.flartoolkit.core.param.FLARParam;
[SWF(width=640, height=480, backgroundColor=0x808080, frameRate=25)]
public class Earth extends PV3DARApp {
private var stats:StatsView;
private var renderer:LazyRenderEngine;
private var viewport:Viewport3D;
private var cam:Camera3D;
private var scene:Scene3D;
private var webcam:Camera
private var video:Video
//private var _earth:Collada;
private var _earth:DAE;
public function Earth() {
addEventListener(Event.INIT, _onInit);
init('Data/camera_para.dat', 'Data/flarlogo.pat');
//this.cameraParamFile = 'data/camera_para.dat';
//this.markerPatternList = new Vector.<FLARCode>();
//this.markerPatternFileList = new Vector.<String>();
//this.markerPatternFileList.push('data/flarlogo.pat','data/NECTEC.pat','Papervision.pat');
//_raster = new FLARRgbRaster_BitmapData(_capture.bitmapData);
}
private function _onInit(e:Event):void
{
_earth = new DAE();
_earth.load('model/earth.dae');
_earth.scale = 50;
_earth.rotationX = -270;
_earth.rotationZ = 180;
_markerNode.addChild(_earth);
//addEventListener(Event.ENTER_FRAME, _update);
_earth.addEventListener(MouseEvent.MOUSE_OVER, _update);
}
private function _update(Event:MouseEvent):void {
_earth.rotationZ -= 0.5
}
}
}
จาก Sourcecode ที่แสดงข้างบนจะเห็นได้ว่า Application จะ init กล้อง 1 ตัว กับ Pattern 1 Marker เท่านั้น จะเป็นดังวิดีโอข้างล่างนี้ครับ
ซึ่ง Sourcecode ที่หามาได้ยังไม่ตรงกับจุดประสงค์ที่ต้องการเท่าไหร่เพราะหากเราต้องการที่จะแสดงผลแบบ Multimarker (หลาย Marker ต่อ 1 การแสดงผล) หรือ หลาย Marker ต่อ หลายการแสดงผล ก็จำเป็นต้องเขียนเพิ่มเติมนิดหน่อย ซึ่งจะมีให้ชมในตอนต่อไปนะครับ
สวัสดีครับ ผมธนาธิป เรียกว่าหมิวก็ได้ครับ ผมก็สนใจเทคโนโลยี เช่นกัน ตอนนี้กำลังนำ AR มาใช้ในงานเปิดตัวสินค้า แต่ไม่แน่ใจว่า ราคาประมาณเท่าไหร่ พอจะทราบ ราคา package ทั้ง equipment and software package (coding) มันประมาณเท่าไหร่ครับ
ตอบลบ