Piranha4D's Learning and Practice 2022

2022-08-09 Procedural Nodes: Leaf Texture

Episode 9 of Sam Bowman’s Procedural Nodes series: https://youtu.be/JHDsK-0DZCc

I like that these are all different, but use basically the same strategies to build them. I am not quite at the point yet where I can pick the right nodes to make a specific texture I have in mind, but I can feel that I am starting to get there because now and then I can think ahead and anticipate what Sam might add next. In this case the “leaves” were too round and I figured out that adding another noise texture with a MixRGB to regulate it would do the trick.



I played around with this one a little, made the leaves a little less regular, added a subtle bump, layered two planes over each other to give a little depth to the display tile.

And here’s how one could use the material on a low poly tree:

(Well, not so low poly anymore after 2x subd and a displace modifier, but it actually looks alright even without those.)

Music: Assorted game music from the last 10 years (funny that I haven’t played any games since I started learning Blender; I used to be a pretty big gamer).


These textures look great! I won’t pretend to understand much though =D Wish there was a way to make them tiled somehow…

This is very relatable :rofl: I’m still playing, just not nearly as much as blending. Where did my life went so wrong?


Same here. My friends all thought I was crazy when I bought an ROG laptop only to use it for 3d rendering.
I still occasionally play some Hollow Knight when I need a break though.


2022-08-10 Procedural Nodes: Night Sky with Nebulae

Episode 10 of Sam Bowman’s Procedural Nodes series: https://youtu.be/oHn6X1iKDDQ

For this one I knew right away what the main texture was going to be, because of the stars – Voronoi F1 Minkowski makes stars.


Node Preview conked out again, and I didn’t feel like restarting Blender, so there are no previews above the nodes. I hate when it does that; I’ve gotten so used to seeing the effect of every node instantly. I wish Blender had this natively.


No, that’s not dust on your screen, those are twinkly little stars. I caught myself twice wiping my screen and I put them there! :sigh:.

At the end we made a big UV Sphere with the texture showing on the inside, like a sky dome – but without scenery that doesn’t make for a good render. Actually even with scenery I feel the texture needs a lot of work before it’ll actually look good in that context, mainly with the colorramps. But the principle is there.

Music: Xenoblade Chronicles DE


The different algorithms for Voronoi noise are fascinating. It’s especially interesting to see the diverse use cases people come up with for what are on paper extremely boring, non-artistic, equations.

It’s fun to see you working with procedural shaders- that’s without a doubt my area of most experience, I like to test myself by working out your node tree in my head before I actually look at your node tree and see if I got it right :grin:

Wow, me too! :wink:


How do you mean? I know of several ways to tile in the shader graph, and I bet there are more. You can tile with the scale in the Mapping Node, with a Fraction Math Node, with a tiling texture as the factor (like Brick or Checker)… But I’m thinking you have something else in mind (I’m just feeling particularly dense today).


I really wish my teachers had made math more interesting in school because I was thoroughly uninterested, and in retrospect it would have opened whole different worlds to me if I had been taught differently.

That’s so cool that you’re trying to work out my node tree! I do that too (I am working on DeGa’s bottlefly shaders (Big green bottle fly); I got two of them (kinda sorta), but the third is not happening – I am 99% certain that starts with a Voronoi too though). I don’t know enough yet.

Musical synchronicity – ok, this twin business is seriously funny now.


Better than going twice through all the layers just to find that weird line artifact on you image is a string of spider web =D

Ah, I experienced a brain failure and didn’t phrase it clearly, sorry :sweat_smile: What I meant was an option to “bake a procedural image as a seamless texture that can be used elsewhere”. Procedural texturing is one of those big mysteries to me - I don’t have a clear idea of what’s possible and what isn’t…

1 Like

Ah. Yes, you can do that! I was curious about that a while ago, looked around, and saved this node graph:

I used the Position output from the Voronoi just to make it really obvious what it was doing, normally you’d use whatever output gives you your pattern.

Oh, and Eevee doesn’t seem to like 4D noise a whole lot; this is faster in Cycles.


Is that an add on for visualizing the texture on top of nodes? Looks rad, makes me think of substance, seems really helpful!


I seem to have acquired a personal assistant (lucky!) who has already told you which add-on it is :wink:

It is really helpful; it’s so far the only add-on I have bought, because I have trouble concentrating on even short sequences of operations in my head, and while Node Wrangler’s “link node to output” is nice, it wasn’t nice enough. Node Preview makes it so much easier for me to develop shaders. I don’t generally want to use add-ons yet that change Blender’s behaviour significantly because I want to learn how regular operations work in Blender, but this one doesn’t change operations, it just makes it easier to visualize the material at every step of the way. I wish Blender had this natively.


