appleseedhq / appleseed

A modern open source rendering engine for animation and visual effects
https://appleseedhq.net/
MIT License
2.2k stars 329 forks source link

Reorganize scattering-related UI parameters in asStandardSurface #2280

Open Mango-3 opened 5 years ago

Mango-3 commented 5 years ago

To make the use of scattering relates parameter less confusing for users a regrouping of the user visible shader-UI would be beneficial (without braking changes of internal parameter).

Merge Translucency settings into the Subsurface section with the possibility that the user can select between two subsurface modes:

This would make it easier for users to decide which one to choose, both are scattering modes but for complementary purposes. This would also reduce confusion between transparency and translucency.

Based on internal discussion in Discord and on a Cycles developer forum feature request. https://devtalk.blender.org/t/diffuse-translucency-way-too-difficult-to-set-up-in-cycles/807

luisbarrancos commented 5 years ago

@Mango-3 thin translucency presently is the standard OSL translucent() closure which is a classical renderman style trick to fake well, thin translucency, basically diffuse with -N. This has nothing to do with subsurface scattering. I suspect the thin translucency you are thinking about is the thin BTDF from the Disney 2015 Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering paper. That could be interesting to add but we don't support it yet.

I suppose we should support it though. Once we extend the present Disney 2012 BSDF to have the 2015 thin BTDF term this could be made into a standalone closure giving the user the ability to use it in for instance, as_subsurface. It would be more interesting to do this than adding the diffuse(-N) term to the subsurface shader or the upcoming standard shader, than potentially confusing the users by mixing a diffuse(-N) term into the dipole/randomwalk SSS section.

Mango-3 commented 5 years ago

Great explanation, as always, Luis. I thought thin translucency is a scattering related parameter. From the discussion in Discord the point is to have it as clear as possible for users (who are not familiar with the history and naming conventions of Disney's implementation) which one to choose. Maybe we just label it Thin Surface Translucencyin the current asStandardSurface UI that it becomes more obvious it is intended for thin, single-sided surfaces. We should maybe also add in the Docs that Translucency is an approximation for thin surfaces to be used to model semi-transparent effects in e.g. leafs, paper.

luisbarrancos commented 5 years ago

Ok, we'll rename it now and we can consider removing it - replacing it by the Disney 2015 BTDF in the future. That seems more interesting than the diffuse(-N) approach.