Age | Commit message (Collapse) | Author |
|
|
|
|
|
Previously we had a lot merge conflicts since we always put the most
recently added node at the bottom. By sorting the list we will have
one fewer merge conflict when a node is added in most cases.
|
|
|
|
|
|
|
|
The id-property iterator referenced a PyObject pointer without
increasing it's user count - allowing for errors if the value
goes out of scope during iteration.
|
|
|
|
Looping over IDProperty keys or calling iteritems leaked memory.
Error in original Python idproperty support from
8768707610fbc1cea2bde069cdfd6d3f3e2fc522
|
|
The order was arbitrary, and rearranging the declarations
makes the class look less messy, and makes room for future comments.
|
|
The sections aren't helpful at the moment, but I will add more code
here soon that will benefit more from the visual separation.
|
|
Retrieving data from the component can be done in a separate function
to save some repetition.
|
|
Similar to how `GVArray_For_VArray` implements `materialize_impl` to
forward the work to its non-generic virtual array, we can do the same
thing for the mutable version, `GVMutableArray_For_VMutableArray`.
This commit should have no visible changes, since as far as I can tell
the only user of this class does not implement special materialize
methods anyway.
|
|
|
|
This enables the overlay for instanced geometry.
After this change, objects that are an instance of the current active
object (which are also being modified in the current active mode) won't
fade, which is different from the previous behavior.
Reviewed By: fclem
Maniphest Tasks: T82155
Differential Revision: https://developer.blender.org/D9362
|
|
|
|
When checking if the mesh has only one Face Set only the current active
component for expand needs to be checked. Otherwhise other components
that won't be modified by Expand that contain other IDs will be taken
into account, making the Face Set deletion go into an infinite loop.
Reviewed By: JacquesLucke
Maniphest Tasks: T88060
Differential Revision: https://developer.blender.org/D11169
|
|
This needs to be backported to 2.83.
|
|
We have the `I` menu for that. This is part of the old code.
|
|
Better avoid units in name.
|
|
|
|
Update the "current value" of the Shape Key blend amount when value is
not within the min/max range. New function `rna_ShapeKey_update_minmax`
used to update and clamp the current value.
Reviewed By: mano-wii, lichtwerk, #animation_rigging, sybren
Maniphest Tasks: T54339
Differential Revision: https://developer.blender.org/D11071
|
|
|
|
When a scene uses cryptomatte the viewport rendering would lead to a
memory leak. The reason was that all image renders (viewport+final)
activated cryptomatte. But is only used for final rendering.
This patch only activates cryptomatte when doing final rendering.
|
|
Was giving a warning:
```
BKE_spline.hh:293:35: warning: 'interpolate_to_evaluated_points' overrides a
member function but is not marked 'override' [-Winconsistent-missing-override]
```
|
|
|
|
expected
Mistake in {rBe48c4d73d378}.
Was using the vertex index as a lookup for the loop color (instead of
the loop index).
(Issue was not present in original D1429 btw).
Maniphest Tasks: T88145
Differential Revision: https://developer.blender.org/D11212
|
|
These variables and methods should make it easier to loop through buffers elements/pixels. They take into account single element buffers.
Single element buffers can be used for set operations to reduce memory usage.
Usage example: P2078
Reviewed By: #compositing, jbakker
Differential Revision: https://developer.blender.org/D11015
|
|
Clang-Tidy: bugprone-too-small-loop-variable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This allows extra options (in-front and stroke order) to be shown when adding line art kind of grease pencil object.
Reviewed by: Antonio Vazquez (antoniov)
Diff: https://developer.blender.org/D11130
|
|
The last point of the output was at the same location as the
first point of a cyclic spline. The fix is simple, just account for
the cyclic when choosing the sample edge length, and don't
hard code the last sample.
|
|
The spline `length` function assumed that the curve always had evaluated
edges. That is clearly false. This commit adds a check to `length` and a
special case for a single point in the curve resample node.
|
|
This commit uses two changes to improve the performance of the point
instance node.
**Prevent Reallocations**
At 64 bytes, the transform matrix for every instance is rather large,
so reallocating the vector as it grows can become a performance bottle-
neck. This commit reserves memory for the instances that will be added
to prevent unecessary reallocations as the instance vector grows.
In a test with 4 million instances of 3 objects in a collection, the
node was about 40% faster, from 370ms to 270ms for the node.
**Parallelization**
Currently the instances are added by appending to a vector. By changing
this slightly to fill indices instead, we can parallelize the operation
so that multiple threads can fill data at the same time. Tested on a
Ryzen 3700x, this reduced the runtime from the above 270ms to 44ms
average, bringing the total speedup to ~8x.
Note that displaying the instances in the viewport is still much slower
than the calculations in node, this change doesn't affect that.
|
|
|
|
|
|
Matching Object and Collection line art type objects.
|
|
This patch refactors the instance component to make use of the earlier
refactoring in rB4599cea15dcf. Now we don't have to build an array of
instance references the size of the point domain, and we can gather the
possible instances only once and use the same vector for all component
types. Generally the node should be a bit faster and use less memory.
The logic is moved around a bit, especially the hashing of the ID
attribute to pick from the instance list, but the result is unchanged.
Differential Revision: https://developer.blender.org/D11203
|
|
Those were mostly just left over from previous work on particle nodes.
They solved the problem of keeping a reference to an object over
multiple frames and in a cache. Currently, we do not have this problem
in geometry nodes, so we can also remove this layer of complexity
for now.
|
|
|
|
This was never used (since 2.25 at least).
|
|
|
|
|
|
Error in 0499dbc5c16fe6b276da81d65cade4f5da92a308
|
|
|