Pada kali ini saya akan menjelaskan tentang project yang saya buat pada praktikum LabTI ini. Pada praktikum ini saya memilih judul lapangan Hockey, dengan objek lapangan hockey, stick, bola, tangga penonton, gawang, dan karakter.
Tahap pertama yang dilakukan adalah pembuatan objek menggunakan software Blender 3D, shortcut yang digunakan dalam pembuatan objek ini adalah S( untuk Scale), G(untuk mengeser “Grab”), shift+D(duplikat objek, B( untuk memblok), ctrl+R( untuk membagi objek), R(untuk rotasi), E(untuk extrude) dan modifiers yang digunakan yaitu, Mirror, Subdivision, dan Array.
Tahap kedua adalah mengeksport objek tersebut kedalam bentuk .mesh.
- Pastikan objek yang akan dieksport ke .mesh sudah digabung menjadi 1 objek (Ctrl+J).
- Klik File -> Export -> pilih Ogre 3D , kemudian simpan file pad folder yang diinginkan dan tekan OK.
- Buka CMD , lalu atur pathnya ( jika folder ada di D:/nama). Setelah itu, ketikkan pada CMD “OgreXmlConverter nama.mesh.xml” tunggu sampai proses selesai.
Tahap ketiga adalah merendering objek dengan Ogre.
- Copy file .mesh yang sudah dibuat dengan CMD kedalam folder OgreSDK/ media/ models dan copy materialnya kedala folder OgreSDK/ media/ materials.
- Buka Eclipse, lalu buka project yang sudah dibuat klik Rainz -> src -> BelajarOgre.cpp . Ubah kodingan untuk memasukkan objek yang ingin dirender dengan nama file yang sudah dieksport tadi.
- Ini merupakan kodingannya :
#include "ExampleApplication.h"
class BelajarOgre : public ExampleApplication {
public:
BelajarOgre(){
}
~BelajarOgre(){
}
protected:
void createScene(void){
mSceneMgr->setSkyBox(true, "Examples/MorningSkyBox");
Entity *obj = mSceneMgr->createEntity( "Hockey", "Hockey.mesh" );
SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("Hockey");
node1->attachObject(obj );
ParticleSystem* salju1 = mSceneMgr->createParticleSystem("Snow","Examples/Snow");
SceneNode * air1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("Snow");
air1->attachObject(salju1);
salju1->setDefaultHeight(10);
//lantai
Plane plane(Vector3::UNIT_Y,0); MeshManager::getSingleton().createPlane("ground",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,plane,
20000,20000,20,20,true,1,5,5,Vector3::UNIT_Z);//plane selebar w=1500 h=1500
Entity *lantai = mSceneMgr->createEntity("GroundEntity","ground");
mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(lantai);
lantai->setMaterialName("Examples/GrassFloor");
}
};
#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
MessageBox(NULL,e.what(),"Terjadi Error!",MB_OK | MB_ICONERROR |MB_TASKMODAL);
#else
fprintf(stderr,"Terjadi Error = %s\n",e.what());
#endif
}
return 0;
}
- Save, dan build project .
- Run project, di workspace yang sudah dibuat PROJECT / OGRE / Rainz / Debug / Rainz.exe .
- Selesai.
Output Program
- Hasil render melalui Blender.
- Hasil preview dari CeguiMeshViewer
- Hasil dari rendering OGRE
Tidak ada komentar:
Posting Komentar