AcademySoftwareFoundation / AcademySoftwareFoundation/OpenPBR

Dual lobe phase function for SSS

Open
#264 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
CSS
Stars
793
Forks
44
PR merge metrics
No merged PRs in 30d

Description

In the Arnold [volume shader ](https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_core_ac_standard_volume_html)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](https://github.com/user-attachments/assets/deb76473-6058-479d-958d-f831de8d8839)

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](https://academysoftwarefdn.slack.com/archives/C06365EAQMP/p1708463836398739?thread_ts=1706661003.294749&cid=C06365EAQMP):

>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.

Contributor guide

No contributing guide indexed for this repository

Research direction

No implementation files or tests are named. Start with the Arnold volume shader documentation linked in the issue, then locate the OpenPBR reference implementation's SSS and transmission-volume phase-function evaluation and sampling entry points. Done means the dual-lobe behavior, including blend weight and secondary anisotropy, is supported consistently in both paths.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.