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

Geometry Nodes from Scratch
feed Course Overview
Basics keyboard_arrow_down
  1. 01

    Theory - Basics

    Free
  2. 02

    Example - Rock Generator

Data Structure keyboard_arrow_down
  1. 01

    Theory - Data Structure

  2. 02

    Example - Simple Rock Scattering

Fields keyboard_arrow_down
  1. 01

    Theory - Fields

  2. 02

    Example - Advanced Rock Scattering

  3. 03

    Example - Tree Generator

Attribute Propagation keyboard_arrow_down
  1. 01

    Theory - Attribute Propagation

  2. 02

    Example - Grass Tuft Generator

Files keyboard_arrow_down
  1. insert_drive_file

    Low Poly Assets

    visibility_off
  2. insert_drive_file

    Low Poly Example Scene

    visibility_off
  3. insert_drive_file

    Array Tools

    visibility_off
  4. insert_drive_file

    Doodle Cloud

    visibility_off
  5. insert_drive_file

    Spaceship Generator

    visibility_off
  6. insert_drive_file

    Geometry Components Demo

    visibility_off

Course

Geometry Nodes from Scratch
Basics keyboard_arrow_down
  1. 01

    Theory - Basics

    Free
  2. 02

    Example - Rock Generator

Data Structure keyboard_arrow_down
  1. 01

    Theory - Data Structure

  2. 02

    Example - Simple Rock Scattering

Fields keyboard_arrow_down
  1. 01

    Theory - Fields

  2. 02

    Example - Advanced Rock Scattering

  3. 03

    Example - Tree Generator

Attribute Propagation keyboard_arrow_down
  1. 01

    Theory - Attribute Propagation

  2. 02

    Example - Grass Tuft Generator

Files keyboard_arrow_down
  1. insert_drive_file

    Low Poly Assets

  2. insert_drive_file

    Low Poly Example Scene

  3. insert_drive_file

    Array Tools

    Free
  4. insert_drive_file

    Doodle Cloud

    Free
  5. insert_drive_file

    Spaceship Generator

    Free
  6. insert_drive_file

    Geometry Components Demo

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

Data Structure

Example - Simple Rock Scattering

16th May 2022

info License: CC-BY
flag Report Problem

Published by

Simon Thommes

Download the file created in this video here: simple_rocks_scattering.file.blend

34 Comments

Join to comment publicly.

Fatih Pehlevan

23rd May 2022 - 21:34

Wow Simon! Given the fact that you made this example digestible all the way through is something to appreciate. This is the best tutorial I've seen on geometry nodes so far. Really god job. Bravo!

Lucas Long

14th June 2022 - 23:09

Thank you for making these tutorials! I was struggling a bit with the fundamentals of Geo Nodes, but I feel like I'm starting to understand more now thanks to your tutorials.

Paul Spooner

22nd May 2022 - 05:22

I downloaded the example file, but it seems to come up as the Blender default scene. Do I need a special version of Blender? I'm running 3.1.2 right now.

Simon Thommes

22nd May 2022 - 18:03

@Paul Spooner Blender 3.1.2 is also what I have been using for the files of this course. For me the downloaded file works just fine in that version. I re-uploaded the file to be sure. Right now I don't see areason why it would behave like that for you. Can you try again?And do you get any error messages from Blender?

Paul Spooner

23rd May 2022 - 22:49

@Simon Thommes The problem was on my Linux box. Just opened it in 3.0.0 on Win10 and it worked fine. Clean installed 3.1.2 and that worked too. Guess the problem is with my Linux system, or the download didn't finish. Will take a look this afternoon.

Paul Spooner

24th May 2022 - 01:34

@Paul Spooner Turns out the download on my Linux box was 110 Bytes, so looks like that was the problem. I just figured you had a super optimized save file! Downloaded the full 1.8 MB and it worked fine. Thanks!

Nicholas Cliffe

27th May 2022 - 18:11

Oh my gosh.. when you named the node tree rock scattering twice I had to rewind so many times because I thought I was missing something! lol so funny.. Great video.

Simon Thommes

27th May 2022 - 20:22

@Nicholas Cliffe Oh, I must have messed that up in editing, my bad

claudio Silberman

31st May 2022 - 17:09

Thanks Simon for the course, is there any specific reason why did you separate the terrain deformation from the rock scattering into two geometry nodes?

Simon Thommes

1st June 2022 - 11:30

@claudio Silberman It's good practice to separate logical steps that have value on their own into individual node trees. That means you can use them in isolation on other objects and while working you can disable/exchange them easily without having to shuffle nodes around.

claudio Silberman

1st June 2022 - 15:33

@Simon Thommes  thanks, and I also saw in the next chapter that  you use multiple set position and by having the scattering in a different node it's always on the surface

Eimantas Vaičiūnas

27th July 2022 - 11:16

I am using Blender 3.2.1 and it seems that it doesn't have the "Scale" Geometry Node anymore. What I did instead was append "Math" node (with "Multiply" operation) followed by another "Combine XYZ" node. My setup was as following: "Float Curve" -> "Combine XYZ" -> "Math" -> "Combine XYZ" -> "Set Position".

Eimantas Vaičiūnas

27th July 2022 - 11:17

And then "Math" node's value attribute allowed me to scale the "hills" on the plane just like in the video.

Simon Thommes

27th July 2022 - 16:56

