3
$\begingroup$

Is it practical to implement the Lorenz-Mie(LM) phase function in a renderer ?

$p(\cos\theta)=\frac{|S_1(\theta)|^2+|S_2(\theta)|^2}{4\pi\sum_{n=1}^\infty (2n+1)(|a_n|^2+|b_n|^2)}$

I'll spare you the details but: $S_1(\theta), S_2(\theta), a_n, b_n$ are complex numbers involving Legendre polynomials, and their derivatives. All of that to say the computations are quite involved.

So do the benefit of LM phase function(Physical accuracies mainly) outweighs the cost to compute them, or I better off with the standard Henyey-Greenstein or some modified version of it ?

$\endgroup$

1 Answer 1

3
$\begingroup$

It's almost never a problem of computational costs, it's a matter of how well a function works in a Monte Carlo scenario. Ie. how well it can be importance sampled. That generally leads to how well it can be inversely transformed to get an importance sampled scattering direction.

With HG or some modified HG phase fnc we can nicely match Mie for anything bigger than the wavelength and looking how well it can be importance sampled it makes no sense to use Mie for common cases like those we find generally in rendering. So yep you better off with HG.

Eventually some good read : https://opg.optica.org/ao/abstract.cfm?uri=ao-35-18-3270

EDIT : with Siggraph2023 there's an HG_Drain phase fnc that better matches tabulated Mie phase fnc.. https://research.nvidia.com/labs/rtr/approximate-mie/

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.