Equazione di rendering: perché irrisolvibile direttamente?


Risposte:


16

Purtroppo non sono in grado di aggiungere un commento alla risposta sopra (non abbastanza reputazione), quindi lo farò in questo modo.

Vorrei sottolineare che ciò che Dragonseel descrive è semplicemente un'equazione integrale (in particolare un'equazione di Fredholm del secondo tipo). Esistono molte equazioni di questo tipo che hanno una soluzione analitica; anche alcune forme dell'equazione di rendering ne hanno una (ad esempio, la soluzione di una fornace bianca può essere data usando una semplice serie geometrica convergente, anche se l'equazione di rendering è infinitamente ricorsiva).

Inoltre, non è necessario influenzare la soluzione stimata limitando il numero di ricorsioni. Russian Roulette fornisce uno strumento utile per darci una soluzione imparziale per un'equazione di rendering infinitamente ricorsiva.

La principale difficoltà sta nel fatto che le funzioni di riflettanza (BRDF), luminosità emessa e visibilità sono estremamente complesse e spesso contengono molte discontinuità. In questi casi spesso non esiste una soluzione analitica o è semplicemente impossibile trovare una soluzione del genere. Ciò vale anche nel caso monodimensionale; la maggior parte degli integrali manca di soluzioni analitiche.

Infine, vorrei notare che anche se la maggior parte dei casi dell'equazione di rendering non ha soluzioni analitiche, c'è molta ricerca nelle forme dell'equazione di rendering che hanno una soluzione analitica. L'uso di tali soluzioni (come approssimazioni) quando possibile può ridurre significativamente il rumore e può accelerare i tempi di rendering.


13

L'equazione di rendering è la seguente:

inserisci qui la descrizione dell'immagine

Ora, l'integrale è sopra la sfera attorno al punto x. Ti integri su una luce attenuata, proveniente da ogni direzione.

Ma quanta luce entra? Questa è la luceL(x,ωi) che qualche altro punto x riflette nella direzione ωi di punto x.

Ora devi calcolare quanta luce quel nuovo punto xriflette, che richiede di risolvere l'equazione di rendering per quel punto. E la soluzione per quel punto dipende da un numero enorme di altri punti, inclusox.

In breve, l'equazione di rendering è infinitamente ricorsiva.

Non puoi risolverlo esattamente e analiticamente perché ha infiniti integrali su infiniti domini di integrazione.

Ma poiché la luce si indebolisce ogni volta che viene riflessa, a un certo punto un essere umano non può più notare la differenza. Quindi non risolvi effettivamente l'equazione di rendering, ma limiti il ​​numero di ricorsioni (diciamo riflessioni) a qualcosa che è "abbastanza vicino".


1
Beh, probabilmente potresti risolvere l'equazione di rendering per un punto analiticamente se avessi una scena stupidamente semplice. E forse potresti ottenere una soluzione analitica per l'intera immagine proiettata se la tua scena è ancora più semplice di così. Ma sarebbe inutile ... :)
joojaa,

3
La scena dovrebbe essere davvero semplice come un solo oggetto piatto. Poiché esiste l'integrazione sull'intera sfera anche se ci sono due punti che possono vedersi, l'equazione di rendering diventa infinita. Ogni punto include l'altro nel dominio di integrazione. quindi solo un singolo riflettore che non può riflettere su se stesso. allora potresti risolverlo. Quindi semplicemente non ci sarebbero effetti di illuminazione globale, quindi si riduce all'illuminazione locale. E questo è risolvibile.
Dragonseel,

Sì, sarebbe stupidamente semplice.
joojaa,

2
@joojaa Per quanto ne so, non è che l'equazione di rendering sia impossibile da risolvere in tutti i casi, ma piuttosto che per qualsiasi momento è risolvibile, non è di alcuna utilità pratica
Galois

4
Cordiali saluti, la sintassi Mathjax funziona su questo StackExchange, quindi se metti segni $ intorno ai tuoi identificatori sembreranno tutti matematici.
Julien Guertault,
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.