EDIT PEWARNAAN PADA OGRE
Di Artikel ini saya hanya membuat pewarnaan pada OGRE secara singkat. Ogre adalah engine yang object oriented dan fleksibel 3D rendering pada game engine yang ditulis dalam bahasa c++ serta di desain untuk mampu mendevelopment dengan mudah kepada aplikasi produksi dengan menggunakan uttility hardware accelarated 3D graphic. Sebuah objek dalam animasi yang telah terbuat dalam ogre dapat diubah warnya sesuai dengan yang ktia kehendaki. Model warna yang dihasilkan merupakan kombinasi warna RBG yang merupakan singakatan dari Red, Green, dan Blue. API yang terdapat dalam OGRE, ini biasa dijadikan pada parameter pemanggilan fungsi ColourValue(float red,float green, float blue) dimana parameter fungsi ini memiliki range antara 0.0f sampai 1.0f. atau kita juga dapat menggunakan nilai integer untuk pewarnaan.
Berikut merupakan beberapa constanta warna built-in yang terdapat pada OGRE :
- static const Black = ColourValue(0,0,0)
- static const White=ColourValue(1,1,1)
- static const Red = ColourValue(1,0,0)
- static const Green = ColourValue(0,1,0)
- static const Blue = ColourValue(0,0,1)
ROTASI
Merotasi objek adalah salah satu langkah yang dapat dilakukan dalam ogre yaitu dengan menggunakan method yaw, pitch, dan roll baik dalam degree atau dalam radian. Terdapat berbagai macam jenis vektor, yang dibahas ini vektor 3D. dibawah ini merupakan posisi sumbu x, sumbu y, dan sumbu z pada OGRE.
jika kita hendak merotasi objek pada sumbu x
1 | node2->pitch( Degree( -90 ) ); |
jika kita hendak merotasi objek pada sumbu y
1 | node1->yaw( Degree( -90 ) ); |
jika kita hendak merotasi objek pada sumbu z
1 | node3->roll( Degree( -90 ) ); |
SHADOWING
Cara untuk mengedit dari fungis setShadowTechnique untuk menset type bayangan yang kita inginkan dimiliki oleh SceneManager. Jika kita ingin mencoba shadow pada Ogre, langkah yang harus dilakukan adalah dengan menambahkan kode berikut pada TutorialApplication:createScene();
void createScene(void)
{
Entity *ent;
Light *light;
mSceneMgr->setAmbientLight( ColourValue( 0, 0, 0 ) );
mSceneMgr->setShadowTechnique( SHADOWTYPE_STENCIL_ADDITIVE );
ent = mSceneMgr->createEntity("Ninja", "ninja.mesh");
ent->setCastShadows(true);
mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent);
Plane plane(Vector3::UNIT_Y, 0);
MeshManager::getSingleton().createPlane("ground",
ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane,
1500,1500,20,20,true,1,5,5,Vector3::UNIT_Z);
ent = mSceneMgr->createEntity("GroundEntity", "ground");
mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent);
ent->setMaterialName("Examples/Rockwall");
ent->setCastShadows(false);
TRANSLASI
Translasi adalah proses dimana objek dapat berpindah dari satu titik ke titik lain.
Method : node1->translate( Vector3( 10, 0, 10 ) );
Penskalaan dalam OGRE adalah salah satu bagian dari hubungan spasial transformasi yang dinyatakan dengan koordinat dinyatakan dalam sumbu X, Y, dan Z.
void createScene(void)
{
Entity *ent = mSceneMgr->createEntity(“Fish1”, “fish.mesh”);
SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( “Fish1”);
node1->attachobject( ent1);
node1->scale(3, 7, 5);
Entity *ent2 = mSceneMgr->createEntity( “Fish2”, “fish.mesh” );
SceneNode *node2 = mSceneMgr->getRootSceneNode()->createChildSceneNode( “Fish2”, vectore3(50, 0, 0);
node1->attachobject( ent1);
node1->scale(3, 7, 5);
Referensi:
eng-liebhaber.blogspot.com/2010/03/ogre.html
http://gameprogramming.blog.ittelkom.ac.id/blog/2009/11/30/ogre-3d-animation/
http://en.wikipedia.org/wiki/OGRE
http://osum.sun.com/group/universitasislamindonesia/forum/topics/2181626:Topic:451317
http://azerdark.wordpress.com/2008/08/08/game-programming-with-ogre-3d/