Come viene memorizzata e gestita una mappa di gioco 3D


9

Sono un programmatore ma non ho ancora sviluppato alcun gioco.

Ho giocato a vari giochi 3D e mi sono sempre chiesto come è memorizzata e resa la mappa del campo.

So che alcune schede di accelerazione sono un hardware necessario, ma come esattamente la vista viene cambiata senza nemmeno un singolo sfarfallio sullo schermo.

Hai del materiale online per aiutarmi a capire questo.

Grazie

Risposte:


9

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.


0

La vista viene modificata senza sfarfallio sullo schermo a causa del doppio buffering, elabora tutti i dati sul back buffer, quindi quando viene fatto in elaborazione, lo si scambia sul buffer frontale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.