When sync select was enabled, checking for selected elements isn't
a correct way to check for visible UV's for that mesh.
Meshes without any selected vertices were skipped, even when they
contained similar UV's that should have been selected.
Support reading NDOF motion via: even.ndof_motion which exposes:
translation, rotation, progress & time_delta properties.
Based on !139410.
Co-authored-by: Michael Menzi <nakoustix@gmail.com>
Add ability to randomize color of each stroke for or use perlin noise
randomization during the stroke. Works similarly to grease pencil stroke
color randomization. This feature is available for all mesh color
painting modes (Sculpt Paint brush, Texture Paint and Vertex Paint)
This setting is available both as a per-brush setting and a unified
setting on the scene level. Additionally, the equivalent Grease Pencil
options have been migrated to these more generic flags and values.
Based on this [1] RCS request.
[1]: https://blender.community/c/rightclickselect/mwgbbc/
Pull Request: https://projects.blender.org/blender/blender/pulls/128953
This implements the "boundary strokes" features (from 4.2 LTS).
To make it a bit more clear, the feature is now called "fill guides".
It uses the same `Alt`+`LMB` shortcut.
Fill guides are denoted by a `".is_fill_guide"` attribute set to `true`.
Otherwise they behave as normal strokes.
There is the `Clean Up` > `Remove Fill Guides` operator to remove
the strokes.
This also adds an option to the Fill tool to automatically remove fill
guides once a fill has been created.
Pull Request: https://projects.blender.org/blender/blender/pulls/139293
Handle the `DomeLight_1` schema for import and translate to a World
material like what was already done for the original `DomeLight` schema.
The primary difference is that the new schema provides a `poleAxis`
attribute that authoring applications can use to remove ambiguity for
the orientation of the HDRI texture. Some care was made to match
`usdview` with a set of hand-crafted files. However, after matching,
some real scenes ended up displaying differently. These were corrected
but this could mean there's still issues that will need investigation
and fixing in the future.
Co-authored-by: Nig3l <nig3lpro@gmail.com>
Co-authored-by: Jesse Yurkovich <jesse.y@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/137761
The `SEQUENCER_OT_change_effect_input` operator does exactly the same thing
as `SEQUENCER_OT_swap_inputs` . "Change effect input" in the
"Effect Strip" context menu also seems bugged in recent versions.
Since "Swap Inputs" already has a keybind and the name itself is closer
to its intended use, just use that operator over the other one.
Also poll "Swap Inputs" so it is grayed out if the effect does not take
two inputs.
Pull Request: https://projects.blender.org/blender/blender/pulls/139615
It seems to be fixing an issue rendering the junkshop file on RDNA4 GPUs.
Tested on Ubuntu 22.04 and 9070 XT GPU.
The downside of this change is the curve intersection in HIP-RT being
slower (figures are a bit scattered, but average to ~10%). This seems
to be caused by compiler resolving function inlines and spilling
differently. Quite unfortunate, but it is better to solve known crashes.
There might still be time to look into the performance topic during the
Beta period.
Ref #136143
Pull Request: https://projects.blender.org/blender/blender/pulls/138981
... if "Only Show Selected Keyframes Handles" is turned ON
The piece of code from fa24ad1fd5 -- and that copied from 233c650d55 --
which alters `incl_handles` for Circle/Lasso is outdated...
Atm. it would set `incl_handles` to `false` as soon as either "Show
Handles" is OFF or "Only Show Selected Keyframes Handles" is ON.
So bug-symptoms would be:
- turn ON both "Show Handles" and "Only Show Selected Keyframes Handles"
- select a single keyframe (so its handles are visible)
- try to select that handle using Circle/Lasso
- fail
- (alternatively: select the key using Circle/Lasso >> handles get
selected as well, also a fail)
In b037ba2665 though we introduced
`KEYFRAME_ITER_HANDLES_DEFAULT_INVISIBLE` in which can properly handle
such cases in `keyframe_ok_checks` / `select_bezier_add` /
`select_bezier_subtract`, so it makes sense to only check for "Show
Handles" Circle/Lasso and let `initialize_box_select_key_editing_data` /
`keyframe_ok_checks` / `select_bezier_add` / `select_bezier_subtract`
handle the rest...
Noticed while doing !139349, part of #139314
Pull Request: https://projects.blender.org/blender/blender/pulls/139531
All contained operators are using poll functions that check we are in
weight paint mode, so all operators would be disabled in editmode
anyways, better to remove the menu to avoid confusion.
Pull Request: https://projects.blender.org/blender/blender/pulls/139535
The Switch node in the compositor crops the input image. That's because
the two inputs share the same operation domain.
To fix this, we avoid domain realization for either inputs.
Pull Request: https://projects.blender.org/blender/blender/pulls/139637
This PR will reuse the VkInstance of GHOST_ContextVK when querying for
possible compatible devices. Previously a temporary VkInstance was
created but could trigger an error in the Vulkan loader.
Pull Request: https://projects.blender.org/blender/blender/pulls/139640
This was missing from the initial implementation.
This did not affect any user code path since they were not
checking for completion and only blocking on first `get`.
For automated tests we have support for directly loading a directory as
asset library. We might need this for other things too in future, so
this should be supported generally.
Directories loaded as asset libraries this way would internally be
treated as a Preferences on-disk library, which isn't correct. This
didn't cause any known issues, but with blender/blender!138150 it would
make tests fail incorrectly.
So far this is unused, but it's used in #139165, and that pointed out
some obvious flaws in the code, like the resulting AttributeStorage
being completely ignored, and old CustomData layers not being freed.
Restructure the API a bit to make it simpler to use, and also make it
keep the non-generic layers in CustomData. That's not necessary for
point clouds but it will be necessary for curves (the next step) since
they have vertex groups.
Pull Request: https://projects.blender.org/blender/blender/pulls/139609
This patch adds support for Group Input nodes in scene compositor node
trees. The inputs return the pass that correspond to their name in the
active scene and view-layer. Image is an alias for the combined pass.
This fixes#137943 for the compositor.
Pull Request: https://projects.blender.org/blender/blender/pulls/139584
`xkb_compose_state_get_utf8` may return multiple characters, while
this isn't supported, prevent a buffer overflow & report a warning.
Co-authored-by: Phoenix Katsch <phoenixkatsch@gmail.com>
Ref: !114612
The socket name on Menu sockets is hidden by default to save layout space.
In some nodes with multiple menu inputs (switch nodes) this leads to ambiguity,
so the socket name is enabled explicitly for these node types. This was already
done for Menu Switch nodes but not for the boolean Switch node yet.
Pull Request: https://projects.blender.org/blender/blender/pulls/139628
This allow to easily request async compilation
in a safe way for every static shader.
The get function will always wait if async
compilation has been requested.
It is possible on file load that the `previous_active_brush_reference`
is an invalid old memory location. To prevent this, set the ptr to
nullptr on file load, as it should only be used within a given session.
Pull Request: https://projects.blender.org/blender/blender/pulls/139618
Set fuzzy=1 when softbody modifier is added. As of now, value is 0, this
raises concern of division by zero so bump it to 1.
Updated `softbody_test.blend` to fix the failing test.
Resolves#137849
Pull Request: https://projects.blender.org/blender/blender/pulls/137878
Use these terms over "Cross" and "Gamma Cross" in the UI/RNA
when referring to effect strips.
Keep it as "Cross" for blend modes for now (which is in and of itself
a bit of a weird naming. In the future, we should consider unifying
our blend mode types with compositor ones for consistency).
Pull Request: https://projects.blender.org/blender/blender/pulls/139606
With the change to a new `strip_effect_get_new_inputs` prototype
in #138016, this call got overlooked. The bool would sneak in
as an `int` and silently fail.
When an icon is drawn with both lowered opacity and a border shadow
(used to increased contrast in Light theme), it will look darker
because more of the dark shadow is visible through the icon. This PR
fixes this by scaling the shadow by the opacity.
Pull Request: https://projects.blender.org/blender/blender/pulls/139610
In a prior commit, the Mesh Paint BVH leaf node limit was reduced from
10000 faces to 2500 faces. This commit makes a proportional change
for the Multires paint BVH.
In performance testing of just the brush evaluation, this change
represents a 3x speedup (from 0.6326s to 0.2135s) on a Multires grid
with 25m vertices at multires level 5.
In a simulated brush stroke testing similar to what a user would do,
on a grid of 6m vertices at multires level 5 this change equals a 1.4x
improvement from 41.8 to 58.6 FPS.
See the related PR for the raw data and testing methodology.
Related to #137871
Pull Request: https://projects.blender.org/blender/blender/pulls/139311