PDA

Visualizza Versione Completa : L'evoluzione dei giochi 3D



Manuel_Calavera
14-08-05, 20:32
Ragazzi.... sembrava ieri quando installai sul mio "potentissimo" 486 dx a 33 mb con ben..... 8mb di ram e 120mb di hd il mitico F115 alla fantastica risoluzione di 320x200 con ben 256 colori...:p
Oggi è realtà superata quella, oggi abbiamo doom 3, half life, unreal e tanti altri giochi che ci "mozzano" il fiato.
E' incredibile come in pochissimi anni la tecnologia usata nei pc sia evoluta in maniera così vertiginosa.
Chi non si ricorda il leggendario Wolfenstein3D della IDSoftware? Era il primo gioco basato su textures. Il meccanismo di rendering era così semplice e geniale che ho avuto l'occasione di studiarlo grazie ad un libro dedicato alla programmazione dei giochi 3d. Ne avevo fatto uno anch'io all'epoca (senza texture). Superbo!
Poi venne il capolavoro dell'algoritmo di rendering semplice: Doom! Non era altro che una "estensione" al renderer di Wolf3D. Infatti aveva anche il controllo del pavimento e del soffitto.
Grazie a Doom scoppiò la 3d mania nei PC, soprattutto quando venne reso pubblico il codice sorgente. Da segnalare anche Duke Nukem 3D (io lo chiamo "l'arrapato" :D) che era riuscito ad aggiungere la possiblità di poter creare mondi con piani uno sopra l'altro (a differenza di Doom).
Poi fu il terremoto che spazzò via tutti questi giochi (soprattutto gli engine): fu la volta di Quake! L'engine introdusse le shadow maps ai mondi in modo da realizzare giochi di ombre davvero notevoli. Fu grazie a Quake che le schede 3D iniziarono il loro cammino (3dfx, nvidia, ati, matrox e così via). Alcune schede avevano nella confezione il cd di Quake modificato col funzionamento hardware della scheda stessa.
Quake segnò il passaggio, per i videogiochi, dal DOS a Windows... o meglio all'unificazione dei driver di rendering: iniziò l'era delle DirectX e delle api OpenGL (vi ricordate di GLQuake?). Iniziammo a vedere i primi mondi con delle texture a proiezione bicubica o lineare.
Quake resistette per molto tempo, in quanto è il padre del file MDL. Il file MD2 nacque con Quake 2... semplice come il primo quake solo che sfrutta l'OpenGl e la possibilità di usare luci colorate.
Poi entra in scena il capolavoro del multi-texture e del procedural-texture: Unreal!
Unreal introdusse il sistema multi-texture anche con texture procedurali: quando mi avvicinavo ad un muro del gioco, appariva una minuziosa texture che indicava la corrozione del muro stesso: era notevole!
Unreal divenne anche il re del deathmatch: Unreal Tournament.
Da quel punto partirono tanti cloni dell'engine di Quake e Unreal che non ricordo più i nomi, tranne Half-Life 2 e Doom 3. Half-Life 2 aveva incorporato in se, il famoso engine Reactor (utilizzato in 3DSMax) con notevoli effetti di gravità. Doom 3 introdusse il raytracing delle ombre ed un force-feedback engine tutto suo.
Insomma, i giochi si evolvono in maniera vertiginosa! Dicono che l'engine Unreal 3 fa cose straordinarie, ma ovviamente richiede schede 3D straordinarie.
La mia domanda è.... Potremmo un giorno avere tutto questo realtime anche nella finestra di layout di LW? :cool:

Il dibattito è aperto!

gebazzz
14-08-05, 21:12
wow.. ho le lacrime agli occhi nel leggere alcuni nomi.. soprattutto quello di 3dfx.. (e qui ti bacchetto: come OSI dimenticarti delle API glide? :mad: )

cmq, x rispondere alla tua domanda.. si e no.
sì perchè anche il lightwave finalmente verranno usati i pixel/vertex shader delel schede video di ultime generazioni tramite il GLSL, e già nella 8.5 dovremmo vedere qualcosa.
no perchè non tutte le meraviglie dei motori 3d sono utilizzabili in applicazioni professionali: se nel primo caso l'approssimazione è una delle chiavi per avere una velocità decente nel rendering, anche nella viewport opengl di lightwave è richiesta invece una certa precisione.
un esempio.. hai mai notato che le animazioni dei personaggi in qualsiasi gioco 3d sono un po' "scattose"? o un po' "tremanti"? beh, tutto questo è dato dal fatto che le animazioni sono memorizzate con poca precisione per diminuire l'occupazione di memoria durante l'esecuzione di un videogioco. una soluzione simile è inadattabile nell viewport di un qualsiasi programma 3d professionale: lì è richiesta precisione, non c'è niente da fare.

quindi: sì alla preview delle superfici tramite pixel/vertex shader, no alla fisica e all'animazione dei videogiochi.

ho detto..

vash
love&peace

Manuel_Calavera
17-08-05, 14:44
Azz! Le glide!!! Me ne ero dimenticato di loro! Forse perché hanno avuto vita quasi breve!
Cmq, il mio intendo non era certo quello di utilizzare gli engine dei videogame esistenti per renderizzare i fotogrammi.... :)
Stiamo andando così veloce nel hardware 3d che ben presto, secondo il mio parere, avremo, per definizione di qualità medio alta, un profilo tutto hardware del calcolo (slurp! :D). Poi è chiaro che se vuoi il max della precisione e dell'accuratezza dei rendering devi far lavorare la CPU e nient'altro... Ma anche per questo, secondo me, è solo questione di tempo!
PS.: ma le api OpenGL 2.0 sono uscite?

gebazzz
17-08-05, 15:34
x l'hardware, è vero, si va avanti.. pensa che esistono schede per il raytracing hardware, ed ora stanno uscendo quelle che in hardware calcolano la fisica..

cmq, le opengl 2 a quanto ne so sono uscite.. sia i driver ati che nvidia le supportano da qualche release..

vash
love&peace