Piranha4D's Learning and Practice 2023

2023-01-28 Old West Church

Still sick, still avoiding, but I have decided I’ll look into Grease Pencil next to get myself over the hump of fear in 2 dimensions – one less dimension to worry about.

Another model railroad building, this time based on a small church in a California ghost town (Google Streetview actually had somebody walk around there, which is way cool for getting a close-up view of the buildings that are still standing).

I also took the opportunity to work out how shadow catchers work, how to align the camera, how to set up the HDRI so it matches existing shadows (I didn’t take textures from Streetview so I could avoid having to fiddle too much with that), and how to model the catcher so the shadow roughly matches the ground. I think I’ve mostly figured it out. I think I’d like to put this church into its actual terrain; that’ll give me a chance to work some more with BlenderGIS.

The shadow at the bottom of the door makes it look like the church doesn’t quite touch the ground, but I didn’t notice that until I was mostly done and didn’t feel like moving the sun so that wouldn’t happen. Oh well, hopefully I remember next time. There’s still a lot I have to learn about faking lighting so the render looks better – I’ve basically still not touched rendering much at all, I just occasionally add to the things I know, but haven’t studied it from the ground up.

Music: Kurzgesagt V9 by Epic Mountain. If you have never watched this YT channel, do; it’s excellent, short, animated explainers on scientific, technological, political, philosophical, and psychological subjects. It’s available in English, German, and Spanish, and occasionally other languages.


2023-02-03 Fisgard Lighthouse

And another one in the railroad model series – this one is of Canada’s first lighthouse on the west coast (actually it was built and operated when Vancouver Island was still a British Crown Colony). Today it is a National Historic Site. One can visit the residence, but not climb up into the tower since that’s still an official aid to navigation. I actually want to model the cast iron stairs inside the tower because they’re very pretty:

I used BlenderGIS to download the terrain, but the area around the lighthouse is too low to register on the height maps, just up to 2m, so I raised it up manually. But overlaying the satellite imagery helped with that.


Music: The Astral Plane by Dana Sipos, a local folk singer-songwriter.


2023-02-05 (Commercial) Course: Shader Magic in Blender

I saw the course advertised on Blender Nation, and a quick look at the author’s YT channel showed that he does some cool stuff with materials; I watched a couple since I had never heard of the author before (the channel is small and he posts rarely now). And since I have recently been reviewing procedural materials in my 2022 Sketchbook, and never really got much further with vector math in specific at the time, I thought, hey, at 80% off, why not check this out. (This big discount is not going to last long, but Udemy often has discounts.) Yes, I am still avoiding sculpting. I am avoiding anything that presents the slightest obstacle because it just makes me want to stay in bed and sleep. :sigh:

The meat of the course starts with lesson 4. A few minutes in I am mostly motivated to make my own video on introducing texture coordinate systems. I might not know much about vector math yet, but I do understand the difference between Generated, Object, UV, and Normal texture spaces quite well. Sam Bowman does a better job of explaining it than Joakim Tornhill, but both of them don’t show the differences as clearly as one could. A flat, square plane is not a good object on which to demonstrate the differences! This is definitely an instance of where showing is much more powerful than telling.

But it gets much better soon thereafter. Lesson 5 on masking is very understandable even by people who tuned out math early on in their schooling (or forgot all about it since). I’ve not seen anyone else give such a clear demonstration.

Lessons 6 (creating a tile) and 7 (many tiles) were also understandable, though explanations of Fraction and Modulo felt a little fuzzy.

Tiles created with Fraction:

The Multiply node just sitting around is for rectangular instead of square tiles.

Tiles created with Modulo:

There’s a student assignment for the entire course, creating a tile wall and iteratively improving it. I almost got hung up on it because “create the best wall you can” is a much bigger ask than I was ready for, and so I just created one using basically what I learned in the first few lessons, plus a couple simple textures to make the tiles look vaguely appealing.

No music, I had a bit of a headache all day.


2023-02-06 Wassermühle (Water Mill)

Another one in the railroad model series. I’m getting better and faster at doing these, at making good decisions when to just box model and when to add a new primitive, when to steal geometry, when to array, when to instance, when to boolean. And they’re fun, little, self-contained projects. Good practice just for moving vertices around and for UV-unwrapping.

