Blender Studio
  • Films
  • Projects
  • Training
  • Characters
  • Tools
  • Blog
  • Join
  • BLENDER.ORG

    • Download

      Get the latest Blender, older versions, or experimental builds.

    • What's New

      Stay up-to-date with the new features in the latest Blender releases.

    LEARNING & RESOURCES

    • Blender Studio

      Access production assets and knowledge from the open movies.

    • Manual

      Documentation on the usage and features in Blender.

    DEVELOPMENT

    • Developers Blog

      Latest development updates, by Blender developers.

    • Documentation

      Guidelines, release notes and development docs.

    • Benchmark

      A platform to collect and share results of the Blender Benchmark.

    • Blender Conference

      The yearly event that brings the community together.

    DONATE

    • Development Fund

      Support core development with a monthly contribution.

    • One-time Donations

      Perform a single donation with more payment options available.

Training Highlights
Stylized Rendering with Brushstrokes
Geometry Nodes from Scratch
Procedural Shading Fundamentals
Stylized Character Workflow

Training types
Course Documentation Production Lesson Workshop

Training categories
Animation Geometry Nodes Lighting Rendering Rigging Shading
Film Highlights
Wing It!
2023
Charge
2022
Sprite Fright
2021
Spring
2019
Project Highlights
Project DogWalk
Interactive
Gold
Showcase
BCON24 Identity
Showcase
Fighting with Grease Pencil
Article
Course
Procedural Shading: Fundamentals and Beyond
Introduction
  1. 01

    Introduction

    Free
  2. 02

    Definition

  3. 03

    Content Overview

  4. 04

    The Shader Editor

1: Fundamentals
  1. 01

    Colors, Values & Vectors

  2. 02

    Vectors and Pixels

  3. 03

    Coordinate Types

  4. 04

    Value Control

2: Procedural Textures
  1. 01

    Noise Textures

  2. 02

    Shape Control

  3. 03

    Repetition

  4. 04

    Texture Composition

  5. 05

    Space Manipulation

3: Shading Principles
  1. 01

    PBR

  2. 02

    Geometric Dependency - Context Sensitivity

  3. 03

    Generating PBR Maps

4: Shader Composition
  1. 01

    Blending & Masking

  2. 02

    Randomization

  3. 03

    Semi-Procedural Workflow

  4. 04

    Volumetric Shaders

5: Modular Setup
  1. 01

    Parametrization

  2. 02

    Nodegroups

6: Automation
  1. 01

    Drivers

  2. 02

    Animation

Workflow Examples
  1. 01

    Walls (Chapter 2+)

  2. 02

    Wood (Chapter 3+)

  3. 03

    Dynamic Walls (Chapter 4+)

  4. 04

    Wooden Boards (Chapter 5+)

  5. 05

    Fire (Chapter 6+)

  6. 06

    Rainy Window (Chapter 6+)

Files & Tools
  1. Example Scene
  2. Example Scene - Simplified Free
  3. Visualization (Chapter 1-4): Value Graph
  4. Visualization (Chapter 2-5): Space Origami
  5. Example Shader (Chapter 3-1): Rock
  6. Example Shader (Chapter 4-1): Dilapidated Cube Scene
  7. Example Shader (Chapter 4-3): Image Texture De-Tiling
  8. Example Shader (Chapter 4-3): Semi-Procedural Fishbones Boards
  9. Example Shader (Chapter 4-4): Procedural Volumetric Clouds

Login to view this content

Join Blender Studio for just €11.50/month and get instant access to all of our training and film assets!

Login Join Blender Studio
Simon Thommes
Simon Thommes Author
License CC-BY
Report Problem
4: Shader Composition

Randomization

Join to leave a comment.

10 comments
Gary Brimer
Gary Brimer
July 3rd, 2022

I've come across an issue where I am following along but getting a strange issue. My node setup is Text Coord:Object > Vector Multipy > Vector Snap > White Noise Texture > Viewer node. This seems to have worked fine when I used it before, but now I am getting a strange banding/noise artifact across some faces of a cube. It seems that slightly offsetting the repeats or altering the rotation of the noise helps this somewhat, but does not eliminate it in any kind of reliable way. What might be causing this?

Simon Thommes
Simon Thommes
July 4th, 2022

@Gary Brimer When you use object coordinates the faces of a defaullt cube are exactly orthogonal to the XYZ axes. That means that there are cases where for example the X coordinate on a face is exactly 1. When you do the snap operation that means the points on the face are right on that edge of either snapping to 1 or to 0, if they are slightly below 1. In theory it should be well-defined if the value is exactly 1 or slightly lower, but because computers only deal with values with a certain accuracy that is not perfect there are some fluctuations. Usually those are so small that you can't notice them, but you are amplifying the issue by snapping the values at exactly that point where they fluctuate.

I hope that makes it understandable :)

Gary Brimer
Gary Brimer
July 27th, 2022

@Simon Thommes Thanks for the reply Simon, this does make sense. I was also not understanding that at certain times we are squashing an entire axis onto another, making them both essentially battle for the viewport. It's definitely a mental fight to not see the surface shapes/designs as they appear from these types of things, and instead see them as cross sections of various transformations.

Simon Thommes
Simon Thommes
July 27th, 2022

@Gary Brimer The thing about squashing an axis might be a misunderstanding. Multiplying  a coordinate by 0 on an axis is like scaling the coordinate system up infinitely on that axis, it is inverse. So different coordinates are not competing.

But maybe I misunderstood your point

fu233
fu233
May 22nd, 2022

What is the difference between Fac and color in Noise texture; value and color in White noise texture? Every time I follow tutorials I confused with such decisions of switching the socket.

Simon Thommes
Simon Thommes
May 22nd, 2022

@fu233 One outputs a single value, while the other outputs an actual color. So the color basically gives you 3 noises instead of just one (RGB) which you can separate with the Separate RGB node. The value outputs is essentially just the R component of the Color output.

Stylianos Andreolas
Stylianos Andreolas
March 2nd, 2022

This is an outstanding tutorial. The quality is 10/10

victor p
victor p
Oct. 26th, 2020

Hi Simon, for me this course is like learning level 100 while i'm still at level 15.. Any suggestion on how to go from level 16 to 99? Can you make more course to get me through those levels step by step? Or do you know good courses that i can learn to be able to understand procedural shading in a more step by step manner?

Simon Thommes
Simon Thommes
Oct. 26th, 2020

*@victor p* The idea behind this course is to cover as much of the concepts and techniques that I am using for procedural shading as possible. For the subject matter of procedural shading it is necessary to dive quite deeply into those concepts. Of course, how intuitive the things that I talk about are is very subjective and that makes it impossible to adapt to everyone's individual learning style.

I already structured it in a way that it makes sense on a step-by-step basis, but it is not meant to just be watched in one go. I highly recommend to make use of the workflow examples, but also additionally make your own experiments with the concepts that I present.

victor p
victor p
Oct. 26th, 2020

*@Simon Thommes* Thanks for the quick reply. Anyway i hope there will be more workflow examples to come.

Films Projects Training Blog Blender Studio for Teams
Pipeline and Tools
  • CloudRig
  • Blender Kitsu
  • Brushstroke Tools Add-on
  • Blender Studio Extensions
Characters
  • Mikassa
  • Whale
  • Ballan Wrasse
  • Snow
Studio
  • Terms & Conditions
  • Privacy Policy
  • Contact
  • Remixing Music
Blender Studio

The creators who share.

Artistic freedom starts with Blender The Free and Open Source 3D Creation Suite