Fix bone snapping failure by removing the Armature bounding box check.
That check would go over all the bones, compute the total bounding box,
just to avoid the remaining code (which goes over all the bones anyway).
Not sure why the code is causing these issues, but I'm guessing it's due
to getting the bounding box in the wrong space (could be a bug
introduced in 6212c3c374). Since this call doesn't look like it's an
actual optimization to me, I think it's better to remove it.
Pull Request: https://projects.blender.org/blender/blender/pulls/132602
The compositor crashes if a node inside a node group is connected to a
group input that have a different type and the node group is used
without a connection to that input. That's because the compositor code
assumes the type of the group input without implicit type conversion to
the expected type of the node. To fix this, handle implicit conversion
for unconnected sockets as well.
This patch adds support for using integer sockets in compositor nodes.
This involves updating the Result class, node tree compiler, implicit
conversion operation, multi-function procedure operation, shader
operation, and some operations that supports multiple types.
Shader operation internally treats integers as floats, doing conversion
to and from int when reading and writing. That's because the GPUMaterial
compiler doesn't support integers. This is also the same workaround used
by the shader system. Though the GPU module are eyeing adding support
for integers, so we will update the code once they do that.
Domain realization is not yet supported for integer types, but this is
an internal limitation so far, as we do not plan to add nodes that
outputs integers soon. We are not yet sure how realization should happen
with regards to interpolation and we do not have base functions to
sample integer images, that's why I decided to delay its implementation
when it is actually needed.
Pull Request: https://projects.blender.org/blender/blender/pulls/132599
Decimate used `is_quad_convex_v3` to check if faces should be converted
to quads, adjust the epsilon since small faces were being skipped.
Ref: !132342
The "Blender" menu contains seven items in "System / "Redraw Timer"
that are for troubleshooting and testing. Six of the items take far
less than a second, but one takes a long time. "Animation Play" times
how long it takes to play through your current animation ten times. But
there is no way to guess this and some users have run it accidentally
by finding it in menu search. It gives no feedback at all, and there
are no hints on how long it will take. Once it plays through your
animation once you might guess that it runs forever. This PR shows
the test name and where it is in its ten runs. On platforms that
support it this also shows an app progress bar (on the taskbar icon for
Windows).
Pull Request: https://projects.blender.org/blender/blender/pulls/132648
In a recent version of Blender, Cycles and EEVEE gained support for
true sphere lights.
This commit adds tests for these sphere lights inside of volumes.
Ref: blender/blender#123012
Ref: blender/blender-test-data!32
- Using a main function allows the scripts to be imported without
executing logic.
- Declaring `__all__` lets tools such as "vulture" detect unused code.
Accessing the internal extensions command would warn that the processes
stdout wasn't closed on completion. While it's harmless at the moment,
ensure it's closed using a context manager.
Rendering a scene with py-drivers would crash after dropping an
extension onto Blender's window then canceling before the update
completed.
This was caused by context.temp_override pushing arguments into the
context but failing to pop them in the case of an error - which would
happen when the popup was closed while the update ran.
ContextTempOverride objects were not freeing the reference to their
arguments when the context managers __exit__ didn't run.
This would happen if __enter__ failed with an unsupported configuration
or if object was created and not used.
Resolve by making ContextTempOverride a container type with GC support.
This also allows the ContextTempOverride to be reused since it's
arguments are now cleared when it's deallocated instead of __exit__.
When hovering over the "Editor Type" button it always shows Shift-F1 as
the shortcut no matter what the current Editor Type is. We already have
specific code for "SCREEN_OT_space_type_set_or_cycle" for the items on
the popup menu, but it doesn't handle the case of hovering the menu
itself. This adds just adds a line to handle this.
Pull Request: https://projects.blender.org/blender/blender/pulls/132612
- Pass large std::function by const ref
- Shift the mesh material assignment helpers inside main namespace
- Use MaterialFaceGroups type alias in more places
- Remove unused bmain argument from import_mesh_skel_bindings
Pull Request: https://projects.blender.org/blender/blender/pulls/132586
Nodes should have the same name in the Add Node menu as their actual
name, but the Spiral node is called "Curve Spiral". Since there is no
ambiguity with another primitive node called Spiral, it can be renamed
to that.
This also fixes an issue with translation, where the node could not be
translated since its name was never extracted to the translation
files.
Pull Request: https://projects.blender.org/blender/blender/pulls/122289
Some recently added versioning code incorrectly assumed that the
noise texture node would always have its storage struct allocated.
Just create the storage struct in versioning where necessary, to
avoid relying on defaults not changing in the future when the
struct is created as the node tree is initialized.
Pull Request: https://projects.blender.org/blender/blender/pulls/132555
The issue was that the propagation of referenced anonymous attributes treated
geometry outputs of the foreach zone as "normal". That means that every
anonymous attributes referenced by the input socket would also be referenced by
the output socket.
However, just like in the repeat zone, this so called "propagate relation" needs
some special behavior, because anonymous attributes references created inside a
zone have to remain inside that zone. Instead, the output node creates a new
anonymous attribute reference that is used outside of the zone.
Pull Request: https://projects.blender.org/blender/blender/pulls/132560
Symptoms were broken `keyframe_type` & `options` (e.g. falsely assuming
'NEEDED' option when this was not provided at all).
The parameter order was flipped (leading to false interpretations for
the enum (flag) values).
For historic reference: the `keyframe_type` was introduced in
570fbba3f3 (but in a way that would have broken the existing API),
that was tried to be corrected in 46aaa53998 (but that commit only
flipped the order in the parameter definitions, not in the actual
function `rna_FKeyframe_points_insert`).
So to resolve, correct the order in the function declaration.
Pull Request: https://projects.blender.org/blender/blender/pulls/132595
We were already flipping the minima & maxima the right way, but the
checkboxes for which axis gets limited to a min/max were not updated. So
when a max X actually gets a min X, those checkboxes should be set
accordingly (now done).
Pull Request: https://projects.blender.org/blender/blender/pulls/132265
The issue was that the range for the time offset operator
was so large, that the 0.1 increment seemingly had no effect.
The solution is to add functionality to the slider to specify the increment step.
Since the time offset operator deals in frames it made sense to snap to whole numbers.
Also fixes#132187
For that the increment step has been chosen to allow for 10 steps in the slider range.
Pull Request: https://projects.blender.org/blender/blender/pulls/132554
Only draw relationship lines between a constrained object/bone and its
target when there is actually a valid target. Previously Blender would
always draw a line, which would go to the world origin when the
constraint has no target. This was visually rather noisy and potentially
even misleading when there is actually an object at the origin.
Fixes#131477
Pull Request: https://projects.blender.org/blender/blender/pulls/132592