Age | Commit message (Collapse) | Author |
|
Follow-up to rB13e17507c069, forgot to handle shapekeys...
|
|
Fix tests, and some issue when making an ID local.
There are probably a few more issues still though.
|
|
This also serves as a regression test for incorrect
curve length indexing.
|
|
|
|
|
|
This is to avoid using uninitialized data.
|
|
|
|
This was only becoming apparent with non-uniform curve point counts
and/or non-uniform segment lengths, but could lead to dramatic position
corruption due to reading uninitialized memory if the first curve is
shorter than others.
|
|
The function to rearrange channels only works for F-curves channels for now, adding the `FCURVESONLY` filter prevents the function to be called for grease pencil channels, thereby fixing the crash.
Reviewed by : sybren
Differential Revision: http://developer.blender.org/D15504
|
|
Massively use the new consistency check in namemap regression tests, and
fix an issue with library data tests revealed by those checks.
|
|
Add a util function to check that content of a given Main and the
namemaps in it are consistent.
Add some asserts calling this check after file read, and after some
override operations.
|
|
Liboverrides are doing some very low-level manipulation of IDs in apply
code, to reduce over-head of name and sorting handling.
This requires specific care to ensure thatr the new namemap runtime data
remains up-to-date and valid. Otherwise, names of existing IDs would be
missing from the map, which would later lead to having several different
IDs with the same name. Critical corruption in Blender ID management.
Reported by animators at the Blender studio.
Regression from rB7f8d05131a77.
|
|
A mistake in the 0dcee6a3866 which made specific driven visibility
to work, but did not properly handle actual time-based visibility.
The basic idea of the change is to preserve recalculation flags of
nodes which were tagged for update but were not evaluated due to
visibility constraints. In the file from the report this makes it
so tagging which is done first time ID is in the dependency graph
are handled when the ID actually becomes visible. This is what
solved the root of the problem from the report: there was missing
geometry update since it was "swallowed" by the evaluation during
the object being invisible. In other configurations this change
allows to handle pending geometry updates due to animated modifiers
be handled when object becomes visible without time change.
This change also solves visibility issue of the synchronization
component which also started to be handled badly since the
previous fix attempt. Basically, the needed exception in its
visibility handling did not happen and a regular logic was used
for it.
Tested with files from the T99733, T99976, and from the Heist
project.
Differential Revision: https://developer.blender.org/D15544
|
|
|
|
Reviewed By: Joseph Eagar
Differential Revision: D15547
Ref D15547
|
|
It was never added for the field on domain and field at index nodes.
They need special handling because they have many what should be
a multi-type socket declaration.
|
|
|
|
|
|
This patch adds a `mute` RNA property on `ActionGroup`s that allows them to be easily muted/unmuted from python.
This uses the existing `AGRP_MUTED` flag which was also accessible from the user interface.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D15329
|
|
Previously there was a special extraction process for "vertex colors"
that copied the color data to the GPU with a special format. Instead,
this patch replaces this with use of the generic attribute extraction.
This reduces the number of code paths, allowing easier optimization
in the future.
To make it possible to use the generic extraction system for attributes
but also assign aliases for use by shaders, some changes are necessary.
First, the GPU material attribute can now store whether it actually refers
to the default color attribute, rather than a specific name. This replaces
the hack to use `CD_MCOL` in the color attribute shader node. Second,
the extraction code checks the names against the default and active
names and assigns aliases if the request corresponds to a special active
attribute. Finally, support for byte color attributes was added to the
generic attribute extraction.
Differential Revision: https://developer.blender.org/D15205
|
|
|
|
Changing the instance offset moves the entire "collection geometry".
So other features that depend on the geometry should be reevaluated.
|
|
|
|
Changing the value doesn't accomplish anything, since the retrieved
value would be the same for every index then. So it's best to hide it
to make the node clearer.
|
|
|
|
This improves readability in some cases (e.g. in T99373).
|
|
The Graph, Driver, and Dopesheet's (and sub modes) properties panel
(N-Panel) are now open by default. This includes the editors in the
default Animation workspace.
Note that, because the Timeline is implemented as a special mode of the
Dopesheet, switching between Timeline and Dopesheet will *not* change
the visibility of the properties panel.
Maniphest Tasks: T97980
Differential Revision: https://developer.blender.org/D14910
|
|
`parallel_invoke` allows executing functions on separate threads.
However, creating tasks in tbb has a measurable amount of overhead.
Therefore, it can be benefitial to disable parallelization when
the amount of work done per function is small.
See D15539 for some benchmark results.
Differential Revision: https://developer.blender.org/D15539
|
|
The handles were not updated after changing the settings.
This is a partial fix of T99984
|
|
The stroke points were changed but the bounding box calculation was not done and this produced a problem in any bounding box check done by different tools.
|
|
|
|
|
|
|
|
Any script that raised a SystemExit called by --python, --python-expr
command line args or by executing the text block would exit without
printing a message. This caused the error from T99966 to be hidden.
Add explicit handling for SystemExit to ensure the message is always
shown before exiting.
More details noted in code-comments.
|
|
Use an imperfect solution, since this code will be replaced soon anyway.
|
|
|
|
Collision is now optional in the curve sculpting tools and disabled by
default (button next to X/Y/Z symmetry settings).
Moved constraint solver into blenkernel for wider accessibility.
Changed collision method from raycasts to substeps with sphere casts.
This method of finding and resolving contacts is recommended by the XPBD
author. It avoids continuous collision detection (CCD) with raycasts
in favor of using a number of substeps. The range of potential contacts
is limited by the size of the overall allowed step size and number of
substeps.
The length constraints now work in both directions except for the first
segment, which avoids numerical stiffness close to the root.
Constraints now follow a stricter general recipe, which should make it
easier to implement future constraints with more complex constraint
functions and gradients.
The solver now outputs results with overall numerical error metrics and
timings.
Added a basic performance test for the curves constraint solver. The
test is parameterized for over a range of substep counts.
|
|
The recent multires winding fix missed a code branch.
|
|
This now use default angle precision which matches the sun rotation.
Feeling is much more natural.
|
|
There is a 1 pixel error in the size registered for the buffer
dimensions.
NOTE: This issue indicates that the texture scale is different from the
region, so the mouse-based coordinates used are actually misaligned.
This misalignment will be fixed in another commit.
Regression probably introduced in rB1d49293b8044 + rB45f167237f0c8
|
|
The "snap to surface" operators now have "disabled" poll messages
when there is no surface object.
The implementation in most curves operators is also unified.
The goal is to avoid having to define and use the poll failure messages
in multiple places, to reduce the boilerplate that tends to be
necessary to add an operator, and to increase the likelihood that
operators are implemented with proper poll messages.
Differential Revision: https://developer.blender.org/D15528
|
|
|
|
This commit adds tooltips to the geometry nodes add menu.
Differential Revision: https://developer.blender.org/D15414
|
|
This fixes two issues:
* There was a crash when the new attribute name was empty.
* The attribute name was incremented (e.g. "Attribute.001") when
the old and new name were the same.
|
|
Cyclic curves don't need the tangent correction based on the first
and last handle position.
|
|
|
|
|
|
|
|
Proposed solution by @scurest The color attribute in the RNA was tagged as
COLOR_GAMMA. This change will change it to a regular COLOR.
{F13217692}
Reviewed By: joeedh, jbakker
Maniphest Tasks: T99036
Differential Revision: https://developer.blender.org/D15272
|
|
It looked up the vertex group index based on the object instead of the
actual mesh that is currently used. Since geometry nodes, the number
and order of attributes can change in arbitrary ways during evaluation.
Therefore, this index has to be looked up on the mesh which contains
the most up-to-date information.
There are probably similar issues in other modifiers. That has to be
fixed step by step. Ideally by using the attribute api directly eventually.
|