Just some notes I made while following along with this now-famous blender donut tutorial. I’ll be making additional notes for each of the videos in the series!
- Notes below correspond to this YouTube video
- You can download a PDF copy of this post here
- You can download the associated “.blend” file here. This file is the result of my work after following along with the steps in the YouTube video.
Texturing Link to heading
If you take a look at some photographs of donuts, you’ll notice that they aren’t a consistent color “all the way through”. Most donuts have a light ring around the center and will typically also have dark “speckles” throughout (probably because bits protruding from the surface of the donut tend to get cooked more, since they have more surface area in contact with the cooking oil).
We need to replicate this look with texturing.
First, let’s hide the icing. Select the icing and click on the little “eye” in the “Outliner”, at the top right-hand corner of the Blender window, as shown here:
Now it will be much easier to see what we’re doing.
Tip: You can also hide with “H” and un-hide with “Alt + H”
Tip: For the most part, the only settings you need to adjust to get good looking textures are “Base Color”, “Roughness”, and “Normal Map”. Other settings are rarely needed (well, maybe “Subsurface”).
Using The “Shading” View Link to heading
We will now need to start giving the donut a texture, which we will do from the “Shading” view:
By default, the Shading View is going to open up with the viewport set to “Material Preview” with the default lighting settings, and it’ll also open up some side menus that aren’t needed for the blender donut tutorial.
Let’s close all that, change our lighting settings, and disable the plane underneath the donut as well.
First, with the donut selected, hit “~” and click on “View Selected” (or hit “3”) to zoom in on the donut:
This will zoom us in:
Next, close the two windows to the left side of the screen by right-clicking on their rightmost window borders, then choosing “Join Areas”. This will cause the cursor to change to an arrow head shape: “<”. Place the cursor inside the window you want to close, and left click once. Your screen should now look something like this:
Next, click on the plane underneath the donut and press “H” to hide it:
Finally, adjust the lighting settings for the Viewport, like this:
Great! Now we can start texturing (you might want to turn up the brightness of your in-scene lamp for this part, as well).
We’ll be using the bottom window (the node editor) to help us:
The boxes you can see in that bottom window are called nodes. Basically, nodes let you modify your objects by taking data from your shader (Principled BSDF) and modifying it. The nodes “flow” into each other from left to right.
Adding nodes and plugging them into the Principled BSDF inputs will change how our donut looks.
For instance, you could add a “Voronoi Texture”, like this (note: you add nodes the same way you would add objects, with “Shift + A”):
The big advantage of texturing with geometry nodes is that you can easily change things later. If you hand-paint a texture, it’s a lot of work to change it later on!
Texturing The Donut Link to heading
I’ll now delete the “Voronoi Color” node, and replace it with a “Noise Texture” node, like this:
Tip: If you use “Control + Right Mouse Button” then drag the mouse, this will “cut” the wires you create when you connect geometry nodes. You can also simply grab one end of a wire and move it away from a node, then let go.
You can see that the “Noise Texture” node is creating a mottled (noisy) pattern on the donut, but we have lost our original colors. We need to get those back.
To do that, we need to add a ‘ColorRamp" node between the “Noise Texture” and “Principled BSDF” nodes. Dragging it onto the line between those two will insert it into the workflow, like this:
Pay close attention to which inputs and outputs are wired up here. It’s important.
We now need to change the color range that the ColorRamp is using:
Playing around a little, I end up with something like this:
“Preview” Node Effects More Easily With Node Wrangler Link to heading
Turning on the “Node Wrangler” plugin will let you “Control + Shift + Left Click” on a node, to “preview” its effect on your object.
You can turn it on from Edit -> Preferences -> Add-ons, by searching for “Node Wrangler”. Check the box next to the plugin to enable it:
If we now “Control + Shift + Left Click” on the “Noise Texture”, we can see the raw output of just that node. This is helpful when trying to figure out which node is doing what:
Adjusting Our Texture Coordinates Link to heading
If you look closely at that first result (the noise texture, in black and white above), you’ll see that the “splotches” appear stretched around the middle of the donut, but look more uniform on top.
This is because the texture map that corresponds to our donut is “stretched” to fit our donut’s irregular shape.
This has to do with the way Blender “fits” textures to 3D objects. We can make things look a little better by adding a “Texture Coordinate” node in front of the “Noise Texture”, like this:
Now our donut’s texture looks too uniform. This is because the scale of our noise texture needs to be updated, now that we’ve changed the way we are handling “stretching” our texture over the donut. A higher value (200 in my case) should help:
Play with that value until you get something you like. I went for 50:
Making The Donut “Bumpy” Link to heading
We can add another node to change not only the color of the donut, but its shape as well (i.e. we can make little bumps and imperfections appear).
Basically, we want to pass something in to the “normal” input on the “Principled BSDF” shader node. This will change the directions of the faces on the model.
We can add a “Bump” node between our “Noise Texture” and the “Normal” input on the “Principled BSDF” node. Wire it up like this:
Our donut now looks like a crumpled piece of paper. This is because the “Distance” setting in the “Bump” node is too high. The distance units are meters. We need to pick something way smaller, like maybe 0.005. We may also need to increase the “Detail” setting in the “Noise Texture” node. Play with both until you get something you like:
Tip: Don’t go too crazy with the details. If you do this, everything else we add to our scene later on will need to be at more or less the same level of detail, so that everything “fits together”. Sticking with a lower-res, more stylized donut will save us work later on.
After some tweaking, I adjusted my detail back down to “5” and the “Distance” for the Bump node to “0.002”. I put the icing back to help me judge how well the donut’s new details “fit” with my stylized icing: