Kali
ini penulis akan membahas tentang OGRE (Object – Oriented Graphics Rendering
Engine) adalah engine yang merupakan object oriented dan flexibel 3D rendering
pada game engine yang ditulis dalam bahasa C++ serta didesain untuk mampu
men-develop dengan intuitif dan mudah kepada aplikasi produk dengan menggunakan
utility hardware-accelerated 3D graphic. OGRE menggunakan library seperti
Direct3D dan OpenGL, serta menyediakan sebuah dasar interface di dunia object
dan class object yang lebih tinggi.
Sejarah Singkat OGRE :
- Berawal dari tahun 1999 merancang perpustakaan yang ada API dan platform independennya.
- Kemudian 25 Februari 2000 mendaftarkan proyek Sourceforge dengan nama OGRE.
- Februari 2005 dirilislah Ogre v1.0.0
- Maret 2005 Ogre adalah ‘Project of the Month’ di Sourceforge
- 4 November 2005 Ankh dilepaskan sebagai produk komersial pertama menggunakan Ogre
- 7 Mei 2006 Ogre 1.2 “Dagon” secara resmi dirilis
- 25 Maret 2007 Ogre 1.4 “Eihort” secara resmi dirilis
- 28 Agustus 2008 Ogre 1.6 “Shoggoth” secara resmi dirilis (Saat ini 1.6.5 Stable Release)
- 31 Desember 2009 1,7 ogre RC1 “Ctchugha” secara resmi dirilis (Saat ini 1.7.0 Pre Release)
- 28 Februari 2010 Ogre 1.7 “Cthugha” secara resmi dirilis (Saat ini 1.7.0 Stable Release
Langkah menginstal ORGE
yaitu :
- Download OGRE SDK for Code::Blocks + MinGW C++ Toolbox Download ogre SDK untuk Code:: Blocks + MinGW C + + Toolbox
- Install it somewhere. Menginstalnya di suatu tempat. We’ll use c:\OgreSDK Kita akan menggunakan c: \ OgreSDK
Manipulasi yang dapat dilakukan dalam Ogre ada 5, yaitu diantaranya:
1. Coloring/Pewarnaan
2. Shadowing/Bayangan
3. Rotation/Putaran
4. Translasi/Perpindahan
5. Dilatasi/Penskalaan
Penjelasan
Coloring/Pewarnaan
Mengubah warna objek yang telah dibuat. Model warna yang dihasilkan merupakan kombinasi warna dari RED, GREEN, dan BLUE (RGB). API yang terdapat dalam OGRE, yang membuat model ini biasa dijadikan sebagai parameter pemanggilan fungsi ColourValue(float red,float green, float blue) dimana parameter fungsi ini memiliki panjang antara 0.0f sampai 1.0f atau dapat juga menggunakan nilai integer untuk pewarnaan.
Contoh constanta warna yang terdapat pada OGRE yaitu:
- 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)
Shadowing/Bayangan
Scene Manager pada Ogre memiliki fungsi setShadowTechnique untuk mengatur type bayangan yang kita inginkan pada objek yang telah dibuat. Untuk mencoba manipulasi shadow pada Ogre, tambahkan beberapa koding pada TutorialApplication::createScene();.
Rotation/Putaran
Rotasi objek pada Ogre dengan menggunakan metode yaw, pitch, dan roll baik dalam degree maupun radian. Dalam Ogre, terdapat berbagai macam jenis vektor 3D. Berikut adalah posisi sumbu x, y, dan z pada Ogre.
Untuk rotasi objek pada sumbu x :
--> 1 node2->pitch( Degree( -90 ) );
Untuk rotasi objek pada sumbu y :
--> 1 node1->yaw( Degree( -90 ) );
Untuk rotasi objek pada sumbu z :
--> 1 node3->roll( Degree( -90 ) );
Translasi/Perpindahan
Translasi merupakan suatu proses yang menyebabkan perpindahan objek dari satu titik ke titik lain. Untuk itu pada Ogre juga menggunakan metode untuk melakukan perpindahan objek tersebut dengan cara sebagai berikut :
Metode : node1-->translate( Vector3( 10, 0, 10 ) );
Dilatasi/Penskalaan
Penskalaan pada Ogre merupakan salah satu bagian dari hubungan transformasi yang dinyatakan dengan koordinat pada sumbu x, y, dan z.
Cara
kerja Ogre :
Beberapa hal dasar yang perlu diketahui
didalam Ogre adalah SceneManager, Entity, SceneNode . Ketiga kelas tersebut
adalah blok bangunan dasar dari aplikasi Ogre.
SceneManager
Segala sesuatu yang muncul di layar
dikelola oleh SceneManager. Ketika Anda menempatkan objek di layar, SceneManager
adalah kelas yang melacak lokasi mereka. Bila Anda membuat Kamera untuk melihat
adegan SceneManager melacak mereka. Bila Anda membuat pesawat, billboard, lampu
... dan seterusnya, SceneManager melacak mereka.
Ada beberapa jenis SceneManager. Ada
SceneManager yang membuat medan/terrain, ada SceneManager untuk rendering BSP
peta, dan sebagainya.
Entity
Entity adalah salah satu jenis objek
yang dapat Anda buat di sebuah scene/adegan. Anda dapat menganggap suatu entity
sebagai sesuatu yang diwakili oleh mesh 3D. Sebuah robot akan menjadi entity,
ikan akan menjadi entity, karakter Anda yang berjalan di atas medan/terrain
akan menjadi entity yang sangat besar. Hal-hal seperti Lampu, Baliho, Partikel,
Kamera bukan merupakan Entity.
Satu hal yang perlu diketahui tentang
Ogre adalah bahwa ia memisahkan renderable objek dari lokasi mereka dan
orientasi. Ini berarti, Anda tidak dapat langsung menempatkan Entity dalam
sebuah scene/adegan. Sebaliknya Anda harus melampirkan Entity ke objek
SceneNode, dan SceneNode ini berisi informasi tentang lokasi dan orientasi.
SceneNode
SceneNodes melacak lokasi dan orientasi
untuk semua objek yang melekat padanya. Bila Anda membuat Entity, entity tidak
akan ditampilkan di scene/adegan sampai anda memasang entity ke sebuah
SceneNode. Selain itu SceneNode bukanlah suatu objek yang ditampilkan pada
layar.
SceneNodes dapat memiliki sejumlah
objek yang menyertainya. Katakanlah Anda memiliki karakter yang berjalan di
sekitar layar dan Anda menginginkan karakter tersebut menghasilkan cahaya di
sekelilingnya. Cara pertama yang dapat Anda lakukan adalah membuat SceneNode,
kemudian membuat Entity untuk karakter dan melampirkannya pada SceneNode tersebut.
Kemudian Anda akan membuat objek Light dan melampirkannya pada SceneNode
tersebut. SceneNodes juga dapat melekat pada SceneNodes lain yang memungkinkan
Anda untuk membuat hirarki seluruh node.
Salah satu konsep utama yang perlu
diketahui tentang SceneNodes adalah: bahwa sebuah posisi SceneNode adalah selalu
relatif terhadap SceneNode induknya.
Manipulasi yang dapat dilakukan
dalam Ogre ada 5, yaitu diantaranya:1. Coloring/Pewarnaan
2. Shadowing/Bayangan
3. Rotation/Putaran
4. Translasi/Perpindahan
5. Dilatasi/Penskalaan
Penjelasan
Coloring/Pewarnaan
Mengubah warna objek yang telah dibuat. Model warna yang dihasilkan merupakan kombinasi warna dari RED, GREEN, dan BLUE (RGB). API yang terdapat dalam OGRE, yang membuat model ini biasa dijadikan sebagai parameter pemanggilan fungsi ColourValue(float red,float green, float blue) dimana parameter fungsi ini memiliki panjang antara 0.0f sampai 1.0f atau dapat juga menggunakan nilai integer untuk pewarnaan.
Contoh constanta warna yang terdapat pada OGRE yaitu:
- 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)
Shadowing/Bayangan
Scene Manager pada Ogre memiliki fungsi setShadowTechnique untuk mengatur type bayangan yang kita inginkan pada objek yang telah dibuat. Untuk mencoba manipulasi shadow pada Ogre, tambahkan beberapa koding pada TutorialApplication::createScene();.
Rotation/Putaran
Rotasi objek pada Ogre dengan menggunakan metode yaw, pitch, dan roll baik dalam degree maupun radian. Dalam Ogre, terdapat berbagai macam jenis vektor 3D. Berikut adalah posisi sumbu x, y, dan z pada Ogre.
Untuk rotasi objek pada sumbu x :
--> 1 node2->pitch( Degree( -90 ) );
Untuk rotasi objek pada sumbu y :
--> 1 node1->yaw( Degree( -90 ) );
Untuk rotasi objek pada sumbu z :
--> 1 node3->roll( Degree( -90 ) );
Translasi/Perpindahan
Translasi merupakan suatu proses yang menyebabkan perpindahan objek dari satu titik ke titik lain. Untuk itu pada Ogre juga menggunakan metode untuk melakukan perpindahan objek tersebut dengan cara sebagai berikut :
Metode : node1-->translate( Vector3( 10, 0, 10 ) );
Dilatasi/Penskalaan
Penskalaan pada Ogre merupakan salah satu bagian dari hubungan transformasi yang dinyatakan dengan koordinat pada sumbu x, y, dan z.
Cara kerja Ogre :
Beberapa
hal dasar yang perlu diketahui didalam Ogre adalah SceneManager, Entity,
SceneNode . Ketiga kelas tersebut adalah blok bangunan dasar dari aplikasi
Ogre.
SceneManager
Segala
sesuatu yang muncul di layar dikelola oleh SceneManager. Ketika Anda
menempatkan objek di layar, SceneManager adalah kelas yang melacak lokasi
mereka. Bila Anda membuat Kamera untuk melihat adegan SceneManager melacak
mereka. Bila Anda membuat pesawat, billboard, lampu ... dan seterusnya,
SceneManager melacak mereka.
Ada
beberapa jenis SceneManager. Ada SceneManager yang membuat medan/terrain, ada
SceneManager untuk rendering BSP peta, dan sebagainya.
Entity
Entity
adalah salah satu jenis objek yang dapat Anda buat di sebuah scene/adegan. Anda
dapat menganggap suatu entity sebagai sesuatu yang diwakili oleh mesh 3D.
Sebuah robot akan menjadi entity, ikan akan menjadi entity, karakter Anda yang
berjalan di atas medan/terrain akan menjadi entity yang sangat besar. Hal-hal
seperti Lampu, Baliho, Partikel, Kamera bukan merupakan Entity.
Satu
hal yang perlu diketahui tentang Ogre adalah bahwa ia memisahkan renderable
objek dari lokasi mereka dan orientasi. Ini berarti, Anda tidak dapat langsung
menempatkan Entity dalam sebuah scene/adegan. Sebaliknya Anda harus melampirkan
Entity ke objek SceneNode, dan SceneNode ini berisi informasi tentang lokasi
dan orientasi.
SceneNode
SceneNodes
melacak lokasi dan orientasi untuk semua objek yang melekat padanya. Bila Anda
membuat Entity, entity tidak akan ditampilkan di scene/adegan sampai anda
memasang entity ke sebuah SceneNode. Selain itu SceneNode bukanlah suatu objek
yang ditampilkan pada layar.
SceneNodes
dapat memiliki sejumlah objek yang menyertainya. Katakanlah Anda memiliki
karakter yang berjalan di sekitar layar dan Anda menginginkan karakter tersebut
menghasilkan cahaya di sekelilingnya. Cara pertama yang dapat Anda lakukan
adalah membuat SceneNode, kemudian membuat Entity untuk karakter dan
melampirkannya pada SceneNode tersebut. Kemudian Anda akan membuat objek Light
dan melampirkannya pada SceneNode tersebut. SceneNodes juga dapat melekat pada
SceneNodes lain yang memungkinkan Anda untuk membuat hirarki seluruh node.
Salah
satu konsep utama yang perlu diketahui tentang SceneNodes adalah: bahwa sebuah
posisi SceneNode adalah selalu relatif terhadap SceneNode induknya.
Tidak ada komentar:
Posting Komentar