Raytracing non in tempo reale


13

Ho giocato un po 'con raytracing in tempo reale (e raymarching ecc.), Ma non ho trascorso molto tempo su raytracing non in tempo reale - per immagini di qualità superiore o per pre-rendering di video e simili.

Conosco una tecnica comune per migliorare la qualità dell'immagine nel caso non in tempo reale è quella di lanciare MOLTO più raggi per pixel e fare una media dei risultati.

Ci sono altre tecniche che si distinguono come buoni modi per migliorare la qualità dell'immagine nel caso non in tempo reale, rispetto a ciò che faresti normalmente nel caso in tempo reale?

Risposte:


9

Il tracciamento del percorso è la tecnica standard nel rendering fotorealistico non in tempo reale e dovresti esaminare in modo specifico il tracciato bidirezionale per ottenere effetti come la caustica, che non puoi ottenere con il tracciato di base. La traccia del percorso bidirezionale converge anche più velocemente alla verità del terreno, come mostrato nell'immagine seguente: inserisci qui la descrizione dell'immagine Inoltre trasporto leggero di Metropolis (MLT) è una tecnica di tracciamento del percorso più avanzata che converge ancora più velocemente con la verità del terreno mutando i percorsi "buoni" esistenti: inserisci qui la descrizione dell'immagine

Puoi anche utilizzare il campionamento di importanza per una convergenza più rapida focalizzando più raggi sulle direzioni che contano di più. Vale a dire focalizzando i raggi basati su BRDF (più verso il picco BRDF usando la funzione di densità di probabilità) o sulla sorgente di luce, o ottenendo il meglio dei due mondi e usando il campionamento di importanza multipla. inserisci qui la descrizione dell'immagine Si tratta di ridurre il rumore in modo imparziale. Esistono anche tecniche di denoising per ridurre ulteriormente il rumore nelle immagini renderizzate. inserisci qui la descrizione dell'immagine

Penso che sia meglio implementare dapprima il tracciatore di percorsi Monte Carlo di forza bruta per servire come riferimento imparziale prima di esaminare le tecniche più avanzate. È abbastanza facile fare errori e introdurre distorsioni che passano inosservate, quindi avere una semplice implementazione è utile avere come riferimento.

Puoi anche ottenere dei risultati davvero interessanti applicando il tracciato dei percorsi ai media partecipanti, ma ciò rallenta molto velocemente: D inserisci qui la descrizione dell'immagine


5

Uno dei più grandi è l'uso della geometria solida costruttiva piuttosto che delle maglie triangolari. Le intersezioni raggio-triangolo sono più veloci di quasi tutte le altre intersezioni a forma di raggio, ma ci vogliono un numero enorme di triangoli per approssimare la superficie di un cilindro o toro, per non parlare di alcune forme davvero esotiche come i frattali julia o funzioni parametriche generalizzate che supporto per alcuni renderer.

Un altro è l'uso della mappatura dei fotoni render-time e dei calcoli di interrezione diffusa : questo ti consente di ottenere effetti di illuminazione accurati in una scena che cambia. Nel raytracing in tempo reale, questi sono troppo costosi per essere calcolati, quindi le fonti di luce e i principali elementi della geometria sono costretti a rimanere fermi (per consentire il pre-calcolo), oppure gli effetti sono completamente omessi.


Le superfici di suddivisione vengono utilizzate molto più della geometria solida costruttiva. Coinvolgono ancora triangoli (o in alternativa spline).

3

Anche se non sapevo del tracciato del percorso di Monte Carlo quando l'ho scritto, l'ho descritto per caso. Ironia della sorte, tracciare il percorso Monte Carlo è la risposta che stavo cercando in quel momento.

La traccia del percorso ingenuo Monte Carlo funziona valutando qualcosa chiamata equazione di rendering per risolvere numericamente il valore del colore di un pixel. Prende campioni casuali da un jitter casuale all'interno di un pixel (esistono migliori strategie di campionamento e filtraggio: qual è il ragionamento fondamentale per l'anti aliasing utilizzando più campioni casuali all'interno di un pixel? ) E anche rimbalzando in direzioni casuali quando un raggio colpisce una superficie .

Possono essere necessari molti campioni per ottenere buoni risultati e, se non ci sono abbastanza campioni, l'immagine apparirà rumorosa. Sono necessari 4 volte più campioni per dimezzare il rumore. I tempi di rendering possono essere dell'ordine di un'ora usando 8 moderni core CPU per una scena semplice.

Esistono tecniche di tracciamento del percorso Monte Carlo più avanzate che ti consentono di ottenere immagini migliori più rapidamente, come campionamento di importanza o denigrazione dell'immagine dopo il rendering.

Il tracciamento del percorso di Monte Carlo può creare immagini fotorealistiche e offre molte funzionalità di rendering avanzate solo perché segue le leggi fisiche e offre risultati realistici.

Puoi leggere di più qui: http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/

Ecco un'immagine di esempio, che ha richiesto circa un'ora per il rendering utilizzando tutti e 8 i miei core CPU:

inserisci qui la descrizione dell'immagine

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.