20-05-2011, 12:50 AM
Risultato finale:
Questo tutorial vi mostrerà come settare il vostro ambiente di sviluppo per utilizzare Irrlicht Engine e come scrivere un semplice programma base con esso. Verranno mostrate le basi del VideoDriver, del GUIEnvironment e dello SceneManager.
L'IDE utilizzato per il tutorial è Microsoft Visual Studio, ma voi potrete utilizzare quello che preferite, a patto che riusciate a settarlo correttamente.
Potete scaricare Irrlicht Engine SDK 1.7.2 da qui: Irrlicht Engine - A free open source 3d engine
Per utilizzare correttamente Irrlicht Engine, dovrete includere ai vostri programmi l'header file <irrlicht.h>. Esso può essere trovato nella cartella "include" della directory di estrazione di Irrlicht. Per far sì che il compilatore possa trovare questo file, la cartella "include" di Irrlicht andrà inserita tra le "include directories" dell'IDE che state utilizzando. Inoltre, avremo anche bisogno del file "irrlicht.lib" che andrà selezionato nelle "lib directories" del vostro IDE.
Finite tali operazioni, il vostro IDE sarà settato correttamente. Potrete ora sviluppare applicazioni con Irrlicht Engine.
Iniziamo!
Dopo aver settato l'IDE, il compilatore saprà dove cercare gli header file di Irrlicht, quindi possiamo iniziare ad includere:
In Irrlicht tutto può essere trovato sotto il namespace "irr", quindi se vorrete usare una classe dell'engine dovrete scrivere "irr::" prima del nome della classe. Per risparmiare tempo, possiamo dire al compilatore che namespace vogliamo utilizzare, così da non scrivere "irr::" dappertutto. Scriveremo:
Esistono anche altri namespace in Irrlicht, ma non li useremo per questo esempio. Potete trovare una documentazione qui: Irrlicht Engine: Namespace Index. I namespaces sono:
Per utilizzare la libreria dinamica Irrlicht.dll, abbiamo bisogno di linkarla al nostro programma. Come già detto, possiamo farla richiamare automaticamente al compilatore impostandola nelle sue opzioni oppure richiamarla all'interno del programma con:
Questo, invece, è il metodo main(), il metodo principale dal quale il programma inizia:
La funzione più importante dell'engine è la createDevice(). Essa crea l'IrrlichtDevice, un oggetto che ci permette di fare tutto con l'engine. Essa ha sette parametri:
Impostiamo il titolo della finestra:
Definiamo dei puntatori al VideoDriver, al GUIEnvironment e allo SceneManager:
Aggiungiamo un'etichetta contenente del testo utilizzando il GUIEnvironment. Il testo sarà posizionato a (10,10) per l'angolo in altro a sinistra e (260,22) per l'angolo in basso a destra:
Per mostrare qualcosa di interessante, caricheremo un modello di Quake 2. Prenderemo la mesh dallo SceneManager con il metodo getMEsh() e aggiungeremo uno SceneNode per visualizzare la mesh con la sua animazione con addAnimatedMeshSceneNode(). Possiamo caricare mesh per qualsiasi formato supportato dall'engine. Possiamo anche caricare mappe per Quake 3 (.bsp).
La mesh in questo modo è caricata. Ora, però, abbelliremo il modello. Disabilitermo le luci, perché non abbiamo luci dinamiche nella scena, utilizzeremo un'animazione predefinita e applicheremo una texture al modello:
Per visualizzare la mesh finita, piazzeremo una visuale alla posizione (0,30,-40). La visuale guarderà da questa posizione a (0,5,0):
Ok, ora dobbiamo settare la scena e disegnare il tutto. Faremo partire la device in un loop che terminerà solo quando l'utente terminerà la finestra di esecuzione del programma:
Dopo aver finito con il render loop, dobbiamo cancellare la device creata con createDevice():
E' tutto, compilate e lanciate il programma per visualizzare cosa avete creato.
La guida è stata tradotta da me, l'originale è in lingua inglese e potete trovarla qui: Sito ufficiale Irrlicht
Saluti.
Questo tutorial vi mostrerà come settare il vostro ambiente di sviluppo per utilizzare Irrlicht Engine e come scrivere un semplice programma base con esso. Verranno mostrate le basi del VideoDriver, del GUIEnvironment e dello SceneManager.
L'IDE utilizzato per il tutorial è Microsoft Visual Studio, ma voi potrete utilizzare quello che preferite, a patto che riusciate a settarlo correttamente.
Potete scaricare Irrlicht Engine SDK 1.7.2 da qui: Irrlicht Engine - A free open source 3d engine
Per utilizzare correttamente Irrlicht Engine, dovrete includere ai vostri programmi l'header file <irrlicht.h>. Esso può essere trovato nella cartella "include" della directory di estrazione di Irrlicht. Per far sì che il compilatore possa trovare questo file, la cartella "include" di Irrlicht andrà inserita tra le "include directories" dell'IDE che state utilizzando. Inoltre, avremo anche bisogno del file "irrlicht.lib" che andrà selezionato nelle "lib directories" del vostro IDE.
Finite tali operazioni, il vostro IDE sarà settato correttamente. Potrete ora sviluppare applicazioni con Irrlicht Engine.
Iniziamo!
Dopo aver settato l'IDE, il compilatore saprà dove cercare gli header file di Irrlicht, quindi possiamo iniziare ad includere:
Codice PHP:
#include <irrlicht.h>
Codice PHP:
using namespace irr;
Codice PHP:
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
Codice PHP:
#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#endif
Codice PHP:
int main()
{
- deviceType: tipo del device. Può essere EDT_SOFTWARE, EDT_BURNINGSVIDEO, EDT_NULL, EDT_DIRECT3D8, EDT_DIRECT3D9 o EDT_OPENGL.
- windowSize: dimensione della finestra o risoluzione dello schermo nella modalità Full Screen.
- bits: quantità dei colori per pixel. Può essere 16 o 32.
- fullscreen: specifica se la finestra verrà aperta in full screen o no.
- stencilbuffer: specifica se vogliamo usare lo stencil buffer, per disegnare le ombre.
- vsync: specifica se vogliamo utilizzare la sincronia verticale, solo in FullScreenMode.
- eventReceiver: un oggetto che riceve eventi. Non useremo questo parametro, settandolo a 0.
Codice PHP:
IrrlichtDevice *device = createDevice( video::EDT_SOFTWARE, dimension2d<u32>(640,480), 16, false, false, false, 0);
if( !device )
return 1;
Codice PHP:
device->setWindowCaption( L"Prima prova con Irrlicht Engine!" );
Codice PHP:
IVideoDriver *driver = device->getVideoDriver();
ISceneManager *smgr = device->getSceneManager();
IGUIEnvironment *guienv = device->getGUIEnvironment();
Codice PHP:
guienv->addStaticText( L"Primo programma con Irrlicht Engine", rect<s32>(10,10,260,22), true );
Codice PHP:
IAnimatedMesh *mesh = smgr->getMesh( "../../media/sydney.md2" );
if( !mesh )
{
device->drop();
return 1;
}
IAnimatedMeshSceneNode *node = smgr->addAnimatedMeshSceneNode( mesh );
Codice PHP:
if( node )
{
node->setMaterialFlag( EMF_LIGHTING, false );
node->setMD2Animation( scene::EMAT_STAND );
node->setMaterialTexture( 0, driver->getTexture( "../../media(sydney.bmp" ) );
}
Codice PHP:
smgr->addCameraSceneNode( 0, vector3df( 0,30,-40 ), vector3df( 0,5,0 ) );
Codice PHP:
while( device->run() )
{
driver->beginScene( true, true, SColor( 255,100,101,140 ) );
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
Codice PHP:
device->drop();
return 0;
}
La guida è stata tradotta da me, l'originale è in lingua inglese e potete trovarla qui: Sito ufficiale Irrlicht
Saluti.