0
$\begingroup$

I define a region of a mesh via a vertex group, to which I add a displacement set-position node with a Voronoi texture. As can be seen, the displacement takes effect immediately, meaning at the first point the displacement has a 100% strength. How can I add a gradient so that the start of the vertex group 0% strength of the displacement is applied and the strength ergo the z-height of the displacement reaches 100% at a defined distance from the loop (blue grease pencil marked with 1), to gradually blend in the Voronoi texture

I tried proximity modifier node, but that didn't work out, I tried weight painting but even though there can be a gradient painted in, it does not take effect.

what I try to accomplish is an even transition between the 2 meshes one with a displacement which changes the z-height

enter image description here

$\endgroup$
2
  • $\begingroup$ you can smooth and optionally normalize the vertex group data in weight painting mode. Just look in the menu in that mode. $\endgroup$ Feb 10 at 15:34
  • $\begingroup$ true, but the set position node is not influenced by vertex weight it seams, any idea how to solve that? $\endgroup$
    – chubaka
    Feb 11 at 12:29

2 Answers 2

2
$\begingroup$

(Using Blender 3.6.5)

The following approach is computing the distance of painted points to the boundary edges of the painted region. The Z-displacement is then adjusted through a Map Range node. The weight intensity is not used.

1st edition

GN graph V1

Resources:

2nd edition

GN graph V2 1. By setting the first Separate Geometry node domain to Face and adding a Merge by Distance node after the Join Geometry node should restore connectivity between the two regions, painted and not painted.
2. A Float Curve node can be use to smooth the transition. The Map Range node in this configuration is mapping the width of the transition strip between 0 and 1. Then the Float Curve node is defining the Z-elevation across this strip.

Resources:

3rd edition

GN graph V2 1. A Voronoi Texture node is added to modulate the elevation.
2. The Width of the transition region is controlled through the Group Input node. Its smoothness is controlled by the Float Curve node.
3. The Height of the elevation is controlled through the Group Input node.

Resources:

$\endgroup$
6
  • $\begingroup$ big thank you for your effort, separate geometry introduces a disconnection between the surfaces, is it possible to create the proximity target edge without separating the mesh? since the transition between the 2 faces is not planar like in this example but are G3 and I cant rebuild it manually in blender to become Class-A again. Also now, we map it linearly, is there a way to pipe in an own transition curve into the map range? $\endgroup$
    – chubaka
    Feb 11 at 12:26
  • $\begingroup$ brilliant...the only thing where I cant wrap my head around is, how you define the distance of the transition zone, only as a value input in the map node to max? here should go the voronoi Z-Displacement max value I think, to map between 0 and max voronoi displacement? Also I cant really understand what`s happening at the 2nd separate geometry, we take our splitted out face and get rid of the subdivisions? $\endgroup$
    – chubaka
    Feb 11 at 19:57
  • $\begingroup$ 1) Could you explain what you are using the "Voronoi Texture" node for ? To make bumps ? 2) The 2nd "Separate Geometry" set in "Edge" domain is to collect only the boundary edges of the painted region. Such an edge is connected to only one face (i.e. "Face Count == 1"). These edges are input to the "Geometry Proximity" node as "Target" geometry. So the "Capture Attribute" node set in "Point" domain is computing the distance of the painted vertices to these boundary edges. $\endgroup$ Feb 11 at 21:12
  • $\begingroup$ yes voronoi to texture a part of the surface and the whole blending spiel to transition smoothly into the texture without having a sharp edge. to 2) i think i got it, its a way to selecting the outer most edge but wouldnt that mean, that the transition length is 0 since the the edge from the 1st and 2nd separate geometry node are the same? I guess it takes the length of that 1 face as transition length. So it should be possible to feed a 2nd vertex group(edge loop) some face distances away from the 1st separate geometry loop to define a transition zone length into the capture attribute... $\endgroup$
    – chubaka
    Feb 11 at 21:54
  • $\begingroup$ ... thus clearing the inputs into the map range for the voronoi z-displacement and having a parametric way to a) define the transition zone length as well as strength and curvature $\endgroup$
    – chubaka
    Feb 11 at 21:56
3
$\begingroup$

From comments:

the set position node is not influenced by vertex weight it seams, any idea how to solve that?

You're currently using the vertex group as an input to a selection, which is a Boolean type of variable-- it's either true or false, yes or no, 1 or 0. Any number you send to it that's larger than 0 gets cast to "True".

Because you've created your GN "selection" input by dragging a noodle from this Boolean, you've created a Boolean input, so even if you connect that input someplace else, you'll still be using Group.001, cast to a Boolean at the very beginning of your nodes.

To use a different kind of variable, we'll change the type of variable of the input on the sidebar, and rather than using it as a selection for a set position, we'll use it to mix between offsets sent to that set position:

enter image description here

Now, that selected, 0.2 weighted vertex is only getting displaced a fifth as much as the fully weighted vertices.

$\endgroup$
2
  • 1
    $\begingroup$ Using a vertex group as a boolean is a plague in the Geonodes world... $\endgroup$ Feb 11 at 15:44
  • $\begingroup$ @Nathan...great explanation, never thought or heard about that, but makes total sense and the most important thing, it works as described...very valuable. I will accept SteFLancien answer since the blending result is better, this has nothing to do with the above described approach but with vertex painting by itself, now that I see the results manually establishing a gradient is less controllable(at least for my skill level) than the accepted solution $\endgroup$
    – chubaka
    Feb 12 at 16:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .