- User Since
- May 17 2016, 9:40 AM (79 w, 1 d)
Oct 20 2017
Maybe also the fixed roughness of 0.25 for the G term can cause some issues. Disney didn't really say in their paper from 2012 what the purpose of this hack was, but only that it's "found to be plausible and artistically pleasing". I will try at first to change only the D term to GGX without changing the G term (which means keeping the 0.25 roughness here) and look if this causes more problems and if so, I think we should go with having a consistent roughness throughout the whole clearcoat calculation. By doing so, we wouldn't need to have a distinction between clearcoat and non-clearcoat in the Microfacet BSDF evaluation (except for the sample weight) anymore.
@Brecht Van Lommel (brecht), yes, I see this like you do. I don't think that we get a real benefit out of the GTR1 distribution. The difference (especially because clearcoat is only applied with a pre-factor of 0.25) should be pretty low and can thus be neglected. For me it seems ok to switch to GGX, but I will at first try to compare both versions today before adding a patch.
Sep 15 2017
Sep 5 2017
For me this seems to be an acceptable workaround although branching might not be that performant.
Jun 26 2017
Jun 20 2017
Jun 19 2017
For me this looks good as well. Brightness seems to be more plausible especially when using the Multiscatter GGX.
May 29 2017
@Brecht Van Lommel (brecht) I updated the code respectively.
May 24 2017
For your other issue, I added a new Diff (D2685) which corrects it.
I added a fix for this problem. It was just a small problem for diffuse ancestors. Here I was setting the subsurface value to 0.0 which led to a principled diffuse shader closure call. Here the base color was used to evaluate the closure. I just needed to apply the mixed color to base color in this case.
May 23 2017
May 22 2017
May 19 2017
@Lukas Stockner (lukasstockner97) The render settings of your scene are one sample per pixel, aren't they?
May 18 2017
I renamed the inputs as @Brecht Van Lommel (brecht) suggested. For the additional inputs I will first create a new differential which then can be approved and committed.
May 5 2017
I will do the changes as Brecht stated and I will also figure out how to do the cutout transparency. I can also add the emission shading if this is a liked feature for the principled shader.
Apr 21 2017
I will update this next week such that it's up to date with the latest master.
Apr 18 2017
@Brecht Van Lommel (brecht) I was on vacation for a few days. ;-) I'll do the merge and also handle appearing bugs. But if some bigger stuff appears that I can't handle, I will ask for help.
Apr 3 2017
Switched from multiplication of base and subsurface color to blending between them using the subsurface parameter. I also updated the copyright for the new files.
Mar 28 2017
Regarding the SSS color topic: Currently I'm "multiplying" the surface and subsurface color together. Other renderers like the one in Modo and Renderman are simply blending those colors together using the subsurface amount. But there's also another approach which is described here. At the moment I think it would make sense to handle it like Renderman does because this is the "ground truth" for the Disney shader, but it can be discussed before I change it.
Mar 21 2017
Mar 7 2017
Mar 5 2017
Feb 6 2017
Thanks for your review. The current update implements the GLSL version of the Principled BSDF. I also tried to implement the anisotropy correctly but failed due to the missing tangent. I then computed a default tangent as a workaround. Maybe one of you (who has more knowledge in GLSL shaders) can have a look into it and give a better way of handling this problem.
- Fix to comply strict compiler flags
- Fix for non-working GLSL shading
- Implemented the real-time view port for the Principled BSDF (except for transparency and SSS)
Jan 25 2017
Jan 24 2017
- Renamed the Disney BSDF to Principled BSDF
- Fixed artifacts in specular reflections for low roughness values
- Distinction between GGX with or without Fresnel is now handled via the type of the closure (e.g. CLOSURE_BSDF_MICROFACET_GGX_FRESNEL_ID)
- Fixed the error in the clearcoat, where the highlight appeared too bright for default light sources (like directional lights)
I was waiting for further reviews. ;-)
Dec 14 2016
Dec 12 2016
Nov 15 2016
Nov 11 2016
Nov 10 2016
Nov 7 2016
Again some updates on the code based on the comments:
- Consolidated code in the bsdf_microfacet_multi_impl.h file to reduce some computational expense.
- Use reflection BSDF for glossy reflections when roughness is 0.0 to reduce computational expense.
- Improved the optics of the clearcoat part by using GTR1 instead of GTR2 for the D term.
- Code style cleanup and removed some unneeded code.
- Resolved inconsistencies in using tabs and spaces.
Oct 31 2016
Oct 26 2016
- Rearranged the inputs of the shader node
- Added "Subsurface Radius" parameter to control the per color channel radius of the subsurface scattering
- Fixed the issue with artifacts when using anisotropy without linking the tangent input to a tangent node
- Removed the color parameters from the diffuse and sheen shader and use them as closure weights instead
- Switched from uniform to cosine hemisphere sampling for the diffuse and sheen part
- Removed default values in setup functions and added extra functions for GGX with fresnel instead
- Fixed a bug when using glossy reflections/refractions with low roughness values
- Cleanup of the code
Oct 25 2016
Oct 21 2016
Previous diff was wrong...
Or is it correct to simply do a diff against the previously reviewed commit?
The parameter names of the shader node have now spaces between the words (like for 'SpecularTint' -> 'Specular Tint').