Tuesday, October 26, 2010

Modalità Grafiche

Come abbiamo già visto nell'articolo dedicato all'hardware del Nintendo DS (lo potete trovare qui), il nostro DS dispone di ben due motori grafici, il Main Engine ed il Sub Engine (così chiamati seguendo lo standard delle libnds).
Il primo gestisce sia la grafica 2D che quella 3D mentre il secondo solo la grafica 2D.
In termini di grafica 2D le caratteristiche dei due motori grafici sono pressoché uguali tranne per il fatto che il Main Engine possiede una modalità aggiuntiva chiamata Frame Buffer.
Ma partiamo col descrivere le varie modalità.

1. Frame Buffer
In questa modalità è possibile impostare direttamente i valori RGB di ogni pixel dello schermo ottenendo 32768 colori (15 bpp - bits per pixel) occupando però ben 96 KB di memoria video.
Inoltre in questa modalità viene del tutto "scavalcato" il motore grafico e quindi le sue principali caratteristiche come la gestione degli sprite.

2. Bitmap
In queste modalità è possibile impostare per ogni pixel dello schermo un colore scelto in una palette (tavolozza) di 256 colori.
La palette viene definita in un'area di memoria a parte nella quale per ognuno dei colori, viene definita la terna RGB.
In questo modo ogni immagine a pieno schermo può mostrare contemporaneamente al massimo 256 colori diversi richiedendo però solo 48 KB di memoria video poiché ogni pixel richiede esclusivamente un byte.
E' anche possibile utilizzare le modalità bitmap a 32768 colori in maniera analoga alla modalità Frame Buffer senza però scavalcare il motore grafico e le sue principali funzioni.

3. Text Mode (Tiled Mode - modalità a tessere)
In queste modalità (le più complesse e le più efficenti nello sfruttare l'hardware grafico 2D) si definisce nella memoria video un archivio di immagini da 8x8 pixel a 16 o 256 colori dette tessere.
Queste tessere verranno composte sullo schermo usando una mappa, ovvero una matrice che descrive quali tessere (come fossero caratteri, da qui il nome Text Mode) posizionare una a fianco all'altra (o una sopra all'altra) per formare un'immagine sola.

Background
Sia nelle modalità Text che in quelle Bitmap, ogni schermo potrà disporre di 4 layers di background e la possibilità di mostrare/nascondere determinati pixel di ogni singolo layer, in modo da poter vedere i background sottostanti attraverso quelli sovrastanti.
Inoltre, a seconda della modalità utilizzata, alcuni background potranno essere traslati in orizzontale/verticale (scrolling), ruotati (rotating) ed ingranditi o rimpiccioliti (scaling).

Sprites
Entrambi i motori grafici possono inoltre gestire un massimo di 128 sprites, ognuno di dimensioni che variano dai più piccoli 8x8 pixels fino ai più grandi di 64x64 pixels (di forma sia quadrata che rettangolare).


0 comments:

Post a Comment