- Approfondimento su Irrlicht -
 
DOCUMENTO
Come funziona e da cosa è composto Irrlicht

Per chi vuole saperne di più

Irrlicht è un motore grafico opensource cross-plattform, ovvero utilizzabile sia in ambiente windows (32-64 bit) sia in ambiente linux. La caratteristica che contraddistingue questo grande motore grafico, è la sua semplicità di utilizzo nonché la sua (relativa) intuitività. Irrlicht non è un software bensì un insieme di librerie, classi ed istruzioni completamente scritte in linguaggio C++; è importante dire però che esistono plug-in per utilizzare Irrlicht, anche con altri linguaggi: ruby, .net e visual basic. Premesso ciò passiamo ad analizzare alcune delle basi del motore grafico. Per creare una scena abbiamo i seguenti strumenti:

  • Device
  • Scene Manager
  • Video Driver
  • Gui (gui environment, dall'inglese Graphic User Interface)

Per capire come funziono questi elementi immaginiamo la scena di un film, il device è il regista che si occupa di coordinare la scena, lo scene manager si occupa di gestire gli oggetti ed i loro movimenti, il video driver si occupa di gestire la parte grafica ed il gui gli eventi grafici, ovvero, usando un gergo televisivo, la scrittura in sovraimpressione.

La semplicita, sta nel fatto che questi strumenti utilizzano istruzioni (seppur in inglese) più comprensibili per l'uomo ed un api reference (documento di riferimento) facilmente consultabile, ad esempio, per ruotare un oggetto, basta il semplice comando:

smgr --> oggetto --> setRotation (x, y, z)

Più in particolare lo scene manager utilizza la teoria dei nodi per gestire gli oggetti. A questo punto è doveroso spiegare che cos'è un nodo: ogni oggetto che si trova sulla scena è un nodo, ne esistono tre tipi:

  • Root
  • Parent
  • Child

Il root è il nodo di origine in cui ogni nodo libero di default è attaccato ad esso con una struttura ad albero mentre parent e child sono rispettivamente genitore e figlio. Questo significa che ad ogni nodo della scena possiamo subordinarne un altro rendendo il primo parent e il secondo child. Ad ogni nodo parent possiamo affidare tutti i nodi child che vogliamo.

Vediamo ora i vantaggi di un nodo parent e di un nodo child. Innanzitutto bisogna dire che se abbiamo due nodi A (parent) B (child) e spostiamo A di 4 punti sull'asse x anche B si sposterà di 4 punti sull'asse x. Questo è molto utile ad esempio per far si che la telecamera segua il personaggio del gioco.

Come abbiamo accennato prima, il video driver si occupa della grafica, ovvero del driver di utilizzo per il render (il rendering è l'elaborazione grafica dettagliata degli oggetti) la grandezza della finestra la scala dei colori (ecc.), Irrlicht come driver di render può utilizzare:

  • Direct x 8.1
  • Direct x 9.0
  • OpenGL 1.5 (1.2 minimo)
  • Burnings video
  • Software di render integrato

Gui, si occupua di gestire gli eventi in sovraimpressione, ovvero di stampare le scritte a video (molto utile per visualizzare il punteggio in giochi di picchiaduro) e di gestire i comandi, quando ad esempio si preme il tasto start con la freccina del mouse (questi sono eventi gui).

Infine parliamo del loop principale del gioco ovvero un cliclo while. Al termine di ogni applicazione di Irrlicht, c'è sempre un'istruzione "while" ( un ciclo infinito che si termina con specifiche istruzioni) nel quale vanno le informazioni principali del nostro lavoro. Il tutto termina con un istruzione "draw --> all" che ripulisce la memoria da ogni traccia del nostro gioco al termine di esso.

 

<< INDIETRO