Re: Disney BRDF material
Posted: Mon Nov 30, 2020 4:48 pm
Hi,
just wanted to write down some thoughts on this that I have collected. Let me know what you think.
1) The topic of subsurface scattering could use a bit of consideration. There has been some talk about this again yesterday on Discord. It seems that it is important for artists to have SSS somehow bundled in the same node. Right now, there even seems to be the impression that volumetric- and SS-scattering are fundamentally different approaches. So having something clearly labelled "subsurface scattering" could help.
On the LuxCore side, I would agree that the approximated Disney-version of SSS makes no sense in the LuxCore framework. It could be an efficient approximation for some cases, but it would need some bigger work because now the shader itself doesn't return a new intersection point.
Therefore, I am thinking more of the presentation in BlendLuxCore. Specifically, I could imagine to offer both a material and volume output in an updated Disney node, and under the hood include a homogeneous volume with a reduced set of parameters, for example:
- absorption and scattering color made equal (or complementary), and the scales tied together, perhaps remapped to the [0,1] range as well
- IOR can be computed from "specular".
- Multiscattering either True or False by default.
- Asymmetry and priority could be removed entirely.
I know that this would reduce functionality, but it would be in the spirit of the "principled" material.
1.5) Alternatively, or additionally, some presets for homogeneous volumes could be made, like there is for IOR. Again, then labelled "subsurface scattering".
2) For the metallic component, I'm looking at including the fresnelTexture as in the metal2 material. This would also allow to use the existing preset-node.
3) The Disney description also includes a "Thin sheet" mode. I don't think it is available in cycles, but I'm not sure. What do you think about that?
I've now started to write some code. It may take a little to complete, but since 2.5 is already in beta phase now I guess there is no rush to add new features...
just wanted to write down some thoughts on this that I have collected. Let me know what you think.
1) The topic of subsurface scattering could use a bit of consideration. There has been some talk about this again yesterday on Discord. It seems that it is important for artists to have SSS somehow bundled in the same node. Right now, there even seems to be the impression that volumetric- and SS-scattering are fundamentally different approaches. So having something clearly labelled "subsurface scattering" could help.
On the LuxCore side, I would agree that the approximated Disney-version of SSS makes no sense in the LuxCore framework. It could be an efficient approximation for some cases, but it would need some bigger work because now the shader itself doesn't return a new intersection point.
Therefore, I am thinking more of the presentation in BlendLuxCore. Specifically, I could imagine to offer both a material and volume output in an updated Disney node, and under the hood include a homogeneous volume with a reduced set of parameters, for example:
- absorption and scattering color made equal (or complementary), and the scales tied together, perhaps remapped to the [0,1] range as well
- IOR can be computed from "specular".
- Multiscattering either True or False by default.
- Asymmetry and priority could be removed entirely.
I know that this would reduce functionality, but it would be in the spirit of the "principled" material.
1.5) Alternatively, or additionally, some presets for homogeneous volumes could be made, like there is for IOR. Again, then labelled "subsurface scattering".
2) For the metallic component, I'm looking at including the fresnelTexture as in the metal2 material. This would also allow to use the existing preset-node.
3) The Disney description also includes a "Thin sheet" mode. I don't think it is available in cycles, but I'm not sure. What do you think about that?
I've now started to write some code. It may take a little to complete, but since 2.5 is already in beta phase now I guess there is no rush to add new features...