Forum: Poser - OFFICIAL


Subject: What Are You Currently Working On? Share It Here!

AmbientShade opened this issue on Sep 22, 2014 · 585 posts


bagginsbill posted Sat, 20 June 2015 at 9:09 AM

"While he needs 100 nodes to get something mathematically correct, I use far and far less."

I do love H. L. Mencken's famous statement: "There is always an easy solution to every human problem--neat, plausible, and wrong.", often misquoted as "For every complex problem, there is an answer that is clear, simple--and wrong." I actually prefer the misquote, so I am now including both.

However, shader node complexity doesn't always come from a need to be right or correct. There are some problems that admit to a simple solution, and since you seem to have missed them, I'm here to remind you that I've posted (and fully explained) hundreds of shaders that are 5 nodes or less. These are free, largely because they only take me a minute to make them. They happen to be correct as well, especially with P10/PP2014 taking on the proper math. Some of those I give away are still free, but complex, such as LLToon or BBNylon - complex because there isn't any way to do it with few nodes and still be that versatile.

Here is a demonstration of BBGlossy2 - a six node shader that reacts to environment and lights with beauty and simplicity.

file_0f28b5d49b3020afeecd95b4009adf4c.jpComplexity comes from making a shader versatile (simple parameters creating wildly different appearances), from dealing with the older versions of Poser (that don't have Scatter, Fresnel_Blend, or GC), from being smart and helpful (how low can I automatically set reflect quality at any given softness so as to save render time) and from procedural pattern generation (such as my Avatar's fish scales.) I haven't seen your posted shaders providing any of those features, so of course they're simpler. 

I make versatile, multi-purpose shaders with parameters so they can easily be controlled without having to see the implementation nodes, which are on the right. For example, the nodes used to make a metal vs. rubber vs. leather vs. paint are exactly the same and there are just six, connected exactly the same way. (Not counting the bump map) To achieve each material is quite a few value and color changes and few people besides myself know those. I reduce those differences to a few parameters: color, shine, and blur. The other nodes take care of capturing the knowledge that I have on how to adjust the shader to all those variations. When I make shaders that are versatile, then they have a lot of nodes. When I make shaders that can only do one thing, then I have six nodes. If somebody asks me to help them make one material, I show them six nodes with all the values filled in. But I don't charge for shaders like that, I give them away in tutorials. I charge for the versatile, multi-purpose shaders you can't get from anybody else. 

The versatile version of the above BBGlossy shader has 21 nodes. The additional nodes are so that the user only has to choose Color, Shine, and Blur - from that I calculate the eight node parameters that have to change to get the right effects: Diffuse_Value, Fresnel Blend IOR, Blinn Eccentricity, Blinn Reflectivity, Reflect Quality, Reflect Softness, Reflection+Specular Color, and Reflection Value. I daresay only a handful of people in this forum know exactly how those should be set for the six materials I demonstrated above, and there are dozens more possible.

Node count can also go up because (until recently) I would include automatic shader-based gamma correction for those users who had no way to do GC. The automated GC (which turns itself off if you do have render gamma) is a lot of nodes and is only there because it is supporting a deficient renderer. Poser 10 and up don't need this and I don't do it any more. Shader GC increases the BB Glossy shader to 28 nodes.

Before there was a Fresnel_Blend node, it took at least 5 nodes to approximate (9 if the IOR is variable) and 22 nodes to make it exact. You have only to look at shiny things rendered in Poser 8 vs. Poser Pro 2012 vs. Poser 10/Pro 2014 to see the problems I'm solving there. Poser 10 and up don't need this and I don't do it anymore. But supporting the approximation so that it works for Poser 7 or 8 makes the BB Glossy shader grow to  37 nodes (or 50 for the "correct" version.)

So - before you spend too much time bragging about your "simple" approach, let me see you do glass, metal, plastic, paint, rubber, and leather in one shader with only three user-editable parameters, and then let's compare node count.

By the way - this variability through parameter modulation is how PBR shaders work. BB Glossy is a PBR shader and always has been. If/when Poser gains a PBR node, then you'll see this shader drop to one node - but until then, it's 20+ nodes to do all those materials in one shader.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)