3
$\begingroup$

I'm trying to reproduce the proportionally scaling inward and outward (Scale - Shift z) or (S - Shift+Z) but using geometry nodes.

See image below of what I'm trying to get it to do.

img1

I tried this Scaling only the selected vertex group in geometry nodes

But it doesn't seem to work in this case how can I fix this?

img2

Pic of Gorgious suggestion:

img3

Attached blend file below

$\endgroup$
2
  • $\begingroup$ You need to switch the Scale elements from Uniform to Axes and set to Z axis to 0 $\endgroup$
    – Gorgious
    Feb 8 at 16:22
  • $\begingroup$ @Gorgious that didn't work I'll post a pic of what that does and post that in the question. $\endgroup$
    – Rick T
    Feb 8 at 16:24

1 Answer 1

3
$\begingroup$

Since Transform Geometry doesn't have a Selection socket, we need to use the Scale Elements node in Single Axis mode, as @Gorgious suggested. However, simply making the Z axis $0$ would result in a single direction of $(1,1,0)$ whereas we want to scale on two axes—$x(1,0,0)$ and $y(0,1,0)$—so we need to use two Scale Elements operations one after another for each of them:

enter image description here

By default, Scale Elements node scales each face or edge from their own individual 'origin's. To make them move together, we need to use a single Center as the operation origin—here I'm doing that by providing it with the selection's average position I get from an Attribute Statistic node.

As a side note you're perhaps already aware:

Why don't we use the three Named Attributes as a selection directly, and first make it go through a Capture Attribute instead?

Because, it seems, domain interpolation going from vertices (Point domain) to faces have some differences between the old vertex group system (which is a special kind of float+boolean attribute field) and the new generic attributes system in Geometry Nodes. Directly using the vertex groups as a selection gives you extraneous faces (faces those vertices belong to) you don't want in your scaling operation. Capturing the vertex groups as a boolean field in the Point domain forces Geometry Nodes to re-do the interpolation, this time without those extraneous faces in our selection:

enter image description here

$\endgroup$
1
  • $\begingroup$ Great! Explanation!!! $\endgroup$
    – Rick T
    Feb 8 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.