Senin, 11 April 2011

Pengaplikasian ogre dan konfigurasinya

Pengaplikasian pada OGRE dengan Eclipse

1. Buka Eclipse
2. Kemudian buat project baru dengan menekan alt + shift + n lalu pilihlah C++ project dan perhatikan gambar berikut:


  
3. Isikan nama project pada Project Name, lalu pilih Project Type dengan Hello World C++ Project, uncheck pilihan show project types and toolchains… lalu pada bagian Toolchains pilih MinGW kemudian klik finish.

4. Jika berhasil maka pada bagian Project Explorer akan muncul sebuah hirarki seperti ini :
1.   


5. Tekan ctrl+F11, maka pada bagian console akan muncul output seperti ini :



5.  Lalu selanjutnya kita akan membuat sebuah project aplikasi 3D yang memanfaatkan OGRE.

6. Ulangi langkah 9, lalu pada langkah berikutnya pilih Empty Project dengan Toolchains MinGW.

7. Lalu klik project yang dibuat pada langkah 13, pada bagian project explorer lalu tekan alt+enter maka Properties akan terbuka.

8. Arahkan kebagian C/C++ Build Settings, Klik Manage Configurations lalu klik baris Release dan tekan Set Active dan klik OK.

9. Masuk ke bagian GCC C++ Compiler pada Tool Settings, selanjutnya ikutilah petunjuk table berikut ini untuk bagian-bagian properties pada pilihan Debug dan Release. Pastikan yang aktif adalah Release.


10. Mash pada bagian Tool Setting, masuk ke bagian MinGW C++ Linker ikutilah petunjuk table berikut ini untuk bagian-bagian properties pada pilihan Debug dan Release. Pastikan yang aktif adalah Release.


11.Masuk kebagian sourcecode, masukkan sourcecode berikut untuk testing :

#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));
    //Entity ad objek yg bs dirender discene
    Entity *ent1 = mSceneMgr->createEntity("Robot","robot.mesh");
   
       
SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("RobotNode");

    //attach entity ke scenenode ut beri lokasi render robot
    node1->attachObject(ent1);
    }
};

#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;
}

12. Build project tersebut, dan masuk kedalam direkori OgreSDK\bin\release lalu buka file resource.cfg maka isinya sbb :

# Resource locations to be added to the 'boostrap' path
# This also contains the minimum you need to use the Ogre example framework
[Bootstrap]
Zip=../../../Media/packs/OgreCore.zip

# Resource locations to be added to the default path
[General]
FileSystem=../../../Media
FileSystem=../../../Media/fonts
FileSystem=../../../Media/materials/programs
FileSystem=../../../Media/materials/scripts
FileSystem=../../../Media/materials/textures
FileSystem=../../../Media/models
FileSystem=../../../Media/overlays
FileSystem=../../../Media/particle
FileSystem=../../../Media/gui
FileSystem=../../../Media/DeferredShadingMedia
Zip=../../../Media/packs/cubemap.zip
Zip=../../../Media/packs/cubemapsJS.zip
Zip=../../../Media/packs/dragon.zip
Zip=../../../Media/packs/fresneldemo.zip
Zip=../../../Media/packs/ogretestmap.zip
Zip=../../../Media/packs/skybox.zip

13. Ganti bagian ../../../ dengan fullpath lokasi OgreSDK anda dalam hal ini isi resource.cfg milik saya menjadi:

# Resource locations to be added to the 'boostrap' path
# This also contains the minimum you need to use the Ogre example framework
[Bootstrap]
Zip=D:\BIN\OGRE_SDK\OgreSDK\media\packs\OgreCore.zip

# Resource locations to be added to the default path
[General]
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\fonts
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\materials\programs
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\materials\scripts
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\materials\textures
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\models
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\overlays
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\particle
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\gui
FileSystem=D:\BIN\OGRE_SDK\OgreSDK\Media\DeferredShadingMedia
Zip=D:\BIN\OGRE_SDK\OgreSDK\media\packs\cubemap.zip
Zip=D:\BIN\OGRE_SDK\OgreSDK\media\packs\cubemapsJS.zip
Zip=D:\BIN\OGRE_SDK\OgreSDK\media\packs\dragon.zip
Zip=D:\BIN\OGRE_SDK\OgreSDK\media\packs\fresneldemo.zip
Zip=D:\BIN\OGRE_SDK\OgreSDK\media\packs\ogretestmap.zip
Zip=D:\BIN\OGRE_SDK\OgreSDK\media\packs\skybox.zip

