Ray Tracing with Cones: copertura, triangoli sovrapposti e adiacenti


10

Nel suo articolo classico Ray Tracing with Cones , John Amanatides descrive una variazione sul ray tracing classico. Estendendo il concetto di un raggio di un angolo di apertura , rendendolo un cono, è possibile ridurre gli effetti di aliasing (compresi quelli che provengono da troppi campioni di Monte Carlo).

Durante l'intersezione triangolo-cono, viene calcolato un valore di copertura scalare. Questo valore rappresenta la frazione del cono coperta dal triangolo. Se è inferiore a , significa che il triangolo non copre completamente il cono. Sono necessari ulteriori test. Senza l'uso di tecniche più avanzate, tuttavia, sappiamo solo quanto del cono è coperto, ma non quali parti.1

Amanatides afferma:

Dal momento che al momento viene utilizzato solo il valore di copertura frazionata per mescolare i contributi dei vari oggetti, le superfici sovrapposte verranno calcolate correttamente ma le superfici adiacenti no.

Questo non ha senso per me. Dal mio punto di vista è il contrario. Facciamo un esempio: abbiamo due triangoli vicini , uno verde e uno blu, ognuno dei quali copre esattamente il 50% del nostro cono. Sono alla stessa distanza dallo spettatore.

Triangolo verde e blu

Il triangolo verde viene testato per primo. Ha un valore di copertura di 0,5, quindi il triangolo blu verrà testato successivamente. Con il valore di copertura del blu di 0,5 il nostro cono è completamente coperto, quindi abbiamo finito e finiamo con una miscela verde-blu 50:50. Grande!

Ora immagina di uccidere il triangolo blu e di aggiungerne uno rosso a una certa distanza dietro quello verde - sovrapposto . Greeny ci fornisce nuovamente un valore di copertura di 0,5. Dal momento che non abbiamo più quello blu da testare, guardiamo più in basso nel cono e presto troviamo quello rosso. Anche questo restituisce un valore di copertura maggiore di 0, cosa che non dovrebbe perché è dietro a quello verde.

Quindi, da ciò, concludo che i triangoli adiacenti funzionano bene, mentre i triangoli sovrapposti avrebbero bisogno di un po 'più di magia come le maschere di copertura per essere corretti. Questo è l'opposto di ciò che dice Amanatides. Ho frainteso qualcosa o è un errore sul foglio?

Risposte:


3

Ho implementato un ray tracciante basato sul lavoro di Amantides ma, com'era anni fa, la mia memoria del documento è un po 'arrugginita.

Tuttavia, ignorando questo caso particolare, in generale quando si tratta di lavorare con una copertura frazionaria, ad esempio la composizione alfa, (vedi "A su B" ), la mia comprensione è che il solito presupposto è che gli articoli che vengono composti non sono correlati.

Pertanto, se A con copertura X% è in cima a B con copertura Y% e C in background, si presume che si vedrà
X% * ​​A + (100-X%) * Y% * B + (100-X %) (100-Y%) * C

Ha senso? Ovviamente questo darà "perdite" nel caso in cui A e B siano fortemente correlati.

Penso che avrei potuto mettere una piccola maschera sui raggi per evitare questi problemi, ma è stato molto tempo fa.


Con questa spiegazione ha perfettamente senso, grazie! Nel caso in cui ricordi, come è stata la tua esperienza con la tracciatura dei coni rispetto alla normale analisi dei raggi? Naturalmente è un'approssimazione, ma raggiunge una notevole velocità con una qualità accettabile?
David Kuri,

Oh, cavolo, è stato tanto tempo fa. In realtà, ho implementato solo la traccia del cono. Se ho effettivamente provato a disattivare la parte del raggio, semplicemente non riesco a ricordare, ma, se avrò tempo, proverò a ricordare i pro e i contro dell'andare lungo il percorso del cono.
Simon F
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.