Menampilkan 3D Models pada Android Menggunakan min3d Framework

Ini adalah surat dari Pembaca : burhanhasib@xxxxxx.xxxx

Salam kenal Mas… saya belajar banyak dari blog Anda, dan terimakasih sebelumnya atas tutorial-tutorialnya tentang pengembangan aplikasn Android.
Sekrang saya lagi butuh tutorial cara menampilkan file 3D di android Mas. Saya sudah dapatkan tutorialnya dari Internet, contohnya dari http://xxxx.xxx (suatu url di internet). Namun kebanyakan tutorialnya menggunakan bahasa Inggris dan saya kurang begitu paham.
Saya minta tolong dengan sangat agar Mas mau membuatkan tutorialnya dalam bahasa Indonesia. Terima Kasih banyak sebelumnya Mas…

Ketika ingin menampilkan/rendering 3D model pada Android, ada banyak framework yang bisa dipakai. Dari tutorial yang diberikan oleh Mas Burhan di http://xxxx.xxx, di sana memakai framework min3D yang sayangnya sekarang sudah tidak di-maintenance lagi. Karena itu di situ juga disarankan untuk memakain framework 3D lainnya, seperti rajawali. Dan karena itu pula tutorial di sana sudah obsolete, dan banyak error apabila dijalankan. Saya sudah mencoba memperbaikinya dan Alhamdulillah bisa 😀

Yang dimaksud dengan 3D Models adalah file-file yang dihasilkan ketika kita membuat file 3D menggunakan software seperti Blender, 3DSMax, dan sebagainya. File yang digunakan di sini adalah file .objFile tersebut memuat definisi geometri dari suatu objek 3D.

Biasanya objek tersebut juga bisa ditambahkan dengan texture yang berupa file .jpg, dan untuk mengaplikasikan tekstur jpg itu, mas Burhan juga harus mempunyai file .mtl. Ketiga file itu dapat di-download di link berikut :

  • camaro_obj (masukkan ke folder /res/raw dan beri nama camaro_obj)
  • camaro_mtl (masukkan ke folder /res/raw , beri nama seperti camaro_mtl)
  • camaro.jpg (masukkan ke folder /res/drawable)

Jangan lupa juga untuk mendownload min3D library di sini, export ke Eclipse, kemudian set as library.

Kemudian buat sebuah proyek Android baru, dengan menggunakan min3D sebagai library-nya. Nama project terserah, nama Main Activity Class : MainActivity.java, dan nama package :  id.web.twoh.min3dsample

Cara mengeset library, klik kanan pada project Android yang dibuat, klik Properties, > Android > pada bagian bawah ada tulisan library Add > pilih min3D.

Setelah itu, pastekan kode berikut pada Main Activity :

package id.web.twoh.min3dsample;

import min3d.core.Object3dContainer;
import min3d.core.RendererActivity;
import min3d.parser.IParser;
import min3d.parser.Parser;
import min3d.vos.Light;

/**
 * How to load a model from a .obj file
 *
 * @author dennis.ippel
 *
 *
 * With modification by : Hafizh Herdi Naufal
 * http://twoh.co
 */
public class MainActivity extends RendererActivity {
        private Object3dContainer objModel;

        @Override
        public void initScene() {

                scene.lights().add(new Light());

                IParser parser = Parser.createParser(Parser.Type.OBJ,
                                getResources(), "id.web.twoh.min3dsample:raw/camaro_obj", true);
                parser.parse();

                objModel = parser.getParsedObject();
                objModel.scale().x = objModel.scale().y = objModel.scale().z = .7f;
                scene.addChild(objModel);
        }

        @Override
        public void updateScene() {
                objModel.rotation().x++;
                objModel.rotation().z++;
        }
}

Setelah dicopy-pastekan, pastikan tidak ada error, bila ada error berarti ada kesalahan saat mengeset library-nya.

Pada kode di atas, kita membuat sebuah scene baru dengan sebuah object 3D pada method initScene(). Metoda createParser() berfungsi untuk membuat sebuah model objek 3D dari sebuah file .obj, dengan mengambil dari resource. Tatanamanya adalah <android-package>:<resource-path>, sehingga file .obj bisa kita ambil dari id.web.twoh.min3dsample:raw/camaro_obj. 

Setelah kita mendapatkan model 3D yang diinginkan, kita akan melakukan beberapa scaling(pernyesuaian ukuran) supaya ukurannya berada tepat di tengah layar emulator Android. Lalu kita tambahkan object itu ke dalam scene, untuk kemudian ditampilkan.

Method selanjutnya, updateScene() berfungsi untuk memutar/merotasikan object sehingga kelihatan kalau objek tersebut berbentuk 3D.

Sekarang coba jalankan aplikasinya, kalau berhasil akan menghasilkan tampilan seperti ini !

Mas Burhan dan lainnya juga bisa bereksperimen dengan membuat sebuah file .obj sendiri, lengkap dengan terksturnya.

That’s all.

render 3D

PS: Bagi yang ingin bertanya-tanya, berkomentar, memberi saran atau kritik. Silahkan berkomentar di post manapun di blog ini, atau mengirim email ke hherdinaufal<at>gmail<dot>com. Terima kasih 🙂





Download aplikasi kami di Google Play Store


Tutorial Menarik Lainnya :

8 Comments

  1. burhan September 17, 2012
    • Herdi Naufal September 17, 2012
  2. eman October 10, 2012
    • Herdi Naufal October 11, 2012
      • eman October 16, 2012
        • Herdi Naufal October 17, 2012
  3. ditya October 28, 2012
    • Herdi Naufal December 14, 2012

Leave a Reply

Do NOT follow this link or you will be banned from the site!