Generalmente, il mondo è costituito da molti triangoli e la mappa è un elenco di questi triangoli e la posizione nel mondo di ciascun vertice. Il processo per disegnarli è:
- Imposta la posizione della "telecamera": se ti trovassi al mondo, questo è dove saresti nella posizione mondiale
- Trasforma i vertici del triangolo in "spazio della telecamera"
- Trasforma i triangoli dallo "spazio della telecamera" allo "spazio dello schermo": qui si verifica l'effetto della prospettiva (le cose distanti sono più piccole). I triangoli diventano 2D a questo punto.
- Disegna il triangolo 2D su uno schermo nascosto.
- Quando tutti i triangoli sono stati disegnati, mostra lo schermo al giocatore.
L'ultimo passaggio è in genere legato alla frequenza dei fotogrammi del monitor, in modo che il processo di visualizzazione dello schermo nascosto venga eseguito durante l'intervallo v-blank, un concetto derivato dai monitor del tubo a raggi catodici che ha permesso al fascio di catodi di spostarsi dal basso verso l'alto a sinistra, ciò richiedeva rapidamente, ma non istintivamente, la modifica delle tensioni sulle bobine di deflessione sul retro del tubo a raggi.
Questo è un metodo davvero semplice. Per ottenere prestazioni elevate, è necessario aggiungere elementi quali rimozione della superficie nascosta, occlusione, determinazione del set visibile e così via. Ci sono molti algoritmi coinvolti nel decidere cosa disegnare.
Inoltre, ho detto che il mondo è fatto di triangoli, ma potrebbe non essere memorizzato su disco in questo modo. Spesso, i triangoli che vengono disegnati sullo schermo vengono definiti in fase di esecuzione da primitive di ordine superiore, come mappe di altezza, spline, tessalizzazione, primitive geometriche (ad esempio una sfera, una scatola, ecc.) E così via.
Non è necessario un hardware dedicato: molti dei primi giochi 3D hanno fatto tutto nel software (anche su CPU a 8 bit senza FPU). Rende solo più veloce e più facile da fare.
Una domanda così semplice. Nessuna risposta facile.