14.  Savelah file tersebut, lalu copy semua isi direktori OgreSDK\bin\release kedalam workspace project anda khusunya direkori nama_workspace\nama_project\Release, misalkan milk saya 3d-programming\Tutor1\Release.

15. Masuk ke direktori nama_workspace\nama_project\Release, jalankan file executablenya biasanya nama_project.exe maka akan muncul dialog seperti ini,


16. Disini kita mengkonfigurasi output yang ditampilkan, tekan OK, maka hasilnya adalah sbb:


Sumber : Modul LAB TI



Minggu, 10 April 2011

Cara install OGRE di Windows

Install OGRE di Windows

1. Download SDK di  http://www.ogre3d.org/download/sdk.
2. Download SDK yang cocok dengan versi IDE anda.
3. Download dan instal DirectX: directx_aug2009_redist.exe di http://www.microsoft.com/downloads/details.aspx?FamilyID=04ac064b-00d1-474e-b7b1-442d8712d553&displaylang=en
4. Download MINGW di http://sourceforge.net/projects/ogre/files/ogre-tools/MinGW%20C%2B%2B%20Toolbox/MinGW_Toolbox_Setup_wr1.exe/download

Jalankan installer 
















Lalu pergi ke folder dimana SDK OGRE di install kemudian copy pathnya
Kemudian buka CMD dan Pastkan pathnya











Kemudian ketikkan
setx OGRE_HOME D:\OgreSDK\OgreSDK_vc9_v1-7-1



Konfigurasi di Netbeans

DEBUG
Di C++ Compiler > Include Directories:
Path_to_Ogre/include
Path_to_Ogre/include/OIS
Path_to_Ogre/include/OGRE
Path_to_Ogre/Samples/Common/include
Path_to_Ogre/boost_1_42



Pre-Processor Definition:
WIN32
_DEBUG
_WINDOWS
In Linker > Libraries:
libOgreMain_d.dll.a
libOIS_d.dll.a


Tambahan direktori library
Path_to_Ogre/lib/debug
Path_to_Ogre/boost_1_42/lib
 
In Execute > Execute Directory:
Path_to_Ogre\bin\Debug


RELEASE
 
In C++ Compiler
Same as in the debug settings
Pre-Processor Definition:
WIN32
_NDEBUG
_WINDOWS
In Linker > Libraries:
Netbeans is going to automatically set the libraries based on those found in debug configurations
Additional Directories Libraries:
Path_to_Ogre/lib/release
Path_to_Ogre/boost_1_42/lib
In Execute > Execute Directory:
Path_to_Ogre\bin\Release


Sumber: http://www.ogre3d.org/tikiwiki/NetBeans+6.9.1&structure=Development










 

Pengertian dan latar belakang OGRE


Sebelum kita membahas tentang OGRE, kita harus mengetahui dahulu apa sih game engine itu?

Game engine 
adalah sebuah sistem perangkat lunak yang dirancang untuk penciptaan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada video game konsol dan komputer pribadi. Fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin rendering ("renderer") untuk grafis 2D atau 3D, mesin fisika atau deteksi tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, memori manajemen, threading, dukungan lokalisasi, dan grafik adegan. Proses pengembangan game sering dihemat oleh di menggunakan kembali sebagian besar / mengadaptasi mesin permainan yang sama untuk menciptakan permainan yang berbeda.

Contoh dari game engine
1. OGRE
2. Alice
3. D3D studio max

Disini penulis akan membahas tentang OGRE yag digunakan sebagai game engine.


