Films Training Blog
Pipeline and Tools Characters
Pipeline and Tools Characters
search Login Join
favorite

Development Fund

Support Blender Core Development with a monthly contribution.

theaters

Blender Studio

The creators who share. Access production content and knowledge from the Open Movies.

code

Blender Developer Blog

Latest news and updates on Blender development.

people

Get Involved

Join the community and help with design, development, docs and more.

bar_chart

Open Data

A platform to collect and display the Blender Benchmark results.

menu_book

Blender Docs

Documentation on Blender's features, tools and API.

Blender Conference

The yearly event that brings together the Blender community in one place.

download

Get Blender

Download the latest Blender version, or try the beta!

Films
Training
Blog
Pipeline and Tools
Characters
Search
Login
Join

Course

Procedural Shading: Fundamentals and Beyond
feed Course Overview
Introduction keyboard_arrow_down
  1. 01

    Introduction

    Free
  2. 02

    Definition

  3. 03

    Content Overview

  4. 04

    The Shader Editor

1: Fundamentals keyboard_arrow_down
  1. 01

    Colors, Values & Vectors

  2. 02

    Vectors and Pixels

  3. 03

    Coordinate Types

  4. 04

    Value Control

2: Procedural Textures keyboard_arrow_down
  1. 01

    Noise Textures

  2. 02

    Shape Control

  3. 03

    Repetition

  4. 04

    Texture Composition

  5. 05

    Space Manipulation

3: Shading Principles keyboard_arrow_down
  1. 01

    PBR

  2. 02

    Geometric Dependency - Context Sensitivity

  3. 03

    Generating PBR Maps

4: Shader Composition keyboard_arrow_down
  1. 01

    Blending & Masking

  2. 02

    Randomization

  3. 03

    Semi-Procedural Workflow

  4. 04

    Volumetric Shaders

5: Modular Setup keyboard_arrow_down
  1. 01

    Parametrization

  2. 02

    Nodegroups

6: Automation keyboard_arrow_down
  1. 01

    Drivers

  2. 02

    Animation

Workflow Examples keyboard_arrow_down
  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 keyboard_arrow_down
  1. insert_drive_file

    Example Scene

    visibility_off
  2. insert_drive_file

    Example Scene - Simplified

    visibility_off
  3. insert_drive_file

    Visualization (Chapter 1-4): Value Graph

    visibility_off
  4. insert_drive_file

    Visualization (Chapter 2-5): Space Origami

    visibility_off
  5. insert_drive_file

    Example Shader (Chapter 3-1): Rock

    visibility_off
  6. insert_drive_file

    Example Shader (Chapter 4-1): Dilapidated Cube Scene

    visibility_off
  7. insert_drive_file

    Example Shader (Chapter 4-3): Image Texture De-Tiling

    visibility_off
  8. insert_drive_file

    Example Shader (Chapter 4-3): Semi-Procedural Fishbones Boards

    visibility_off
  9. insert_drive_file

    Example Shader (Chapter 4-4): Procedural Volumetric Clouds

    visibility_off

Course

Procedural Shading: Fundamentals and Beyond
Introduction keyboard_arrow_down
  1. 01

    Introduction

    Free
  2. 02

    Definition

  3. 03

    Content Overview

  4. 04

    The Shader Editor

1: Fundamentals keyboard_arrow_down
  1. 01

    Colors, Values & Vectors

  2. 02

    Vectors and Pixels

  3. 03

    Coordinate Types

  4. 04

    Value Control

2: Procedural Textures keyboard_arrow_down
  1. 01

    Noise Textures

  2. 02

    Shape Control

  3. 03

    Repetition

  4. 04

    Texture Composition

  5. 05

    Space Manipulation

3: Shading Principles keyboard_arrow_down
  1. 01

    PBR

  2. 02

    Geometric Dependency - Context Sensitivity

  3. 03

    Generating PBR Maps

4: Shader Composition keyboard_arrow_down
  1. 01

    Blending & Masking

  2. 02

    Randomization

  3. 03

    Semi-Procedural Workflow

  4. 04

    Volumetric Shaders

5: Modular Setup keyboard_arrow_down
  1. 01

    Parametrization

  2. 02

    Nodegroups

6: Automation keyboard_arrow_down
  1. 01

    Drivers

  2. 02

    Animation

Workflow Examples keyboard_arrow_down
  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 keyboard_arrow_down
  1. insert_drive_file

    Example Scene

  2. insert_drive_file

    Example Scene - Simplified

    Free
  3. insert_drive_file

    Visualization (Chapter 1-4): Value Graph

  4. insert_drive_file

    Visualization (Chapter 2-5): Space Origami

  5. insert_drive_file

    Example Shader (Chapter 3-1): Rock

  6. insert_drive_file

    Example Shader (Chapter 4-1): Dilapidated Cube Scene

  7. insert_drive_file

    Example Shader (Chapter 4-3): Image Texture De-Tiling

  8. insert_drive_file

    Example Shader (Chapter 4-3): Semi-Procedural Fishbones Boards

  9. insert_drive_file

    Example Shader (Chapter 4-4): Procedural Volumetric Clouds

You need to login to view this content

You can join Blender Studio for €11.50/month and get access to all of our training & film content instantly!

Login Join Blender Studio

4: Shader Composition

Randomization

7th August 2020

info License: CC-BY
flag Report Problem

Published by

Simon Thommes

10 Comments

Join to comment publicly.

victor p

26th October 2020 - 11:41

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

26th October 2020 - 12:27

*@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

26th October 2020 - 12:34

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

Stylianos Andreolas

2nd March 2022 - 23:22

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

fu233

22nd May 2022 - 12:19

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

22nd May 2022 - 17:57

@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.

Gary Brimer

3rd July 2022 - 20:53

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

4th July 2022 - 11:51

@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

27th July 2022 - 03:28

@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

27th July 2022 - 10:37

@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

Blender Studio

The Creators Who Share.

Facebook Logo Twitter Logo YouTube Logo
  • Films
  • Blog
  • Training
Pipeline and Tools
  • Cloud Rig
  • Blender Kitsu
  • Contact Sheet Add-on
  • Blender Purge
  • Blender Cloud Services
Characters
  • Einar
  • Security Bot
  • Huginn
  • Pack Bot
Studio
  • Terms & Conditions
  • Privacy Policy
  • Contact
  • Remixing Music
  • Blender.org
Loading...