I think I want to eventually work on textures so they’re consistent; at this point I sometimes go simple procedural, and sometimes (like here) I use realistic textures. I do want to convert the latter to stylized textures so they fit the models better.


Stone and gravel textures from polyhaven.com and textures.com, procedurals my own.

Music: Legends of Tomorrow OST by Blake Neely (nope, haven’t watched that; was looking for music from Emergence by the same composer but struck out – that’s a good series, people usually do the right thing, and it’s still suspenseful, no lazy writing shortcuts like misunderstanding causes by having people regularly not communicate when they should, etc. It’s so rare that people don’t act stupid on TV; I love seeing sane relationships, even if they don’t work out. So of course the series got cancelled after one season.)


2023-02-07 (Commercial) Course: Shader Magic in Blender

Lesson 8 had us improve the tiles by flattening them and rounding them off a little.

With a Map Range node.

With ColorRamps.

He pointed out that the second method is less flexible for this case, but what he missed explaining is how Map Range and ColorRamp are related, how you can quickly convert one to the other, when you’d use one over the other. Fortunately I already knew.

Tilewall #2:

Music: My 21st Century Blues by RAYE (British R&B, sort of)


2023-02-08 “Fractal” Voronoi Experimentation

Yesterday I saw this image in a thread about fractal Voronoi noise (which is worth reading and supporting on its own merits):

The person sharing it thought it couldn’t be done with current nodes, but I thought, hm, didn’t we kinda do something like this with Sam Bowman’s procedural nodes where we had a Wave inside a Voronoi? This is clearly a Voronoi inside a Voronoi inside a Voronoi, but the principle remains the same, I’d think.

So I experimented a little, and yes, the basics aren’t even hard:



The colours aren’t right, and I need to continue to think about that, but this wasn’t about the colours but about the possibility to create this type of pattern with existing nodes.

Having loops in shader nodes would be so useful.

Music: Québécois indie rock/pop (Blesse, Palatine, Bazzart, Mariko, Hubert Lenoir, Filante…)


It has always been surprising that nodes don’t have loops, since loops are happening on the backend anyway. (How else would you calculate N per pixel, which is all any shader calculation is?) it seems like it would be so simple to give them a front-end wrapper :thinking: maybe someday

1 Like

I think the problem is that it would also be very easy to crash Blender. :upside_down_face:


2023-02-09 (Commercial) Course: Shader Magic in Blender

Lessons 10 through 12 didn’t build on the previous tiling.

#10 had us building a node group. I already knew how to do that, so I spent my time trying to figure out how to make it an asset (in Blender’s Asset Browser). Something must have changed since the last time I tried this, because in 3.4 it actually works, and you can do it right from within the Shader Editor:

Originally there’s a little shield icon in place of the asset one. Right-click brings up a menu, and you can pick “Mark Asset” most of the way down.

There’s no quick and easy way to get the new asset into the library, one can’t use Fweeb’s Export to .blend add-on (life saver for organizing assets!) to just save it straight there; that doesn’t work for materials, brushes, nodegroups. But since I’ll probably collect all nodegroups in a single file anyway instead of in small, individual files, that’s alright.

#11 introduced the Length and Distance properties of the Vector Math node:

I think Sam’s approach of making an actual material works better for me. This was short enough, but stand-alone math lessons generally don’t stick well; I like having one or two applications to tie the math to.

#12 was meant to repeat prior operations to have us anchor them better in our memories, but I liked that it was a new combination of things. I knew enough to work out how to do it myself. Having gone through Sam Bowman’s tutorials first has definitely made me a lot more comfortable with the process of taking a given image apart into its constituent pieces that can then be expressed with math.

Music: Canadian indigenous (Asayanabee, Digging Roots, Snotty Nose Rez Kids, William Prince, Tanya Tagaq, Jayli Wolf, Shawnee Kish, Crown Lands, Juurini, Logan Staats…)


Cool! I bought that course a couple days back myself.

1 Like

2023-02-11 Reihenhaus (Townhouse)

And one more in the railroad model series, German again. This one has quite a bit more detail, but it needs it so the 19th century decorative flourishes come through even if heavily stylized. I’m working my way up to doing something half-timbered.

