Any particular reason why there are no certain texture shader nodes (aside from more work)?

I’ve been thinking of playing around with shader nodes in the source code and adding more defaults such as more brick patterns like herring bone, or circular. Or fabric pattern defaults.

Or even introducing something like Spherical or cylindrical coordinates to XYZ vector. Yes, this is easy to make just using basic math nodes but having defaults for these nodes coming right out of the box would make things more convenient.

Is the reason for the lack of such patterns simply due to a lack of community/blender team dev support as there are more pressing issues or is there a more philosophical reason such as not bloating blender with too many defaults?

If this is the latter, what is the standard for having these features be introduced into Blender itself? I don’t want to put too much effort into things that will only get rejected even if I learn along the way.

7 Likes

Coming from POVray long long ago, Blender’s procedural texture set feels extremely limited indeed.

That would be a wonderful addition. I always enjoyed that ease of use from other big player programs on the procedural area. Having the atomic nodes is nice, but not everyone is a scientist :smile:

I think if you consult with the respective module owners it’d be a welcome addition.

1 Like

Can’t speak for the current state of things, since i haven’t looked at cycles in quite a bit, cycles-x changed quite a bit of the architecture, but back in the day the register pressure on the GPU kernels prevented adding too much stuff without slowing other things down, so reusable building blocks were favored over more specialized nodes.

Even if more specialized nodes would be allowed now, adding a texture style node has become “unpleasant” you have to code the node several times:

  1. GLSL for EEVEE/Workbench
  2. OSL for cycles/osl
  3. C++ for SVM - cycles/cpu+gpu
  4. C++ for Geo nodes

The testing matrix is just dreadful :

  1. Eevee
  2. Workbench
  3. Cycles CPU
  4. Cycles CPU-OSL
  5. Cycles CUDA
  6. Cycles Optix
  7. Cycles OpenCL (dead now, but Cycles HIP is real close)
  8. Geo Nodes
  9. Soon: Metal

So historically it would slow things down, unsure if that’s still the case but even if it isn’t it is a real tedious job.

7 Likes

@cheinu There is planned Asset Browser Bundle with higher level functionalities like models, and materials. Maybe you could develop those textures as a nodegroup that can be shipped with the Bundle?
Just an idea.

1 Like

Testing matrix is actually bigger if you include testing GLSL versions on Nvidia, AMD, Intel and Apple GPU/Drivers. Clément squashed dozens of weird shader compiler bugs for each of those.
How fun is that? :smiley:

1 Like

OSL itself offers a wide range of capabilities for building whatever texture function you need. Remember, it’s essentially a complete programming language, with a good set of mathematical functions built-in.