Consider anisotropy in multi-scatter to single-scatter albedo conversion#42
Open
bsdorra wants to merge 2 commits into
Open
Consider anisotropy in multi-scatter to single-scatter albedo conversion#42bsdorra wants to merge 2 commits into
bsdorra wants to merge 2 commits into
Conversation
…em flawed. In particular, I think formula 80 for computing \rho_{ss} is not correct enough.
Formula 80 is taken from the referenced talk (https://blog.selfshadow.com/publications/s2017-shading-course/imageworks/s2017_pbs_imageworks_slides_v2.pdf), slide 44. But the formula in the spec is a simplification of the formulas on slide 44, assuming that g = 0. I believe this simplification was valid for DSPBR 2019x, where g could not be changed and was instead fixed to 0. But since DSPBR 2021x, this assumption is not valid anymore - and it seems that the Stellar implementation actually complies with the proposed correction.
Therefore I propose this extension which corrects the over-simplification
proog128
approved these changes
Jun 21, 2026
proog128
left a comment
Member
There was a problem hiding this comment.
Nice catch. Looks like the spec update slipped through the cracks. Minor suggestion: The parameter g isn't introduced until much later. Since we are now using it at the beginning of the section, its introduction should move up too.
Introduce anisotropy parameter g before its use in the single-scattering albedo conversion. Consolidate its explanation near the phase function and remove the duplicate isotropic conversion from the 2022x spec.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR on behalf of @JMeseth:
The formulas for the volumetric layer in DSPBR from the DSPBR spec seem flawed. In particular, I think formula 80 for computing \rho_{ss} is not correct enough.
Formula 80 is taken from the referenced talk (https://blog.selfshadow.com/publications/s2017-shading-course/imageworks/s2017_pbs_imageworks_slides_v2.pdf), slide 44. But the formula in the spec is a simplification of the formulas on slide 44, assuming that g = 0. I believe this simplification was valid for DSPBR 2019x, where g could not be changed and was instead fixed to 0. But since DSPBR 2021x, this assumption is not valid anymore - and it seems that the Stellar implementation actually complies with the proposed correction.
Therefore I propose this extension which corrects the over-simplification