Saturday 14 April 2012

Put Objects and Give Particles with OGRE Programming

Assalamu'alaikum warahmatullahi wabarakatuh

Seperti peribahasa, "tak ada tugas, blog pun sepi postingan". Untuk mengisi kekosongan di blog ini, kali ini saya akan posting sedikit apa yang saya 'dapat' dari lab ketika praktikum Grafik Komputer. Disini saya akan berbagi tentang coding program OGRE untuk memanggil atau menampilkan objek dan memberikan partikel (sejenis animasi gitu) pada objek.

Jika program OGRE nya belum berhasil di run, coba download tutorial ini [ download ]

Jika pada project OGRE belum muncul binaries nya juga, mungkin ada file .dll yang kurang. Coba [ download file.dll ini ], extract dua file.dll ini ke dalam folder release project yang kita buat. Lalu jalankan lagi, cek apakah di dalam folder project_yang_dibuat > release yang kita buat sudah ada file.exe nya.

Nah, ini inti dari postingan saya: cekidot !
1. Buat project baru atau buka project OGRE yang sudah pernah dibuat sebelumnya.
2. Lakukan konfigurasi pada properties project seperti yang terdapat pada tutorial.
3. Setelah program dapat di running, copy paste kan coding program ini ke dalam project yang sudah kita buat atau project baru.

Coding program OGRE untuk memanggil beberapa objek dan memberikan animasi:

#include "ExampleApplication.h"
class BelajarOgre : public ExampleApplication {
public:
BelajarOgre(){


}


~BelajarOgre(){


}
protected:
void createScene(void){
//mSceneMgr utk manage semua semua yg tampil pd screen
mSceneMgr->setAmbientLight(ColourValue(1,1,1));
mSceneMgr->setSkyDome(true,"Examples/EveningSkyBox",5,8);
//Entity ad objek yg bs di render discene
Entity *ent1 = mSceneMgr->createEntity("Robot","ninja.mesh");
Entity *ent2 = mSceneMgr->createEntity("Robot2","robot.mesh");
Entity *ent3 = mSceneMgr->createEntity("Robot3","jaiqua.mesh");


ParticleSystem *pSys1 = mSceneMgr->createParticleSystem("GreenyNimbus","Examples/GreenyNimbus");
pSys1->setDefaultHeight(100);
pSys1->setDefaultWidth(100);


ParticleSystem *pSys2 = mSceneMgr->createParticleSystem("PurpleFountain","Examples/JetEngine1");
pSys2->setDefaultHeight(50);
pSys2->setDefaultWidth(50);


ParticleSystem *pSys3 = mSceneMgr->createParticleSystem("Aureola","Examples/Aureola");
pSys2->setDefaultHeight(50);
pSys2->setDefaultWidth(50);


SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("RobotNode");
SceneNode *node2 = mSceneMgr->getRootSceneNode()->createChildSceneNode("NinjaNode");
SceneNode *node3 = mSceneMgr->getRootSceneNode()->createChildSceneNode("JaiquaNode");
SceneNode *efek1 = mSceneMgr->getRootSceneNode()->createChildSceneNode();
SceneNode *efek2 = mSceneMgr->getRootSceneNode()->createChildSceneNode();
SceneNode *efek3 = mSceneMgr->getRootSceneNode()->createChildSceneNode();


//attach entity ke scene node untuk beri lokasi render robot
node1->attachObject(ent1);
efek1->attachObject(pSys1);
node1->translate(20,20,20);
efek1->translate(20,20,20);
node1->setPosition(170,0,10);
efek1->setPosition(170,0,10);
node1->yaw( Ogre::Degree( -90 ) );


node2->attachObject(ent2); //mengattachninja
node2->translate(60,0,10);
node2->setPosition(60,0,10);
efek2->attachObject(pSys2);
efek2->setPosition(60,0,10);
node2->yaw( Ogre::Degree( -90 ) );


node3->attachObject(ent3); //mengattachqua
node3->translate(100,20,50);
node3->setPosition(100,20,50);
efek3->attachObject(pSys3);
efek3->setPosition(60,0,10);
node3->yaw( Ogre::Degree( -180 ) );


}
};


#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
{
//bikinobjekaplikasi
BelajarOgre app;
try {
app.go();
} catch (Exception e) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox(NULL,e.what(),"Terjadi Error!",MB_OK | MB_ICONERROR |MB_TASKMODAL);
#else
fprintf(stderr,"Terjadi Error = %s\n",e.what());
#endif
}
return 0;
}

Simpan programnya, lalu Build project atau Clean project untuk menghasilkan file.exe di folder releasenya. Pastikan yang aktif pada properties project adalah release, bukan debug. Buka file.exe nya, maka akan tampil outputnya seperti:


Sekian yang dapat saya bagi tentang program OGRE, semoga dapat bermanfaat bagi kawan semua. Apabila ada pertanyaan dengan running program, silahkan layangkan komentar atau send me an email, insyaAllah jawaban langsung dari saya, atau bisa ketik REG ANDISIKASEP kirim ke nomor tetangga (*halah ngawur ini mah).hehe :) Akhir kata, terima kasih dan ...

Wassalamu'alaikum warahmatullahi wabarakatuh

No comments:

Post a Comment

Harry Potter - Golden Snitch Angry Birds -  Red Bird