2
$\begingroup$

I want to split exact Edges on mesh using Vertex Group I think I need some how use Edge of Vertecies node, but I don't know how

enter image description here

$\endgroup$

1 Answer 1

5
$\begingroup$

A vertex group is data of two important properties:

  • float type (a single number, stored as float32
  • Vertex domain - meaning one float number is stored for each vertex.

therefore your Group Input type is not exactly compatible: the type boolean you've set on it, doesn't match the type of the data. It is compatible in the sense that Blender makes an automatic translation from float to boolean. The translation is very simple:

  • if the number is $0$ (both $-0$ and $+0$), it translates to FALSE.
  • for any other number it translates to TRUE.

Another problem is that you access this data from the Split Edges node, which operates on Edge domain. Here the translation (a.k.a. interpolation) happens by taking the data for both vertices of an edge, adding them up and dividing by two (an average of vertices). Now consider what happens in those 3 cases:

  • Both verts of an edge have weights $=1$. The interpolation from vertex to edge domain makes it ${1+1 \over 2} = 1 = $ TRUE. The edge is selected and that's what you want.
  • One vert of an edge has a weight $=1$, and another has a weight $=0$. The interpolation: ${1+0 \over 2} = 0.5 = $ TRUE. The edge is selected, but you don't want it.
  • Both verts have weights $=0$, the interpolation being ${0+0 \over 2} = 0 = $ FALSE. The edge is not selected, which is desired.

Considering how the calculated weight of the edge can be either $0$, $0.5$ or $1$, all you need to do is to manually convert it to a boolean, by separating the two first from the last: greater than $0.5$ (or any higher number as long as it's below $1$) should work:

$\endgroup$
1
  • 1
    $\begingroup$ Great answer by Markus! Alternatively you can use Math Floor node or even you don't need to use any additional node at all - just set your Vertex Group Input to be of type Integer (basically does the Floor operation - works for weight values between 0.0 and 1.0) $\endgroup$ Oct 23, 2023 at 18:58

You must log in to answer this question.

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