|
 Il
RayTracing (RayTrace.lws, Tracer-NoRadiosity.lws)
Il raytracing è quella parte dei motori di rendering
che permette di tracciare le ombre degli oggetti anche in
presenza di trasparenze e di calcolare le riflessioni e le
rifrazioni; questo è possibile grazie ad una simulazione
del comportamento dei raggi di luce che partono dalle sorgenti
presenti in scena ed interagiscono con gli elementi presenti.
La prima delle scene di test scelte, RayTrace.lws, presenta
un piano su cui sono sospese 3 sfere, ognuna caratterizzata
da particolari settaggi circa trasparenze, riflessioni e rifrazioni;
sullo sfondo, inoltre, vi sono 3 piani verticali che simulano
la presenza di altrettanti specchi. Tutto ciò mette
alla prova gli algoritmi di raytracing in tutti i loro aspetti,
visto che anche le ombre sono attive.
Osserviamo i render finali:
| Versione |
Immagine
finale |
Differenze
con la 8.2.1 |
| v6.0
|
1024x768 |
|
|
| v6.5b |
1024x768 |
|
|
| v7.0b |
1024x768 |
|
|
| v7.5d |
1024x768 |
|
|
| v8.0.1 |
1024x768 |
|
|
| v8.2.1 |
1024x768 |
|
Come si può notare, il risultato della 6.0 è
alquanto diverso da tutti gli altri. Dalla 6.5b in poi, l'immagine
è praticamente identica, con piccole differenze nella
rifrazione delle superfici, notabili soprattutto nella sfera
verde.
Osserviamo ora i tempi di rendering:


La 6.0, per ottenere il suo risultato, impiega il tempo maggiore.
Dopo un apprezzabile miglioramento con la 6.5b e la 7.0b,
i tempi iniziano a crescere fino alla 8.0.1; è solo
con la 8.2.1 che i programmatori Newtek hanno lavorato all'ottimizzazione
di questo reparto, anche se ancora non siamo tornati a quanto
ottenibile nè con la 7.0b nè con la 7.5d.
La seconda scena scelta, Tracer-NoRadiosity.lws, presenta
un piano di legno lucido su cui è appoggiato un cubo
totalmente trasparente e una sfera di metallo. Il tutto è
illuminato dalla HDRI “kitchen_probe.pic”, aggiunta
in scena tramite il plugin Image World. All'immagine finale
è applicato il Soft Filter della Camera e l'Image Filter
Corona.
Le caratteristiche dei materiali degli oggetti mettono alla
prova le riflessioni (interazione con mappa HDRI), le trasparenze,
le rifrazioni e le caustiche (cubo).
Osservando le immagini finali, subito si nota come quella
prodotta dalla 6.0 sia molto scura. Il motivo è semplice:
quella versione di LightWave non ha il plugin Image World,
e quindi l'HDRI non viene in alcun modo applicata alla scena.
Il caricamento della scena nel Layout di quella versione,
inoltre, è totalmente errato. La sfera metallica, infatti,
non viene posizionata correttamente (rimane nell'origine degli
assi globali) e le sue dimensioni (pannello Size), invece
di essere 1.0 1.0 1.0 sono -100.0 1.0 1.0. Nonostante i miei
tentativi di rimettere tutto a posto, appena lanciato il rendering
o spostato la timeline tutto torna come a scena appena caricata.
Ho provato anche a usare il Graph Editor per modificare i
valori, ma in tal sede quelli relativi alle dimensioni vengono
visualizzati correttamente. Alla fine, ho deciso di fare ugualmente
il rendering e di mettere il risultato nel grafico, nonostante
non sia attendibile.
| Versione |
Immagine
finale |
Differenze
con la 8.2.1 |
| v6.0
|
1024x768 |
|
|
| v6.5b |
1024x768 |
|
|
| v7.0b |
1024x768 |
|
|
| v7.5d |
1024x768 |
|
|
| v8.0.1 |
1024x768 |
|
|
| v8.2.1 |
1024x768 |
|
Trascurando l'analisi della prima immagine, si vede che le
differenze più marcate si trovano nelle caustiche.
Questo, probabilmente, è causato dal fatto che il loro
calcolo è fondato su parametri “casuali”,
quindi diversi di volta in volta. Si può comunque notare
un miglioramento della granulosità dalla 7.0b alla
7.5d e dalla 7.5d alla 8.0.1.
Infine, nella 6.5b si riscontrano diversitą nel calcolo dell'effetto
corona, evidenti soprattutto nelle riflessioni sulla sfera
metallica.
Per quanto riguarda i tempi di resa, la 6.5b di conferma come
la peggiore implementazione degli algoritmi di raytracing
(escludendo la 6.0 che, come detto, non fornisce risultati
corretti). Il salto alla 7.0b è marcato, anche se con
le versioni successive questo vantaggio va' un po' perso fino
alla 8.2.1, che presenta miglioramenti addirittura superiori
a quanto visto con la 7.0b.
|