Minggu, 28 Oktober 2012

OGRE



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 :

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