Blender Git Loki

Blender Git "temp-geometry-nodes-instances-api-v2" branch commits.

Page: 2 / 2

February 6, 2021, 00:30 (GMT)
Correct transform of instances
February 6, 2021, 00:00 (GMT)
Merge branch 'master' into temp-geometry-nodes-instances-api-v2
February 5, 2021, 23:56 (GMT)
Add implicit make instances real operation for "write" nodes

Other nodes that create new geometry instead of modifying existing geometry
should read the geometry like the point distribute node does in this branch.
February 5, 2021, 17:39 (GMT)
Merge branch 'temp-geometry-nodes-instances-api-v2' of git.blender.org:blender into temp-geometry-nodes-instances-api-v2
February 5, 2021, 15:40 (GMT)
Geometry Nodes: Instances API, support in point distribute node

This patch changes the object info node to always output an instance.
Theoretically, this change should be invisible to the user, because
we plan to make instances real on demand. The benefit is improved
performance because we can avoiding copying the input geometry when
it's only needed for read operations.

To make this work, we need a proper API to enable recursive reading
of instanced geometry. This is essential, because we can even have
collection instances in the `InstancesComponent`, which have no
geometry of their own. And then any object in that collection could
also contain an instance with a reference to another collection, etc.
That might seem crazy, but it's essential for many more complicated
workflows like the tree sample file.

Another consideration is that currently, every single instance contains
a reference to its data. This is inefficient since most of the time
there are many locations and only a few sets of unique data. When we
add the ability to instance a geometry set directly, this will be
more important. So this patch adds a `GeometryInstanceGroup` to support
this future optimization.

Two APIs to the instances component are provided here. First is a
callback approach that executes a function for every "final" geometry
set. This can be used to optimize for many instances, to avoid heap
allocations for each instance.

The second API is one that returns a vector of `GeometryInstanceGroup`.
This may be less efficient when there are many instances, but it makes
more complicated operations like point distribution that need to iterate
over input geometry multiple times much simpler.

Even then, this patch makes the point distribute code much more
complicated. It may be possible to simplify it further.

The last TODO is support for making instances real on demand, which
I am currently working on. The change to the object info node can't
land without it. The transform spaces may be incorrect too.

Differential Revision: https://developer.blender.org/D10327
February 5, 2021, 15:13 (GMT)
Merge branch 'master' into temp-geometry-nodes-instances-api-v2
February 5, 2021, 03:26 (GMT)
Add comments
February 5, 2021, 03:20 (GMT)
Remove debugging code
February 5, 2021, 03:18 (GMT)
Geometry Nodes: Point distribute support for instances

This completes the work to implement instancing on instances.
The density attribute works, and attributes are interpolated to the
output like before.

The code is much more complicated than before, and harder to understand.
Some cleanup is likely possible to help, but to an extent it is unavoidable.
February 4, 2021, 05:56 (GMT)
Geometry Nodes: Better support instances in point instance node

This does the elimination by distance in a single step for all instances
instead of treating each input mesh separately.

This needs some cleanup, but the bigger TODO is that attribute interpolation
gets a fair amount more complex with this implementation. Needs more thought.
February 3, 2021, 23:51 (GMT)
WIP implementation, double vectors, sort of weird
February 3, 2021, 18:58 (GMT)
More progress converting the point distribute node to operations

I might not continue with this approach, it seems like building a
temporary vector of geometry components will be much simpler
February 3, 2021, 17:59 (GMT)
Merge branch 'master' into temp-geometry-nodes-instances-api
February 3, 2021, 05:27 (GMT)
WIP: Rewrite point distribute node to correctly support instances

This does not compile, and isn't close to finished.
February 3, 2021, 05:22 (GMT)
Add a second idea for the instances API
February 3, 2021, 04:16 (GMT)
Merge branch 'master' into temp-geometry-nodes-instances-api
February 2, 2021, 13:47 (GMT)
Merge branch 'master' into temp-geometry-nodes-instances-api
February 1, 2021, 23:18 (GMT)
Geometry Nodes: Support instances in the point instance node
February 1, 2021, 23:17 (GMT)
Geometry Nodes: Output instanced geometry from the object info node
February 1, 2021, 23:17 (GMT)
Geometry Nodes: First pass on instance geometry set API

I think a fair amount of this will change, but this API uses a callback on
each component of a geometry set and its instances recursively.

Example uses will come in a following commit.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021