AcademySoftwareFoundation / OpenPBR

Specification and reference implementation for the OpenPBR Surface shading model

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Transmission depth and subsurface radius don't have suggested bounds

virtualzavie opened this issue · comments

The valid range given for transmission_depth and subsurface_radius is $[0, \infty)$, which is impractical for UI. Is there a soft range we could suggest?

image image

This is difficult since it depends on the scene units, and the length scale of the object being rendered. A depth of 1e6 would be reasonable when rendering a 1km wide body of water in mm units, say, though that's probably atypical.

However if you make the upper limit too large, then the user ends up with a useless slider most of the time. In Maya transmission_depth (soft) maxes out at 100.0, so if you're working in the default cm units with some volume with a MFP of O(1cm) (e.g. orange juice), the slider is functionally useless.

Similarly for subsurface_radius which (soft) maxes out at 10.0 while skin MFP is typically O(1mm).

I think this is really a UI problem though, i.e. the solution is better slider UIs where you can easily adjust the range for convenience.

In the meantime, I'd propose a soft-max of 1.0. At least then for typical objects/units (where MFP and units are roughly in the same ballpark) the slider will do something useful over most of the range, and it's a soft-max so seems more appropriate for it to be too small than too large (i.e. it's more natural to increase it as needed, rather than decrease it from some large default value).

Fair enough, we can put a soft-max and see if we have feedback on it. For sliders in scene units, 1 seems reasonable indeed.
A paragraph on the topic could be useful as well.

@virtualzavie Do you mind to make a pull request for this?

Will do.

Thanks for this recommendation, @virtualzavie, as well as for the fix in #114. I'll go ahead and mark this as resolved.