Cycles Development Updates

I’m still a bit confused as to what this entails. Could you share a screenshot of one of your typical shading node trees and ideally an explanation as to why you made the choices you made?

2 Likes

I can understand a lot of procedural texturing because I’ve watched a lot of procedural texturing.

I honestly can’t think of a single youtube tutorial covering this except for a few about translucent leaves. I’ve seen a little bit about it in ancient answers on stack exchange a long time ago and that’s it.

1 Like

You can look into that to learn about shading theory and building your shaders :

The blender community made a giant leap in quality when he released these tutorials.

3 Likes

Well here’s one that can’t be done with the principled shader.

1 Like

There is no typical node tree - each material is potentially different.

2 Likes

There are thousands of tutorials out there. Cycles existed for about 5 or 6 years before the Principled node was added - so building material node trees from scratch was once the only way to do it.

Look at any of the threads I have started or contributed to - and you’ll find many examples of materials node groups I have created - for example:

This thread has hundreds of “from scratch” node groups/materials

2 Likes

With Project Heist coming out, it will be very interesting to see how the Blender Studio approached this.
Hopefully we’ll also get too example giles from it !

1 Like

Very interesting. I would however say that I seriously doubt that the average Blender user would be creating these types of shaders from scratch.

It’s good to know that the functionality is there for those so inclined.

1 Like

It’s pretty normal to use shaders like that.
It’s also pretty normal to simply use the Principled shader and call it a day.
Different use cases will drive you to do different things with shader nodes.

There are some much crazier shader nodes setups that definitely are mostly just for show (usually not actually practical, but very cool projects on their own, and a nice way to learn how shader nodes operate) during each NodeVember event.
Although now Geometry Nodes are gonna take a big share of that

4 Likes

What is this, the beginning of the Path Guiding Branch?
rB71a5a0f412b4 (blender.org)

I do not know whether it is ready to be given a spin by users though.

8 Likes

Ooh, yeah, I really hope so! :heart:

1 Like

The one posted above is an extreme example. This is more typical node group for a relatively simple coloured glass material, that has absorption dependent on glass thickness

Can you do this in principled - probably, but I find this much easier to understand and see what is going on, compared to a list of numbers.

Whilst principled was probably a necessary addition to Cycles - I feel that the fact cycles materials default to principled pushes people (especially new users) down the route of using it almost exclusively - or thinking it is the be-all and end all of shading with Cycles and that they aren’t willing to try experimenting with nodes (some of the posts above would seem to confirm this). I think it will ultimately lead to a lower overall level of knowledge in the user base and far less interesting materials as a result.

8 Likes

I think the diffuse shader could have a dropdown of modes instead of roughness to control just Oren-Nayar roughness. Also I’m not sure I like the Oren-Nayar implementation. Unless my memory fails me, I cannot produce the same results with it that I did 30 or so years ago (different software) which was a seriously hardcore implementation that took ages to render out compared to Lambertian diffuse. I’m not able to create that “soft looking felt appearance” based on shading algorithm alone. I also can’t remember it having same different issues with forward and back scattered light. But, this was a very very long time ago, so I could remember wrong. So I would propose some modes like:

  1. Oren-Nayar Diffuse (same as current).
  2. Disney Diffuse (same as in Principled, may expose IOR control).
  3. Velvet (same as today, where roughness becomes sigma).
  4. Oren-Nayar Hardcore (original one I remember).
  5. Oren-Nayar Modern (based on updated papers on Oren Nayar to fix certain problems).
  6. Fuzz (similar to Rendermans fuzz/retroreflection shader, which is isotropic).
  7. Anisotropic Velvet (to simulate nap direction response in velvet).
  8. Anisotropic Fuzz (similar to Disney fuzz, but with nap direction response).

A UV input that drives the anisotropic (nap) direction, possibly with a rotation control.
Not all at once, but plan it out to allow for future expansions. I have a hard time wording this good also. :slight_smile:

Not yet, these are just the library builder changes, actual integration of it into cycles is still to come, once that’s in and we update the libs in SVN, the bots will be able to build something the users can take for a spin, when that’ll be, can’t say, but it’ll likely be days to week(s?) for it to all come together, not hours.

5 Likes

There somewhat recently has been a new approach to Oren-Nayar that kind of is to it as Multiscatter GGX is to GGX. If this were updated, I’d love to see that implemented too.

Any paper source?

https://research.nvidia.com/publication/2021-06_analytic-brdf-materials-spherical-lambertian-scatterers I think it was this
Plus a twitter thread to go along with it https://twitter.com/ejdeon/status/1407429014751387648

Apparently it’s not a general Oren-Nayar replacement, but rather a special case of max-roughness Oren-Nayar, so not quite usable the way I thought.
Still, would be cool to have. There is even a shader toy implementation here https://www.shadertoy.com/view/ftlXWl

2 Likes

The plan is between day and days :).
Currently, I set up the dependency build for the guiding library and the code follows in a second wave.
@LazyDodo was so kind as to help me test the build scripts.

The second wave which contains the path guiding integration includes a fully functional version on CPU and we hope to get it in the master branch ASAP.

23 Likes

That’s great, Sebastian, and welcome to Blender Artists!

1 Like

We need some kind of community curated manual where certain essential info is enshrined. It’s something I noticed with 3 generations of people learning, re-learning, and re-re-learning CSS in web design. Everyone who was “on the train” at the right moment in time, reading the right blogs, participating in the right chatrooms/forums, excelled in CSS effortlessly while everyone else was miserable and confused. Whenever I could explain the history of everything CSS from the beginning to the present to someone they would be free of all confusion. To do that I needed to use my massive collection bookmarks to everything I ever read that gave me a “eureka” moment. Over the years 99% of those bookmarks have gone 404 :(.

Similarly, there are essential things that you remember and can still find on the internet that new Blender users will never see (especially with the exponential growth of new, low-effort, low-info, rehashed blender content since 2020) and we really need to gather those things and put them in one location and tell any wise blender beginner that they are essential reading/watching. Like a library of congress, curate and put full copies of essential eureka-inducing tutorials in an independant location (and a .torrent). For example I distinctly remember the 2.79 version of The Donut Tutorial doing a much better job of explaining the Blender User Interface than the 2.80 version of the same tutorial. I can’t find the 2.79 version anymore. I have friends who can’t run 2.80+ on their ancient laptops.

3 Likes