# Donut Tutorial ::::{important} This is a companion guide to Blender Guru's foundational [Donut Tutorial](https://www.youtube.com/playlist?list=PLjEaoINr3zgFX8ZsChQVQsuDSjEqdWMAD) :::: **Disclaimers:** Videos for this tutorial are currently hosted on Dropbox which limits their data and may result in a video not available error. %% :::{card} %% ![Dropbox Error](./Images/Dropbox-Error/LinkOverload.jpg) %% ::: If demand is high enough, we will increase the bandwidth or find a more suitable provider. ```{note} Why make a tutorial of a tutorial? :class: warning - Proof of Work. This is a good way to document one's progress through complexity. - This is a form of a digital notebook. - This is a good exercise in reducing complexity into simplicity. - Recalling a small particular step, is a large sequence of steps, is difficult. - This Donut Blender companion guide aims to act as a bridge, moving users from 'no recall' to 'rote recall'. - This guide is meant to be a 'see-it-do-it' guide, without having to pause and rewind videos. - This tutorial supports step by step following along, using two monitors. - This tutorial supports one screen setups and laptops by having vertical videos in some sections. ![Vertical Setup](./Images/Vertical_Screen_Setup/Vertical-Screen-Setup.jpg) - This companion guide covers Parts 01 - 10 at this time. - Sphinx Documentation's Search is only so-so, instead we suggest Cmd/Ctrl-F on the tutorial document. - This is an early release tutorial, please forgive typose, unclear text, etc. ``` :::{card} The early tutorials use [**Short Cut VUr**](https://www.youtube.com/watch?v=Ombz2lDjZIA) to display keystrokes. Most of the time. Later we use the [Screen Cast Addon](https://www.youtube.com/watch?v=6d_Lv6xN5bQ) which is recommended for greater reliability in documentating Hot keys, Pie and Pop-Up Menus. [Screencast Github](https://github.com/nutti/Screencast-Keys) Installing Screencast Keys may be helpful in some later sections as one can match the on screen keys with one's own keys. A bit like the bouncing ball in Karaoke. ::: --- ## Trouble Shooting While learning Blender, one may get stuck in states which yield odd behaviour. Should this occur at any time in one's learning journey, please refer to the list below. ```{admonition} Trouble Shooting Checklist :class: warning - [ ] **Turn Snapping Off (Shift + Tab)** - [ ] **Turn Proportional Editing Off (O)** - [ ] **Apply Scale (Ctrl + A)** - [ ] **Set Orientation Transformation Scale => Global** This icon looks like two arrows located at the top middle of the screen. ![View Transformation Orientation Menu](./Images/Hot_Keys/View-Transformation-Orientation-Menu.jpg) ``` --- ## Part 01: The Basics [Navigation and Hotkeys](Hotkeys.md) :::{card} **Object Mode, Edit Mode** Blender has two different modes to work in, **Object** and **Edit** Modes. Each mode has restrictions on what commands can be delivered. ie. 'X' to delete, works different in Object Mode vs. Edit Mode. Edit mode is only available when an object is **selected**. ::: #### Change Resolution Scale of Interface. * Edit > Preferences > Interface > Resolution Scale. ![Scale Resolution](Images/Donut_Tutorial_Part_01/Edit-Preferences-Interface-ScaleResolution.jpg) --- #### Change Material Colors Material color changes are not interactive in the early tutorial sections, and only show when rendered (F12) for now. % https://www.dropbox.com/s/d0tgmotsvrxbr4y/01_B-ChangeMaterialColors.mp4?raw=1 --- ```{note} **Collections** are the equivalent to Folders. :class: warning ``` --- % PART TWO--------------------------------------

## Part 02: Object Editing **Object Editing** | Command | Hotkey | | ------- | ----------- | |Add | Shift + A| | Recall 'Operator Presets'| F9 | ![Operator Presets](Images/Donut_Tutorial_Part_02/02-B_Menu-Operator-Presets.jpg "Operator Presets") ```{note} :class: warning - Having an even number segments can help when unwrapping for UV's or performing slices. - Having an odd number of segments may be helpful when trying to define the middle of an object. ``` Here we learn to 'Apply Scale'. | Command | Hot Key | | ------- | -----------| | Apply Scale | Ctrl + A | |Open Item Panel | N | ```{note} :class: warning - Here we scale the donut down from 3 meters to ~ 9 cm. - Blender's default scale is in 1 meter, our Donut is around 9 centimeters. - The difference in scale effects the default settings of tools like radius: Proportional editing. - The scale should always be near to 1, 1, 1. When in doubt, Ctrl + A > Apply scale. ``` Apply Scale:

