Geometry Nodes

Hi friends.

I stumbled across this problem i am not able to solve. In my example, i want to instantiate line curves on top of another line curve. Then i join these lines into a skeleton which i then use to create a mesh.

Now i want to give each instance a single value, in this case the curve parameter of the first line. in other words: the position it was instanced on. I need this value to scale the curve radius down when it gets to the top.

I tried different things, like capturing and transferring, but the data doesn’t get transferred.

Can somebody give me a hint?

Hi, Blenderellas,
i’m stuck again.
I finally start to understand how to use capture attribute node, but the signal i worked out so painfully vanishes when i enable the two remesh modifiers between GN tree 1 and 2.
I have a boolean object that cuts a street off my bridge object. The bottom side of that boolean object is offset in order to get cart ruts after the boolean operation. I transfer the attribute (the cart rut mask) from the boolean- to the bridge-object. Until here all is fine. But how do i make the float field persistent, so it survives the activation of the remesh modifiers?
This is what i want - moss where the ruts are (achieved with a non-procedural hack, involving two identical color ramps, one for displacement, one for shading):


This is what i get - no moss where the ruts are, only at the mortar:

It works when the remesh modifiers are off ( note the 2 white stripes along the bridge):

But with the modifiers activated:

Please help :slight_smile:

1 Like

at the moment, one of the most common requests from developers is the ability to inherit the attributes of an instantiation object, for example, indexes …

  • you should capture the attribute before instantiating so that it can be used (in theory)

I have a suspicion that the easiest way would be to transfer attributes using the transfer attribute
them and try to use not remesh, but the volume of dots, but I’m not sure if this fits

Here is one way of doing it

1 Like

Hi, there is no support for transferring attributes from curves right now (it works only by index).

@Grinsegold remesh modifier destroys attributes and other data layers. You could make a separate remeshed object and transfer attributes from the original, though. I think that would work.

1 Like

Thank you. I dont really understand it, but it seems to work. Btw… aren’t you capturing the same attribute 2 times?

It’s me again :smiley:
I’ve tried to replicate your setup and its very close to what i need. But sadly i won’t work on instances other than 90 degrees. Wich seems logical, because the transfer attribute tries to get the closest parameter possible and this is not working on steeper angles. I really need a single value per instace (the value of the instanced origin).
If transfering information to point instances is not possible, then i sadly hit a roadblock here.

Replying to myself, because i found a workaround for my situation. I am using the attribute statistic to remap the spline index to a 0-1 range. Anyways… inherting the attribute from the instancer object would be more elegant. Thanks for everybodys help!

2 Likes

Hey I’m new to using fields and I’m in the process of making a procedurally generated building. I want to rotate points without changing underlying geometry, and without instancing again as used to be possible with the old point rotate node. How would this best be possible? see 10:10 of this tutorial

I didn’t watch the tutorial but I looked at the file you posted:
https://developer.blender.org/T93111#1255572
and I rebuilt it in a less troublesome way:
geometrynodespractice4 modified.blend.txt (1.2 MB)
Just delete the txt at the end because this forum does not support *.blend files

It’s my birthday and this is an amazing gift. Thank you so much

1 Like

Dear Blender devs, first many thanks for the great work and effort you put in the development and evolution of geometry nodes.
I have a small question: I am encountering a massive performance drop when pluging in the boolean node, even when working on a simple scene. Why is that? Is there a way to circumvent this? Others have talked about this issue before, for example in this youtube video you can see it at about 8 Minutes: https://youtu.be/sw8oHl0r4UQ?t=480
:slightly_smiling_face:

1 Like

It is because devs do not want to include fast boolean solver availalble in the modifier.

Is there a way to circumvent this?

Include fast boolean solver.

2 Likes

https://developer.blender.org/T93259

What does this node bring ? by definition nodes allow for duplication of data through branching so this seems redudant at first glance, I am very curious what I am missing

If you look at the example, you can do the equivalent of the array modifier with this.

1 Like

Oh, I see, so it does a sort of chained transform… and isn’t it the kind of thing we would get for free with loops ?

Probably indeed, in other applications you have both as well, but it seems the loop node has not the best performance, but I don’t know if that would be the case in Blender.

1 Like

The very first thing that I see in the example is the replacement of the instantiated duplication of the grid, in which so far the index cannot be obtained without deception

This node would be super useful for the kind of work I do with geometry nodes. I already have a hacky way of duplicating by branching as you can see in my previous post where I’m using the ID to store the duplicate index.

My node group for duplication normally looks like this!

This is for only making up to 15 copies of the same geometry with unique indices. Imagine the horror when I need to make up to 200 copies :cold_face:

2 Likes