6

I want to displace the vertices of my object using a Displace modifier and a noise texture. However selecting Noise from the Procedural Type just adds noise that I have no controls over (can't scale, roughen, etc).

I find this to be very confusing as the other options have controls (Voronoi, Clouds, etc). Am I missing something?

How can I displace an object using Noise that I can control the parameters?

As you can see there are no procedural controls (only color options): enter image description here

Glen Candle
  • 1,740
  • 9
  • 23

2 Answers2

5

As @Gordon has very amply explained, this is because the Displace modifier is one of the bits of Blender that uses its legacy texture system, which, to say the least, is awkward, and confusing to users not yet aware of it. It has different nodes, a different interface to mapping, etc., and is much less flexible than shader-node equivalents.

IMO, nowadays, there's no reason not to use a GN modifier along these lines instead:

enter image description here

If you want to use the modifier with a vertex group, call it up as an attribute input to the modifier, and use the its values to manipulate the result in some way:

enter image description here

Above and below, it scales the displacement. You could, say, just plug it into the 'Selection' of the Set Position node (casting float to boolean) if you wanted an 0 or 1 selection.

enter image description here

Robin Betts
  • 76,260
  • 8
  • 77
  • 190
  • 2
    Maybe Map Range would have been a better demo of 1-node flexibility than Multiply Add .... – Robin Betts Oct 06 '22 at 09:06
  • 2
    I guess you're right ;) Apart from that, of course a shader version of displacement could also be used instead of the modifier. – Gordon Brinkmann Oct 06 '22 at 09:21
  • Thanks @GordonBrinkmann I love this solution. However, I have a vertex group that I want to displace, and I am not sure how to get a vertex group into geonodes. Is there a way to do this? Presumably I would connect this group to the Selection input under Set Position, but I don't see a vertex group input node. – Glen Candle Oct 06 '22 at 16:29
  • 1
    @glen_candle You can use a vertex group, (interpreted as a '0->1 float-attribute-on-points') as an input to a GN tree. See edit. – Robin Betts Oct 06 '22 at 17:01
  • @GordonBrinkmann Thank you for this massive leap in my understanding here! – Glen Candle Oct 06 '22 at 17:23
  • 1
    @glen_candle This is Robin's answer, not mine ;) – Gordon Brinkmann Oct 06 '22 at 19:23
  • 1
    @RobinBetts thank you for this answer (Sorry, I tagged the wrong person above!) – Glen Candle Oct 06 '22 at 22:59
4

There are no options because this is simply randomly generated noise. It is meant to give a random value for each pixel, each frame. It's like the White Noise Texture Node in the Shader Editor.

There is no need for options because when the function is "create a random value for each pixel and calculate it new on each frame", what options do you want to set?

If you are looking for Perlin noise, which is the noise you have in the Noise Texture Node in the Shader Editor, that is called Clouds in those legacy textures.

Read more about it in the Blender manual:

  1. Materials » Legacy Textures » Noise
  2. Materials » Legacy Textures » Clouds
  3. Shader Nodes » Texture » Noise Texture Node
  4. Shader Nodes » Texture » White Noise Texture Node
Gordon Brinkmann
  • 28,589
  • 1
  • 19
  • 49
  • Thanks Gordon, I really appreciate your answer. Since I am relatively new to Blender (came from C4D after 2.8) I am not too familiar with legacy stuff, nor why it still even exists if there are new systems in place. That said, I simply want to displace a specific group of faces on an object along their normals, but I want control over the shape of the noise. I think Clouds is what I'm looking for, thank you for your help! – Glen Candle Oct 06 '22 at 16:26