PDA

View Full Version : Velocità rendering nei Software di grafica 3D


Alberello69
10-12-2004, 10:25
Salve a tutti, premesso che di sovtware 3d di animazione non ci capisco nulla, ma sono appassionato di grafica 3d, mi piacerebbe sapere come mai in questi programmi le velocità di rendering sono paurosamente lente se paragoni una scena che ha lo stesso impatto grafico di un gioco....
per esempio se prendi uno shot di HalfLife2 che viene renderizzato a 1280x1024 con Antialiasing ecc... in 1/60 di secondo, mentre una stanza fatta in 3dstudiomax che ha un impatto grafico 100volte inferiore ci mette un'eternita...
mi piacerebbe sapere come funziona il tutto:rolleyes:

grazie

la_piaga
10-12-2004, 11:08
Ti linco un topic del passato che (anche se in modo non molto esaustivo) tratta l'argomento. :)

http://forum.hwupgrade.it/showthread.php?s=&threadid=645498

Dioveht
10-12-2004, 11:16
Bhe, devi considerare che Half Life utilizza le accelerazioni 3D della scheda video...

inoltre i calcoli fatti dai programmi di rendering 3D sono molto più accurati e quindi richiedono più tempo...

Alberello69
10-12-2004, 11:37
Originariamente inviato da Dioveht
Bhe, devi considerare che Half Life utilizza le accelerazioni 3D della scheda video...

inoltre i calcoli fatti dai programmi di rendering 3D sono molto più accurati e quindi richiedono più tempo...
...vado a leggere subito quella discussione, ma io so che anche 3Dstudio utilizza opengl e Directx

la_piaga
10-12-2004, 12:43
L'utilizzo di openGL o d3d centra solo marginalmente, diciamo che fondamentalmente max ed un moderno gioco sono stretti parenti inquanto ambedue si appoggiano a queste api standard per il rendering in real time ovvero quello che vedi nei viewports mentre lavori sulla scena. Dal momento che decidi di lanciare la procedura di rendering complessa per la generazione di un'immagine l'api non interviene più, è totalmente irrilevante.
Naturalmente in un engine di un gioco tutto è tirato a balestra per avere le massime prestazioni e sfruttare molte caratteristiche dell'hardware lasciate dormienti nei viewport dei pacchetti "professionali". Ma veniamo al punto: il fatto che in un engine, utilizzando funzioni standard di un'api per il rendering in real time si riescano ad ottenere risultati ch spesso non hanno nulla da invidiare a produzioni pre renderizzate costate un sacco di tempo. Per essere brevi, l'elemento cardine è il modello di illuminazione, che è ciò che davvero incide nei rendering "classici" e che invece viene semplificato in modo disarmante (a dire il vero non centra quasi nulla) nei rendering in real time e come esso altri elementi (di impatto visuale e computazionale molto minori) vengono resi ma con modelli ultra alleggeriti.
Devi però considerare che un rendering in real time di impatto non può prescindere da un rendering "classico" con i fiocchi, e sta qui il segreto: i modelli ultra semplificati per il real time riescono a rendere così bene perchè fanno uso di componenti pre renderizzate che sapientemente miscelate, per quelle determinate condizioni ambientali/di illuminazione danno risultati eccellenti.
Faccio un paio di esempi per essere più chiaro: se guardi half life 2 vedrai che ha un rendering degli esterni eccezionale ma se ti concentri su ciò che vedi capirai che oltre ad un magnifico lavoro di textures diffuse "the magic" lo da la miscelazione di light maps prerenderizzate con algoritmi di global lighting, che sarebbero impensabili calcolate in RT ma siccome non hai mai variazioni climatiche durante la sessione di gioco, possono tranquillamente essere inserite come elemento fisso, precalcolato ad un costo infinitamente inferiore.
Altro esempio: la complessità delle superfici riflettenti in doom3 ti da l'illusione di un sacco di poligoni, ma in realtà si tratta di superfici semplici con applicate delle mappe di normali, che sono state generate a partire da dettagli insostenibili per un rendering RT ma che (come prima) essendo elementi invarianti possono essere "cotti" come texture miscelata.
Questo è in linea di principio un'accenno del sistema che utilizzano gli engines per avere rese e prestazioni così elevate; il rendering "classico" è come lo studente diligente che sviluppa l'esame, risolve i problemi e prende 30, il rendering RT è un po' come il bighellone che scopiazza dal diligente ed in pochi secondi consegna un esame molto simile a quello del suo benefattore. La morale è che il secondo fa bella figura grazie al primo e che inserendo elementi varianti nel problema poi il "copione" si verrebbe a trovare in serie difficoltà :)

Alberello69
10-12-2004, 13:37
complimenti: credo che sia una bella discussione da mettere in primo piano....che ne dice il moderatore?
ho fatto la stessa identica domanda dell'altra discussione aperta in precedenza :(

Dioveht
10-12-2004, 13:57
quoto quello che ha detto la_piaga e ribadisco:

Nei software come 3DStudio, OpenGL e DirectX vengono utilizzati esclusivamente durante l'editing nei viewport...

quando si fa partire il rendering tutto viene calcolato dal processore del sistema