Scattering volumetrico completo Monte-Carlo


9

Vorrei aggiungere lo scattering volumetrico monte-carlo completo al mio tracciatore di percorsi, ma sto facendo fatica a cercare come farlo. Lasciami spiegare cosa vorrei fare: Dispersione volumetrica di Monte Carlo un raggio entra in un materiale e applichiamo il BTDF, quindi dopo una certa distanza, si verifica un evento di scattering volumetrico, dopodiché (nel caso isotropico), il raggio si disperde in qualsiasi direzione nella sfera. Questo si ripete fino a quando il raggio esce dal materiale con un altro BTDF.

Le mie domande sono le seguenti:

  1. Come faccio a scegliere la distanza tra gli eventi scatter? L'intuizione mi dice che dovrebbe esserci una specie di pdf scatter, che dà la probabilità di scatter dopo una certa distanza?
    • Questo sarebbe corretto?
    • Il pdf sarebbe una funzione lineare per i materiali isotropi?
    • Questa funzione ha un nome o qualcosa che posso Google?
  2. Beer-Lambert si applicherebbe ancora tra gli eventi scatter?
    • Non penserei. Poiché Beer-Lambert è una semplificazione dei calcoli di scattering effettivi.
    • Poi di nuovo, forse Beer-Lambert è un calcolo su micro scala e il tracciato del percorso è su macro scala.
  3. Qual è l'equivalente volumetrico di un BSDF? Sembra che io possa usare una funzione di fase come Henyey-Greenstein per determinare la nuova direzione, ma cosa devo usare per l'attenuazione?
  4. Infine, quali sono alcune frasi Google migliori per lo scattering volumetrico Monte-Carlo?
    • La ricerca di scattering volumetrico, o SSS, finisce per fornire documenti, metodi e post di blog sulle semplificazioni della simulazione Monte-Carlo completa (dipolo, in-scattering, out-scattering, diffusione, ecc.)

Risposte:


7

Innanzitutto, un buon riferimento per tracciare il percorso di Monte Carlo nei media partecipanti sono queste note del corso di Steve Marschner.

σσ=σS+σun'

σ

Quindi, per rispondere direttamente alle tue domande:

  1. e-σXX

    X=-(lnξ)/σe-σX

    σun'/σ1-σun'/σ

  2. No, se segui la procedura di campionamento per importanza appena descritta, Beer-Lambert è già implicitamente incorporato nel campionamento, quindi non vuoi applicarlo ai pesi del percorso.

  3. σS,σun'

    Potresti fare qualcosa del genere anche per i BSDF; potresti scomporre l'albedo complessivo e far sì che la dipendenza direzionale sia sempre normalizzata. È principalmente una questione di convenzioni AFAICT.

  4. Prova i "media partecipanti" (ovvero un "medium" volumetrico - "media" plurale - che "partecipa" al trasporto leggero) e il "tracciamento volumetrico del percorso".


Come campionereste le distanze per coefficienti di dispersione / assorbimento non monocromatici? Scegli casualmente un canale, quindi dividi per 1/3 (nel caso di RGB o XYZ)?
RichieSams,

1
@RichieSams La raccomandazione che ho visto per quel caso è di assegnare ad ogni raggio una singola lunghezza d'onda o canale di colore. Quindi in pratica calcoli la dispersione per ciascun canale separatamente. Ad esempio, nello scattering atmosferico, la luce blu si diffonde molto più fortemente del rosso e quindi ha bisogno di molti più eventi di scattering, ei fotoni blu seguiranno percorsi molto più contorti di quelli rossi. Quindi ha senso simularli separatamente, proprio come la dispersione dovuta alla rifrazione. Non l'ho mai provato da solo.
Nathan Reed,

Ahh, ha senso. Tuttavia, la performance ne risentirà ... Non c'è da meravigliarsi se tutti vogliono stimare Monte-Carlo Media partecipanti. Grazie per tutte le informazioni!
RichieSams,
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.