Age | Commit message (Collapse) | Author |
|
Regression in tests from [0] tests were written to assume a newline was
added to the result of Text.as_string which is no longer the case.
[0]: f4ff36431ccfac2f0a99fc23c18fe0d9de38b36d
|
|
Refactoring event click-drag detection broke click detection for
simulated events. Resolve this by sharing logic for update previous
values in `wmWindow.eventstate` for regular event handling
(no functional changes for non-simulated events). Failure to detect
clicks for simulated events broke the undo test
`test_undo.view3d_multi_mode_select` in `../lib/tests/ui_simulate/run.py`.
All undo tests now pass.
|
|
Moving Text.as_string() from Python to C [0] added an extra new-line
causing a round-trip from_string/to_string to add a new-line,
this also broke the undo test `test_undo.text_editor_simple` in
`../lib/tests/ui_simulate/run.py`.
[0]: 231eac160ee394d41c84e0cc36845facb7594ba5
|
|
When texture painting, brush textures and brush texture masks were not
transformed to account for UDIM tiles.
Differential Revision: https://developer.blender.org/D14671
|
|
Fix a crash when a driver variable targets an object and uses
`data.shape_keys.key["name"].value` in its expression.
The fix consists of adding an extra relation from the targeted object's
`GEOMETRY` component to the driver evaluation. This ensures that its
`data` pointer has been evaluated by the depsgraph and is safe to
follow.
This also resolves the concern raised on rB56407432a6aa.
Reviewed by: brecht
Differential Revision: https://developer.blender.org/D14956
|
|
Embedded node trees are not groups, since their inputs and outputs
are not exposed anywhere. So these panels should not be displayed.
|
|
The 'OVERRIDE_HIDDEN' extra collection would often be mistakenly added
to a linked collection, which is totally forbidden and guaranteed to
crash on undo/redo.
Reworked the code instantiating that extra collection in a more generic
and hopefully robust way now.
|
|
Made tangent frame consistent across the surface regardless of the sample,
which was not the case with the previous algorithm. Previously, a tangent
frame would stay consistent for the same sample throughout the walk, but not
from sample to sample for the same triangle. This actually resulted in code
simplification.
Also includes additional fixes:
* Fixed an important bug that manifested itself with multiple lights in the
scene, where caustics had abnormally low amplitude: The final light pdf did
not include the light distribution pdf.
* Removed unnecessary orthonormal basis generation function, using cycles'
native one instead.
* Increased solver max iteration back to 64: It turns out we sometimes need
these extra iterations in cases where projection back to the surface takes
many steps. The effective solver iteration count, the most expensive part,
is actually much less than the raw iteration count.
Differential Revision: https://developer.blender.org/D14931
|
|
Fix parameters used in `self.assertAlmostEqual()` call; the code was
passing the error message to the `places` parameter.
|
|
Wrong assert introduced in {rBad63d2f60e24}, added comment in code
explaining why NULL RNA pointer is a valid value to be skipped here.
|
|
|
|
BMLog was zeroing face sets when creating new faces,
which is not valid. They're now set to 1.
|
|
We really need to fix how unprojected radius (scene unit) works.
What happened is the paint code updates the brush's normal radius
with the current unprojected pixel radius, which was then
used by texture brush tiled mode.
To fix this I just cached the pixel radius at stroke start in
UnifiedPaintSettings->start_pixel_radius.
|
|
excluded get instanced into Current Scene.
This was due to using `BKE_scene_has_object` function, which uses the
cache of bases of the viewlayers, which do not have entries for the
content of excluded collections... Now use
`BKE_collection_has_object_recursive` instead.
|
|
The button returned from `UI_region_active_but_get()` is not guaranteed
to have active button data, so code can't rely on that.
|
|
Steps to reproduce were:
- Factory startup
- Right-click in 3D View
- Move the mouse over "Shade Flat", wait for the tooltip
The changed logic in 4680331749aa to lookup an active button was
incorrect. It didn't respect the priority of active button candidates.
|
|
Issue is that the operator acts on the active button, and also uses that in the
poll. So the actually active button would affect the poll of a different
button. For the superimposed icons we need to be able to execute these polls
properly for non-active buttons.
This enables temporarily overriding the active button for lookups via context.
While a bit of a hack it makes sense conceptually.
Reviewed By: Campbell Barton
Maniphest Tasks: T97518
Differential Revision: https://developer.blender.org/D14880
|
|
|
|
Regression caused by [0] which made `ui_but_is_interactive` consider
label buttons with tool-tips to be interactive. This prevented
the clicks to pass through to the nodes for selecting/dragging.
Resolve this by allowing buttons to be activated for the purpose
of showing tool-tips but otherwise considering them disabled
(as if the UI_BUT_DISABLED is set when handling events).
[0]: 484a9146479e05946d291e9886cdf3febca6d05d
Reviewed By: Severin
Ref D14932
|
|
Related to the partial revert done for T97272. It seems also that the
workaround should be enabled for any MACOS platform.
|
|
The shortcut is G-G.
Caused by loop argument "shadowing".
|
|
When extracting UV point indices, only the vertex points coming from the
original geometry should be drawn. For this, the routines (for subdivision
and coarse meshes) would only consider a vertex to be real if the extraction
type is `MAPPED`, and that an origin index layer on the vertices exist
with a valid origin index for the current vertex.
However, if the extraction type is `MESH`, which can happen with for
example an empty Geometry Node modifier, or with deferred subdivision,
this would consider every vertex to not be "real" and therefore hidden from
the UV editor.
This reworks the condition for "realness" to also consider a vertex to be
real if there is no origin layer on the vertices. The check on the extraction
type is removed as it becomes redundant.
This only modifies the check in the UV data extraction for point indices,
however similar checks exist throughout the extraction code, these will
be dealt with separately in master.
Differential Revision: https://developer.blender.org/D14773
|
|
Assign get_name functions for select picking and circle select
so modifier keys show the result of holding the modifiers.
|
|
Since rB2a7a01b339ad, `lineSmooth` has lost its default value of true.
rBa0a99fb25284 only fixed the problem on master.
But thanks to @hitrpr for spotting the bug in version 3.2 too.
Differential Revision: https://developer.blender.org/D14876
|
|
Disable the new more accurate timing code, this is not needed for Blender.
In USD itself this code is disabled on macOS anyway, so it should operate fine
without it.
Ref T97950, T95206
Differential Revision: https://developer.blender.org/D14928
|
|
|
|
This abuse of one one size value to handle another allocated array of a
different size is bad in itself, but at least now read/write code of
this modifier should not risk invalid memory access anymore.
NOTE: invalid memory access would in practice only happen in case endian
switch would be performed at read time I think (those switches only check
for given length being non-zero, not for a NULL data pointer...).
|
|
Self describing title.
Also remove the layout inside the geometry shader as they are now generated
by the backend.
|
|
This was because the main `surface_vert.glsl` was changed to accomodate the
needs of the `ShaderCreateInfo` but was still used by the cryptomatte
shader. The fix is to include the same libraries as the material shaders
and bypass `attrib_load()`.
|
|
https://developercommunity.visualstudio.com/t/Alias-template-inside-fold-expression-fa/10040507
|
|
The variable was only used in some constexpr if-statements.
|
|
This was caused by the `mb_data->obmat[]` being wrong because they are
now shared between the particle system and the object.
But Hair need the dupli parent matrix instead of the object matrix.
Disabling `Show Emitter` option fixes the bug.
To avoid this problem, request a different `EEVEE_ObjectMotionData`
for particle systems using a different key pointer in the hash.
This is a bit dirty but there is less code polution using this workaround.
Differential Revision: https://developer.blender.org/D14911
|
|
Regression in 90a23dec4650d63a836cb9e9969aab4d0da4ba2f.
|
|
There are two problems when adding a paint slot to an object without an
existing material. First, the `invoke` method creates a material on the
object. This modifies the object even if the operation is not executed.
Second, the fill color defaults to black when there is no existing
material (even when adding a normal, bump, or displacement layer).
This patch moves the material creation to the `exec` method.
When no material exists on the object, a default Principled BSDF is
referenced for default colors in the `invoke` method.
Differential Revision: https://developer.blender.org/D14828
|
|
If merging is enabled, the mesh might be recreated before
the dirty flag can be cleared, which means the normals aren't
valid anymore. To fix this, clearing the dirty flag should happen
before the merging. This is an existing bug, just exposed by
more recent explicit dirty normal tagging.
|
|
Fall back onto the old behavior (use the render
color attribute) if the vertex color node's
attribute name is blank.
|
|
In rare cases the mesh has not been evaluated when snapping, this fix
just prevents the crash as is done elsewhere in Blender when the
evaluated mesh isn't available, there is a separate report (T96536)
about evaluation not working properly.
|
|
Differential Revision: https://developer.blender.org/D14917
|
|
Avoid 'parameter unused' warning when building Cycles without
OpenImageDenoise.
No functional changes.
Over-the-shoulder reviewed by @sergey
|
|
The operator now not only checks `ob->data` for Actions to duplicate,
but also passes `ob->data` to the duplication function (instead of `ob`).
|
|
Now add a default ".usdc" file extension if no (or the wrong) extension
is given instead of presenting the user with the error that "no suitable
USD plugin to write is found".
This is in line with how other exporters do this.
Maniphest Tasks: T97947
Differential Revision: https://developer.blender.org/D14895
|
|
GLSL has different max number of ssbo per glsl stage.
This patch checks if the number of compute ssbo blocks matches
our requirements for the GPU Subdiv, before enabling it.
Some platforms allow more ssbo bindings then blocks per stage.
|
|
We cannot try to get RNA info when the rna path of an override property
is invalid.
|
|
Geometry nodes can generate color attributes that aren't on point or corner domain.
When not found in these domains it will be processed as a common attribute.
|
|
Manually revert commit [0] as it caused problems macOS (reported T96435).
- Includes fixes from [1] & [2].
- T98037 TODO has been created to keep track of this feature.
Thanks to @jbakker & @sergey for investigating this issue as I wasn't
able to reproduce the bug.
[0]: 0cb5eae9d0617abedf745753c23061ddfcfd1416
[1]: cb986446e29a51b07bdb73b999a0339df5ecdeb4
[2]: cc8fe1a1cbc63db66c038773b070dca14e82cebb
|
|
Sculpt colors tagged the custom data as already created (cd_used), but
should have been tagged as being requested (cd_needed).
|
|
Knife projection BVH-tree lookup could use invalid indices since the
mesh being cut is also used for BVH intersection tests.
Solve by storing triangle indices when knife project is used so a
triangle index can always be used to look up original coordinates of a
triangle.
|
|
Regression in [0] accessed knife data after it had been freed.
[0]: f87029f7b13142499a37fb311a721d99bb1aecd7
|
|
This is caused by the geometry shader used by the edit mode line drawing.
If the drawcall uses indexed drawing and if the index buffer only contains
restart indices, it seems the result is 1 glitchy invocation of the
geometry shader.
Workaround by tagging these special case index buffers and bypassing
their drawcall.
|
|
It was effectively sqrt(max_distance) before this fix.
Thanks to Omar Emara for identifying the solution.
|