Made the surface color completely 1 1 1 white so the only color comes from the volumetric shader
Note: Suzanne’s left half is only lit because the sphere scatters light to it. If I remove the sphere, Suzanne turns unlit as expected.
Also, for some reason the sphere primitive for rendering points in Cycles is only one-sided, so volumetric and transmissive effects go wrong using it. Gotta use actual geometry.
The problem is that the principled shader dont use oren nayar for its diffuse shading.
You can test it if you increase the roughness it should become the flat moon shading,but it does not.
The custom build i posted use the diffuse shader which has that flatten effect with increased roughness.If i am not wrong than the diffuse shader uses oren nayar model.
For this reason i tryed to combine the diffuse with principled shader and a custom diffuse build.
Yes the Oren-Nayar shader by itself has no glossy layer.
No the principled diffuse roughness is related to the IOR and the specular reflection as well.
They don’t have to, but Disney decided it wouldn’t be too far off to couple them, so they did. They’ve received some criticism for it. Even if they don’t use Oren Nayar as we know it, but some Disney Diffuse that takes “exit IOR” into account. It works “well enough” for the most part. If other renderers do the same, that’s what I want to see for the sake of compatibility. Then maybe add Disney Diffuse as a default dropdown option to Diffuse shader in case we want to use that as a building block, and let Oren Nayar be the oddball out.
I dont have looked into the source code of the principled shader in detail.I think what Lukas has done is to use the roughness input only for the IOR specular reflections,and for this reason we have only the diffuse lambert in the principled shader.
If this is the case,and if the diffuse in the principled is based of the diffuse node code,then it only needs to be connected with the roughness input to have the same flat shading effect as the diffuse node.
As said if the code is still intact it would be a correction done in a few minutes.
And the only reason why its not connected,could be the compatibility as you said,or a compromise maybe due the energy conversation corrections,that with the flat shading the Fresnel rim was to strong who knows.
I have looked into parts of the diffuse node code and the principled node code.
you can see in the diffuse node at line 12 that if the roughness is 0 then diffuse shading is used,otherwise if roughness is different as 0 the oren_nayar shading is used.
in the principled code there is only diffuse shading without any switch with roughness
If i am not wrong then you need only copy paste the codesnippet from the diffuse node from line 12-15 and paste it at line 80 into the principled shader to have oren_nayar shading.
If this works together with SSS etc not sure if its awaits the diffuse though.
For a seperate oren_nayar roughness amount you would need another extra roughness input and thats maybe the simplest answer why they not implemented it.
OK So this getting a bit funny. Principled shader is not needed there. You are getting only glossy component out of it there, so… I think there is a node for that - GlossyBSDF. Dense volume scattering will give you same result as Lambert but of course with absolutely ridiculous cost in render time and also way less convenient and intuitive control over color.
The curves are exactly same as Lambert, I just cannot match the color(brightness of it in this case)
There is no need to use PrincipledBSDF where it fails to achieve desired results. If you need a shader for the Moon, just use DiffuseBSDF with higher roughness.
To be honest I don’t see much point in PrincipledBSDF beyond compatibility with other software. And it seems to fail at that in some cases. It doesn’t separate well into diffuse and glossy for compositing as well for example. It’s not a very good shader.
It would be really nice if they separated the new thin film interference effect to a separate shader…
I am thinking about it. I mean I probably have a way better camera than they did 30 years ago. Not that it’s very accurate for this, but still… I think it might be good enough. This might be useful for making shaders for fabrics since I could just wrap samples around something cylindrical to replicate my Blender setup. I just need a strong incandescent light bulb and a dark room. Seems like lots of trouble though. Might be an interesting hobby kind of project with very doubtful real life benefits(like of my experiments in this thread ).
The best selling point of the principled shader atm is the improved Fresnel shading that can not be rebuilded with seperate nodes.
Yeah,i mean you can use the same angles used for compare your results.The cam und the light maybe not that important since you can tweak your exposure and light value.
I think the most important thing is simply understanding. So it might be useful for that. These experiments were useful for that. I always strongly suspected that shaders don’t really match reality, but now I have a better sense of just how. That’s great.
So improve the fresnel node - all we need is a roughness control. Still, setting up a manual PBR fresnel gets us - or me at least - close enough this isn’t much of a selling point anymore. To experienced users. To me Principled’s main selling point is being export friendly and a user friendly all-round shader that is very suitable to new users who have no knowlegde in what actually goes on. Or could care less.
There is a little bit of saturation loss and a very subtle change in the highlight, comparing manual PBR with Principled. But it’s not a problem getting around the glowy edges phenomenon that arise from using fresnel node as is.
I’m not sure if the dummy bump node is a requirement anymore. At one time you could get garbage data through the socket if the socket was not connected. But never when setting it up or trying it out, always when actually using it.
Oh thanks ,thats basicly the cynicat pro setup.I have posted a version of this a few postings before (the custom oren_nayar setup build).
I think i have found a easyer and more controlable setup with the map range where you can finetune then the " to min " value to your like,how much of the incoming is mixed in from the start.(last screenshot)
Looking at it now with fresh eyes, I think you can safely replace the map range with a float mix. I believe last time I updated it we had the map range node which accepts floats, and I went with that one over the old mix (color only) node which triggered my OCD
I can’t remember a single situation where I needed “extra controls”. If I do I’ll probably make it local to whatever project I’m working with and go from there. I’m not a fan of a gazillion controls for stuff I hardly ever need.
The fresnel node just gives you a simple mix factor. As mentioned a couple times in this thread it does not give you micro flake level shading information. This is not a matter of improving that node, this is a deeply ingrained design decision to avoid people screwing themselves over. Can not be helped.
Of course it does. I use microroughness for a lot of stuff, but we have materials that don’t exhibit this property.
Also if setting “To Min” to zero? Where does 0.4 “come from”? Maybe not compare Oren Nayar roughness in yours and mine with old Principled (behaves differently) or new Principled (ignored for now).
It starts with my own testings of cynicats pros settings vs the principled Fresnel here
The 0.4 come from further testings with the map range node.Maybe its not perfect but looks close to the principled Fresnel.
What do you mean, all setups are rendered with the latest Blender build.?!
edit, i rendered 3 new comparisons,with black base color and .75 roughness
In my setting i changed the map range from to min 0 to max 0.5.Its a compromise.Higher max value gets less rim but gets to dim.