Ci sono, e non vedo l'ora di vedere i dettagli di altre risposte, ma un modo per affrontarlo è di non avere il rumore (o tanto rumore) nei dati di origine per cominciare.
Il rumore proviene dal fatto che il rendering presenta un'elevata varianza: il numero di campioni che hai preso non è abbastanza convergente alla risposta corretta effettiva dell'integrale, quindi alcuni pixel sono troppo alti / luminosi e alcuni sono troppo basso / debole (in ciascun canale di colore).
Il problema è questo: se si utilizzano numeri casuali di rumore bianco per eseguire il campionamento, è possibile che i campioni si raggruppino come nell'immagine seguente. Dato un numero sufficiente di campioni, convergerà, ma ci vorrà del tempo prima che fornisca una buona copertura dello spazio di campionamento. Trova una regione di spazio vuoto nell'immagine qui sotto (come in basso a destra) e immagina che lì ci fosse una piccola luce intensa e che la scena fosse buia ovunque. Puoi vedere come non avere alcun campione ci sarà un problema per il rendering.
In alternativa, puoi campionare a intervalli regolari come quello sotto, ma questo ti darà artefatti aliasing invece di rumore, il che è peggio.
Un'idea è quella di utilizzare sequenze a bassa discrepanza e fare l'integrazione quasi monte carlo ( https://en.wikipedia.org/wiki/Quasi-Monte_Carlo_method ). Le sequenze a bassa discrepanza sono correlate al rumore blu, che ha solo componenti ad alta frequenza. Seguendo questi percorsi, ottieni una convergenza più veloce diO ( 1 / N)anziché . Questi forniscono una migliore copertura dello spazio di campionamento, ma poiché presentano una casualità (o qualità simili a casuali), non hanno i problemi di aliasing che il campionamento spaziato regolarmente fa.O (N--√)
Ecco una "griglia con jitter" in cui si campiona su una griglia, ma si utilizzano piccoli offset casuali all'interno di una dimensione di cella. Questo è stato inventato da Pixar ed è stato brevettato per un po 'ma non lo è più:
Ecco una sequenza comune a bassa discrepanza chiamata sequenza di Halton (sostanzialmente una versione 2d di Van Der Corpus)
Ed ecco un campionamento del disco poisson, usando l'algoritmo del miglior candidato di Mitchel:
Maggiori informazioni, incluso il codice sorgente che ha generato queste immagini, sono disponibili qui: https://blog.demofox.org/2017/05/29/when-random-numbers-are-too-random-low-discrepancy-sequences/