Followers

4.27.2010

TUTORIAL MEMBUAT ANIMASI RODA BERGERAK PADA OGRE

Pada kesempatan ini, saya akan mencoba menjelaskan cara membuat animasi roda bergerak pada OGRE.
OGRE merupakan bahan ataupun pola yang digunakan untuk mewarnai, memberi pola pada mesh, ground ataupun terrain. Nama material pada Ogre harus Unik karena material selalu diidentifikasikan dari nama layaknya variabel pada bahasa pemrograman C++. Ogre memiliki bermacam-macam material, dibagi menjadi 3 yaitu : Basic Material, Intermediate Material dan Advanced material dan merupakan open source. 
 
Sebelum kita membuat object yang kita inginkan langkah awal yang kita lakukan adalah menginstall software 3DS max 9 dan OGRE beserta converter 3DS max  9 ke OGRE yaitu OGRE max.



Ini merupakan gambar 3D max apabila kita akan memulai project dengan menggunakan file lalu perintah New maka akan terlihat dan tampil jendela project yang akan kita gunakan untuk membuat object dalam 3D max.

Selanjutnya kita akan memulai membangun objek dengan menggunakan perintah yang ada pada toolbar yaitu Standard Primitives yang terdapat dalam menu object lingkaran  yang didalamnya terdapat banyak model-model serta desain yang disediakan dalam hal ini karena kita akan membuat roda maka kita akan memilih Tube yaitu bentuk yang menyerupai lingkaran, setelah itu mulailah kita membangun object.


  Setelah kita memilih Tube langkah selanjutnya yang kita lakukan adalah dengan menggambar pada bidang perspective yang telah tersedia dalam 3D max yaitu dengan teknik Drag dan Drop, tetapi sebelumnya kita juga harus memperhatikan warna yang akan kita berikan pada object yaitu dengan memperhatikan kotak dialog menu  Name and Color.


Kita hanya tinggal memilih warna sesuai dengan warna yang kita inginkan.
Selanjutnya tidak hanya itu kita akan membuat object roda ini, tidak hanya itu kita dapat membuat gradasi warna dengan menggunakan menu material pada 3D max dengan menekan tombol M yaitu material sesudah itu  akan keluar kotak menu tampilan yaitu kita menggunakan background dengan memilih gambar kotak-kotak  setelah itu kita memilih menu standard didalamnya terdapat beberapa banyak fungsi kita akan memilih Multi/Sub-Object  yang secara otomatis akan merubah object yang kita buat.Lalu kita akan memilih apakah object yang kita lakukan akan disimpan atau tidak seperti kotak berikut:




 
bergerak,langkah awal yang kita lakukan adalah memilih pada menu toolbar shapes yang berfungsi membuat motion gambar bergerak dengan memilih roda pada menu toolbar, lalu pada menu shapes kita pilih pada jendela project berupa splines dan lines yang berfungsi untuk membuat lintasan gambar agar bergerak.
 
Lalu kita akan memilih set number dan mengatur dengan kode 2 yang biasa digunakan untuk membuat warna hitam atau putih.


Kemudian kita akan memberikan gradasi warna yang gelap dengan menagatur gambar dan menggeserkan kursor ke arah hitam. Langkah terakhir adalah menggerakan benda pada lintasannya. Dan untuk menguji apakah object yang kita buat sesuai dengan keinginan atau tidak kita memilih Rendering pada tool render atau f10 untuk menjalankan object tersebut.






 Setelah object yang telah kita buat dengan menggunakan 3D max 9, kita mengeksport object tersebut ke OGRE. Pada OGRE, kita memilih File -> Export dan mengeksport object yang telah kita buat sebelumnya dan menyimpan dengan nama roda. 









Kita mengganti roda 3DS menjadi mesh.








  Langkah selanjutnya kita buka folder ogre3Dcara2 sesuai dengan nama anda menginstall ogre pertama kalinya.


Lalu kita pilih folder hello.cpp kemudian media kemudian models, kita mengcopy roda.mesh yang kita buat ke folder model seperti tampilan berikut


Kita telah mengcopy roda.mesh pada model di ogre3dcara2 tidaklupa kita gunakan rename agar roda..mesh menjadi roda.mesh.

