Kamis, 08 April 2010

Tutorial OGRE





Pendahuluan
Tutorial ini mengasumsikan Anda memiliki pengetahuan tentang pemrograman C + + dan mampu menggunakan dan mengkompilasi aplikasi Ogre

Pengenalan

Dalam tutorial ini saya akan memperkenalkan Anda ke paling dasar konstruksi Ogre: SceneManager, SceneNode, dan objek Badan. Kami tidak akan mencakup sejumlah besar kode, melainkan saya akan berfokus pada konsep-konsep umum bagi Anda untuk mulai belajar Ogre.

Anda harus perlahan-lahan menambahkan kode untuk proyek Anda sendiri dan mengamati hasil seperti yang kita membangunnya.

Persiapan


Kode awal

Kami akan menggunakan basis kode untuk tutorial ini. Anda harus mengabaikan semua kode,kecuali apa yang kita akan tambahkan dengan metode createScene. kemudian tutorial ini akan secara mendalam menjelaskan bagaimana kerja dari aplikasi Ogre, tetapi untuk sekarang kita akan mulai pada tingkat yang paling dasar. Buat proyek di compiler pilihan Anda untuk proyek ini, dan tambahkan file sumber yang berisi kode ini:



Jika Anda menggunakan OgreSDK di bawah Windows, pastikan untuk menambahkan "OgreSDK_DIRECTORY [] contoh \ \ termasuk" direktori dengan proyek ini (file ExampleApplication.h berlokasi di sana) di samping standar ini termasuk. . Jika menggunakan sumber Ogre distribusi, ini harus terletak di "OgreSource_DIRECTORY] [\ Contoh \ Common \ meliputi" direktori. Pastikan anda dapat mengkompilasi dan menjalankan kode sebelum melanjutkan ke bagian berikutnya, meskipun tidak lain dari layar kosong dengan sebuah kotak framerate akan muncul sampai kami menambahkan sesuatu kemudian di tutorial.

Setelah program ini bekerja, gunakan tombol WASD untuk bergerak, dan mouse untuk melihat-lihat.

Bagaimana Ogre Bekerja

Kita akan mulai dengan SceneManagers dan bekerja dengan cara kami untuk Entitas dan SceneNodes. Ketiga kelas adalah blok bangunan dasar aplikasi Ogre.

Dasar-Dasar SceneManager

Segala sesuatu yang muncul di layar dikelola oleh SceneManager (mewah itu).Bila Anda menempatkan obyek dalam adegan tersebut, SceneManager adalah kelas yang melacak lokasi mereka. Bila Anda membuat Kamera untuk melihat TKP (yang akan kita bahas pada kemudian tutorial) SceneManager terus memantau mereka. Bila Anda membuat pesawat, billboard, lampu dan seterusnya, SceneManager terus memantau mereka.

Ada SceneManagers,ada SceneManager untuk rendering peta BSP, dan sebagainya.

Dasar-Dasar Entitas

Sebuah entitas adalah salah satu jenis objek yang dapat membuat di sebuah scene. Anda dapat menganggap Entity sebagai apa pun yang diwakili oleh sebuah mesh 3D.Robot akan suatu entitas, ikan akan menjadi suatu entitas, karakter daerah Anda berjalan di atas akan menjadi entitas yang sangat besar. Hal-hal seperti Lampu, Baliho, Partikel, Kamera, dll tidak akan entitas.

Satu hal yang perlu diketahui tentang Ogre adalah bahwa ia memisahkan benda renderable dari lokasi mereka dan orientasi. Ini berarti bahwa Anda tidak dapat langsung menempatkan sebuah Badan dalam adegan.Sebaliknya Anda harus melampirkan Badan ke objek SceneNode, dan ini SceneNode berisi informasi tentang lokasi dan orientasi.

Dasar-Dasar SceneNode

Seperti telah disebutkan, SceneNodes melacak lokasi dan orientasi untuk semua benda yang melekat padanya. Bila Anda membuat sebuah Badan, tidak diberikan di tempat kejadian sampai Anda pasangkan ke SceneNode.Selain sebuah SceneNode bukan merupakan objek yang ditampilkan pada layar.Hanya ketika Anda membuat dan melampirkan SceneNode Entity (atau benda lainnya) untuk itu sesuatu yang benar-benar ditampilkan pada layar.

SceneNodes dapat memiliki sejumlah objek yang menyertainya. Katakanlah Anda memiliki karakter yang berjalan di sekitar pada layar dan Anda ingin memiliki dia menghasilkan cahaya di sekitarnya.Cara Anda melakukannya adalah dengan terlebih dahulu membuat SceneNode, kemudian buat Entity untuk karakter dan melampirkan ke SceneNode.Kemudian Anda akan membuat objek Light dan melampirkan ke SceneNode.SceneNodes juga dapat disertakan pada SceneNodes lain yang memungkinkan Anda untuk menciptakan hierarki seluruh node.Kami akan mencakup lebih maju menggunakan lampiran SceneNode di kemudian tutorial.

Satu konsep utama yang perlu diketahui tentang SceneNodes adalah bahwa Posisi SceneNode selalu relatif terhadap induknya SceneNode, dan masing-masing SceneManager berisi node root untuk semua SceneNodes lainnya yang melekat.