OpenPBR icon indicating copy to clipboard operation
OpenPBR copied to clipboard

Dual lobe phase function for SSS

Open portsmouth opened this issue 6 months ago • 0 comments

In the Arnold volume shader we use the popular "dual HG lobe" parametrization that allows the phase function to be a mixture of forward and back-scattering.

Plotting the phase function as a polar plot below, the blue cases on the diagonal are the current model, the green off-diagonal ones are the new lobe shapes made possible in the dual lobe model:

Image

For the SSS (and transmission volume) in OpenPBR Surface, this could potentially be quite useful for artists (or even essential to achieve certain looks).

cf. Andrea Weidlich on Slack:

I'm curious, have you ever tried lookdeving a character with this? Normally I would have two phase functions, one -0.3, one 0.7 to 0.8 mixed together which gives you a Mie-style behaviour. How would you do this? .. I couldn't live without.

It amounts to adding a blend weight and a secondary anisotropy, and would be an additive change to the SSS functionality. The implementation is very simple and amounts to a small change to the phase function evaluation and sampling logic.

portsmouth avatar Jul 06 '25 15:07 portsmouth