@Eimantas Vaičiūnas The Scale node is actually just a Vector Math node with its mode set to Scale. It doesn't show up as such in the general node search or the add menu, but when you drag and search from a node link (like I do in the video) the search is more granular, so it will also suggest different modes and in-/outputs of a node.

Eimantas Vaičiūnas

28th July 2022 - 08:43

@Simon Thommes This is a neat trick. Thanks! TIL :)

Cap Amr Karam

19th October 2022 - 23:00

Really WOW 😍

Pierre Schiller

11th November 2022 - 10:40

Quick question: On (-18:05) - Why wasn't it subdivided using GN?

Simon Thommes

11th November 2022 - 11:39

@David Rivera Not sure what you mean. Are you sure that's the right timestamp?

Pierre Schiller

11th November 2022 - 12:55

@Simon Thommes it's on 1:11. When you create the mesh grid.

Simon Thommes

11th November 2022 - 13:32

@David Rivera Ah I see, yes.Part of this setup is that I want to be able to manually draw in a density mask. If you do the subdivision procedurally, that means that the original data that you can actually manually adjust  (edit mode etc.), doesn't change. So the resolution of the plane to paint on would be way to low to paint a usable mask.

Pierre Schiller

11th November 2022 - 14:19

@Simon Thommes Great. Thank you for the reply. In regards of my other question: How can the user see how "fast" the GN was computed (processed) in time?

Pierre Schiller

11th November 2022 - 11:05

Also, I'm very interested to know how can I measure the computational speed with one node setup to another. Where can I see how much computational time a node tree used (the full created geometry node)?

Simon Thommes

14th November 2022 - 11:17

@David Rivera You have ti enable the Timings overlay in the overlay settings of the node editor. The time that is shown for the group output is an approximation of the total execution time of the node-tree.

Joseph Naughton

14th November 2022 - 12:00

Great tutorial.

Joseph Naughton

14th November 2022 - 12:02

In the end, my large rocks were intersecting with my medium/small rocks in some places. Is this a consequence of the way you set up the node tree? If so, do you recommend a way of having them not intersect?

Simon Thommes

14th November 2022 - 15:48

@Joseph Naughton The next video in this series should address this issue, it's taking the same base setup and adding on top of it for a slightly more advanced workflow. You can use the proximity node to remove points that are too close to other points. Just keep in mind that the scale randomization messes with the radius as well.

Joseph Naughton

14th November 2022 - 17:04

@Simon Thommes  I just watched then realised it was addressed there. Thank you!!

Ingmar Franz

2nd January 2023 - 18:23

I've tried the object scattering with vertex painting instead of weight painting using pure red (1,0,0), green (0,1,0) and blue (0,0,1). With a math node set to "Greater than", the different color channels are tested whether their values are bigger than 0. However, I discovered that I needed actually a "Threshold" value slightly bigger than 0 (I used 0.0001, just below the "Spreadsheet's" precision) because my objects for the blue painted areas got also displayed in red and green areas with a "Threshold" value of exactly 0 for testing the blue color channel. File can be found here: https://www.dropbox.com/s/zvxnjuf23sd6mbq/Geometry-Nodes_Instancing_with_Vertex-Colors_1Jan2023_7.blend?dl=0

Simon Thommes

3rd January 2023 - 13:38

@Ingmar Franz I think this has to do with the data type of the color. When I convert the color attribute back to Byte Color which is the default for vertex colors  it seems to work fine without increasing the threshold.

Ingmar Franz

3rd January 2023 - 18:07

@Simon Thommes Thanks a lot for your answer! So, this surprising result with the "Math Node" is probably a calculation artifact. But how can I know when to use which type of precision. I just found this in the Blender 3.5 Manual (https://docs.blender.org/manual/en/3.5/modeling/meshes/properties/object_data.html#creating-a-new-color-attribute):%C2%A0                                       Data Type

The data type to represent colors internally.

Color

RGBA color with floating-point precision.

Byte Color

RGBA color with 8-bit precision.

Simon Thommes

4th January 2023 - 13:46

@Ingmar Franz What that means is how much data is stored for each channel of the color. 32bit floating point is 4 times as much data as the byte color (8bit). So you are using up a lot more data but get higher precision. In most cases when you are painting a color map byte color will usually be enough, but when you are working with data where you need accuracy, like normal or position vectors for example. It is better to opt for 32bit.

But regardless of that the issue that you identified might actually be a bug. I'm a bit surprised that this happens, as in theory true 0 should be possible with both types of color and the channels should be independent of each other. My guess is that this is an issue with vertex painting that only manifests itself with the higher precision of 32bit color.

It would be very useful if you could create a bug report via Help - Report a Bug with the file you prepared and describing the issue!

Ingmar Franz

4th January 2023 - 22:01

@Simon Thommes Thanks a lot for the explanations. I've created a bug report here: https://developer.blender.org/T103657%C2%A0 PS: I've just realized that creating a bug report from inside Blender automatically enters your system informations. But why doing it the easy way if it can be also done complicated (as I did before) 😉😁.

Simon Thommes

5th January 2023 - 15:49

@Ingmar Franz Thanks for making the report! Yes, that's why that is the way I recommend people to do it. Another tip about that: You can also upload images, videos and files simply with drag'n drop into the text field. Working at the Blender Studio I've made several dozens of reports by now :D

Ingmar Franz

5th January 2023 - 18:11

@Simon Thommes Thank you, that's another good tip! My free Dropbox account is just 200 MB from it's maximum limit 😉.

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