Apa itu OGRE???
OGRE (Object-Oriented Graphics Rendering Engine) adalah sebuah mesin, adegan-berorientasi 3D fleksibel ditulis dalam C + + dirancang untuk membuatnya lebih mudah dan lebih intuitif bagi pengembang untuk menghasilkan aplikasi menggunakan grafis 3D hardware-accelerated. The abstrak perpustakaan kelas semua rincian penggunaan sistem perpustakaan yang mendasari seperti Direct3D dan OpenGL dan menyediakan sebuah antarmuka berbasis obyek kelas dunia dan intuitif lainnya.

Fitur OGRE

* Sederhana, mudah digunakan OO antarmuka yang dirancang untuk meminimalkan upaya yang diperlukan untuk membuat adegan 3D, dan menjadi independen dari 3D Direct3D/OpenGL yaitu implementasi.
* Contoh Extensible membuat kerangka mendapatkan aplikasi Anda berjalan cepat dan sederhana
* Persyaratan umum seperti manajemen membuat negara, pemusnahan spasial, berhubungan dengan transparansi dilakukan untuk anda secara otomatis menghemat waktu Anda yang berharga
* Bersihkan, desain rapi dan dokumentasi penuh dari semua kelas mesin
* Terbukti, mesin stabil digunakan dalam beberapa produk komersial

Platform & 3D dukungan API

* Direct3D dan dukungan OpenGL
* Windows (semua versi besar), Linux dan Mac OSX mendukung
* Membangun pada Visual C + + dan Code:: Blocks pada Windows
* Membangun di 3 gcc + di Linux / Mac OSX (menggunakan Xcode)

Material / Shader support

* Bahan bahasa deklarasi Powerfull memungkinkan Anda untuk mempertahankan aset material luar kode Anda
* Mendukung vertex dan program fragmen (shader), kedua program tingkat rendah ditulis dalam assembler, dan program-program tingkat tinggi ditulis dalam Cg, HLSL DirectX9, atau GLSL dan menyediakan dukungan otomatis untuk banyak parameter konstan seperti biasa terikat matriks pandangan dunia, informasi negara cahaya , benda antariksa posisi mata dll
* Mendukung lengkap fungsi operasi tetap seperti multitexture dan blending multipass, tekstur mengkoordinasikan generasi dan modifikasi, warna independen dan operasi alpha untuk perangkat keras non-programmable atau bahan biaya yang lebih rendah
efek lulus * Multiple, dengan iterasi lulus jika diperlukan untuk lampu 'n' terdekat
* Dukungan untuk teknik beberapa materi berarti Anda dapat merancang efek alternatif untuk berbagai kartu dan OGRE secara otomatis menggunakan yang terbaik didukung
* Material dukungan LOD; materi anda dapat mengurangi biaya sebagai objek dengan menggunakan mereka mendapatkan lebih jauh
* Load tekstur dari PNG, JPEG, TGA, BMP atau file DDS, termasuk format yang tidak biasa seperti 1D tekstur, tekstur volumetrik, cubemaps dan tekstur dikompresi (DXT/S3TC)
* Tekstur dapat disediakan dan diperbarui secara realtime oleh plugin, misalnya video feed
* Mudah digunakan mendukung texturing proyektif

Jerat

* Fleksibel format data mesh diterima, pemisahan konsep vertex buffer, buffer indeks, deklarasi dan mapping vertex buffer
* Biquadric Bezier patch untuk permukaan lengkung
* Progressive jerat (LOD), manual atau secara otomatis
* Batcher Statis geometri

Animasi

* Mendukung animasi canggih rangka
o campuran animasi berganda dengan bobot variabel
o variabel / tulang menguliti beberapa berat
o software dan jaringan pipa menguliti hardware-accelerated dengan berbagi buffer cerdas
manual o tulang kontrol
o interpolasi mode Dikonfigurasi, akurasi vs pengorbanan kecepatan
* Bentuk animasi dukungan Fleksibel
o Morph animasi untuk aplikasi warisan di mana Anda ingin melakukan campuran linear sederhana antara bentuk foto
o Pose animasi untuk animasi bentuk modern, memungkinkan Anda untuk campuran berbagai pose di bobot variabel sepanjang waktu, untuk ekspresi contoh / bentuk mulut untuk melakukan animasi wajah
o Kedua teknik dapat diimplementasikan dalam perangkat keras dan perangkat lunak tergantung pada dukungan hardware
* Animasi SceneNodes untuk path kamera dan teknik yang mirip, dengan menggunakan interpolasi spline jika diperlukan
* Generik trek animasi dapat menerima adapter objek pluggable untuk memungkinkan Anda untuk menghidupkan setiap parameter objek apapun dari waktu ke waktu

Fitur Scene

* Sangat disesuaikan, manajemen adegan fleksibel, tidak terikat untuk semua jenis adegan tunggal. Gunakan kelas standar untuk organisasi adegan jika mereka sesuai atau pasang di subclass Anda sendiri untuk mendapatkan kontrol penuh atas organisasi adegan
* Plugin Beberapa contoh menunjukkan berbagai cara penanganan adegan khusus untuk jenis tertentu dari tata letak (misalnya BSP, Octree)
* Grafik adegan hirarkis; node memungkinkan objek yang akan melekat satu sama lain dan mengikuti setiap gerakan lain, struktur diartikulasikan dll
* Teknik bayangan Multiple rendering, baik teknik modulative dan aditif, stensil dan tekstur berbasis, masing-masing sangat dapat dikonfigurasi dan mengambil keuntungan penuh dari setiap akselerasi perangkat keras yang tersedia.
* Scene query fitur

Efek visual

* Compositor sistem, memungkinkan untuk efek postprocessing layar penuh untuk didefinisikan dengan mudah, melalui script jika diinginkan
* Sistem Partikel, termasuk emitter mudah extensible, affectors dan renderers (disesuaikan dengan plugin). Sistem dapat didefinisikan dalam skrip teks untuk tweaker mudah. Otomatis penggunaan partikel pooling untuk kinerja maksimum
* Dukungan untuk skyboxes, skyplanes dan skydomes, sangat mudah digunakan
* Billboarding untuk grafis sprite
* Pita jalan
objek Transparan * otomatis dikelola (render order & pengaturan buffer mendalam semua diatur untuk Anda)

Misc fitur

* Infrastruktur sumber daya umum untuk manajemen memori dan loading dari arsip (ZIP, PK3)
* Fleksibel arsitektur plugin memungkinkan mesin yang akan diperpanjang tanpa kompilasi ulang
* 'Controller' memungkinkan Anda untuk dengan mudah mengatur nilai-nilai yang berasal antara objek misalnya mengubah warna kapal berdasarkan pelindung kiri
* Debugging memori manager untuk mengidentifikasi kebocoran memori
* ReferenceAppLayer memberikan contoh bagaimana menggabungkan OGRE dengan perpustakaan lain, misalnya ODE untuk tabrakan & fisika
* XMLConverter untuk mengkonversi format runtime efisien biner ke / dari XML untuk pertukaran atau mengedit





Sejarah

Sejarah singkat OGRE, dan tonggak-nya:

Sekitar 1999
Sinbad menyadari bahwa 'DIMClass' proyeknya, sebuah proyek untuk membuat mudah digunakan perpustakaan berorientasi obyek Direct3D, telah menjadi begitu disarikan bahwa itu benar-benar tidak perlu didasarkan pada Direct3D lagi. Dimulai perencanaan sebuah perpustakaan lebih ambisius yang bisa API dan platform independen.

25 Februari 2000
Proyek Sourceforge terdaftar, nama OGRE diciptakan. Tidak ada pembangunan mulai karena komitmen lain tetapi banyak merenungkan terjadi.

Februari 2005
Ogre v1.0.0 "Azathoth" Final Dirilis - perbaikan sumber daya sistem, perangkat keras buffer pixel, HDR, CEGui, XSI eksportir

Maret 2005
Raksasa adalah 'Proyek Bulan' di Sourceforge

November 4, 2005
Ankh dilepaskan sebagai produk komersial pertama yang menggunakan Ogre

Mei 7, 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)

28 Februari 2010
Ogre 1.7 "Cthugha" secara resmi dirilis (Saat ini 1.7.2 Stable Release)


Sumber
http://en.wikipedia.org/wiki/Game_engine
http://www.ogre3d.org/about
http://www.ogre3d.org/about/features
http://en.wikipedia.org/wiki/OGRE