Lalu langkah yang sama pula kita lakukan pada roda.material hello.cpp kemudian media kemudian material lalu script lalu kita mengcopy roda.material kedalam folder script, seperti pada tampilan berikut



 
Selanjutnya langkah yang sama kita lakukan pula pada Ogre SDK
Lalu kita pilih media kemudian models, kita mengcopy roda.mesh yang kita buat ke folder model seperti tampilan berikut




 
Lalu langkah yang sama pula kita lakukan pada roda.material dengan memilih media kemudian material lalu script lalu kita mengcopy roda.material kedalam folder script, seperti pada tampilan berikut




Setelah roda.mesh dan roda.material sudah ada pada ogre langkah selanjutnya yang kita lakukan adalah membuka Microsoft Visual C++ 2008.


Kemudian memilih hello.cpp karena kita telah menyimpan roda.mesh dan roda.material pada hello.cpp.

Ini merupakan script program ogre kita perlu menggunakan entity agar program dapat tampil

#include "ExampleApplication.h"

class RTTListener : public ExampleFrameListener
{
public:
   RTTListener(RenderWindow *win, Camera *cam, SceneNode *sn)
      : ExampleFrameListener(win, cam), node1(sn)
   {
   }

   bool frameStarted(const FrameEvent& evt)
   {
         node1->yaw(Radian(evt.timeSinceLastFrame));
      return ExampleFrameListener::frameStarted(evt);
   }

protected:
   SceneNode         *node1;

};

class BelajarOgre : public ExampleApplication {
public:
      BelajarOgre(){

      }

      ~BelajarOgre(){

      }
protected:
      SceneNode *node1;
      SceneNode *node2;
      void createScene(void){
            // degradasi warna cahaya
       mSceneMgr->setAmbientLight(ColourValue(0.2f, 0.2f, 0.2f));
         mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_MODULATIVE);
       // membuat dan mengatur tempat sumber cahaya
       Light* l = mSceneMgr->createLight("MainLight");
         l->setType(Light::LT_SPOTLIGHT);
       l->setPosition(20, 80, 200);

       // posisi camera
        
       mCamera->setPosition(60, 200, 70);
       mCamera->lookAt(0, 0, 0);

        
      //mSceneMgr utk manage semua semua yg tampil pd screen
      mSceneMgr->setAmbientLight(ColourValue(1,1,1));
      //Entity ad objek yg bs dirender discene
      Entity *ent1 = mSceneMgr->createEntity("roda","roda.mesh");
     

    node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("rodanode",Vector3( 0, 0, 0 ));
     
      //attach entity roda.mesh ke scenenode
      node1->attachObject(ent1);
     
      }
      // membuat frame listener
   void createFrameListener()
   {
       mFrameListener = new RTTListener(mWindow, mCamera, node1);
       mRoot->addFrameListener(mFrameListener);
   }
};

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"

INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
#else
int main(int argc, char **argv)
#endif
{
      //bikin objek aplikasi
      BelajarOgre app;
      try {
            app.go();
      } catch (Exception e) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
            MessageBoxA(NULL,e.what(),"Terjadi Error!",MB_OK | MB_ICONERROR |MB_TASKMODAL);
#else
            fprintf(stderr,"Terjadi Error = %s\n",e.what());
#endif
      }
      return 0;
}


Untuk memanggil file roda yang telah kita buat pada 3DS max 9 dan mengatur skala dengan scala node serta colour value untuk mengatur warna pada ogre seperti gambar yang kita tampilkan pada 3DS max 9 yaitu mengatur warna hitam dan putih dan pencahayaan. mCamera->setPosition(60, 200, 70); mCamera->lookAt(0, 0, 0); digunakan untuk mengatur kamera dan sudut pandang,

Dan apabila kita telah berhasil kita pilih debug lalu start debugging apabila berhasil akan muncul kotak dialog seperti in


  Maka gambar telah siap dijalankan dan dapat digerakkan sesuai keinginan kita,itulah kelebihan dari Ogre 3d. Dan inilah adalah hasil tampilan yang sudah di jalankan pada ogre roda yang dijalankan dapat bergerak.

 

0 comments: