Maniphest T93259

Duplicate Geometry node
Closed, ResolvedTO DO

Assigned To
Johnny Matthews (guitargeek)
Authored By
Jacques Lucke (JacquesLucke)
Nov 21 2021, 10:54 AM
Tags
  • Geometry Nodes
Subscribers
Daniel Peres (artofdape)
Godwin Jimoh (Astronet)
HEYPictures (HEYPictures)
Iliya Katueshenock (Moder)
Jacques Lucke (JacquesLucke)
Johnny Matthews (guitargeek)
Paul Larson (GeorgiaPacific)
Valeri Barashkov (valera)
Tokens
"Party Time" token, awarded by blueprintrandom."Love" token, awarded by SimontheSorcerer."Like" token, awarded by Astronet.

Description

Note: We still need some artist feedback to see if the node would be useful enough.

The node copies part of a geometry a dynamic number of times. Different parts of the geometry can be copied different amounts of time.

Besides the sockets shown in the mockup, the node also has a mode/domain (all domains except Face Corner) dropdown.
The basic behavior is:

  1. Compute the amount for every selected element in the specified domain. ​
  2. Duplicate every element the computed number of times. If the amount for an element is 0, it is not included in the output.
  3. Propagate all existing attributes.
  4. If there is an id attribute on the input, create new stable ids for the output elements.
  5. Add a new anonymous attribute "Copy Index" that is an integer between 0 and amount - 1 on the selected domain.

Modes:

  • Point: The output is always a point cloud independent of the input geometry type.
  • Edge: The output is always a mesh that only contains disconnected edges.
  • Face: The output is always a mesh that only contains disconnected faces.
  • Spline: The output is always a curve that contains splines.
  • Instances: The output only contains instances.

3D Point Grid Example (also also possible to create a 3D grid when starting with a single point when the node is used 3 times):

Possible future enhancements:

  • Keep edges/faces linked when they have the same copy index (should be possible to enable and disable that with a boolean input).

Revisions and Commits

rB Blender
D13701

Event Timeline

Jacques Lucke (JacquesLucke) created this task.Nov 21 2021, 10:54 AM
Jacques Lucke (JacquesLucke) updated the task description.Nov 21 2021, 11:12 AM
Jacques Lucke (JacquesLucke) updated the task description.
Jacques Lucke (JacquesLucke) moved this task from Product Backlog to Community Tasks on the Geometry Nodes board.Nov 21 2021, 11:14 AM
Johnny Matthews (guitargeek) added a subscriber: Johnny Matthews (guitargeek).Nov 21 2021, 3:41 PM
HEYPictures (HEYPictures) added a subscriber: HEYPictures (HEYPictures).Nov 21 2021, 5:45 PM

Is it possible to have the whole offset in the node? Would be very useful like the array modifier.

Jacques Lucke (JacquesLucke) added a comment.Nov 21 2021, 7:01 PM

I think the offset should be applied afterwards. This way it's more clear how the Copy Index would be accessed. One can build an array modifier with this node as a node group.

Paul Larson (GeorgiaPacific) added a subscriber: Paul Larson (GeorgiaPacific).Nov 22 2021, 12:31 AM
Godwin Jimoh (Astronet) awarded a token.Nov 22 2021, 12:41 PM
Godwin Jimoh (Astronet) added a subscriber: Godwin Jimoh (Astronet).
Iliya Katueshenock (Moder) added a subscriber: Iliya Katueshenock (Moder).Dec 18 2021, 5:18 PM

Now I understand that this is the right thing. Now I use instances for duplication. However, due to their specifics, they are clearly spending more time than that.
If it will work faster than Instances on large quantities, then it will be preferable.
Automatic transfer of attributes is also a plus.

Johnny Matthews (guitargeek) mentioned this in D13701: Geometry Nodes: Duplicate Elements.Dec 31 2021, 11:32 PM
Jacques Lucke (JacquesLucke) moved this task from Community Tasks to In Progress on the Geometry Nodes board.Jan 3 2022, 3:25 PM
Johnny Matthews (guitargeek) claimed this task.Jan 5 2022, 7:34 AM
Hans Goudey (HooglyBoogly) added a revision: D13701: Geometry Nodes: Duplicate Elements.Jan 9 2022, 1:15 AM
Johnny Matthews (guitargeek) moved this task from In Progress to Waiting for Feedback/Review on the Geometry Nodes board.Jan 26 2022, 5:53 PM
Orestis Konstantinidis (SimontheSorcerer) awarded a token.Feb 2 2022, 6:44 PM
Jacques Lucke (JacquesLucke) moved this task from Waiting for Feedback/Review to In Progress on the Geometry Nodes board.Feb 14 2022, 2:08 PM
Iliya Katueshenock (Moder) added a comment.Feb 14 2022, 4:08 PM

It's finally a win

Valeri Barashkov (valera) added a subscriber: Valeri Barashkov (valera).Feb 14 2022, 4:33 PM

Can the copy index drive Seed value of a noise texture, which will be applied to the duplicated object? So that each duplicated object has a new variation.

Iliya Katueshenock (Moder) added a comment.Feb 14 2022, 5:16 PM
In T93259#1307652, @Valeri Barashkov (valera) wrote:

Can the copy index drive Seed value of a noise texture, which will be applied to the duplicated object? So that each duplicated object has a new variation.

This is the main idea

Jacques Lucke (JacquesLucke) moved this task from In Progress to Waiting for Feedback/Review on the Geometry Nodes board.Feb 21 2022, 2:00 PM
Johnny Matthews (guitargeek) added a commit: rB120f16fa1f1e: Geometry Nodes: Duplicate Elements Node.Feb 23 2022, 4:12 PM
Hans Goudey (HooglyBoogly) moved this task from Waiting for Feedback/Review to Done (waiting for product demo) on the Geometry Nodes board.Feb 23 2022, 10:09 PM
Jacob Merrill (blueprintrandom) awarded a token.Feb 24 2022, 1:33 AM
Jacques Lucke (JacquesLucke) closed this task as Resolved.Mar 22 2022, 2:38 PM
Daniel Peres (artofdape) added a subscriber: Daniel Peres (artofdape).May 7 2022, 11:38 PM
Daniel Peres (artofdape) added a comment.May 7 2022, 11:41 PM

Would it be possible for this to work with the new Named Attributes (custom attributes), so that they are copied over to the new duplicated data? This would open a lot of possibilities