2022-08-11 Procedural Nodes: Birch Bark

Episode 11 of Sam Bowman’s Procedural Nodes series: https://youtu.be/SAbWUs1Rnxw

I just realized that the episode numbers matched the date on which I did those exercises.

This one was fun and useful. Shader:


I can see ways to improve this to make it more realistic, but it’s nice even stylized.

I was just gonna slap it on my original low-poly birch tree, but realized right away that this doesn’t go with that low level of stylization. Then I started playing with various tree generating add-ons, and that was that for the day.

Music: 1990’s alt rock. Don’t give up, you’ve got the music in you!


2022-08-12 Procedural Nodes: Tree Stump

Episode 12 of Sam Bowman’s Procedural Nodes series: https://youtu.be/gMyRnLrFm5E


They’re just getting bigger and bigger. I try to think ahead on how I’d do it if I didn’t have a tutorial but didn’t get very far with this one; managed the original distorted circle. The trick with the gradient texture is kinda nice. I made changes once it was done to get the generic version to look more like a birch stump, and it’s serviceable.


Then I spent some time putting the birch bark and the stump textures into an actual scene. Which was rather more work than expected, because the original textures were all created to work in object space, and moving them into UV space wasn’t the easiest thing I’ve ever done. But hey, I learned how to use more than one UV map for a material.

(Not my bunny, Stanford’s, I only made it low poly.)

Music: Billboard Top 100 of the 2000s. Not my favourite decade, and it hasn’t aged well either. Lots of big stars whose music I don’t care for at all. Individual mixes preferable.


The bigger it gets, the more I want that node previewer :sweat_smile:
I could make a great chair or table out of that stump, I really like the grains.


2022-08-13 Procedural Nodes: Jellyfish

Episode 13 of Sam Bowman’s Procedural Nodes series: https://youtu.be/8e-sdpvktWc

This one was substantially different from the previous ones, though there were echoes. More math here, and in particular math that Sam didn’t entirely understand, so he couldn’t explain it (he got the setup from node wizard Simon Thommes). I am never happy with that sort of thing because it means that while I might be able to use the same nodes as a chunk in another texture, it’ll be like following a recipe without knowing why you add baking powder, but I won’t be able to debug it if it doesn’t work as expected (why did that cookie not rise).

Here’s the whole shader as an overview (I know this is much too small for anyone to read it, sorry, but I’ll be zooming in on the important bits, and at least you can follow the node previews):

The section on the left is just for perturbing the final texture; we’ve used roughly the same strategy in previous exercises – a noise texture whose influence is regulated by a mixRGB node’s factor. The more of those bits you add to the left, the more finely grained the perturbations are, you’re perturbing the noise that perturbs the noise that perturbs the noise…

The chunk in the middle is the work horse here, it creates the radial symmetry:

I really worked on figuring out the math: The Arctan2 node gives us the angle between the positive x-axis of a plane and the point (x,y) on it, which is positive for counter-clockwise angles (y > 0), and negative for clockwise angles (y < 0). The Map Range remaps the angle from -pi to pi to 0 to 1, the Multiply determines the number of sections, and the Fraction makes those happen.

Then, to get each segment to be mirrored, he offsets the value by 0.5, makes it absolute, and lastly resets the centre of the mirror to be 0. :whew:

I was wondering whether one might not replace the first 3 nodes with a Gradient texture (Radial progression), and indeed one can, which is bound to be faster, but it’s less flexible. I was feeling pretty good about that; I can debug it!

The final part is how to create shapes:

RGB Curves are awesome for that. I can easily see how I could make a myriad of different procedural flowers, leaves, not to mention abstract designs.


Music: Vertical Horizon (palate cleanse from the general malaise of the 2000s)


2022-08-14 Procedural Nodes: Grating

Episode 14 of Sam Bowman’s Procedural Nodes series: https://youtu.be/Pz9d64bJ0bw

This one uses simple math to create, shape, and duplicate a single circle-ish texture so it forms a pattern. It is then used for colouration and bumping, and as the factor to drive transparency. Shader:

The lower set of nodes creates some form of (not very believable) scratches.


I didn’t experiment much with this (I’d really would have liked better scratches, and I think that long string of Add/Absolute nodes is inelegant) because I was working on a bigger project (a course by CG Boost) at the same time, but I didn’t want to drop the procedural nodes quite yet.

