MAKING 3D DONUT IN BLENDER
Creating the Donut
Objective: Create a basic 3D donut shape, tweak its geometry, and smooth out imperfections using Blender tools.
Step 1: Set Up a New Scene
Open Blender.
Delete default cube: Select the cube and press X or Delete.
Ensure a fresh scene: Make sure no other objects (like monkey heads) are in the scene.
Step 2: Add a Donut (Torus)
Add a torus: Press Shift + A to open the "Add" menu.
Select Torus: Under the "Mesh" section, select "Torus" (a donut shape).
Step 3: Adjust Torus Settings
Adjust properties: Right after adding the torus, click the small menu in the bottom-left corner of the screen. If it disappears, press F9 to bring it back.
Set dimensions: Major Segments: 32. Minor Segments: 12.
Change the radius to make the torus appear more "chunky" and visually like a delicious donut.
Click away: Once you’re satisfied, click outside the menu to finalize your donut’s base shape.
Step 4: Apply Smooth Shading
Smooth shading: With the donut selected, right-click and choose Shade Smooth.
This smoothens the appearance without adding unnecessary polygons, giving the illusion of a higher resolution.
Step 5: Add a Subdivision Surface Modifier
Open Modifiers: In the "Properties" panel (right side), click on the "Wrench" icon (Modifier tab).
Add Subdivision Surface Modifier: Click Add Modifier → Subdivision Surface under the "Generate" section.
This will make the donut appear smoother without actually increasing its polygon count.
Adjust Levels:
Viewport: Set to 1 for a lightweight view while working.
Render: Set to 2 or 3 for a higher-quality render.
Step 6: Enter Edit Mode
Switch to Edit Mode: Press Tab to toggle between "Object Mode" and "Edit Mode".
Edit vertices: In Edit Mode, you can see the underlying mesh of the donut. You can tweak individual points (vertices) to modify the shape.
Vertices are the points, edges are the lines between vertices, and faces are the areas enclosed by edges.
Step 7: Use Proportional Editing for Organic Shape
Enable Proportional Editing: Press O or toggle the proportional editing icon from the top toolbar.
Modify the shape:
Select a vertex or face.
Press G to move it, and scroll your mouse wheel up or down to adjust the size of the "influence area."
This will create soft, organic deformations, making your donut look more natural and less mathematically perfect.
Step 8: Finalize Donut Shape
Smooth out lumps: Use Proportional Editing to pull or push vertices in small areas, ensuring that your donut has a natural, slightly uneven shape.
Try adding small lumps to make the donut appear handmade, as overly perfect objects tend to look unrealistic.
Step 9: Save Your Project
Save your progress: Press Ctrl + S and name your project something like Donut_Project.blend.
Adding Donut Icing with Modifiers
Objective: Duplicate a part of the donut mesh and turn it into icing with realistic thickness and a wavy edge.
Step 1: Duplicate the Donut Object
Select the Donut object by right-clicking on it.
Press Shift + D to duplicate the object. You will be in "placement mode." Press Esc or right-click to keep the duplicated object in the same position as the original.
Rename the duplicated object:
Go to the Outliner on the right side of the screen, double-click the duplicated object, and rename it to "Icing."
Alternatively, press F2 with the object selected and rename it to "Icing."
Step 2: Delete the Bottom Half of the Icing
Select the Icing object, then press Tab to enter Edit Mode.
Go to the top-right and click the X-Ray Mode button to see through the object.
Press A to deselect everything.
In the side view (press 1 on the numpad for Front View), box-select the bottom half of the donut mesh by dragging with the left mouse button. Make sure you have selected both the front and back parts of the mesh using X-Ray Mode.
Press X and choose Vertices to delete the selected bottom part of the mesh.
Press Tab to return to Object Mode.
Turn off X-Ray Mode.
Step 3: Add Thickness to the Icing
With the Icing object selected, go to the Modifier tab (the wrench icon) on the right toolbar.
Click Add Modifier and select Solidify. This will add thickness to the mesh, but it may be added in the wrong direction.
In the Solidify Modifier settings, change the Offset to 1 if the thickness is inside the donut.
Adjust the Thickness value to about 0.25.
Step 4: Make the Icing Edge Wavy
Press Tab to enter Edit Mode again.
Disable the Solidify Modifier for Edit Mode by unchecking the small monitor icon next to the Solidify Modifier. This allows you to see the mesh without the added thickness.
Press O to enable Proportional Editing (this tool moves nearby vertices when you move one).
Select some vertices along the edge of the icing and use the G key to move them up or down. Adjust the size of the Proportional Editing influence with the scroll wheel.
Repeat this for various points around the edge to create a wavy appearance.
Step 5: Snap the Icing to the Donut
Press Tab to go back to Object Mode and check if the wavy edge is detaching from the donut.
Go back to Edit Mode.
Enable Snapping by clicking the magnet icon at the top of the screen.
Change the snapping method to Face.
With Proportional Editing still on, select a vertex on the edge and press G to move it. Blender will now snap that vertex to the donut’s surface.
Repeat this process for all necessary vertices to ensure that the icing follows the donut's shape.
Step 6: Subdivide the Mesh for Smoother Icing
In Object Mode, go to the Modifier tab again.
Click Add Modifier and choose Subdivision Surface.
Adjust the Levels Viewport to 2 for a smoother surface.
If satisfied, you can apply the Subdivision Surface modifier by clicking the dropdown arrow next to the modifier name and selecting Apply.
Step 7: Fix Any Overlapping Faces
If some parts of the icing intersect the donut surface or look weird, select them and move them up or down to adjust.
You can use Control + Plus or Control + Minus to select more or less of the mesh around your selected vertices.
Step 8: Final Adjustments and Aesthetic Changes
Once the icing looks good, adjust any remaining areas manually.
Use Alt + H to unhide any hidden parts of the mesh.
Smooth Shading: Right-click on the icing object in Object Mode and select Shade Smooth for a polished look.
Sculpting Donut Icing and Fixing Mesh Issues
Step 1: . Preparing the Mesh
Enter Edit Mode. Switch to Edit Mode by pressing Tab.
Unhide Hidden Parts. If some parts of your mesh are hidden, press Alt + H to unhide them.
Check for Mesh Problems. Check your mesh for issues like overlapping vertices or distorted areas. If you see artifacts caused by projecting parts of the mesh, use the following steps to fix them.
Fix Overlapping Vertices. Enable Snapping by clicking on the magnet icon. Select the problem vertices and press G to move them back into place. Turn off proportional editing if necessary.
Step 2 : Using the Shrinkwrap Modifier to Fix Mesh Separation
Add Shrinkwrap Modifier. Go to the Modifiers tab and click Add Modifier. Choose Shrinkwrap from the Deform category.
Target the Mesh. Use the eyedropper tool to select the main object (in this case, the donut) as the target.
Fix Modifier Stack Order. If the shrinkwrap doesn't work properly, check the modifier stack order. The Shrinkwrap modifier should be placed above the Solidify modifier.
Apply Shrinkwrap. Once the mesh is aligned, click Apply to make the changes permanent.
Step 3: Adding Thickness to the Icing
Apply Solidify Modifier. To work with the icing thickness, apply the Solidify modifier by clicking on the Apply button under the modifier stack.
Enter Edit Mode and Select Vertices. Press Tab to enter Edit Mode. Select vertices along the icing where you'd like to create bulges.
Step 4: Sculpting the Icing
Switch to Sculpt Mode by selecting it from the mode dropdown menu at the top left.
Choose the Inflate Brush. In the left-hand tools panel, choose the Inflate Brush (hotkey: I). Adjust brush size with F and brush strength with Shift + F.
Sculpt Bulges on the Icing by inflating areas where liquid icing would naturally accumulate (e.g., at the ends of icing trails).
Change Brush Size and Strength. Use F to change the brush size and Shift + F to adjust the brush strength for finer control while sculpting.
Step 5: Adding More Detail to the Mesh
Apply Subdivision Modifier. To increase the level of detail, apply a Subdivision Surface modifier from the Modifiers tab. Set the levels to 2 or higher for more vertices to work with. Apply the modifier to make the increased detail permanent.
After applying the subdivision, return to Sculpt Mode and continue refining the details with the Inflate or Grab brushes.
Step 6: Sculpting the Raised Edge
Mask the Edge. To create a raised edge along the rim of the icing, use the Mask Brush (hotkey: M). Paint over the area you want to protect from sculpting.
Use Inflate on the Masked Edge. Switch back to the Inflate Brush. Adjust the size and strength as needed. Sculpt only the unmasked areas to create a raised edge while keeping the rest of the icing untouched.
Apply Masking. Once the sculpting is done, clear the mask by pressing Alt + M.
Step 7: Final Touches
Check for Unwanted Sculpting on the Opposite Side. Ensure that sculpting is only affecting the front faces by enabling Front Faces Only under the brush settings.
Refine the Shape. Use the Grab Brush (hotkey: G) to tweak the overall shape and add more exaggerated details for a more visually interesting result.
Adding Texture and Other Materials to the Donut
Objective: Add realistic thickness and details to the icing on your donut, as well as refine and fix any mesh issues before proceeding with more detailed sculpting.
Step 1: Checking for Hidden Meshes
Before proceeding, inspect your scene for any hidden or unnecessary meshes that shouldn’t be there.
Ensure that the only objects visible are your camera, donut, icing, and light.
Step 2: Applying Materials to Objects
Switch to Render Mode by clicking the button on the top-right (the icon resembles a circle with lines).
Notice how the current light gives a dull gray color to the donut.
To add materials, select your icing. In the Properties Panel, click the Material tab (the sphere icon). Click New to create a new material. Change the base Color to a nice pink shade.
Modify the Roughness value. The lower it is (close to 0), the shinier the object will be. For a matte finish, increase the value. Set it to 0.3 for a decent level of shine.
Step 3: Material for the Donut Base
Select the donut base.
Add a new material using the same steps as above.
Change the base color to a yellowish-orange (this can be adjusted later).
Step 4: Adding a Countertop
Press Shift + A to open the Add menu, then go to Mesh > Plane.
The plane will serve as the countertop. Scale it up by pressing S, then move your mouse to make it larger.
After scaling, click to confirm.
To move the donut so it rests on the countertop, first select the donut and move it upwards by pressing G (grab) followed by Z (to constrain movement to the Z-axis).
Step 5: Parenting the Donut and Icing
To ensure the donut base and icing move together, select the icing first (the child object). Hold Shift and select the donut base (the parent object). Press Ctrl + P and choose Object > Keep Transform to parent them together.
Now, when you move the donut base, the icing will follow.
Step 6: Texturing the Countertop
Select the plane (countertop), and in the Material Tab, click New to add a material.
For the base color, click the small yellow dot next to the color picker, and choose Image Texture.
Open the marble texture you downloaded (from sources like Poliigon or similar websites).
Navigate to where the texture was saved, and select the color map (usually indicated by a "C" in the filename).
Step 7: Adding a Roughness Map
To enhance realism, add a roughness map to give the marble texture more depth. Go to the Shading tab (at the top of the screen). Add a new Image Texture node by pressing Shift + A, and connect it to the Roughness input on the Principled BSDF shader. Open the roughness map from your texture folder and set its Color Space to Non-Color Data.
Step 8: Using a Normal Map for Extra Detail
To add even more realism with bumps and scratches, use a Normal Map. Add another Image Texture node and connect it to a Normal Map node (found in Shift + A > Vector > Normal Map). Connect the Normal Map node to the Normal input of the Principled BSDF shader. Load the Normal Map from the texture folder, and set it to Non-Color Data. You'll now see fine details like scratches and bumps on your countertop.
Step 9: Final Adjustments
Adjust the scale and detail of your texture maps by tweaking the mapping nodes if necessary.
Now you have a realistic countertop for your donut scene, with reflections and bumps that make it look more authentic.
Texture Painting for Donut Model
Objective: Learn how to use Texture Painting in Blender to add realistic coloring to your donut model.
Step 1: Isolate the Donut
Select the donut object in your scene.
Press Tab to switch to Object Mode (if you aren't already in it).
Press / on the numpad to enter Isolate Mode. This isolates your donut, hiding everything else in the scene. The screen might go dark because the light sources are turned off.
Switch to Material Preview Mode in the top-right viewport, next to the render view modes.
Step 2: Prepare for Texture Painting
At the top of Blender, click the Texture Paint tab to enter the texture painting workspace. Your donut might not be visible yet—ensure you’re in Isolate Mode.
Try painting on the donut by clicking on it in the 3D view. You’ll notice nothing happens because there's no image texture applied yet. Blender will give a warning about "Missing textures."
Step 3: Apply Image Texture
Go to the Material Properties tab on the right-hand side.
Under the Base Color section, click the yellow dot next to the color bar.
Select Image Texture from the dropdown list. Your donut might turn black because there’s no image texture loaded yet.
Click New to create a new texture. A window will appear to define your image texture properties. Name it Donut Base. Leave the resolution at the default (1024 x 1024) for this exercise. Choose a yellowish color similar to a freshly baked donut. Press OK.
Step 4: Start Painting the Donut
Once your new image is created, you can now paint directly onto your donut mesh.
Make sure Donut Base is selected from the Image Texture dropdown in the left-hand texture preview.
Start painting by left-clicking on the donut in the 3D view or directly on the UV layout on the left side. Notice how the paint appears on the model. This works because the UV map of the donut is already set up.
Step 5: Painting a Lighter Middle
To add realism, create a lighter band around the middle of the donut, where it cooks less.
On the right-hand side, adjust the brush color. Click the eyedropper tool to match the base yellow color. Adjust the brightness to make it closer to white, but not completely white.
Lower the Strength of your brush to around 0.5 for a softer, more blended effect.
Gently paint around the top of the donut to create a slightly lighter color.
Step 6: Save the Texture
At the top-left of the screen, look for the Image menu. If you see a star (*) next to Image, it means your texture has unsaved changes.
Go to Image > Save As.
Save your texture as DonutBase.png or any other name in your desired directory. Important: If you don’t save the image, your painted work will be lost when you close Blender.
Step 7: Exit Isolate Mode
Once you’re done painting, press / on the numpad again to exit Isolate Mode.
All objects in the scene will reappear, along with your painted donut.
Optional: Further Experimentation
Experiment with brush settings like size, strength, and color.
Try painting in other areas or adding subtle gradients to create a more baked look.
Adding Sprinkles Using Geometry Nodes in Blender
Access Geometry Nodes, go to the top of the Blender interface and select the Geometry Nodes tab. If it’s not visible, middle-click and drag across the top bar to find it.
Create a New Geometry Nodes Modifier. With your icing object selected, click the New button to create a new Geometry Nodes modifier. This will open up a new node editor panel.
You’ll see the Geometry Nodes workspace, which is a node-based system similar to materials but specific to geometry. The left side represents your mesh (the icing), and the right side outputs the result.
Add a Set Position Node. To illustrate, you can add a Set Position node to the node tree to adjust the position of the icing along the Z-axis. This is just an example to show how the modifier works.
Add Points Distribution. Press Shift + A, go to Point Distribute and select Points on Faces. Connect this node to your input geometry. This will scatter points across the surface of your icing.
Join Geometry. To ensure the icing mesh isn’t replaced by points, add a Join Geometry node. Connect your original mesh output to one input of the Join Geometry node and the Points node to the other input.
Create a Sprinkle Object. Add a new mesh object to be used as a sprinkle. For example, go to Mesh > UV Sphere. Set the sphere’s segments to 12 and rings to 8 for a low-res version. Scale it down to a small size (e.g., 0.1).
Reference the Sprinkle Object. With your icing object selected, drag the sprinkle sphere from the Outliner into the Geometry Nodes workspace.
Instance Sprinkles. Add an Instance on Points node from Shift + A > Instance > Instances on Points. Connect this node between the Point Distribute node and the Join Geometry node. Connect the sprinkle object to the Instance input of the Instances on Points node.
Increase the density value in the Point Distribute node to control the number of sprinkles.
To avoid overlapping sprinkles, change the Distribution Method from Random to Poisson Disk in the Point Distribute node. Adjust the Distance Min value to control the spacing between sprinkles.
Add Weight Painting. Switch to Weight Paint mode on the icing object. Paint areas where you want more sprinkles. This will create a vertex group that can be used to control the density of the sprinkles.
Reference the Weight Paint. In the Geometry Nodes workspace, add a Named Attribute node (found under Attribute). Set the attribute name to match the weight paint (e.g., “sprinkle_density”). Connect this to the Density Factor input of the Point Distribute node.
Adjust the Weight Paint. Go back to Weight Paint mode and refine your paint to distribute sprinkles more naturally. You can use a mix of high and low weights to simulate more realistic sprinkle distribution.
Smooth the Sprinkles. To improve the appearance, select the sprinkle object, go to Object Mode, right-click on the sphere and select Shade Smooth to smooth out the sphere’s edges.
Handle Multiple Donuts. If you duplicate the donut and want different sprinkle distributions, ensure each donut has its own Geometry Nodes setup, or un-link them if they share the same node group.
Adjusting Sprinkle Density and Scaling in Blender
Part 1: Exposing and Customizing a Value
Ensure you're in the Geometry Nodes workspace.
Select Your Object. Create a new object, such as a donut, if you don’t have one already.
Create a Geometry Node Setup. Add a new Geometry Nodes modifier to your object. Go to the Geometry Nodes editor and create a basic node setup to add "sprinkles" to your donut.
Expose a Value. Add a “Value” node and connect it to the node setup. Drag the value from the node and connect it to the “Group Input” node. This exposes the value in the modifier stack so that you can adjust it easily.
Rename the Exposed Value. Select the exposed value in the “Group Input” node. Rename it to something more descriptive, like “Sprinkle Density”.
Adjust the Value. Go back to the Modifier panel and adjust the “Sprinkle Density” value to see how it affects the number of sprinkles on your donut.
Part 2: Scaling Your Object
Check Object Size. Hit N to open the properties panel and check the dimensions of your object. Note that your donut might be too large, so we’ll need to scale it down.
Select All Objects. Press A to select all objects in your scene (excluding the camera and light if needed).
Scale Objects by pressing S to scale. Type 0.1 to scale your objects to 10% of their original size and hit Enter.
Apply Scale. With your objects still selected, press Ctrl+A and choose “Scale” to apply the scaling. This ensures that the new scale is applied globally and not just locally.
Part 3: Adjusting Sprinkle Density for New Scale
Update Sprinkle Density. Go back to the Geometry Nodes editor and adjust the “Sprinkle Density” value. Since your object is now smaller, you’ll need to increase the density significantly. For instance, if it was 6,000 before, you might need to set it to 60,000 now.
Normalize Density Value. To make adjusting the sprinkle density easier, add a “Math” node. Set the Math node to “Multiply”. Connect the value output from the “Group Input” to the Math node and set a scaling factor (e.g., 1,000). This allows you to adjust the density more intuitively.
Test and Fine-Tune. Move the “Sprinkle Density” value slider to see how it affects the density of sprinkles on your donut. Fine-tune the value until it looks right.
Preparing for Advanced Sprinkles
Objective: Learn how to add long sprinkles and perform rotation math to position them correctly.
Modeling Long Sprinkles: Add a Cylinder: Use Shift + A > Mesh > Cylinder. Set the radius, depth, and vertices to create a basic shape. Adjust Size: Scale the cylinder along the Z-axis to elongate it. Bevel the Ends: Use Ctrl + B to bevel the top and bottom edges for a rounded look.
Creating Variants: Duplicate and Modify: Duplicate the sprinkle (using Shift + D) and adjust sizes for different types (small, medium, large). Add Geometry for Curves: For bent sprinkles, add loop cuts (Ctrl + R) to introduce more geometry and apply a Simple Deform modifier set to Bend.
Organizing with Collections: Create Collections: Group objects into collections to keep the scene organized (e.g., Sprinkles, Round, Long). Move Objects: Use the M key to move objects into appropriate collections.
Applying Geometry Nodes: Duplicate and Rename: Create duplicates of your objects (e.g., one for round sprinkles and one for long sprinkles). Pin the Node Setup: Ensure you're working with the correct node setup by pinning it to the Geometry Nodes editor. Scatter Using Collection Info: Replace the object input with a Collection Info node to scatter multiple objects. Check Reset Children to properly place them on the mesh.
Final Adjustments: Verify and Adjust: Make sure all settings and modifications reflect correctly on the final object.
Changing Rotation: For long sprinkles, rotation is crucial. You adjusted the rotation of the sprinkles to make sure they align correctly. Applied a 90° rotation along the X-axis to flatten the sprinkles. Applied rotation to the object to ensure it’s saved.
Randomizing Rotation: Used the Rotate Euler node to adjust the rotation and set it to local. Introduced the Random Value node to randomize the rotation, adjusting it for each sprinkle individually. Explained radians versus degrees for rotation, using 2 * pi for 360°.
Distance and Sizing: Adjusted the Distance Min to accommodate the larger sprinkles. Scaled the sprinkles up using the Scale node to make them look chunkier. Adjusted the distance to prevent excessive overlap while maintaining a natural look.
Summary
Applying Materials to Sprinkles:
Instead of assigning individual colors to each sprinkle, use a single material for all sprinkles.
Select all sprinkles, then shift-select the sprinkle with the desired material. Press Ctrl+L and choose "Materials" to link the material to all selected sprinkles.
Coloring Sprinkles:
Go to the Shading tab and add an Object Info node.
Connect the Random output from the Object Info node to the Base Color of the Principled BSDF shader.
Add a Color Ramp node between the Object Info node and the Principled BSDF. This allows you to set specific colors and their distribution.
Adjust the gradient to control the colors of the sprinkles. Set the interpolation to "Constant" to have distinct colors for each sprinkle.
Creating Metallic Sprinkles:
To make some sprinkles metallic, add a second Color Ramp node and connect it to the Metallic input of the Principled BSDF.
Create a black and white gradient where black represents non-metallic and white represents metallic. Adjust the Roughness to fine-tune the appearance of metallic sprinkles.
Rendering Your Scene:
Switch to the camera view (Numpad 0) and adjust the camera using Shift+Tilda (~) for fly navigation. Use W, A, S, D, Q, and E to move around.
Set the render engine to Cycles for better realism, as Eevee is faster but less accurate.
If using Eevee, improve the look by adjusting settings like cube size and shadow bias, though it may still lack fine detail compared to Cycles.