I left the sides blank since this is meant to be sandwiched between two other buildings, but maybe I’ll make another version that can serve as the end of the row like I did with the small Dutch one. I think I’ll also add a couple of side windows to the bay.

Since I am trying to always use different modeling techniques to keep practicing them, but also in order to determine what feels best for any given task, for a second I was considering making the fence with an array, but then came to my senses and just used a plane, which I borrowed from the short wall, inset and solidified, copied and shortened, copied, rotated and shortened – I should have sheared that last one but didn’t remember until I was already fixing out-of-place vertices in the corner. Destructive, but quick. I can easily see not doing it this way if I wanted to maintain editability of the fence – like if I were just blocking it in order to later sub in a more ornate version. Note to self: find more reasons to use Shear and Spin so they actually become part of the repertoire. Maybe look for some tutorials that use them specifically.


Woops, how did that happen? Couple of faces on the roof were mis-textured. I blame xray mode. Luckily Eevee animations are fast, doing it over now.

Music: Indie Folk (City and Colour, Roo Panes, The Avette Brothers, Kings of Convenience, Bon Iver, Fleet Foxes, The Head and the Heart, First Aid Kit, Aldous Harding, Iron & Wine…)


+2 for Bon Iver and Nick Drake mentions the other day.


2023-02-13 (Commercial) Course: Shader Magic in Blender

Joakim is now embarking on short lectures about each and every texture node. For the most part I know the basics, but he shares little extra tidbits that are useful. And reminds me of some things I don’t always remember – that one can type values into numeric fields that lie outside the slider range, for example. One can get some mighty weird results if one goes way outside.

I’m usually playing around a lot with the texture node before making a basic, pleasant shader with displacement (Joakim just plugs the texture node into the output and calls it done, which is fine; it concentrates on the core of the thing), but I’m not showing all those play-around results (ghods forbid). I think I would like these lessons slightly better if he related them more to the math we have so far learned, but maybe that comes later. I’m using some stuff I learned from Sam Bowman.

#12: Brick
So this is very similar to our previous tiling lessons – except it has an additional option (the Mortar size can easily be changed, which we so far haven’t tackled in tiling), but it’s also less flexible per se (can’t change the roundness of the tiles).

#13 Checker
Something that was good to anchor in my mind for both these textures is that the Factor output is really useful for masking without even needing a ColorRamp.

Music: Best Night of My Life by American Authors (2023, indie pop rock) (I was gonna say something not very complimentary about cotton candy here, but this isn’t supposed to be “music reviews”).


2023-02-14 (Commercial) Course: Shader Magic in Blender

We continue our quick visits to the various texture nodes.

#15: Environment texture.
I use one in pretty much every scene and I have long since made it work for me in a basic way (like I know how to sync a physical sun to the main light source in an HDRI (Sun Position add-on). It took me the longest time to figure out that the viewport environment and the render environment differ; Blender really needs some help in that area for beginners because it is utterly confusing. Joakim makes no mention of it, alas. I know, this is about shaders, but it wouldn’t have hurt to at least make mention of it.

But what came as a surprise to me is that one can use any shader nodes in the World. I feel dumb because I already used Texture Coordinate and Mapping nodes but hey, better late than never; it just never occurred to me – that’s where the HDRI goes, that’s all that concerned me. This opens up a lot of possibilities.

#16 Gradient texture
He calls it “a lazy, awkward way to get gradients from the UV”. I’m all for lazy. :stuck_out_tongue_closed_eyes: What was nice here was that he explained what’s under the hood of the different styles of the colour blending; ie Linear is the X channel from Separate XYZ, Quadratic is that channel taken to the Power of 2, Easing is some more complicated multiplication and subtraction, etc. He even went so far as to show us how he looks this up in the code, which was a lovely way to teach students how to fish. I had already known the math for the Radial Gradient because I saw the result of the Gradient texture was the same when Sam Bowman did some math with us early on, but now I went and decoded all the other blending styles as well.

Once again I am happy that I bought Node Preview; it’s just so helpful for shader development to be able to see what happens every step of the way.

No pictures, sorry! At least it’s just a short wall of text.

Music: Raven by Kelela (2023, alt R&B)


In my custom Startup file I use a Nishita Sky Texture, but that’s Cycles only – I don’t do much in Eevee, but set up a coordinating World for it using a Gradient node and ColorRamp:

20230215_StartupBackup.blend (948.7 KB)


Yeah, a gradient looks already more interesting than a plain background, and I didn’t think of it; when I used a gradient I did it in the compositor. :duh:. Now of course I am thinking lots more things – I’m reminded of Sam Bowman’s nebulae; one could make an entirely procedural sky with stars and nebulae and aurora borealis. Or a cartoon sky with moon (I did that once but I modeled the moon – I know how to abuse Voronoi now though). Or something psychedelic, like out of a dream. Or something alien.

Thanks for sharing your startup – I always find it interesting to see how differently people set up theirs.


2023-02-15 (Commercial) Course: Shader Magic in Blender

Joakim Tornhill doesn’t care about IES lights. :wink: Me, I had never used one.

#17 IES texture.
Joakim’s introduction was very basic, even more basic than the others, since he doesn’t really consider it part of what the course covers. Makes sense.

So an IES texture isn’t really a texture. The fine manual says “IES files store the directional intensity distribution of light sources”. This makes it possible to finely tune how one wants one’s lights emission to look. I used the free IES files from Pixar to experiment. The course has one in its resource image zip, but I didn’t remember that existed until afterwards.

So much for the course, as I said, very basic. But y’all know me probably by now, and that there is no rabbit hole I won’t gleefully dive in to let myself be distracted from any goals I might have originally had. I went to find out more about IES lights at digital.ARCH. The article has another link to free files as well.

Shader setup after reading that article, simple:

I learned that publicly available lights aren’t standardized, and can increase render times considerably (I noticed). And that makes an already fiddly process (moving and angling the lights to get what one wants) even more prone to issues. Look at the huge difference in intensity between this standard Blender spot on the left versus the Pixar “bollard” on the right. Same colour, same power, same radius, same size.

So of course I want to learn how to make my own IES lights because I was reminded of that isometric bedroom scene; would have been interesting to give the nightstand lights their own IES profile. One can do so with an external tool, such as: CNDL (Windows only, but at least opensource). Or one can do it in Blender, and if one uses mesh lights, adjustments become a lot easier (Chocofur article). Chocofur also has some free IES lights. The shader setup is more complicated, and I’ve put off doing this until I need it.

Mesh lights? Yeah, I had no idea. :wink: Well, I’ve used mesh lights (as the name says, a mesh that emits light) but I didn’t know there was a special term for them.

:dusts self off from flotsam and jetsam acquired in the rabbit hole:

Music: Tones and I (Australian singer-songwriter, indie pop)


Going against the availability of emojis I see :joy:
Though to be honest, text is a lot more informative in this situation (haha). But maybe I need it, because I cannot decide if it’s the band or the debris you’re talking about.
:thinks it’s debris under obvious circumstances but still cannot decide within this conundrum:
:decides:, oh yes ships contain a lot of useful stuff, especially for survival!
And what do I know of colons anyways? I’m not sure emojis was your initial intent anymore.

P.S. Didn’t know the phrase so had to ask Google.

P.P.S. IES seems interesting. Thanks for the links!
I’m still surprised how it changes the aesthetics very well. Looks like I’ve been blind all this time. Never understood lighting in Blender to be able to make it my own.


Before there were emojis there were kaomoji in Japan and emoticons in the West, and before them there were people on the net and its precursors who tried to add emotional content in their own ways because it became obvious pretty quickly that straight text could lead to lots of misunderstandings. On the system I started out with we used asterisks around emotions, and I kept that up for decades, but these days, depending on the software, that often transforms the text into italics or something else. I don’t like graphical emojis a whole lot because they draw too much attention, when those emotional interjections are really just meant to be a small non-verbal bit of extra information. And I can’t use ASCII emoticons of old because they get auto-transformed into graphical emojis. Anyway, for much non-verbal additions emojis just don’t cut it. So here I often use colons because they’re not automatically transformed into anything. :wry grin:.

Re flotsam and jetsam, thrash metal isn’t really my thing, so yeah, the debris.

I don’t know much about lighting, just the bare minimum to make a render look ok, nothing special. That’s a whole separate area of study.