Pages

Jumat, 22 Maret 2013

Tutorial Augmented Reality menggunakan Flash Develop, Alternativa3D v7, dan Qtrack Tracker

Hallo!

Kali ini saya ingin berbagi tentang tutorial Augmented Reality (AR) sederhana menggunakan Flash Develop, Alternativa3D v7, dan Qtrack Tracker. Sebenarnya, banyak sekali engine yang bisa di pakai dalam pembuatan Augmented Reality 3 Dimensi. Yang lumrah digunakan biasanya ARToolkit dan FlarToolkit. Kali ini saya iseng mencoba Qtrack Tracker.

Bagaimana sensasinya? Yuks, kita telusuri... :D

Untuk memulai tutorial ini, pertama-tama kita harus sudah menginstal flash develop di komputer yang akan kita gunakan coding. Flash Develop bisa di download di : http://www.flashdevelop.org/

Selain itu, persiapkan juga :
-  Alternativa3D v7
                dapat di download : http://alternativaplatform.com/en/download7
-  Qtrack Tracker
                dapat di download : http://makc3d.wordpress.com/qtrack/


Jangan lupa untuk mempersiapkan kamera. Saya pribadi menggunakan kamera bawaan laptop Asus.



Mari kita mulai, tutorialnya! :D

1. Buka Flash Develop, buat project baru.


2. Pilih “Empty Project”. Beri nama project dan simpan di direktori yang diinginkan.



3. Extract hasil download Alternative3D_7.




Buka folder hasil exctract.


Copy-paste file SWC yang ada di dalam folder menjadi satu folder dengan project flash develop yang tadi kita buat.


4. 
Buka kembali flash develop, lalu add-to-library file SWC tesebut. Caranya dengan meng-klik kanan file SWC tersebut, kemudian pilih add-to-library.



5. Extract dan buka folder Qtrack Tracker yang tadi kita download.
Pilih dan copy folder duck, file Alternativa3D_example.as, dan qtrack.SWC (seperti yang dicontohkan pada gambar dibawah ini) dan paste ke dalam folder project yang tadi sudah dibuat.


6. Buka kembali flash develop, lalu add-to-library file "qtrack.SWC". Caranya dengan meng-klik kanan file SWC tersebut, kemudian pilih add-to-library.


7. Lalu, klik kanan pada Alternativa3D_example.as, dan pilih always-compile.




8. Klik “Project Properties”.




Lakukan setting seperti di bawah ini :
 - output file : "test.SWF"
 - Test Project : "Play:  External Player" 

Lalu tekan tombol “OK”.


File “test.swf” dapat di dapatkan dengan cara mendownload disini :
https://www.dropbox.com/s/5il5iqtt5425g3w/test.SWF.rar

Extract dan simpan file “test.swf” tersebut ke dalam folder project yang tadi di buat.

9.  Setelah semua tahap di atas selesai, copy-paste script berikut :
package {
import alternativa.engine3d.alternativa3d;
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.Sorting;
import alternativa.engine3d.core.View;
import alternativa.engine3d.loaders.Parser3DS;
import alternativa.engine3d.materials.TextureMaterial;
import alternativa.engine3d.objects.Mesh;
import flash.display.Bitmap;
import flash.display.Sprite;
import qtrack.QuadMarker;
import qtrack.QuadTracker;
import qtrack.QuadTrackerEvent;
 
[SWF (width=640, height=480)]
public class Alternativa3D_example extends Sprite {
 
 // marker image file
 [Embed(source='duck/duck.gif')]
 private var MarkerImage:Class;
 
 // duck model
 [Embed (source='duck/duck.3ds', mimeType='application/octet-stream')]
 private var ModelData:Class;
 [Embed (source='duck/duck.jpg')]
 private var ModelTexture:Class;
 
 // important variables
 private var camera:Camera3D;
 private var model:Mesh;
 private var tracker:QuadTracker;
 
 public function Alternativa3D_example () {
  // create the camera and place it into empty container
  camera = new Camera3D;
  camera.view = new View (640, 480);
  (new Object3DContainer).addChild (camera);
 
  // create duck material
  var material:TextureMaterial = new TextureMaterial (Bitmap (new ModelTexture).bitmapData);
 
  // parse duck model
  var parser:Parser3DS = new Parser3DS;
  parser.parse (new ModelData, "", 0.1);
 
  model = Mesh (parser.objects [0]);
  model.sorting = Sorting.AVERAGE_Z;
  model.setMaterialToAllFaces (material);
 
  // update camera internal variables (focal length)
  camera.render ();
 
  // create tracker instance
  tracker = new QuadTracker (
   // pass the marker,
   new QuadMarker (new MarkerImage),
   // webcam index,
   0,
   // video dimensions,
   640, 480,
   // camera focal length
   camera.alternativa3d::focalLength
  );
 
  // subscribe to events
  tracker.addEventListener (QuadTrackerEvent.MARKER_FOUND, onMarkerFound);
  tracker.addEventListener (QuadTrackerEvent.MARKER_LOST, onMarkerLost);
  tracker.addEventListener (QuadTrackerEvent.MARKER_MOVE, onMarkerMove);
 
  // add everything to the screen
  addChild (tracker);
  addChild (camera.view);
 
  // run
  tracker.start ();
 }
 
 private function onMarkerFound (e:QuadTrackerEvent):void {
  // marker found - add the duck to the scene
  camera.parent.addChild (model);
 }
 
 private function onMarkerLost (e:QuadTrackerEvent):void {
  // marker lost - remove the duck from the scene
  camera.parent.removeChild (model);
  camera.render ();
 }
 
 private function onMarkerMove (e:QuadTrackerEvent):void {
  // marker moved - move the duck
  model.matrix = tracker.getPose3D ();
  camera.render ();
 }
}
}

10. Lalu jalankan atau “run” dengan menekan tombol ini :


11. Bila muncul yang seperti ini, di “allow” sajaaaa...


Setelah di “allow”, maka akan muncul hasil bidikan kamera dari komputer Anda.


12. Print marker yang sudah disiapkan. Marker dapat ditemukan di dalam folder “duck”, silakan print file “duck.gift”.



13. Arahkan marker yang sudah diprint tersebut. Dan ~ VOILA!!
Bebek kuning muncul!! :D


Sekian tutorialnya! :D 
Bagi rekan-rekan yang ingin melihat tutorial dalam bentuk video dapat mengunjungi halaman ini : http://wiki.alternativaplatform.com/Augmented_reality_for_version_7_Tutorial

Semoga berhasil ya! Jika ada yang ingin ditanyakan bisa komen di bawah.
Gud lak!




Sincerly,

thegeesradio.blogspot.com



Sumber  dan inspirasi :



2 komentar:

  1. maaf gan mau tanya,,
    kalo Alternative3D_7. tidak bisa di download,
    mohon linknya

    BalasHapus