3
$\begingroup$

I have points generated on a grid. I would like to arbitrary exclude some points (using their indices) from the point cloud.

For example, let's say I want to change their radius.

enter image description here

Is it possible to make calculations (join, exclude, intersect, etc...) on Geometry Nodes selections ?

Thanks !

$\endgroup$
1
  • $\begingroup$ I suggest you read some material on the subject of boolean operations or boolean maths $\endgroup$
    – Gorgious
    Apr 14, 2022 at 5:49

3 Answers 3

3
$\begingroup$

You are looking for a cascading or. You'll need 3 or Boolean nodes:

3 "or" Boolean nodes

but you can't use the Boolean equal nodes. You have to use the Math Compare node instead. The Boolean equal node is trying to compare two Boolean values but you want to compare two integers.

So you need to change the four nodes on the left:

The entire node group, corrected

You'll also want a Boolean not between the last or and the Set node; since you want everything but the specific nodes:

Boolean not added to remove the specific nodes

Note: I used a Set Position node, but this group works fine with the Set Point radius

$\endgroup$
7
$\begingroup$

The task of making logical selections from a grid comes up quite a lot, and while it can be done case-by-case, it can get very repetitive. An 'Indexed Grid' group might make sense.

This group:

  • Constructs a 1D,(line) a 2D, or a 3D (with internal vertices and edges) grid.
  • Allows the number of divisions, and dimensions, to be set.
  • Indexes the vertices by their [division number] in X,Y, and Z, from 0 to Count-1
  • Returns whether the vertices are in the minimum or maximum planes in X,Y, and Z
  • Also captures vertex-neighbour counts, which can be quite useful for some selections

It starts by making grid of unit cubes, covered for the edge-cases where the grid is 1 or 2D:

enter image description here

..and then incorporates that into an 'Indexed Grid' group which scales it to dimension, having captured the indices, max/min, and neighbour-counts:

enter image description here

There's nothing too interesting here, that couldn't be done case-by case, but it does take some of the slog out of doing it every time, and might be easier to play with, making selections, than rebuilding every time.

For instance, to select the corner columns you illustrate, first select all the points which are Max OR Min, by adding, and then find the ones for which that is true for X AND Y, by multiplying, as here, or by using the Boolean Math > AND node

enter image description here

Here are some selections based on the number of neighbours:

enter image description here

.. and the indices can be passed out to shaders:

enter image description here

$\endgroup$
6
$\begingroup$

Select corner points of a grid with only one value (number of rows or columns)?

In any case, you must know (or find out) the number of rows/columns.

With this value you can separate the rows/columns that lie between the first and the last.

Then you need the index sequence of a row (from 0 to $n$ or the first and last point in your row). You do this with the Math Node and the mathematical operator Modulo.

With greater/less than you get the points between the first and last point of all rows.

If you now combine this selection with the previous one and filter out the points that are not present in either of these selections, you will get exactly the vertices of your grid.

enter image description here

And here is another interesting variant:

If you use Ping-Pong and use half the number of points as Scale, you also get useful numbers for a grid with which you only have to compare the number of points of a row:

enter image description here

$\endgroup$
1
  • $\begingroup$ Wonderful answer, thanks! I validated the other one because it fits my question better, but your explaination is very interesting. $\endgroup$
    – gordie
    Apr 23, 2022 at 18:10

You must log in to answer this question.

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