Newsgroup: it.comp.grafica
Titolo: Motori dei giochi nelle applicazioni 3d?

Salve, ho cercato nei vecchi post ma non ho trovato nulla per cui procedo
con il domandone!
Per quale motivo nelle applicazioni 3d come 3d studio, maya, vue d'esprit, e
compagnia bella non vengono usati per le preview motori di rendering come
quelli dei videogiochi, in grado di sfruttare le risorse delle schede
grafiche 3d?
Porto l'esempio di vue d'esprit perchè l'ho usato, per chi non lo sapesse si
tratta di un'applicazione pensata principalmente per realizzare scene
naturalistiche, paesaggi, ecc., ma non solo.
In ogni caso il ragionamento vale per qualunque programma di grafica 3d.
Con vue d'esprit per ottenere un render di un fotogramma di una certa scena
a 640x480 con qualità "preview" ci vogliono con il mio processore (3ghz)
circa 30 secondi.
Ora, il motore di rendering del videogioco far cry (per fare un esempio) con
la mia scheda grafica (geforce fx5900xt) ed il mio processore, alla
risoluzione di 640x480 con le impostazioni di grafica di gioco al massimo
del dettaglio, è in grado di calcolare una scena di un paesaggio (simile a
quello realizzato con vue d'esprit proprio per confrontare paesaggi simili a
quelli del gioco) alla velocità di circa 30 fotogrammi al secondo.
Supponendo di poter aumentare ulteriormente 30 volte il livello di dettaglio
di questo gioco, o meglio fino ad ottenere 1 trentesimo delle prestazioni
suddette si otterrebbe il calcolo di 1 fotogramma al secondo e l'impatto
visivo della scena renderizzata sarebbe, a mio avviso, di gran lunga
superiore di quella di vue d'esprit in modalità "preview".
Ma facendo un'ipotesi ancora più pessimistica, supponiamo che la qualità sia
uguale e non migliore di quella della preview di vue d'esprit, il tempo di
calcolo sarebbe comunque di 1 secondo contro 30 secondi.
Ovviamente il motore grafico di far cry e per ora di nessun altro videogioco
è in grado di gestire global illumination, radiosity, materiali complessi,
hdri, e altre prelibatezze della grafica 3d, ed è proprio per questo che si
potrebbero usare solo per le anteprime. Poi una volta valutate le anteprime
si potrebbe passare al render finale, passando al motore di calcolo
dell'applicazione in grado di gestire tutti i calcoli ma che deve
appoggiarsi al processore di sistema.
In questo modo si potrebbe lavorare ad un progetto avendo anteprime alla
velocità della luce rispetto agli standard attuali, e lasciare a lavorare il
computer minuti, ore, o giorni solo per ottenere il render finale, o
comunque solo nelle ultime fasi di lavorazione, quando è necessario valutare
la scena al massimo del dettaglio.
Queste ovviamente sono tutte supposizioni ed ipotesi e visto che nessuno
ancora lo ha fatto mi è venuta spontanea la domanda: per quale motivo nelle
applicazioni 3d non vengono usati per le preview motori di rendering come
quelli dei videogiochi, in grado di sfruttare le risorse delle schede
grafiche 3d?
Grazie a tutti coloro che avranno voglia di rispondere o semplicemente di
discutere questo argomento, ciao!

 
Guarda che molti programmi (maya, after effects, ecc) gia' utilizzano 
l'hardware per le preview. Le ultime versioni di maya permettono di 
sfruttare l'hardware anche il rendering finale!
http://www.alias.com/eng/products-services/maya/technical_features/rendering.shtml
http://www.adobe.com/products/aftereffects/opengl.html

 sfruttare l'hardware anche il rendering finale!
L'hardware rendering di maya, per fare un esempio, permette di sfruttare
solo schede dedicate al 3d tipo le quadro. Le schede consumer non sono
supportate, come indicato nella pagina che hai segnalato.
La versione di 3d studio max che ho provato, per fare un altro esempio,
permette di sfruttare in minima parte l'accelerazione hardware della scheda
solo nella finestra di anteprima e la qualità è pessima, non sfrutta di
certo tutte le potenzialità delle directx9, ma nemmeno delle 8 per
intenderci.
Per non parlare poi di vue d'esprit, poser, z-brush ecc...

 grafiche 3d?
Se fosse così semplice lo avrebbero già fatto, non preoccuparti...
Il problema della velocità dei giochi è che molte cose sono state 
renderizzate "prima" proprio con applicazioni tipo 3ds max, ecc...
Es. 3ds max ha la funzione "render to texture".
Ora capisci che se renderizzo un palazzo per farne una texture, e ci metto 2 
minuti per renderizzarlo con tutti gli effetti di luce, ecc. e poi nel 
videogioco questa texture la appiccico ad un piano, il videogioco avrà modo 
di girare molto più veloce, pur facendo sembrare il palazzo qualitativamente 
eccezionale.
I miracoli non esistono, esistono solo le ottimizzazioni e la bravura dei 
programmatori.