diffuse roughness is a game-changer for dirt and gravel, I've always ran into the issue of having dirt look way wetter than it should with just regular roughness values, the solution was to lower the specular value, but that always felt like a cheat... and this is what we were missing as the solution for that!
While you can certainly increase diffuse roughness for these materials, that alone won't account for specular energy loss due to cavities. Cavities are holes and openings where light bounces get trapped and die without ever reaching the camera. This cannot be simulated with a normal map. So I would recommend doing that solution *in addition* to going Oren-Nayar. Note that Oren-Nayar also suffer energy loss for forward scattered light. This is unrelated to the recent multiscatter improvements. Use it with care and consideration.
WOOOW im working on an automotive scene right now, trying to make my best pavement possible and this COMPLETELY changed the look of it from afar, huge improvement, thank you so much
You are doing fantastic work of explaining the inners of the nodes and physics behind them. As a person who just eyeballs his materials throwing the physical accuracy out of the window (but I get that sometimes artistry > physical accuracy), with each and every video of yours I get a slightly better understanding of what the nodes and sliders do. Thank you!
When I see a new `Christopher 3D` Blender video drop, I know there's gonna be technical details that will _NOT_ be MultiscatterGCX-glossed over! Thank you for all your updates!
Thank you for these incredibly useful feature update videos, I honestly don’t think I would understand the current principled node if it weren’t for your channel. The original principled shader was easy to grasp and relied on relatively few inputs. I like the changes to make it more accurate and powerful, but the purpose of certain parameters is not immediately obvious.
I 💯 agree. It's great they're achieving a certain level realism and control in one shader node, but its at the cost of intuition on knowing what sliders do what. I'd be lost without Chris' videos breaking it down.
Yes! This is one of the two things I've been waiting for Blender to get around to. I learned this for Vray via Grant Warwick way back when. Fingers crossed for a camera like the Vray Psychical camera or the one found in the Photographer add-on. Thank you for another insightful video 🙏
16:21 I believe the correct way to get the closest match involves XYZ space and the color matching functions: 1. Multiply the lab spectra with the three color matching functions. 2. add up the three spectra you get that way. This is your XYZ coordinate. 3. convert your XYZ coordinate to your target RGB space. This way you aren't neglecting, that the primaries of the sRGB color space is not spectrally defined. You take into account the fact that they each are a mixture of wavelengths. The way you are doing it is arguably still arbitrary because the wavelengths you get for projecting your sRGB primaries onto the spectral locus are gonna depend on the whitepoint. For instance, did you project from Illuminant E (which is relevant for reflections in that a perfect reflection would be a constant reflection spectrum which corresponds to Illuminant E) or from Illuminant D65 (which is relevant for sRGB because that's the whitepoint it chooses) to get those wavelengths? I'm not even sure which one is correct to use there! With my method above, that doesn't depend on such a choice at all. It doesn't depend on a choice of colorspace either: You do that calculation *once* for XYZ and forever after just convert from XYZ to your RGB space of choice. For instance, you might want to render in Rec.2020 RGB for better indirect light behavior (less of a hue shift towards primary colors). The XYZ coordinates you'd arrive at would still be valid then! And they'd not be equal to simply evaluating the complex IOR spectrum at Rec.2020's spectrally defined primaries.
this channel is amazing, one of the few if not the only one that goes in depth into how these apparently simple things such as diffuse work. it enables us users to have much more understanding of what we are doing, and we can reach far greater results by understanding at this level. thanks for the time and effort, we highly appreciate. i've watched all the other videos too.
Wow...I am just simply amazed how this video was very well presented, with graphs and so much info. Though I am not really that so deep as a blender user however watching this gives me idea that blender is really levelling up its game into hyper realism. Thanks Chris, keep it up.
These videos are so informative and interesting! 4.0 series is definitely making major improvements to the eevee and cycles engines. Can’t wait to try out these updates!
Love your videos. Not only going over new features of future Blender versions but also integrates a lot of useful knowledge along the way in a really easy to understand manner. I applaud that and tip my hat 🎩 Well done!
Great overview of these new features. It would be nice to have presets in the Metallic BSDF Physical Conductor panel itself, like for gold or bronze. As a starting of point for further experimentation.
I could see that as being very useful. It would be great if we didn't need to pull values from refractiveindex, but instead could simply specify RGB wavelength primaries, and it calculate the values for us. Perhaps someone could build a node setup for that.
Absolutely agree, even if gold is a tough nut gamut wise. But affecting both the physical inputs and F82 inputs. Strictly speaking, there really is no "experimentation" that makes physical sense. Unless you *want* to make unobtainium. But I think I'd prefer it to be a color node instead of a BSDF. Unless they intend to take it into other territories (like hazy gloss).
I know this is a Blender video, but I have to thank you for answering a question I had about the (hidden) Diffuse Roughness feature in Daz Studios Iray. I discovered it through experimentation and the documentation for it was terse and uninformative. What I can say is it has a remarkable effect on skin shaders as well, making them look less 'plastic' and allowing more of the translucency to come through. It also made my clothing look considerably more 'real' and now I know why.
It's really nice to see Cycles getting more of the features LuxCore has had for years already.. especially since LuxCore isn't receiving any further development
After 15 years blender becomes.. indigo renderer - one of the greatest renderers ever made, a very fast one, and a big unsolved mystery why this software abandoned by their creators.
It's not the only renderer mystery. One of the best renderers out there, TheaRender, has never produced a Blender plugin and they've restricted its use to a few oddball applications. Such a shame.
I had no idea the Principled BSDF was not using the Oren-Nayar algorithm! Very cool to see one of my biggest complaints about energy loss on low-incidence rough surfaces being fixed by this!
It never used Oren-Nayar. From what I understand it used to do some tricks with Velvet shader back in the day, not how Disney implemented diffuse roughness. Not sure, but it might have been removed when Principled v2 was introduced, as v1 had energy conserving issues partly because of roughness.
@@fiveoneecho Just recently. Before diffuse roughness was dropped, it did something "similar", but I never felt like it worked like O-N, without being able to point a finger on exactly what. Just felt "off". Someone on the forum mentioned the Velvet BSDF being used for the enclosure, but I don't read code so I didn't bother checking. Note that "diffuse is supposed to be completely view independent", but both the old Velvet as well as O-N are view dependent (like Glossy). Velvet I understand (inverse glossy, kinda) being based on microcylinders/microtubules (?). O-N always had this problem, incl the full version (ours is an approximation, but works very well). But there have been attempts on improving it; newer models, or fakery involving light incident angle and modulating roughness, but this is a luxury only available within the BSDF enclosures, not to end users.
12:28 nice to see the reflectivity angle for metal materials being mentioned. I think this goes bit further than just metal materials because even plastic objects seems to reflect more with sharper reflections on the edges curving away from a point of view. I started faking this (as I don't do photo realistic renderings) using Layer Weight node with curve node to reduce roughness on objects and it has been very effective way to boost the visibility of forms on objects in a good looking way.
Plastics do indeed exhibit stronger reflections at glancing angles, this is the fresnel effect. I've done videos explaining how the fresnel effect is controlled by the index of refraction and also how roughness affects glancing angle reflections. Metals just have a bit of a different expression of fresnel.
@@NCSiebertdesign Caustics have to be solved in one of two ways; through a forward casting technique like photon mapping, or integrated into the global illumination processed used for overall scene sampling. Both present challenges. The Path Guiding algorithm helps with this by detecting strong light paths that can produce caustics. But it's not specifically a caustics solver per so, so improved caustics are a kind of by product. Generlized sampling can be to random to adequately sample paths that produce strong sharp caustics. So some 3D applications use a specific kind of general sampling using algorithms like Metropolis Light Transport. This is sort of like Path Guiding on steroids, and is capable of figuring out caustics within the framework of generalized scene sampling. Its downside is that apparently it's a challenge to properly develop and integrate. So caustics are just a challenge for a variety of reasons.
Great explanation, thank you!! IMO Blender should provide a drop-down menu in the Metallic BSDF node to quickly fill in standard materials' IOR and Extinction values (like the ones that can be found in that website). It's so simple to implement and it'd make such a great difference to users, that I simply don't understand why nobody implemented it. 🤷♂
Have you done any furnace tests with the new shading models? In all tests I've done so far: Octane vs Arnold vs Houdini Karma Vs Cycles, Octane comes out with near perfect results. It would be interesting to see how Blender holds up now, especially with microfacet normals conservation.
Thanks you for these great informative updates! I always like to follow along and move the sliders that I never gave a second thought too. I found it super helpful that you provided a link to your shader ball blend file and I was wondering if you could pack the textures as well? Its currently missing the floor grid and light textures.
Why wasn't the Oren Nayar not included in the previous versions of blender? Why only now? C4D had this already 15 years ago... But I am glad to have it now...
Like I mentioned in the video, it was included in previous versions of Blender, in the diffuse node. 4.3 improves Oren-Nayar by making fully energy conserving, and giving the Principled BSDF access to it.
There is no "energy loss" associated with Lambertian. Run it on a furnace test and see for yourself. Introducing Oren-Nayar introduces energy loss for forward scattered light, unrelated to the recent multiscatter improvements. The moon is a perfect example of a non Lambertian diffusor. For back scattered light. For forward scattered light? Not so much. Disney, even before the improved multiscatter (for other reasons), used a trick to reduce energy loss for forward scattered light. And since we're locking into "enclosures" (BSDFs), there is no way for us to mimic that effect. Technically, denim would also have specular reflections. Remember, "everything has fresnel"? I agree though, screw that saying. So you're correct in turning off specular, because this would be visible on the individual strands rather than a flat surface. Mixing in some sheen does a better job than relying on "everything has fresnel", certainly at high levels of IOR. As for the fan, Disney kept diffuse and specular roughness coupled to always be the same value. Usually a good idea, but uncoupled does leave artistic control. I think anisotropy is completely broken for Principled and Metallic. It's maximum value is clipped to around 0.7 of what it is for the glossy shader. We used to be able to get around this for Principled as we could pump up the value to 1.111 (but not 1.112) to reach actual 1.0. But now hard clipped. I would *REALLY* love to have a color output on the BSDF so I can at least make sensible anisotropic materials using Glossy if need be. The problem with the arbitrary 0.7 hard clip is an insane amount of energy loss at low roughness values for back scattered light. Which doesn't happen when I observe them in real life. The sun, while there is loss, still produces very visible stretched sun watched from the sun side. Never use 1.0 of course (unless for weird effects), but 0.7 is far to small. I'm wondering if we really *NEED* a Metallic BSDF, why not just make a complex fresnel node with a color output to drive the albedo? No sheen or coating, so... Actually, gold will be out of gamut for RGB. Cycles cannot "accurately" render gold. Yeah, it's a weird one, but also the reason gold isn't the default setting. That said, using the 100% correct colors, or relying on F82/Physical isn't what's going to make or break a render. Close enough, and nobody cares. Except you (and me). Because we're extreme cases. 😂 Getting the roughness and bump qualities closer to what you're making is more important.
Would it not be better to take a weighted average from a gaussian/normal distribution centered on those 3 specific wavelengths for getting the RGB IOR and Extinction mode? I mean that is probably overkill really and likely wont be far off from the single value things but it might be more accurate. Though I'm not sure how you would go about getting that data, just an idea! Great video as always, i really appreciate the detailed walkthrough, and its exciting to have these new physically accurate things come to blender!
The endpoints I used seemed logical but by no means are they the only method you could use. I also tested with a middle overage of the general RGB regions and that works well also. I was going to show that but it seemed too esoteric for most people and also increased the length of the video too much.
@@christopher3d475 ah I see, yeah that’s true haha it is a bit too esoteric and if the individual wavelength values are very close to that anyways then it’s a bit pointless so i totally get that!
@@WonkyGrub You'll notice I uploaded a 4.3 file containing the metals. I may do another set with different wavelength endpoints for exploration. What I found was the the more color a metal had, like the gold and copper, the more it was likely to be influenced by different primaries. This is actually one of the reasons why a spectral renderer has an advantage over an RGB based renderer.
I guess I'm still a little confused on when you should use Oren-Nayar over Lambertian with BSDFs. I understand it's better for more diffuse materials but where's the cutoff where one becomes more accurate than the other, also should this be used more as a binary setting like the metallic slider where halfway values aren't physically accurate? Either way still a fantastic video, thanks.
I left it a little vague on purpose, because it' ultimately up to what you want your diffuse-containing material to look like. The fan example I showed is an example of this. If you've outdoor scenery that has a concrete sidewalk or road, Oren-Nayar is probably what you want to use. But in many of the renderings I showed throughout the video, I used Oren-Nayar. The slider between the two is a morphing from one end of the spectrum to the other, so it's a bit different from the Metallic slider. So, if you think the full Oren-Nayar is too flat in appearance, you can set it to 50%, and it transitions between lambertian and Oren-Nayar. It's just something you can test out.
One thing I always wondered is why isn't there any guide on how MUCH diffuse roughness is indicated for specific materials.. like clay 0.95, plastic 0.1, concrete 0.8, dirt 1 etc. This would help a lot 😅
@christopher3d475 I get it. But it is a quite subtle effect and we get so much precise information for IoR and other parameters.. I was curious of what the science was 😀
@@JohnDowson100 IOR shouldn't be used as a "precise parameter", except for very high transmissive material like glass (we don't have volumetric IOR yet). Roughness value and map, in addition to normal/bump is a much more important aspect to get right in order to achieve the correct look. If anything, you could determine how porous and fluid absorbent a material is and reduce the IOR level from the default 0.5, or use a map/calculation for it if you're dealing with shadow gaps (i.e. cracks in floorboards). If it reflects 0.039 or 0.045 at facing angles, nobody will see the difference. Also note that introducing a coat simply applies a fresnel function to blend the specular lobes. It doesn't automatically reduce the Material/Air interface IOR based on the Coat IOR. But this is also in the realm of "nobody cares". Substrate IOR = max(Substrate IOR/Coat IOR, Coat IOR/Substrate IOR). Substrate 1.4 with Coat 1.65, it's 1.65/1.4 = 1.179 (not 1.4/1.65 = 0.848 which is into Snells window territory). Remember the magic trick where balls of silicon (?) are lowered into water, both with same IOR? Balls become invisible. In that case, water is the "coat", and if only very close, you can barely see the reflection in the balls themselves.
@@JohnDowson100 As for "the science", probably just use whatever roughness you use for specular, or a factor/power thereof. That at least keeps it close to original Disney implementation, although theirs (the full Disney shader) were more energy conserving for forward scattered light. Others changed the behavior to do Oren-Nayar for positive angles (back scattering, camera on light side), gradually changing into Lambertian for negative angles (forward scattering, camera looking into light), but we don't have that option. So yes, there is a negative on using this at all, especially at extreme values. If the object is rough enough to become darker (already eliminating reflections using polarized shooting) by getting it wet, then you should probably increase Diffuse roughness. A clay vase would do that, indicated by the specular roughness being high. Whereas a polished China would not do that, also indicated by the specular roughness being low. If porosity is the reason, you might want to also lower the IOR level to account for specular energy loss in cavities. But in most cases, I'd say just go with what's more visually pleasing, or ignore it completely due to having some issues in some cases. For a front lit moon? Always at max. For a back lit moon? Be a bit more careful, especially if relying on diffuse only.
there is a caveat. Sunlight Sky Dynamic Environment versus interior indirect light color space has large differences in energy conservation. I am wondering where that is in the Physical Conductor equation. Indoor outdoor. This is a energy model present in Luxcore.
Energy conservation has to do with how the material/surface handles incoming light vs outgoing light energy. It doesn't matter where the light comes from.
@@christopher3d475 the problem is not about that it's whether or not a bidirectional pathtrace can trace further and quickly on large surface area, which is a requirement for large scale accurate architectural surfacing. Oren nayer originally was developed to challenge this problem Oren-Nayar reflectance model.
In these examples the difference seems very-very small and insignificant....it is not. Try out an interior scene, where the plaster has a high diffuse roughness, it will be immediately much-more realistic. Using correct-ish values for every model in a scene brings it much closer to corona/octane.
@@christopher3d475 i mean it will be great to have that kind of more details setups included in cycles, just glad to have the cycles taking steps to get close to it
I specifically chose lighting that would emphasis its behavior. However, if you made it to the 10 minute mark, I make the very point that it isn't appropriate for all surfaces. It's a use-case scenario option for sure.
diffuse roughness is a game-changer for dirt and gravel, I've always ran into the issue of having dirt look way wetter than it should with just regular roughness values, the solution was to lower the specular value, but that always felt like a cheat... and this is what we were missing as the solution for that!
Totally! One of my pet peeves since the early days of 3D graphics is looking wet that should be dry.
While you can certainly increase diffuse roughness for these materials, that alone won't account for specular energy loss due to cavities.
Cavities are holes and openings where light bounces get trapped and die without ever reaching the camera. This cannot be simulated with a normal map.
So I would recommend doing that solution *in addition* to going Oren-Nayar. Note that Oren-Nayar also suffer energy loss for forward scattered light.
This is unrelated to the recent multiscatter improvements. Use it with care and consideration.
Superb tutorial! Many tutorials have you click this, press that, but often don't explain the underlying concepts or physical principles. Subscribed!
One of the best youtube channel on blender... Highly educational.
true
Speaking facts
WOOOW im working on an automotive scene right now, trying to make my best pavement possible and this COMPLETELY changed the look of it from afar, huge improvement, thank you so much
You're one of my favorite channels and help me to stay passionate about 3D in a time when the industry feels so threatening.
You are doing fantastic work of explaining the inners of the nodes and physics behind them. As a person who just eyeballs his materials throwing the physical accuracy out of the window (but I get that sometimes artistry > physical accuracy), with each and every video of yours I get a slightly better understanding of what the nodes and sliders do. Thank you!
When I see a new `Christopher 3D` Blender video drop, I know there's gonna be technical details that will _NOT_ be MultiscatterGCX-glossed over! Thank you for all your updates!
Thank you for these incredibly useful feature update videos, I honestly don’t think I would understand the current principled node if it weren’t for your channel.
The original principled shader was easy to grasp and relied on relatively few inputs. I like the changes to make it more accurate and powerful, but the purpose of certain parameters is not immediately obvious.
I 💯 agree. It's great they're achieving a certain level realism and control in one shader node, but its at the cost of intuition on knowing what sliders do what. I'd be lost without Chris' videos breaking it down.
Yes! This is one of the two things I've been waiting for Blender to get around to. I learned this for Vray via Grant Warwick way back when.
Fingers crossed for a camera like the Vray Psychical camera or the one found in the Photographer add-on. Thank you for another insightful video 🙏
16:21 I believe the correct way to get the closest match involves XYZ space and the color matching functions:
1. Multiply the lab spectra with the three color matching functions.
2. add up the three spectra you get that way. This is your XYZ coordinate.
3. convert your XYZ coordinate to your target RGB space.
This way you aren't neglecting, that the primaries of the sRGB color space is not spectrally defined. You take into account the fact that they each are a mixture of wavelengths.
The way you are doing it is arguably still arbitrary because the wavelengths you get for projecting your sRGB primaries onto the spectral locus are gonna depend on the whitepoint. For instance, did you project from Illuminant E (which is relevant for reflections in that a perfect reflection would be a constant reflection spectrum which corresponds to Illuminant E) or from Illuminant D65 (which is relevant for sRGB because that's the whitepoint it chooses) to get those wavelengths? I'm not even sure which one is correct to use there!
With my method above, that doesn't depend on such a choice at all. It doesn't depend on a choice of colorspace either: You do that calculation *once* for XYZ and forever after just convert from XYZ to your RGB space of choice. For instance, you might want to render in Rec.2020 RGB for better indirect light behavior (less of a hue shift towards primary colors). The XYZ coordinates you'd arrive at would still be valid then! And they'd not be equal to simply evaluating the complex IOR spectrum at Rec.2020's spectrally defined primaries.
this channel is amazing, one of the few if not the only one that goes in depth into how these apparently simple things such as diffuse work. it enables us users to have much more understanding of what we are doing, and we can reach far greater results by understanding at this level. thanks for the time and effort, we highly appreciate. i've watched all the other videos too.
Another mind blowing video! Well done sir.
Wow...I am just simply amazed how this video was very well presented, with graphs and so much info. Though I am not really that so deep as a blender user however watching this gives me idea that blender is really levelling up its game into hyper realism. Thanks Chris, keep it up.
Wow. I'm very impressed by how Blender is going and for your explanations. Thanks.
These videos are so informative and interesting! 4.0 series is definitely making major improvements to the eevee and cycles engines.
Can’t wait to try out these updates!
Love your videos. Not only going over new features of future Blender versions but also integrates a lot of useful knowledge along the way in a really easy to understand manner. I applaud that and tip my hat 🎩 Well done!
Great overview of these new features. It would be nice to have presets in the Metallic BSDF Physical Conductor panel itself, like for gold or bronze. As a starting of point for further experimentation.
I could see that as being very useful. It would be great if we didn't need to pull values from refractiveindex, but instead could simply specify RGB wavelength primaries, and it calculate the values for us. Perhaps someone could build a node setup for that.
Absolutely agree, even if gold is a tough nut gamut wise. But affecting both the physical inputs and F82 inputs.
Strictly speaking, there really is no "experimentation" that makes physical sense. Unless you *want* to make unobtainium.
But I think I'd prefer it to be a color node instead of a BSDF. Unless they intend to take it into other territories (like hazy gloss).
This is pretty amazing. Great explanation!
wow, how much we can learn from „simple“ metal shaders 😅 thanks ❤
you are making us appreciate every Blender release even more, impossible!
great explanation! very useful to me!
I know this is a Blender video, but I have to thank you for answering a question I had about the (hidden) Diffuse Roughness feature in Daz Studios Iray. I discovered it through experimentation and the documentation for it was terse and uninformative. What I can say is it has a remarkable effect on skin shaders as well, making them look less 'plastic' and allowing more of the translucency to come through. It also made my clothing look considerably more 'real' and now I know why.
It almost looks like it used more samples, very nice effect.
Superb Explanation
It's really nice to see Cycles getting more of the features LuxCore has had for years already.. especially since LuxCore isn't receiving any further development
wow fabric looking prefect
gold
Very interesting as usual. Thank you for doing all this research and sharing it with us !
After 15 years blender becomes.. indigo renderer - one of the greatest renderers ever made, a very fast one, and a big unsolved mystery why this software abandoned by their creators.
It's not the only renderer mystery. One of the best renderers out there, TheaRender, has never produced a Blender plugin and they've restricted its use to a few oddball applications. Such a shame.
i think the video needs more real world examples (i mean in let's say interior projects and other stuff) but the explanation is really nice!
I had no idea the Principled BSDF was not using the Oren-Nayar algorithm! Very cool to see one of my biggest complaints about energy loss on low-incidence rough surfaces being fixed by this!
It never used Oren-Nayar. From what I understand it used to do some tricks with Velvet shader back in the day, not how Disney implemented diffuse roughness.
Not sure, but it might have been removed when Principled v2 was introduced, as v1 had energy conserving issues partly because of roughness.
@@gottagowork I assumed the Oren-Nayar implementation for the regular Diffuse node migrated to Principled as well.
@@fiveoneecho Just recently. Before diffuse roughness was dropped, it did something "similar", but I never felt like it worked like O-N, without being able to point a finger on exactly what. Just felt "off". Someone on the forum mentioned the Velvet BSDF being used for the enclosure, but I don't read code so I didn't bother checking.
Note that "diffuse is supposed to be completely view independent", but both the old Velvet as well as O-N are view dependent (like Glossy). Velvet I understand (inverse glossy, kinda) being based on microcylinders/microtubules (?).
O-N always had this problem, incl the full version (ours is an approximation, but works very well). But there have been attempts on improving it; newer models, or fakery involving light incident angle and modulating roughness, but this is a luxury only available within the BSDF enclosures, not to end users.
Awesome video 🦾
Thanks for the deep dive!
Super nice 👍 thx for your work !!!
Learn so much from all these videos. Thank you
Love your videos. No bullshit, straight to the point.
This is super amazing info, and very well presented! Thank you! 🙏
great info as always! thanks!
12:28 nice to see the reflectivity angle for metal materials being mentioned. I think this goes bit further than just metal materials because even plastic objects seems to reflect more with sharper reflections on the edges curving away from a point of view.
I started faking this (as I don't do photo realistic renderings) using Layer Weight node with curve node to reduce roughness on objects and it has been very effective way to boost the visibility of forms on objects in a good looking way.
Plastics do indeed exhibit stronger reflections at glancing angles, this is the fresnel effect. I've done videos explaining how the fresnel effect is controlled by the index of refraction and also how roughness affects glancing angle reflections. Metals just have a bit of a different expression of fresnel.
lionvaplus AI fixes this. Blender 4.3 new render features.
This is a great explanation, thank you!
Finally something what I wanted, if caustics be improved (path guiding is pretty good but slow as hell) it would be the best
Yes, Path guiding needs to get GPU accelerated asap🙏
Yes, I agree. That's entirely dependent on Intel. The Blender folks don't really have control over this.
@@christopher3d475 That explains a lot
@@christopher3d475 I'm out of the loop. Why is caustic difficult to be integrated into blender cycles?
@@NCSiebertdesign Caustics have to be solved in one of two ways; through a forward casting technique like photon mapping, or integrated into the global illumination processed used for overall scene sampling. Both present challenges. The Path Guiding algorithm helps with this by detecting strong light paths that can produce caustics. But it's not specifically a caustics solver per so, so improved caustics are a kind of by product. Generlized sampling can be to random to adequately sample paths that produce strong sharp caustics. So some 3D applications use a specific kind of general sampling using algorithms like Metropolis Light Transport. This is sort of like Path Guiding on steroids, and is capable of figuring out caustics within the framework of generalized scene sampling. Its downside is that apparently it's a challenge to properly develop and integrate. So caustics are just a challenge for a variety of reasons.
This tutorial is great. Thanks.
Great Video!
Great explanation, thank you!!
IMO Blender should provide a drop-down menu in the Metallic BSDF node to quickly fill in standard materials' IOR and Extinction values (like the ones that can be found in that website).
It's so simple to implement and it'd make such a great difference to users, that I simply don't understand why nobody implemented it. 🤷♂
Yeah, I agree with you. This node screams for a 2.0 with some extra functionality to make truly useful.
that database of refractive indices is a great resource, I've always hated how the common practice for procedural materials is to just eyeball it
Have you done any furnace tests with the new shading models? In all tests I've done so far: Octane vs Arnold vs Houdini Karma Vs Cycles, Octane comes out with near perfect results. It would be interesting to see how Blender holds up now, especially with microfacet normals conservation.
Good stuff
Great video
Thanks you for these great informative updates! I always like to follow along and move the sliders that I never gave a second thought too. I found it super helpful that you provided a link to your shader ball blend file and I was wondering if you could pack the textures as well? Its currently missing the floor grid and light textures.
Oops sorry about the missing textures. I just uploaded a new file and updated the link.
Awesome
I love you. So much.
Let’s go Blender! Let’s go Chris!
the complex ior i want
Why wasn't the Oren Nayar not included in the previous versions of blender? Why only now? C4D had this already 15 years ago... But I am glad to have it now...
Like I mentioned in the video, it was included in previous versions of Blender, in the diffuse node. 4.3 improves Oren-Nayar by making fully energy conserving, and giving the Principled BSDF access to it.
There is no "energy loss" associated with Lambertian. Run it on a furnace test and see for yourself.
Introducing Oren-Nayar introduces energy loss for forward scattered light, unrelated to the recent multiscatter improvements.
The moon is a perfect example of a non Lambertian diffusor. For back scattered light. For forward scattered light? Not so much.
Disney, even before the improved multiscatter (for other reasons), used a trick to reduce energy loss for forward scattered light.
And since we're locking into "enclosures" (BSDFs), there is no way for us to mimic that effect.
Technically, denim would also have specular reflections. Remember, "everything has fresnel"? I agree though, screw that saying.
So you're correct in turning off specular, because this would be visible on the individual strands rather than a flat surface.
Mixing in some sheen does a better job than relying on "everything has fresnel", certainly at high levels of IOR.
As for the fan, Disney kept diffuse and specular roughness coupled to always be the same value. Usually a good idea, but uncoupled does leave artistic control.
I think anisotropy is completely broken for Principled and Metallic. It's maximum value is clipped to around 0.7 of what it is for the glossy shader.
We used to be able to get around this for Principled as we could pump up the value to 1.111 (but not 1.112) to reach actual 1.0. But now hard clipped.
I would *REALLY* love to have a color output on the BSDF so I can at least make sensible anisotropic materials using Glossy if need be.
The problem with the arbitrary 0.7 hard clip is an insane amount of energy loss at low roughness values for back scattered light.
Which doesn't happen when I observe them in real life. The sun, while there is loss, still produces very visible stretched sun watched from the sun side.
Never use 1.0 of course (unless for weird effects), but 0.7 is far to small.
I'm wondering if we really *NEED* a Metallic BSDF, why not just make a complex fresnel node with a color output to drive the albedo? No sheen or coating, so...
Actually, gold will be out of gamut for RGB. Cycles cannot "accurately" render gold. Yeah, it's a weird one, but also the reason gold isn't the default setting.
That said, using the 100% correct colors, or relying on F82/Physical isn't what's going to make or break a render. Close enough, and nobody cares.
Except you (and me). Because we're extreme cases. 😂 Getting the roughness and bump qualities closer to what you're making is more important.
Can you do a tutorial on applying metallic material to a model with a physical conductor node?
Would it not be better to take a weighted average from a gaussian/normal distribution centered on those 3 specific wavelengths for getting the RGB IOR and Extinction mode?
I mean that is probably overkill really and likely wont be far off from the single value things but it might be more accurate. Though I'm not sure how you would go about getting that data, just an idea!
Great video as always, i really appreciate the detailed walkthrough, and its exciting to have these new physically accurate things come to blender!
The endpoints I used seemed logical but by no means are they the only method you could use. I also tested with a middle overage of the general RGB regions and that works well also. I was going to show that but it seemed too esoteric for most people and also increased the length of the video too much.
@@christopher3d475 ah I see, yeah that’s true haha it is a bit too esoteric and if the individual wavelength values are very close to that anyways then it’s a bit pointless so i totally get that!
@@WonkyGrub You'll notice I uploaded a 4.3 file containing the metals. I may do another set with different wavelength endpoints for exploration. What I found was the the more color a metal had, like the gold and copper, the more it was likely to be influenced by different primaries. This is actually one of the reasons why a spectral renderer has an advantage over an RGB based renderer.
I guess I'm still a little confused on when you should use Oren-Nayar over Lambertian with BSDFs. I understand it's better for more diffuse materials but where's the cutoff where one becomes more accurate than the other, also should this be used more as a binary setting like the metallic slider where halfway values aren't physically accurate? Either way still a fantastic video, thanks.
I left it a little vague on purpose, because it' ultimately up to what you want your diffuse-containing material to look like. The fan example I showed is an example of this. If you've outdoor scenery that has a concrete sidewalk or road, Oren-Nayar is probably what you want to use. But in many of the renderings I showed throughout the video, I used Oren-Nayar. The slider between the two is a morphing from one end of the spectrum to the other, so it's a bit different from the Metallic slider. So, if you think the full Oren-Nayar is too flat in appearance, you can set it to 50%, and it transitions between lambertian and Oren-Nayar. It's just something you can test out.
@@christopher3d475 I see now, thank you for the explanation. Hope to see more content from you as Blender continues to evolve!
What is the 'Display-Link' Icon next to Pause/Play Preview button?
I was dying for the metallic correct way. I was using octane because of that, probably i will come back to cycles more.
Metals look much better now. Are these renders made in 4.3?
Yes, they were all rendered in 4.3. Many of the surfaces were set to diffuse roughness of 1.0. A few here and there I did maybe 0.5.
One thing I always wondered is why isn't there any guide on how MUCH diffuse roughness is indicated for specific materials.. like clay 0.95, plastic 0.1, concrete 0.8, dirt 1 etc. This would help a lot 😅
I think it just comes down to what you like in terms of the look of the object and material.
@christopher3d475 I get it. But it is a quite subtle effect and we get so much precise information for IoR and other parameters.. I was curious of what the science was 😀
@@JohnDowson100 IOR shouldn't be used as a "precise parameter", except for very high transmissive material like glass (we don't have volumetric IOR yet). Roughness value and map, in addition to normal/bump is a much more important aspect to get right in order to achieve the correct look. If anything, you could determine how porous and fluid absorbent a material is and reduce the IOR level from the default 0.5, or use a map/calculation for it if you're dealing with shadow gaps (i.e. cracks in floorboards). If it reflects 0.039 or 0.045 at facing angles, nobody will see the difference.
Also note that introducing a coat simply applies a fresnel function to blend the specular lobes. It doesn't automatically reduce the Material/Air interface IOR based on the Coat IOR. But this is also in the realm of "nobody cares". Substrate IOR = max(Substrate IOR/Coat IOR, Coat IOR/Substrate IOR). Substrate 1.4 with Coat 1.65, it's 1.65/1.4 = 1.179 (not 1.4/1.65 = 0.848 which is into Snells window territory). Remember the magic trick where balls of silicon (?) are lowered into water, both with same IOR? Balls become invisible. In that case, water is the "coat", and if only very close, you can barely see the reflection in the balls themselves.
@@JohnDowson100 As for "the science", probably just use whatever roughness you use for specular, or a factor/power thereof. That at least keeps it close to original Disney implementation, although theirs (the full Disney shader) were more energy conserving for forward scattered light. Others changed the behavior to do Oren-Nayar for positive angles (back scattering, camera on light side), gradually changing into Lambertian for negative angles (forward scattering, camera looking into light), but we don't have that option. So yes, there is a negative on using this at all, especially at extreme values.
If the object is rough enough to become darker (already eliminating reflections using polarized shooting) by getting it wet, then you should probably increase Diffuse roughness. A clay vase would do that, indicated by the specular roughness being high. Whereas a polished China would not do that, also indicated by the specular roughness being low. If porosity is the reason, you might want to also lower the IOR level to account for specular energy loss in cavities.
But in most cases, I'd say just go with what's more visually pleasing, or ignore it completely due to having some issues in some cases.
For a front lit moon? Always at max. For a back lit moon? Be a bit more careful, especially if relying on diffuse only.
there is a caveat. Sunlight Sky Dynamic Environment versus interior indirect light color space has large differences in energy conservation. I am wondering where that is in the Physical Conductor equation. Indoor outdoor. This is a energy model present in Luxcore.
Energy conservation has to do with how the material/surface handles incoming light vs outgoing light energy. It doesn't matter where the light comes from.
@@christopher3d475 the problem is not about that it's whether or not a bidirectional pathtrace can trace further and quickly on large surface area, which is a requirement for large scale accurate architectural surfacing. Oren nayer originally was developed to challenge this problem Oren-Nayar reflectance model.
In these examples the difference seems very-very small and insignificant....it is not. Try out an interior scene, where the plaster has a high diffuse roughness, it will be immediately much-more realistic. Using correct-ish values for every model in a scene brings it much closer to corona/octane.
u should teach in 3D schools
Octane materials are getting introduced in blender ....but not as perfect as octane itself
Yeah, octane looks better then cycles in most cases. I'm using Octane in blender and very satisfied with results
Well, they're not trying to emulate Octane exactly, but they are moving Cycles closer to the OpenPBR and MaterialX standards.
Octane is a specteral renderer and there are advantages to that.
@@christopher3d475 i mean it will be great to have that kind of more details setups included in cycles, just glad to have the cycles taking steps to get close to it
07:55
Coz moon is flat duh..
(I'm joking. Don't get angry)
facts!
要是有字幕就好了,那样就能看懂了
The Oren-Nayar algorithm blows out the surface and is not aesthetically pleasing. Too much technical precision kills the art, imo.
I specifically chose lighting that would emphasis its behavior. However, if you made it to the 10 minute mark, I make the very point that it isn't appropriate for all surfaces. It's a use-case scenario option for sure.