Page 12 of 13

Re: Disney BRDF material

Posted: Mon Nov 30, 2020 4:48 pm
by CodeHD
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...

Re: Disney BRDF material

Posted: Mon Nov 30, 2020 5:28 pm
by Sharlybg
Nice deep research.Will be great indeed to make SSS more artistic friendly as in its current state not so much people touch it.
i never have to use asymetry parameter and yes remap scale value to a more usable human range is welcome from my pov :mrgreen: .
BTW adding the transmission component could be welcome for blendluxcore 2.5 .

Re: Disney BRDF material

Posted: Mon Nov 30, 2020 5:41 pm
by B.Y.O.B.
We could try to mimic the SSS behaviour in the Cycles principled material: https://docs.blender.org/manual/en/dev/ ... ipled.html
Take special note of the Subsurface description ("Mix between diffuse and subsurface scattering. Rather than being a simple mix between Diffuse and Subsurface Scattering, it acts as a multiplier for the Subsurface Radius.").
CodeHD wrote:
Mon Nov 30, 2020 4:48 pm
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
This could be a possible approach.
However, without changes in LuxCore code, it would not allow the user to use image/2D textures to drive the SSS parameters.
CodeHD wrote:
Mon Nov 30, 2020 4:48 pm
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.
I don't think this is a good idea. If someone needs the extra options of the metal material, he should use the metal material. No need to deviate from the disney specification.
CodeHD wrote:
Mon Nov 30, 2020 4:48 pm
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?
Could be useful. But I could also imagine this could be implemented as a generic thin-sheet material that accepts another material as input (like glossycoating or two-sided).

Re: Disney BRDF material

Posted: Wed Dec 09, 2020 9:18 am
by MetinSeven
I had never used the Disney material in Luxcore, and tried it today.

I don't see a noticeable difference between an SSS value of 0 and 1, is that correct? Is a volume node maybe still necessary for SSS?

It would be great if the SSS could be similar to the Cycles Principled shader's SSS.

Re: Disney BRDF material

Posted: Wed Dec 09, 2020 9:30 am
by juangea
It's a "gimmick" basically, I find it to be useless to be honest, that's why I hope 2015 version with true SSS gets implemented rather sooner than later :)

Re: Disney BRDF material

Posted: Wed Dec 09, 2020 9:32 am
by MetinSeven
That'd be great. SSS is one of the few things in Luxcore that are hard to get right.

Re: Disney BRDF material

Posted: Wed Dec 09, 2020 10:04 am
by juangea
Agree.

That, motion blur / vector pass (that DADE told me could be easy to implement now with CUDA ready to go) and hair shader are the three things that hold it to apply Lux to proper character development I think.
Also the lack of hair shader makes it harder to do some things related to ArchViz, the same goes with SSS.

Re: Disney BRDF material

Posted: Mon Jan 04, 2021 6:57 pm
by CodeHD
Hi all,

since I have been quiet for a bit I just wanted to drop a line that I'm still on it. I got to start writing the implementation before christmas, but couldn't really continue for the last few weeks. I will try to advance a bit more over the next days. Otherwise I'm now caught up in moving because I'll start a new job next month, so progress might still be slow...

Re: Disney BRDF material

Posted: Mon Jan 04, 2021 8:28 pm
by MetinSeven
Nice! Thanks for the update, and please keep us posted.

Re: Disney BRDF material

Posted: Wed Jan 06, 2021 1:27 am
by BruceXu
juangea wrote:
Wed Dec 09, 2020 9:30 am
It's a "gimmick" basically, I find it to be useless to be honest, that's why I hope 2015 version with true SSS gets implemented rather sooner than later :)
Where can I find the 2015 version's paper?
I can implement it in Luxcore.