You are on page 1of 23

Grafika Komputer

Desain Interior Berbasis Augmented


Reality
Ahmad Reza Musthafa
Latar Belakang

Pembuatan objek 3 dimensi dengan menggunakan software


editor telah banyak dilakukan, khususnya pada bidang
interior. Beberapa software editor mengharuskan desainer
untuk mengerjakan project desain di depan perangkat
komputer. Sehingga desainer harus mendapatkan informasi
terhadap ukuran dan bentuk ruangan secara nyata sebelum
membuat objek interior 3 dimensi. Hal ini akan
menyebabkan waktu yang dibutuhkan tidak sedikit.

Selain itu, desain yang dihasilkan oleh software editor hanya


berupa objek 3 dimensi yang hasilnya tidak dapat dirasakan
langsung pada suatu ruangan yang didesain.
Tujuan

Membuat sistem untuk memudahkan dalam menyusun objek interior


pada suatu ruangan berbasis augmented reality.
Definisi AR

Augmented Reality adalah teknologi yang menggabungkan benda maya 2D


atau 3D ke dalam sebuah lingkungan nyata 3D lalu memproyeksikan benda-
benda maya tersebut secara realtime.

Augmented Reality dapat diaplikasikan untuk semua indera, termasuk


pendengaran, sentuhan, dan penciuman.
Penggunaan AR

Bidang Hiburan (Ramalan Cuaca)


Bidang Kesehatan (MRI, CT Scan)
Bidang Militer (Training tentara)
Bidang Desain (Promosi produk)
Bidang Robotika (Pencitraan visual untuk kontrol)
dsb
Piranti AR

Pada umumnya untuk melihat AR, kita membutuhkan media-media seperti


alat-alat perekam seperti smartphone, kamera, PC (+webcam), serta goggle
glass yaitu kacamata berteknologi augmented reality buatan perusahaan
Google, atau bisa juga menggunakan contact lens khusus.

Dan tentunya harus ada objek acuannya yaitu Marker, atau bisa juga
mendeteksi muka, atau dengan GPS.
Cara Kerja AR

Augmented Reality bekerja berdasarkan deteksi citra, dan citra


yang digunakan adalah marker.

Prinsip kerjanya adalah kamera yang telah dikalibrasi akan


mendeteksi marker yang diberikan, kemudian setelah
mengenali dan menandai pola marker, webcam akan
melakukan perhitungan apakah marker sesuai dengan
database yang dimiliki.

Bila tidak, maka informasi marker tidak akan diolah, tetapi bila
sesuai maka informasi marker akan digunakan untuk me-render
dan menampilkan objek 3D atau animasi yang telah dibuat
sebelumnya.
Desain Sistem
Input
(Kamera)

Penentuan Marker

Pendeteksian Marker

Pemilihan Model Desain


Interior 3D

User Experience
(Rotate, Translate, Scale)

Render Model 3D pada


Environment
Desain Alur Kerja Sistem

Menentukan Objek terpasang


environment pada environment

Memilih Mengedit objek


environment (Rotasi, translasi,
sebagai marker skala)

Memilih objek yang Hasil akhir


akan dipasang
Tools Pendukung

Vuforia SDK
Android SDK
Eclipse IDE
OpenGL ES 2.0
Instalasi Vuforia SDK
Ekstract file vuforia-sdk-android-3-0-9.zip pada suatu direktori. Berikut susunan file
dan folder pada SDK Vuforia.
<DEVELOPMENT_ROOT>\
android-ndk-rxy\
android-sdk-windows\
vuforia-sdk-android-xx-yy-zz\
build\Vuforia Augmented Reality SDK
licenses\ License Agreements
samples\ Sampel aplikasi
assets\Additional assets
readme.txtStarting read-me document

Jalankan IDE Eclipse. Setelah itu klik pada menu Window Preferences
Setelah itu, pada hierarchy browser pilih Java Build Path Classpath Variables
Buatlah variable baru dengan menekan tombol New
Set variable tersebut dengan nama QCAR_SDK_ROOT dengan value berupa lokasi
Anda meng-extract SDK Vuforia. Misalkan: C:/Development/Android/vuforia-sdk-
android-3-0-9. Setelah itu simpan variable tersebut.
Instalasi Vuforia SDK
Copy file dan folder berikut pada direktori libs pada
project Anda.
C:/Development/Android/vuforia-sdk-android-3-0-9/build/java/vuforia/Vuforia.jar
(File)

