2011-11-02 13 views
11

Ho studiato (vecchie) tecniche di rendering 3D per le settimane passate e penso di avere ora una buona comprensione del modo in cui il rendering 3D in Doom funziona. Usa raycasting per rendere la scena 3D, usa sprite per oggetti e quindi non è "vero" 3D. Inoltre, non consente il look reale su/giù, solo tramite Y-shearing.Differenza tra il rendering Doom e Quake 3D

Quake è il primo motore 3D "vero" di ID, ha oggetti che possono essere visualizzati da diverse angolazioni e consentono di guardare in alto e in basso.

Ora sento questo 3D "vero" molto quando studio queste tecniche, ma non riesco a ottenere una chiara spiegazione di cosa significhi esattamente questo vero 3D. In che modo il rendering di Quake è diverso dal rendering di Doom?

Il mondo di Quake usa i vertici 3D e sono tutti proiettati al posto del raycasting per le intersezioni?

Mi piacerebbe sentire una spiegazione chiara delle differenze!

P.S. So che il codice sorgente di Quake è disponibile, ma l'FTP del software id è inattivo da settimane e non riesco a trovarlo da nessun'altra parte. Se qualcuno sa dove trovarlo altrove, fammi sapere.

risposta

3

Non penso che esista un'unica definizione universale. Forse il più vero 3d possibile è quello che è indistinguibile da ciò che vedi nella vita reale, che significa qualità fotorealistico-realistica di rendering di oggetti, luci, ombre, tenendo pienamente conto dei cambiamenti mentre accadono in tempo reale, creando il senso di profondità e cambiando anche con la posizione dell'osservatore, il loro uso di sinistra, di destra o di entrambi gli occhi e cambiando la messa a fuoco. Attualmente non disponiamo di una tecnologia così potente nei nostri computer e TV. L'esperienza di vita reale finora batte tutto ciò che è disponibile sul mercato per il consumatore generale.

Rispetto a Doom, Quake aveva un'illuminazione avanzata (tramite mappe chiare), ombreggiature, una migliore mappatura delle texture (tramite mappe MIP, riduzione degli artefatti di alias osservabili quando si guardano oggetti distanti) e oggetti 3d invece di sprite. Il suo spazio di gioco non era intrinsecamente piatto come Doom e il rendering permetteva di guardare le cose da diverse angolazioni come dici tu.

Maggiori dettagli possono essere trovati attraverso here e here.

Se sei interessato a come tutte queste fantastiche cose di Quake possono essere fatte, leggi i libri di Michael Abrash, ad es. Ramblings in Realtime e Graphics Programming Black Book.

+0

Link eccellenti! Sono molto utili per me. Grazie! –

+2

Inoltre, guarda [Fabien Sanglard blog] (http://fabiensanglard.net) per le spiegazioni dei codici software full id –

15

Giusto per sottolineare, il motore di rendering di Doom non è un raycaster (come Wolfenstein 3D), cioè non funziona proiettando un raggio per ogni colonna dello schermo. Piuttosto, è un motore BSP. La geometria del livello è divisa in un albero binario e quell'albero viene calato per rendere la scena.

In ogni punto dell'albero ci sono due sottoalberi, e questi sono percorsi in un ordine che dipende dalla posizione del giocatore in relazione alla linea che li divide. Questo assicura che siano resi in ordine, in modo che i muri più lontani siano occlusi da quelli più vicini.

Il vero aspetto verticale su e giù non è possibile per i motivi che spieghi - giochi come Heretic e Hexen che hanno aggiunto la possibilità di fare questo uso di Y-shearing, che è essenzialmente un hack. È come estendere l'altezza verticale dello schermo e quindi fornire una finestra che si muove su e giù.

È possibile trovare ulteriori informazioni su the Doom wiki e su Wikipedia - entrambi sono derivati ​​da un write-up Ho scritto su tutto2 anni fa.

Spero che questo aiuti!

0

Il motore doom ha grandi limitazioni. Ogni mappa è essenzialmente 2d e l'aspetto 3d è in gran parte un'illusione. Ogni punto sulla mappa ha solo un piano e un soffitto, quindi non ci possono essere over-pass. Non ci sono rampe, solo scale e muri. Tutte le linee verticali sono disegnate esattamente verticalmente, e non vi è alcuno sguardo su e giù.

+0

Probabilmente dovresti modificare il tuo post per avere Doom "vanilla" poiché tecnicamente ZDoom (e altre porte) sono anche Doom motore ma hanno pavimenti 3D, pendenze ... ecc. – Water

-2

L'apparenza in 3D di doom non è meno un'illusione di quella di un terremoto, il motore del terremoto potrebbe visualizzare le stesse mappe (se porting) come doom, se non si controlla lo sguardo su/giù, allora sarebbe ancora più vero a causa di cosa sta facendo sotto il cofano, nonostante sembra uguale al doom? o sarà meno 3d allora? il risultato sarebbe lo stesso.

+0

Non si tratta dell'aspetto ma del motore ... Se creo un visualizzatore di foto in grado di visualizzare una fotografia ... ne fa un motore? Secondo te lo fa, solo con le limitazioni che non puoi guardare su/giù e non puoi camminare. Parla di cosa può fare il motore, non di come viene usato. E il motore Doom ha quei limiti che non lo rende un vero motore 3D. – Timmos