1
$\begingroup$

I'm looking for a way to rotate individual instances in GN with a collection of multiple objects and access each instance to have more control over rotations while maintaining the procedural dimension of the geometry nodes.

I use a single mesh and place the instances on each point. I can access individual rotations in Edit Mode when I add a Position node, but it doesn't seem possible to do this with Normal node. Strange.

Then I tested it with splines and the Normal node works with 2 points, but not with just one point. That means I need 2 points if I want to manage the rotation with a spline.

My goal is to manage assets with only one point and give each single instance a specific rotation. We can do that with a collection instance, but we have no power over geometry nodes.

enter image description here enter image description here enter image description here enter image description here


I'm curious to know if you have any idea about what happenings in geometry nodes when I delete some instances some other change also.

In this example, I deleted a few instances without changing the others. This is exactly what I wanted. However, when I delete just one instance, a few others change.

enter image description here

$\endgroup$
3
  • $\begingroup$ I'm afraid you're mixing a few things here: a vector (Position and Normal) consists of three values, and you're combining all three values into a single float value here, which you're using as a rotation on the Z axis? That can't work like that, unfortunately. Please be so kind and share your blend file with us (blend-exchange.com), so that we can take a closer look and any answer is not based on guesswork. Thank you! $\endgroup$
    – quellenform
    May 13, 2023 at 13:05
  • $\begingroup$ @quellenform Thank you for answering me I put my blend file as an attach file. My gaol is to manage assets with one point and give a specific rotation on each individual instances. like we can do that with collection instance but we dont have a power of geometry nodes. $\endgroup$
    – Pacpak P
    May 14, 2023 at 13:08
  • $\begingroup$ I'm afraid there's been another misunderstanding here: A point within a geometry has no "rotation" and thus has no normal as long as it is not part of a mesh or at least connected to another point/edge/face. However, a single object has transformation properties that you could use. For example, you could put multiple Empties into a collection, but that would be multiple objects again. Would that be a solution? $\endgroup$
    – quellenform
    May 14, 2023 at 13:36

2 Answers 2

1
$\begingroup$

If you really want to use a single object to affect the rotation of instances you create with Geometry Nodes, then unfortunately single/isolated points won't help you.

A point has no transformation properties like rotation or scaling. A single point that is not part of a mesh has only a position value.

The normals of a point in the case of a mesh result from the way individual points are connected to each other.

Therefore, in the case of curves, you also get a value for the normals, because as soon as two points are connected, a direction can be generated in some form.

But you can solve the task by putting objects into a collection that you can rotate individually, and then instantiate the houses at their position.

When instantiating the houses, you can then transfer the rotation of the objects to achieve the desired result.

Something like this:

enter image description here

Here I simply packed several Empties into a Collection, rotated them manually and in Geometry Nodes I read this rotation with the Node Instance Rotation and transfer it when instantiating the houses.


(Blender 3.4+)

$\endgroup$
1
  • $\begingroup$ Thanks a lot. I will experiment that technique. $\endgroup$
    – Pacpak P
    May 14, 2023 at 20:28
1
$\begingroup$

Ok, I found another way to solve the problem.

I have separated all assets into individual instances within different groups. So, when I need to delete a few instances of a certain type, I dont mess up other instances.

I wanted to distribute the instances randomly each time I duplicate an empty and if needed (delete it), without changing the instance's index. However, if you find a simpler or easier way to do it, I'm interested to know.

Thank you.

enter image description here

$\endgroup$

You must log in to answer this question.

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