Music: The Greatest Showman (musical live-action film based (loosely) on the life of PT Barnum). It got a lot of criticism for the artistic license it took in portraying Barnum and the people surrounding him, which distorts actual history beyond recognition. But I don’t watch / listen to musicals for the realism.


2022-08-15 Procedural Nodes: Color Ramp (and Map Range) Musings

Episode 15 of Sam Bowman’s Procedural Nodes series: https://youtu.be/StRptgbHgQw

I understand color ramps a lot better now, but there isn’t much imagery to show for it. We started with exploring the different RGB interpolation options, and made a pretty little setup to show the differences:

Those colour stops are exactly on 0.1, 0.2, 0.3 etc and one can clearly see how different interpolations stretch and/or compress parts of the value range.

The mapping started to make sense. I had had some superficial understanding, but I got closer to seeing possible solutions to recreating specific textures that I hadn’t seen before. I played around for quite a while, but not in a methodical way that I could show here, it was more a touchy-feely thing.

Outside of the tutorial I also realized that the Map Range node is a lot like the ColorRamp – a much less visually helpful alternative that can do some things the ColorRamp can’t do. And I bet it’s actually faster, which might come in handy when a shader gets complicated. I can really feel how quickly even just moderately complex shaders become heavy on my potato of a computer, and Eevee isn’t all that real time anymore when that happens.
image image
The From Min and Max values correspond to the positions of the two primary sliders, and the To Min and Max correspond to the Value component of the colour in HSV space.

So instead of controlling a ColorRamp with a single value coming in, with a Map Range you can control 4 separate values.

Which makes some things pretty handy, like if you wanted to link two sliders, so one always moves in balance with the other:

If I wanted to change the roughness I just have to tweak the Value node (the black slider) and the white slider will follow at the same distance. When tweaking the ColorRamp I have to move both sliders, and it’s fiddly.

I ran out of time and had to leave working out how to use colour with the Map Range node for another day.

Music: Sinfonia Nobilissima by Robert E Jager, and other works for wind ensemble, Tokyo Kosei Wind Orchestra under Takeshi Ooi.


2022-08-16 Procedural Nodes: Mirrored Noise

Episode 16 of Sam Bowman’s Procedural Nodes series: https://youtu.be/xOAYU3rRLIc


The focus here was on how to achieve a mirroring effect. The extra noise perturbations affect that, the more influence they have the less perfect the mirror. Also requires shifting the perturbation back to the centre after the noise distorts:


Something went wrong (today) in that file, and I can’t find it. I tried to add a point light inside the cube so I could make the render more interesting, but Blender would crash when saving. I started with a fresh scene and appended the cube and the backdrop, then the same thing happened when I added a point light. I can add other objects, but not lights.

So I went hunting for the crash log. Urm. There isn’t one in %Temp%. There are other Blender crash logs, so that’s the place it should go, but there isn’t one for this file. The autosave files are there, so I don’t get it. Does Blender not always produce a crash file? I didn’t have time to faff around but I know this won’t let me rest.

Later on I finally bit the bullet and made a multi-installation for Blender. I did it on the cheap since this doesn’t need to be multi-user and secure, I just want the older versions plus my own user prefs so I can test things with which people have problems in the forums. So I just used portables. Shoved my original installation into the new directory structure and everything worked first try (astonishing). Then I thought to try this file with Blender 3.3.1 – same problem, also no crash file. Huh. I’m thinking this might be a memory problem.

Off I go play with the new Bézier pen; this will speed up drawing curves so much. (Ah, to spell that correctly without using ALT codes – I love Espanso; thanks to Joseph I can replace any word at all while typing normally, especially handy for the “bad” words that shunt a post off into the mod queue.)

Music: Better Than Ezra (post-grunge alt rock)


2022-08-17 Procedural Nodes: Road

Episode 17 of Sam Bowman’s Procedural Nodes series: https://youtu.be/RTW3MOjKBIA


Messy. But I learned how to give nodes labels, so I can make things easier to understand (mostly for myself when I look at this again in the future, which had already come in handy).

Five color ramps that could be replace by map range nodes. I should probably invest some time into learning how to analyze how fast and how heavy something is in Blender. I keep telling myself that by the time I get to more complex scenes I’ll have a much more powerful computer, but optimizing is still important.


It didn’t occur to me at the time, but while this is cool, it’s of very limited usefulness because roads aren’t usually perfectly straight bits that can be texture-mapped in object space. I didn’t have the time today, but I wonder how this would work in UV space.

Music: Hedningarna (Nordic Roots Revival)