Geometry Nodes: Initial very basic list support

This includes a new list structure type and socket shape, a node
to create lists, a node to retrieve values from lists, and a node to
retrieve the length of lists. It also implements multi-function support
so that function nodes work on lists.

There are three nodes included in this PR.
- **List** Creates a list of elements with a given size. The values
  are computed with a field that can use the index as an input.
- **Get List Item** A field node that retrieves an element from a
  a list at a given index. The index input is dynamic, so if the input
  is a list, the output will be a list too.
- **List Length** Just gives the length of a list.

When a function node is used with multiple list inputs, the shorter
lists are repeated to extend it to the length of the longest.

The list nodes and structure type are hidden behind an experimental
feature until we can be sure they're useful for an actual use case.

Pull Request: https://projects.blender.org/blender/blender/pulls/140679
This commit is contained in:
Hans Goudey
2025-07-24 16:16:40 +02:00
committed by Hans Goudey
parent ba46217b51
commit 4f372d64d4
35 changed files with 978 additions and 6 deletions

View File

@@ -1051,6 +1051,7 @@ if(TEST_SRC_DIR_EXISTS)
grease_pencil
import
instance
list
repeat_zone
mesh_primitives
mesh