C:/Development/Android/vuforia-sdk-android-3-0-9/build/lib/ armeabi-v7a
(Folder)
Inisialisasi Render Objek 3D
Inisialisasi GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT |
OPENGL ES GLES20.GL_DEPTH_BUFFER_BIT);
dan vuforia State state = Renderer.getInstance().begin();
Renderer.getInstance().drawVideoBackground();
Pengaturan GLES20.glEnable(GLES20.GL_DEPTH_TEST);
OPENGL ES GLES20.glEnable(GLES20.GL_CULL_FACE);
GLES20.glCullFace(GLES20.GL_BACK);
if (Renderer.getInstance().getVideoBackgroundConfig().getReflection() ==
VIDEO_BACKGROUND_REFLECTION.VIDEO_BACKGROUND_REFLECTION_ON)
Kamera
GLES20.glFrontFace(GLES20.GL_CW);
Depan
else
Kamera GLES20.glFrontFace(GLES20.GL_CCW);
Belakang mActivity.refFreeFrame.render();
Deteksi Marker dan Posisi Untuk Render Objek 3D

for (int tIdx = 0; tIdx < state.getNumTrackableResults(); tIdx++) {


Hasil TrackableResult hasil_tracking = state.getTrackableResult(tIdx);
deteksi Matrix44F modelViewMatrix_Vuforia =
Tool.convertPose2GLMatrix(hasil_tracking.getPose());
mengguna
float[] modelViewMatrix = modelViewMatrix_Vuforia.getData();
kan vuforia
int indexTexture = 0;
float[] modelViewProjection = new float[16];
Matrix.translateM(modelViewMatrix, 0, 0.0f, 0.0f,OBJECT_SCALE_FLOAT);
Matrix.translateM(modelViewMatrix, 0, 0.0f+tranx, 0.0f+trany,0.0f+tranz);
Mengatur
Matrix.rotateM(modelViewMatrix, 0, 90.0f+rotz, 0, 0, 1); //z
posisi
Matrix.rotateM(modelViewMatrix, 0, 0.0f+roty, 0, 1, 0); //y
objek 3d
Matrix.rotateM(modelViewMatrix, 0, 0.0f+rotx, 1, 0, 0); //x
Matrix.scaleM(modelViewMatrix, 0,
OBJECT_SCALE_FLOAT+skala,OBJECT_SCALE_FLOAT+skala,
Sesi OBJECT_SCALE_FLOAT+skala);
vuforia Matrix.multiplyMM(modelViewProjection, 0,
vuforiaAppSession.getProjectionMatrix().getData(), 0, modelViewMatrix, 0);
Contoh Pembuatan Objek 3D
public class Kursi1 extends MeshObject {
Data
public Kursi1() {
setVerts();
vector
setTexCoords(); normal
setNorms();
setIndices();
} Data
private void setVerts() { urutan poin
double[] KURSI1_VERTS = {
Data -23.491653f, ...
vector mVertBuff = fillBuffer(KURSI1_VERTS);
verticesNumber = KURSI1_VERTS.length / 3;
vertek
}
private void setTexCoords() {
Data double[] KURSI1_TEX_COORDS = { 0.185381f, ...
vector mTexCoordBuff = fillBuffer(KURSI1_TEX_COORDS);
}
tekstur
private void setNorms() {
double[] KURSI1_NORMS = { -0.757744f, ...
mNormBuff = fillBuffer(KURSI1_NORMS);
}
Penerapan Sistem
Tampilan Tampilan
activity awal activity untuk
program desain
Penerapan Sistem
Tampilan
Tampilan
objek yang
untuk memilih
telah
desain objek
ditambahkan
Penerapan Sistem
Tampilan
Tampilan untuk
objek yang mengedit
telah dipilih objek (Rotasi,
Skala, dan
Translasi)
Penerapan Sistem
Future Work
Penerapan gesture untuk mengubah posisi dan ukuran
objek 3 dimensi (rotasi, translasi, dan scaling)
Penambahan referensi model 3 dimensi yang digunakan
Menghasilkan informasi berupa ukuran desain objek secara
nyata
Penambahan editor objek 3 dimensi
Kesimpulan
Pemilihan environment yang akan digunakan sebagai
marker, bergantung dari banyaknya texture pada marker
tersebut. Semakin banyak texture pada marker maka
semakin tinggi tingkat kestabilan dari pendeteksian marker
Spesifikasi perangkat yang digunakan juga mempengaruhi
hasil render objek 3 dimensi. Apabila perangkat yang
digunakan tidak memiliki spesifikasi yang tinggi, maka
objek 3 dimensi tidak dapat ter-render dengan baik.
Paper Acuan
Terima Kasih

You might also like