![Apply Scale](Images/Donut_Tutorial_Part_02/02-C_Menu-Apply-Scale.jpg) [Blender Guru: Tutorial 02, Apply Scale](https://youtu.be/imdYIdv8F4w?t=454) We can change the shading of our object by **Selecting** the object and right clicking over the background. :::{card} "_**Smooth shade is an illusion. It does not add any geometry.**_" - Blender Guru ::: | Mouse | Smooth Shade | | ------- | ----------- | |**RMB over background** |![Flat Shade](Images/Donut_Tutorial_Part_02/02-D_RMB-Object-Context-Menu.jpg) | ---

## Target Section {#target-section} (My_target)= ### Camera Lessons | Command | Hot Key |note| | ------- |----- |---| |1. Look Thru Camera| Numpad - 0 | toggles between camera and perspective view | --- | Command | Hot Key | note | | ------- | ---------- |---- | | 3. Select Donut| | | 4. Frame Selection | Press Numpad - Period ' . ' | | 5. Set Camera Position to Perspective View | Ctrl + Alt + Numpad + 0 | _**Extremely Useful Hot Key**_ | The camera snaps to the donut's position. --- **Simple Way to Frame a Shot** | Command | Hot Key | note | | ------- | ------------|-----| | Side Menu | N | | View | Select | | Activate 'Camera to View' | Blue Checkbox | | Set Desired Camera Frame | Pan, Rotate, Zoom | | Deselect 'Camera to View' | | Or we can leave on and press Numpad '0' to exit | ![Camera to View](./Images/Donut_Tutorial_Part_04/04-C3_Camera_to_View_ShortVersion.gif) --- **Delicate Way to Frame a Shot** ```{note} :class: warning Useful for dollying (moving towards or away from object) in fine increments. ``` | Command | Hot Key |note| | ------- |----- |---| | **Move Camera Frame** | | | 1. Select Camera Frame | | Frame & Camera turn orange | | | | Camera must be visible | | 2. Activate Grab Tool | G | | 3. Enter Smooth Zoom Mode | Depress MMB | Perspective view, we hold Ctrl + MMB to smooth Zoom | | 4. Move Mouse Gently ||| ::::{important} With a split screen, we can also move the camera in a secondary viewport. ::::

---

| Command | Hot Key | note | | ------- | ------------|-----| | 7. Render Camera View | F12 | Check view by rendering | ---
---

### Subdivisions :::{card} Also known as "subd's, subds, subsurf, subsurfaces". - Subdivisions are a way to smooth our models while still maintaining control over their base wire frame / cage. - Subdivisions are typically added in object mode, but we can select the option to view the results in Edit mode. - We can toggle the visibility of the Subd's for the viewport and the render. ::: --- | Hot Key | Pie Menu | | ------ | -------- | | Select **Mode** | | | Ctrl + Tab | ![Select Mode](Images/Donut_Tutorial_Part_02/02-G_Pie-Menu_Select-Mode.jpg) | --- ### Proportional Editing | Command | Hot Key | note | | ------- | ------------|-----| | Proportional | O | Toggle | | Proportional Grab | Select ( Vertice, Edge, Face ) + O + G + Scroll MMB Up | Activate 'O' Before 'G' | --- ### Scale Along Normals | Command | Hot Key | note | | ------- | ------------|-----| | Move Along Normals | Alt + S | Extremely Useful Hotkey| --- % PART 03 --------------------- ## Part 03: Modifiers Create a Layer for Icing. ### Separate by Selection | Command | Hot Key | note | | ------- | -----|--| | Wireframe | Alt + Z | | Select backfacing vertices | | Duplicate | Shift + D| 'esc' to drop selection back in place | | Separate | P [Selection] | A Separate Layer Occurs | | | If the selection has been dropped, Ctrl + L (Select Linked) | --- ### Modifier: Solidify Apply a Solidify modifier from Object Mode. Smooth Offset with Shift + Drag --- ```{note} :class: warning The order of modifiers matters. The top modifier effects those below. Similar to order of Operations. ``` --- ### Apply Subdivision ```{admonition} Warning :class: warning Applying subdivision's is destructive and cannot be undone. It is recommended: - **Save As** a copy of one's un-modified Blender Project. - Duplicate Objects into Separate Layer before applying Subdivisions. ``` **Prepare by Duplicating Object and Saving File > As Copy** | Command | Hot Key | note | | ------- | ------------|-----| | Select Object | | Object Mode | | Duplicate Object | Shift + D | If snapping (Shift + Tab) is on the object (prim) will appear temporarily large. | | Drop Selection | RMB | | Save Project | File > Save As Copy | |

We apply our Subdivision with a level of 1. | Command | Hot Key | note | | ------- | ------------|-----| | Move Subdivision Modifier to Top | | | Apply Modifier | Ctrl + A while hovering over Modifier | Object Mode | | | Select Drop Down Arrow | Object Mode | - What is applied is what was in the viewport, not the render level.

--- ## Part 04: Modeling ### Snapping Snapping allows us to move a vertex along the face of the surface below. |**Snapping**| Hot Keys | | |------------|---|---| | Incremental (temporary) | Ctrl | | | Toggle Snapping | Shift + Tab | | | | | Button to the Right of 'Snap' | | | | ![Snapping Menu](Images/Donut_Tutorial_Part_04/04-B_Snap-Menu.jpg) | - ( Project Individual Elements ) allows nearby vertices to also conform to the surface below. This acts like a radius falloff. Very important to activate. |**Snapping**| Hot Keys | | |------------|---|---| | Over Background | RMB |![RMB Snapping Menue](Images/Donut_Tutorial_Part_04/04-B2_Snap_Menu_RMB.jpg)|

**Deformation with Snapping Activated** Deform the icing to adhere to the faces of the donut.

When wire frames do not appear as expected, when can go to Edit mode, toggle keys [ 1, 2, 3 ] We can also toggle the ( Display Modifier in Edit Mode ) button.

--- ```{admonition} Select through MESH error :class: warning When selecting a vertex, it is possible to select points on the backside. **Shift + Z** for X-Ray, or **Hot Key Z > Wireframe** to see that no other points are selected. ``` [ Select Through Bug in Blender ](https://youtu.be/R1isb0x4zYw?list=PLjEaoINr3zgFX8ZsChQVQsuDSjEqdWMAD&t=557) --- ### Fixing Mesh Occlusion :::{card} The mesh for the icing will be occluded by the donut's base. So we pull the mesh forward by activating Snap, Proportional Editing and pressing 'G' then dropping the selection. Do not drag the mouse, or move any points. :::

| Command | Hot Key | note | | ------- | ------------|-----| | Activate Snapping | Ctrl + TAB | | Activate Proportional Falloff | O | | | Move | G | | Drop Selection | [Esc, LMB ] | Drop Selection without moving vertexes. | | Repeat Where Needed |||

[Donut Tutorial: Pull Mesh Forward ](https://youtu.be/R1isb0x4zYw?list=PLjEaoINr3zgFX8ZsChQVQsuDSjEqdWMAD&t=512) --- ### Camera Repositioning Here we re-position the camera for a render. The method above involves using 'G' to manipulate the camera.

Instead, we can easily manipulate the camera from the viewport.

**Simple Way to Frame a Shot** | Command | Hot Key | note | | ------- | ------------|-----| | Set Camera to Current View | **Ctrl + Alt + Numpad 0** | Highly used Hotkey Combo | | Side Menu | N | | Select | View | | Checkbox | Activate 'Camera to View' | | Choose the Camera Frame | Pan, Rotate, Zoom | Normal navigation | | Deselect 'Camera to View' | | Or leave on and press Numpad '0' to exit | ![Camera to View](./Images/Donut_Tutorial_Part_04/04-C3_Camera_to_View_ShortVersion.gif) **Cons**: - Typically we can leave the camera view by pressing the MMB to escape, now we need to press 'Num pad 0' or uncheck 'Camera to View'. - MMB Scroll to Zoom in and out does not allow for using 'Shift' for smooth increments. ---

### Render Visibility

We observe that we are accidently rendering the original cube placed our scene and not our current view.

```{note} :class: warning A layer can be **invisible** in the viewport but will still **appear** in the render. ``` --- ### References :::{card} "_**I want to get a T-Shirt that says, 'Reference, Reference, References'.. It is my biggest piece of advice for artists whenever they ask for feedback.**_" \- Blender Guru ::: It is critical to switch to **Object** mode to enable the Add > Image > Reference option. | Actions | Hot Key | | ------- | ------------| | Switch to Object | [ Tab, Pie: Ctrl + Tab ] | | Add Image to Current Viewport | Shift + A | | ![Add Image](Images/Donut_Tutorial_Part_04/04-E2_Object-Mode.jpg) | ![Add Image](Images/Donut_Tutorial_Part_04/04-D2_Add-Image.jpg) |

Here we show three different ways of adding references.

- | **Add > Image > Background** | is best used when in Front, Top, or Right viewports. - The background image is only visible from the chosen viewport. - | **Add > Image > Reference** | projects an image onto a plane (card) from the current view. - Add [ Reference, Background ] are identical if performed from the perspective or camera views. --- ### Apply Subdivisions Here we add additional detail by applying the Subdivision surface. ```{admonition} Apply Subdivison Surface :class: warning
Place Subdivision Modifier at top of Stack and Apply ``` - Move Edges and Apply Second Sub Division Modifier. ![Apply Second Subdivision](./Images/Donut_Tutorial_Part_04/04-G2_Apply-Second-Subdivision.gif) --- ### Extrude Edges Make drips by extruding. | Command | Hot Key | note | | ------- | ------------|-----| | Extrude | E | Edit Mode |

### Select Edges Shrink the middle of the donut. | Command | Hot Key | note | | ------- | ------------|-----| | Select Edges | Alt + LMB | Edit Mode [ Vertices, Edges, Faces ] | | Contract Edge | Alt + S | Scale Along Normals |

### Shrink Wrap Modifier This is a second way to match the icing to the Donut. | Command | Hot Key | note | | ------- | ------------|-----| | Shrink Wrap | Modifier | Use Eye Dropper to Pick Target | | Move Modifier to top of Stack | |

[Blender Guru, Donut Tutorial, Part 4: Shrinkwrap Modifier.](https://youtu.be/R1isb0x4zYw?t=920) --- %% Part 05 -----------------------------------------------------------------------

## Part 05: Sculpting Adding greater details to our icing. ```{admonition} Warning :class: warning **SAVE COPY** scene before applying modifiers. ``` - Apply Modifiers from top down before we begin sculpting.

![Apply Modifiers Top Down](./Images/Donut_Tutorial_Part_05/05-A_Apply-Modifiers.gif) --- ### Draw Select the Layout Sculpting Mode Tab. ![Layout Sculpt](./Images/Donut_Tutorial_Part_05/05-B_Layout-Sculpt.jpg) | Command | Hot Key | note | | ------- | ------------|-----| | Sculpting | Pie Menu: Ctrl + Tab [ Sculpting ] | | Draw, Pull [ Push ] | X, [ Ctrl + Drag ] || | Grab | G | | | Change Radius | F | We will use this key combo in the future | | Strength of Radius | Shift + F | We will use this key combo in the future | | Smooth | Shift + S | Hold Shift to activate Smooth anytime | | Inflate | I | Ctrl to Deflate | | Show All Brushes | Pop Up: Shift + Space Bar | |

--- ### Inflate > Stroke > Airbrush :::{card} Inflate > Stroke > Option 'Space' - With Airbrush activated, we do not need to move the mouse to inflate the mesh. - Observe that the 'Active Tool' option is identical to our 'N' Slide panel. - 'Space' in brushes, is the default setting which applies inflation upon cursor movement. :::

### Inflate > Stroke > Space :::{card} Inflate using Tool > Inflate > Stroke > Space :::

--- %% PART 06 -----------------------------------------------------------------

## Part 06: Rendering | Command | Hot Key | note | | ------- | ------------|-----| | Snap Light to Center | Alt + G | With light selected. | ![Snap to Origin](./Images/Donut_Tutorial_Part_06/06-A_Snap-Light-Origin.gif) - "Clear Location" :::{card} Move light up to 3/4 Position. :::

:::{card} Reduce Lighting Power to 20.2W :::

| Command | Hot Key | note | | ------- | ------------|-----| | Switch Rendered Mode |Z | ![Render Mode](./Images/Hot_Keys/Pie-Menu_Z-Render-Mode.gif) | | Rendered | Materials | Solid | Wireframe | | ------- | ------------|-----| --- | ![Render Modes](./Images/Donut_Tutorial_Part_06/06-C2_Render-Modes.gif) --- ### Change Viewport Display ::::{Tip} - Reduce the size of the camera in the viewport. - This does not work for lights. ::::

--- ### Render Engines (EeVee, Cycles) :::{card} Render Engines EeVee is the render engine that ships with Blender. Suitable for games. Cycles is a robust Ray Tracer. ::: ::::{card} Choose Render Engine ![Render Engine](./Images/Donut_Tutorial_Part_06/06-D_Render-Engine.gif) :::: :::{card} Increase Shadows ![EeVee Shadows](./Images/Donut_Tutorial_Part_06/06-G_EeVee-Shadows.gif) ::: :::{card} Select Light, Reduce Shadow Bias ![EeVee Shadows Reduce Bias](./Images/Donut_Tutorial_Part_06/06-G2_EeVee-Shadow-Reduce-Bias.gif) ::: :::{card} (Optional) Add Contact Shadows, depending on the scene ![EeVee Contact Shadows](./Images/Donut_Tutorial_Part_06/06-G3_EeVee-Shadows-Contact.gif) ::: :::{card} Add Ambient Occlusion ![EeVee Ambient Occlusion](./Images/Donut_Tutorial_Part_06/06-G4_EeVee-Ambient-Occlusion.gif) ::: :::{card} Activate Screen Space Reflections ![EeVee Ambient Occlusion](./Images/Donut_Tutorial_Part_06/06-G5_EeVee-Screen-Space-Reflections.gif) ::: - One can also add 'Bloom' for a bit of glare.

[Blender Guru: Part 06, Rendering - Eevee](https://youtu.be/_WRUW_fs1g8?t=616) --- ### Add Hardware Acceleration (GPU) :::{card} Add GPU's {root file menu } Edit > Preferences > System > Optix. Use CUDA if Optix is n/a. ::: ```{note} :class: warning - There are render settings for the display and for final rendering. - Optix uses CUDA for speed, but in Part 15, Kevin mentions benefits to not using Optix. ```

---- ### Render to Slots Slots act as Snapshots so we can flip through our renders. | Command | Hot Key | note | | ------- | ------------|-----| | View Slots | [ 1, 2, 3, 4, 5.. ] |

--- ### Materials | Command | Hot Key | note | | ------- | ------------|-----| | Select Object | LMB | Object Mode | | Choose Material | Select Icon| | | Choose New | Select | Principled BSDF |

:::{card} Add Colors - Add Colors to the Icing. - Adjust the Roughness to 0.150 - Add Color to Donut. - Add Color to Plane. :::

--- ### Subsurface Scattering :::{card} Subsurface Scattering. Subsurface scattering allow objects to have a translucency or an apparent internal glow to themselves. ::: | Command | Value | note | | ------- | ------------|-----| | Subsurface | 0.100 | | | Subsurface Radius | 0.002 | Select all three by dragging down | | Subsurface Color | Base Color + 0.8 Saturation | Drag Base Color to slot |

| Command | Hot Key | note: Drag Color Swatch to Target | | ------- | ------------|-----| | **Smart Copy** | Shift Select | ![Smart Copy](./Images/Hot_Keys/Hot-Key_Drag-Select-Materials.gif) | --- ### Material Preview to EeVee :::{card} Make Material Setting Equivalent to EeVee. By Selecting Scene Lights and Scene World we can access EeVee through 'Z' Pie Menu. :::

--- ### Samples and Noise ::::{important} More samples reduces noise but increases render times. :::: | Label | Value | note | | ------- | ------------|-----| | Samples | Set [ 100, 200 ] | These are recommended samples for this size scene. | :::{card} Exploring Samples. - Sampling is available under render engine 'Cycles' but not 'EeVee'. - Viewport and Render have separate Samples and Noise attributes. :::

```{note} :class: warning - Denoise for Render Defaults to CPU, not GPU. - We leave the noise threshold at it default value. ``` ---

## Part 07: Texturing & Shading [Blender Guru - Texture](https://youtu.be/CmrAv8TSAao) ```{note} Recommendation: :class: warning [PureRef](https://www.pureref.com/) is the standard tool for collecting reference photos. ``` :::{card} Textures. "_Real Donuts are not one solid color._" "_Base color, roughness value and normal map (bump mapping) are 90% of the materials you make will just use those three things." -Blender Guru_ :::

### Node Editor | Command | Hot Key | note | | ------- | ------------|-----| | Add Node | Shift + A | Equivalent to 'Add Mesh' | | Cut Noodle | Ctrl + RMB | ![Noodle Slice](./Images/Hot_Keys/Hot-Key_Ctrl-RMB-Noodle-Slice.gif) | | Lift Node | Ctrl + X | ![Pop Node](./Images/Hot_Keys/Hot-Key_Node-Pop-Ctrl-X.gif)| --- ```{note} :class: warning Noise is one of the most commonly used Material nodes. ``` | Actions | Adjustments | note | | ------- | ------------|-----| | Add Noise Node | Connect 'Fac' to Base Color | | Adjust Parameters |Set Scale ~ 15.0 | Detail ~ 3.5 |

![Add Noise ](./Images/Donut_Tutorial_Part_07/07-C2_Add-Noise.gif) ![Adjust Noise ](./Images/Donut_Tutorial_Part_07/07-D_Adjust-Noise-Texture.gif) --- | Command | Hot Key | note | | ------- | ------------|-----| | Add Color Ramp | Adjust Scale of Ramp ||

%%![Add Color Ramp](./Images/Donut_Tutorial_Part_07/07-D2_Add-Color-Ramp.gif) --- ::::{Important} **Add Node Wrangler** - This allows us to isolate nodes and preview them. | Command | Hot Key | note | | ------- | ------------|-----| | Preview Node | Ctrl + Shift + Select | Node Wrangler |

::::

| Command | Purpose | note | | ------- | ------------|-----| | Add Texture Coordinate Node | Avoids Distortion in Center | Use Object Connector |

Overview (with checker node added )

Close Up

::::{important} With our noodles, we typically connect like colors to other like colors, except for gray and yellow, which can be mixed. :::: | Command | | ------- | | Adjust: Scale, Detail | ![Noise texture](./Images/Donut_Tutorial_Part_07/07-D_Adjust-Noise-Texture.gif)

--- ### Bump Map | Command | | ------- | | Add Vector > Normal Map |

--- Steps: | Command | | | ------- | ---- | |Shift + A | Add Vector > Normal Map |

| Action | Value | | ------- |------ | | Adjust Distance | 1.00 -> 0.002 | ![Adjust Distance](./Images/Donut_Tutorial_Part_07/07-F2_Adjust-Distance.gif) ::::{important} Bump Strength Should Always be 1.0 - Distance is given in Blender units, or 1 meter. - Be sure to connect Fac -> Height. :::: --- %% Part 08

## Part 08: Texture Painting | Action | | | ------- |------ | | Shift + A | Texture > Image Texture |

```{note} :class: warning The Donut will turn **purple** or **black** to indicate that no texture has been assigned yet. ``` :::{card} Use Node Search: We can add Image Texture quickly by using the Search function.

::: | Action | | ------- | | Add Texture |

:::{card} Add Texture to Paint On:

::: | Action | | | ------- |------ | | Switch Tabs > Texture Paint | ![Texture Paint](./Images/Donut_Tutorial_Part_08/08-B_Switch-Texture-Paint.gif) | Action | Value | | ------- |------ | | Change Object > Edit Mode | Allows Selections to be Made | | Select Paint Mode | Selections are displayed in Image Editor Window |

Optional: Rearrange screen for vertical friendly viewing.

:::{card} 2D Mapping of 3D Surface:

::: | Action | | ------- | | Paint on Texture Image in 2d and 3d views. |

:::{card} Paint on Texture Breakdown:

::: --- ::::{important} **Draw Icon** Be sure to click on the Draw / Paint icon (top left) in order to bring up the paint swatches. :::: ```{warning} :class: warning - Save the *image Texture File or it will be **Erased**. - On exit, Blender will offer a chance to save the file, one last time. ``` | Action | | ------- | | Save Texture (*image) file: |

:::{card} Save *Image of Texture file.

::: ```{note} :class: warning - Overlay brightens and darkens the texture underneath it (basically increased contrast) - Multiply uses the dark in the layer below. - Add is the opposite of multiply. ``` | Action | note | | ------- |------ | | Delete Color Ramp | We will no longer need this node. |

```{warning} :class: warning Search will not find 'Mix Color' Node. Might be a bug. ``` | Action | Value | | ------- |------ | | Add Mix Color Node | User Defined Blue and Red |

:::{card} Vertical Mode:

::: :::{card} Connect and Adjust **Mix Color** Node | Action | Value | | ------- |------ | | Connect A | From Donut Base Color | | Connect B | From Fac (Factor) of Noise | | Switch **Mix** | **Overlay**| | Adjust Noise Texture | Scale: ~7.0 or to one's liking | | Adjust Mix Color | Fac: ~ 0.67 or to one's liking | :::

:::{card} Vertical

::: ---

--- %% Part 09

## Part 09: Geometry Nodes [Blender Guru: Part 09](https://youtu.be/4WAxMI1QJMQ) | Command | Action | | ------- |------ | | Review our Changes from Part 08 | M (mute node) | | Turn on Plane, Lights, Icing | Click on Eyeball in Outliner, Select Icing | | Create a New Tab Geometry Node Tab | + Menu > Geometry Node | | Close Spreadsheet Window | RMB Over Panel > Join / Cross Hair from Left Corner | | Create First Geometry Node | Click '+ New' | | Toggle Visibility | Select and Deselect Geometry Node in Modifier Stack | | Make Visibility Independent of Selection in Stack | Select Pin |

:::{card} Vertical View

::: --- :::{card} Practice Splitting Screens | Command | Combination | note | | ------- | ------------|-----| | Split Screens with Cross Hairs | From a Corner, Drag a Window onto itself to split | | Join Screens with Cross Hairs | Drag a Corner onto Adjacent window to merge |

::: --- :::{card} Create First Geometry Node and Adjust Height of Icing. | Command | Action | Value | | ------- |------ |----| | Set Position Node| Shift + A, Search > 'Set Position' | | Manipulate Z Position |Shift + Drag on Z | :::

:::{card} Vertical View:

::: | Command | Action |Value | | ------- |------ |-----| | Add Point to Faces | Shift + A > Point > Point on Faces | Set to 500 | ||| Set to Zero |

:::{card}

::: ```{note} :class: warning **Observe:** - The icing layer has been turned into points. - To preserve the layer and also have points, we need a 'Join Geometry Node.' ``` | Command | Action |Value | | ------- |------ |-----| | Preserve Icing Layer | Add (Shift + A) > Geometry > | Join Geometry |

:::{card} Breakdown of Set Position:

::: --- :::{card} **Create a Single Sprinkle to Reference.** | Command | Action |Value | | ------- |------ |-----| | Add Cylinder | Add > Mesh > Cylinder | | Reduce Vertices | Vertices | 32 to 8 | | Scale Down | Properties or F9 | Radius: 0.001 m \| Depth: 0.001 | | Move to Side | G (Grab tool) | Numpad Keys 7, 1 for Top and Front | | Scale Z | S + Z || | Scale Overall | S || :::

Widescreen:

:::{card}

::: --- :::{card} Attach a Single Sprinkle to Instances. _"From one, come many."_ | Command | | ------- | | Shift + A > Instances > Instances on Points | | Drag Cylinder from Outliner to Graph | | Connect Object Info: Geometry -> Instance | | Apply Scale of Cylinder, Ctrl + A Scale | | Increase Density | :::

Wide Screen:

---

:::{card} Rotate Cylinder 90 Degrees. | Command | Action | | | ------- |------ |-----| | Rotate Cylinder, 90 | R + X + Numpad (90) | | | Apply Rotation | Ctrl + A | Select 'Rotation' | :::

Widescreen

--- :::{card} Add Euler Node (pronounced "Oiler"). | Command | Action | | | ------- |------ |-----| | Connect Rotation -> Rotation | Drag Noodles | | | Add Rotation Node | Add > Utility > Rotate Euler | Set to Local | :::

Widescreen

:::{card} Random Value Node | Command | Action | | | ------- |------ |-----| | Add Random Values to Rotation | Search 'Random Values' | Vector: Z > 6.4 radians | | Not X, Not Y | Set X, Y | 0.0 | :::

:::{card} Notes: - Random Value are given in radians (pi = 3.14 = 180 degrees) - Tau is equal to 2 pi. Both pi and tau can be entered as values. - To effect only values in the the Z, we use Random > Vectors. ::: ---

### Weight Paint [Blender Guru: Donut - Weight Paint](https://www.youtube.com/watch?v=4WAxMI1QJMQ&list=PLjEaoINr3zgFX8ZsChQVQsuDSjEqdWMAD&index=9&t=1188s) :::{card} Control where sprinkles can appear on the icing. - Limit sprinkles on some portions of the icing. - Remove sprinkles from the bottom of the icing. ::: #### Prepare for Weight Painting :::{card} Steps: | Command | Action |Value | | ------- |------ |-----| | View Underneath of Icing | H - Hide Donut Base and Plane | | | Select Icing | | *Important Step | | Switch to Weight Paint Mode | Ctrl + Tab | **Weight Paint** | | Make 'Tool Bar' Visible | View > Toolbar | | | Make 'Tool Settings' Visible | View > Tool Settings | | :::

Widescreen

--- #### Paint Weights ```{note} :class: warning The value of weights ranges between 0 - 1. ``` ![Weights Range](./Images/Donut_Tutorial_Part_09/09-K2_Weights-Range.gif) :::{card} Steps | Command | Action |Value | | ------- |------ |-----| | Select 'Object Data Properties' Icon | Object Data Properties: ![ODP](./Images/Donut_Tutorial_Part_09/Object_Data_Properties_Icon.jpg) | | Paint on Surface | Red where we want sprinkles. | 1.00 | | | Green for less | Strength < 1.00| | Rename Vertex Groups | 'Sprinkles Density' | | :::

--- #### Add Multiply Node | Command | Action |Value | | ------- |------ |-----| | Expose Density Input to Modifiers | Noodle 'Density' Back to Object Info | | | Add Math Node | Shift + A: Utility > Math | | Switch to 'Multiply' | Change 'Add' > 'Multiply' | |

Widescreen

---

#### Apply Vertex Weight Map to Sprinkles :::{card} Steps: | Command | Action |Value | | ------- |------ |-----| | Expose Density Value | Noodle 'Value' Back to 'Group Input' || | View Density in Modifier Stack | Change Values | | | File > Save | | | | Toggle Input Attribute | ![Input Icon](./Images/Donut_Tutorial_Part_09/Icon_Input_Attributes.gif) | Num / Text Input | | Select 'Sprinkles Density' | ![Input Attributes](./Images/Donut_Tutorial_Part_09/09-M_Sprinkles-Density.gif) | Reboot if N/A | | View Max Limits | 'N': Group > Value | 10,000 | ```{admonition} Blender Bug :class: warning You may need to restart Blender if you see a black box instead of 'Sprinkles Density'. Be sure to **SAVE**. ``` ::: [Blender Guru, Apply Vertex Weight Map](https://youtu.be/4WAxMI1QJMQ?list=PLjEaoINr3zgFX8ZsChQVQsuDSjEqdWMAD&t=1452)

Widescreen

---

#### Use Poisson to Reduce Clipping :::{card} Our Sprinkles intersect with one another. We can reduce this effect. | Command | Action |Value | | ------- |------ |-----| | Select Distribute Points on Faces Node | | | | Select 'Poisson' | Random > Poisson Disk | | | Noodle Connect | Density Factor -> Group Input | | | Noodle Connect | Density Max -> Value| | | In Modifier Stack | Increase Value | 10,000 | | Adjust Radius of Clipping | Distance Min | 0.0056 m | | Increase Max Limit | 'N': Group > Value | Max: 50,000 | | Rename Input Attributes | Density -> **Weight Paint** | | | | Value -> **Sprinkles Density** | | :::

Widescreen

---

--- #### Simplify Using Multiply Node :::{card} Adjusting a slider with a value of 50,000 is very slow. So we add a multiplier of 10,000 and hide it in the Geometry nodes. | Command | Action | | ------- |------ | | Add Math Node | Shift + A: Utilities > Math | | Switch to 'Multiply' | 'Add' > 'Multiply' | | Adjust Modifier 'Value' | Set to 100 | | Set Multiplier 'Value' | Set to 10,000 | | Adjust 'Value' in Modifiers | Around 800 - 1000 | :::

Widescreen

:::{card} %% | Command | Action |Value | %% | ------- |------ |-----| %%| Select 'Input Attribute' Box | ![Input Attribute](./Images/Donut_Tutorial_Part_09/Icon_Input_Attributes.gif) | 'Sprinkles Density' | %%| Add Math Node | Utility > Math | 'Multiply'| %%| Adjust Value | Set Value | ~700 | %% | Command | Action |Value | %%| ------- |------ |-----| %%| Raise Max Input in Group | N + Group > Value > Max | ~700 | %%![Node](./Images/Donut_Tutorial_Part_09/09-K4_Max-Limit.gif) ```{note} :class: warning Paint Weight Value ranges from 0 - 1 but we want 'Sprinkle Density' to go up to 50,000. ``` ::: --- %% Part 10 --------------------------------------------------------------------------------

## Part 10: Random Colored Sprinkles [Blender Guru: Part 10: Random Colored Sprinkles](https://youtu.be/bLw0HwphXO0) :::{card} Edge loops offer an easy way to alter our models. Here we use them to smooth the ends of our sprinkles. In the real world, surfaces have bevels and not perfect 90 degree junctions. ::: ### Edge Loops :::{card} | Command | Action |Value | | ------- |------ |-----| | Object Mode | Ctrl + Tab | 'Object Mode' | | Select Primary Sprinkle | | | | Add Subsurf Modifier | Ctrl + 1 | Level 1 Sub D | | | Render [ 1 ] | Level 1 | | Edit Mode | Ctrl + Tab | 'Edit Mode' | | Select Edge Mode | Keyboard '2' | Recommended but not required | | Add Edge Loop | Hover, (Ctrl + R) | Use Scroll Wheel to add Loops | | Add Two Loops | Scroll Mouse Forward Once + Click| | | Slide 2 Loops to Edge | 'S' + 'Y' | Creates a Bevelled Edge | | View Results | Oject Mode | | | | RMB > Shade Smooth | Over Selection | ::: ::::{important} Toggle Smooth Shade: Be sure to select an object, then RMB > Smooth Shade ::::

Widescreen

--- :::{card} Hint: How to Remove an Edge Loop: - In Edit Mode - we can use 'A' to Select All. - Alt + LMB to Select Edge Loop. - 'X', Select 'Edge Loops' ![Delete Edge Loops](./Images/Donut_Tutorial_Part_10/10-A2_Delete-Edge-Loops.gif) ::: --- ### Move Pivot ::::{important} Learning to work with an object's pivot point is important for most digital software. Blender has an 'Origin Point' and a '3d Cursor'. The "game" involves manipulating these two points in space. - Edit Mode > Shift + S: Cursor to Selected. - Object Mode > Object button > 'Set Origin' > 'Set Origin to 3d Cursor' Lessons from: [Kev Binge: Blender Quick Tip to Move Object Origin and Pivot](https://youtu.be/q_SiM8PIXtI) - We can also use, Object Mode > Mesh > Snap instead of 'Cursor to Selected': [Snap Cursor](https://youtu.be/ns14pmFwZ2M?t=57) - Nudge 3d Cursor. From 'N': 'View' Tab > 3d Cursor Dropdown. [Move 3d Cursor](https://youtu.be/ns14pmFwZ2M?t=125). :::: | Command | Action | | ------- |------ | | Move Pivot | Pie Menu: Shift + S | | | ![Pivot Menus](./Images/Hot_Keys/10-A_Shift-S-Pivot.gif)| | Example | Note: Edit Mode > Hot key 'A' Selects all of the Cube | | | ![Pivot Example](./Images/Hot_Keys/10-A2_Move-Pivot.gif) | | Center Pivot |![Center Menus](./Images/Hot_Keys/10-A3_Center-Pivot-to-Object.gif)| | | | Object or Edit Mode > Shift + C \|\| Shift + S : Cursor to World Origin | | Hide 3d Cursor |![Hide 3d Cursor](./Images/Hot_Keys/10-A4_Cursor-to-World-Origin.gif)| | #### Center Pivot ```{note} :class: warning **Center Pivot:** Object Mode > Object button > Origin to Center of [Geometry, Mass, Volume] ``` ::::{important} - Shift + S > Cursor to World Origin. This will "hide" the 3d Cursor at (0,0,0). - Shift + C. Set 3D Cursor to Origin. This will also return the cursor to the World Origin. :::: ---

### Add Variants of Sprinkle :::{card} We don't want all our sprinkles to look alike. So we will add variations of shape and colors. ::: #### Duplicate Sprinkles :::{card} Duplicate three sprinkles and create different sizes. ::: :::{card} Steps: | Command | Action |note | | ------- |------ |-----| | Switch: Object Mode | Ctrl + Tab, Tab | | | | Top View | Numpad 7 | | | Full Screen | Ctrl + Space (Optional) | | Duplicate | Shift + D then X | | | Move along X axis | (Grab tool not needed)|| | Switch to Edit Mode | [ Ctrl + Tab, Tab ] | | Select Bottom Face | Keyboard 3 + Select | | | 3d Cursor to Selected | Shift + S | | | Object Mode | Ctrl + Tab | | | Origin to 3d Cursor | Object Button | | | > Set Origin | | | > Set Origin to 3D Cursor | | Make More Sprinkles | Shift + D then X | | | Shorten Sprinkles | S + Y (Constrain on Y axis) | | | Scale | S | Make Them Our Own | | Return 3d Cursor to World Origin | Shift + C || :::

Widescreen

--- %% Bend Sprinkles

#### Bend Sprinkles :::{card} Next we bend our sprinkles. | Command | Action | | ------- | ------ | | Top View | Numpad 7 | | Object Mode | | | Select Last Sprinkle | | | Validate Location of Rotation | R | | Origin to Center of Object | Object Button | | | > Set Origin | | | > Origin to Geometry | | | | | Edit Mode | Ctrl + Tab | | Add Edge Loop | Ctrl + R, over Object | | | Do not confirm | | Add 2 Loops | Scroll MMB Forward | | | Click to Confirm | | Switch to Faces | Keyboard - 3 | | Select Loop | Alt + Select | | Top View | Numpad 7 | | Bend along X | G + X | | | | | Porportional Editing Mode | O, Circle Dot | | Switch to Wireframe | Z > Wireframe | | Select Top Row | | | Rotate | R | | | Scroll MMB for Radius | | Rotate Bottom Row | R | | Turn Proportional Mode Off | O | | Switch to Solid | Z > Solid | | Switch to Object Mode | Ctrl + Tab | ```{note} :class: warning - If the radius for proportional falloff does not appear, just keep scrolling forward. - Because the default radius is in meters and our scene is small, we need to scale the radius down using the MMB. ``` :::

Widescreen

---

#### Add Second Sprinkle :::{card} Add a second bent sprinkle, same methods as before but with slightly different results. :::

---

#### Create Instances from the Collection of Sprinkles :::{card} Instead of our Instances referencing one Sprinkle, we have them reference the collection of Sprinkles. ::: :::{card} Steps | Command | Action | ------- |------ | | Object Mode | | | Practice Adding to Selection | Shift + Click | | Box Selection Includes Plane | | | Select from Front | Numpad 1 | | New Collection | M | | Name Collection | Sprinkles | | Get Collection Info Node | Select Sprinkles Collection in Outliner | | | Drag Collection to Node Editor Graph | | Instance Points --> Collection Info | Instance on Points: Instance | | | -> Collection Info: Geometry | | Instance Points | Check: Pick Instance | | Collection Info | Check: Reset Children | | | Check: Separate Children | :::

Widescreen

---

:::{card} We show how to multi-select and link a material to multiple objects. ::: :::{card} | Command | Action | | ------- |------ | | Remove Duplicate Sprinkle | | | Switch to Material Review Mode | Z > Material Review | | Practice Naming a Material | | | Apply two Materials, Delete one | | | Materials for all objects are based on last selection | | | Link Materials | Ctrl + L | | | Icon ![Box](./Images/Donut_Tutorial_Part_10/Icons/LinkedNumberBox.jpg) shows no. of Linked Objects to Material | | | Unlink Objects | Assign New Material | | | Use 'x' | | | ![Box](./Images/Donut_Tutorial_Part_10/Icons/LinkedNumberBox.jpg) box | :::

---

### Add Color Ramp, Set it to Constant :::{card} Instead of assigning one color per sprinkle, if we use a random function and a Color Ramp to assign a variety of colors to any sprinkle in the collecton. ::: :::{card} | Command | Action | | ------- |------ | | Hide Tools | T | | Delete Material | Materials Properties Tab > 'x' | | Add New Material | Recommend Brown | | Select Four Objects | (Outliner) | | Select Last Object | (Outliner) | | Link Materials | Ctrl + L | | Name Material | 'Sprinkles' | | Shading Tab | | | Input > Object Info | Shift + A: Input > Object Info | | Noodle | Random -> Base Color | | Add Color Ramp | Shift + A: Converter > Color Ramp | | Add Colors | Gradient Blue to Pink | | Switch | Linear > Constant | | Add five colors| | | Blender Guru Pro Tip: | Keep Saturation below 80%. | | Blender Guru Pro Tip: | Non Uniform Distribution of Colors. | :::

Widescreen

%% Rest assured, almost complete. --- ## Congratulations! :::{card} Those who made it this far have negotiated some of the most complex sequences of this tutorial. If you are reading this, it is either because you were curious and you jumped ahead, or you were determined to finish. Both traits are admirable. If it is the first, jump in. If it is the second, congratulations! :::