Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
Previously the `CustomData_add_layer` function always returned
the existing layer data when used for types that can only have one
layer. This made it work like an "ensure layer exists" function for those
types. That was used in various places to make code more concise.
0a7308a0f149 changed that to always "recreate" the layer even
when it existed. Maybe this is more logical for an "add layer" function,
but that's not clear, and it breaks a bunch of existing code that relied
on the current behavior. Rather than spending a bunch of time going
through uses of the CustomData API, this patch resets the behavior
to what it was before, but adds an assert and a comment to help
avoid memory leaks and other issues. We should focus on moving
to the attribute API instead.
Differential Revision: https://developer.blender.org/D16458
|
|
Code in `deg_object_hide_original` uses the dupli object type to decide
whether to hide the original object. The geometry component system
changed the dupli object generator types, which made this not work.
To maintain existing behavior, maintain a stack of non-geometry-nodes
generator types while building the dupli list, and assign that to the
dupli object instead.
I think this code is on its last legs. It can't handle too many more
hacky fixes like this, and should be replaced soon. Hopefully that is
possible by using a `bke::Instances` type instead. However, this
bug is bad enough that it's worth fixing like this.
Differential Revisions: https://developer.blender.org/D16460
|
|
|
|
|
|
(Previous attempt was accidentally 4 days outdated)
|
|
This random number is intended to be unique for every instance, however for
some cases with more than one level of nesting this was failing. This also
affected curves after they were refactored to use geometry sets.
For simple cases the random number is the same as before, however for more
complex nesting it will be different than before, changing the render result.
|
|
|
|
As part of rB3f91540cef7e, we already made `OB_MODE_SCULPT_CURVES` to be
allowed in `paint_curve_poll` (alongside `OB_MODE_ALL_PAINT`).
Now, to get the paintcurves transform systems to work with curves
sculptmode as well, we introduce this "additional case" in the
appropriate place in the transform system as well.
NOTE: as a next step, considering `OB_MODE_SCULPT_CURVES` to be
generally part of `OB_MODE_ALL_PAINT` is to be done (this might fix
another couple of bugs, but also has to be carefully checked in many
places, so this patch is just fixing this very specific case)
Fixes T102204.
Maniphest Tasks: T102204
Differential Revision: https://developer.blender.org/D16466
|
|
|
|
|
|
This was caused by rBc39eb09ae587e1d9. The optimization broke the case
when the socket is not in the provided node tree. Now there are two separate
functions, one that always does the slow check to see of the socket is really
in the node tree and a potentially much faster version when we are sure
that the socket is in the tree.
|
|
|
|
This special case was missing in rB52bd198153ede3c7131df.
|
|
|
|
The viewport cleans up old subdivision buffers right after drawing.
During rendering this was not done and when rendering many frames
this lead to memory issues.
This patch will also clear up the GPU Subdivision buffers after any
offscreen render or final render. There is already a mutex so this
is safe to be done from a non main thread.
Thanks to @kevindietrich to finding the root cause.
|
|
The `region_size[2]` was set to -1 but was never accessed.
|
|
Instead of CustomDataLayer, which exposes the internal implementation
more than necessary, and requires that the layer is always available,
which isn't always true.
|
|
The ED level function is used for more code paths now, and it has been
cleaned up. Handling of the active attribute is slightly improved too.
|
|
Implements an operator to convert color attributes in
available domains and types, as described in T97106.
Differential Revision: https://developer.blender.org/D15596
|
|
|
|
pbvh->leaf_limit needs to be at least 4 to split nodes
original face boundaries properly.
|
|
pbvh->leaf_limit needs to be at least 4 to split nodes
original face boundaries properly.
|
|
Reviewed by: Julian Kaspar & Joseph Eagar
Differential Revision: https://developer.blender.org/D16293
Ref D16293
|
|
|
|
The modifier needs a scene camera to work. Now
if the camera is not defined, there is a warning.
The optimal solution would be to use the `isDisabled` callback
but the callback function hasn't the scene parameter and to pass
this parameter is necessary to change a lot of things and now
we are focus in the next version of GPencil 3.0 and this change
not worth the work now.
The optimal solution will be implemented in the 3.0 refactor.
Related to T102375
Reviewed by: Pablo Vazquez, Matias Mendiola
|
|
The sculpt symmetrize operator's merge threshold now defaults
to 0.0005 instead of 0.001, which tends to be a bit too big for
metric scale.
Also changed its step and precision a bit to be more usable.
|
|
This is a minor naming update to make the box hide and show operators in sculpt mode follow current naming conventions.
Reviewed by: Joseph Eagar
Differential Revision: https://developer.blender.org/D16413
Ref D16413
|
|
With db40b62252e5 there have been various UI adjustments and improved renaming.
The Mask From Cavity menu operator didn't follow this new naming yet.
Reviewed By: Joseph Eagar
Differential Revision: https://developer.blender.org/D16409
Ref D16409
|
|
LLVM could kill the process during OSL PTX code generation, due
to generated symbols contained invalid characters in their name.
Those names are generated by Cycles and were not properly filtered:
- If the locale was set to something other than the minimal locale
(when Blender was built with WITH_INTERNATIONAL), pointers
may be printed with grouping characters, like commas or dots,
added to them.
- Material names from Blender may contain the full range of UTF8
characters.
This fixes those cases by forcing the locale used in the symbol name
generation to the minimal locale and using the material name hash
instead of the actual material name string.
|
|
|
|
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D16445
|
|
|
|
Perform an early output when the input is empty, avoiding division by
zero and attempt to run LM solver on an inf values.
|
|
|
|
|
|
|
|
|
|
|
|
The crash happened because the geometry nodes modifier is evaluated
before the node tree has been preprocessed. While there was a transitive
but non-flushing relation between these two depsgraph nodes.
However the relation between the modifier and the `ntree_output` depsgraph
node was ignored, because it had `DEPSOP_FLAG_NEEDS_UPDATE` *not* set
(which is actually correct, because not all node tree changes change its output).
Because this relation is ignored (e.g. in `calculate_pending_parents_for_node`)
the transitive relation is ignored as well.
The solution in this patch is to explicitly add this transitive non-flushing relation
to make sure the modifier only runs after the node tree has been preprocessed,
even when the node tree output has not changed. An alternative fix could be
to handle all links always but skip the execution of depsgraph nodes that are not
needed. This way all links are always taken into account. This solution would
require some deeper changes though and would be much more risky.
Also fixes T102402.
|
|
|
|
Related to T101533.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D16412
|
|
|
|
Some of the previous commits in Wayland related code added use
of this function, but did not update the dynamic loader. This
broke compilation of configurations which use dynamic loader
for Wayland (which is the official way oh how Blender is built).
|
|
|
|
|