In vertex weight proximity modifier, `proximity_geometry` shares the
same DNA variable as `proximity_flags`, which brings interference when
setting these two properties at the same time. Now separated
`proximity_geometry` access in RNA with a separated set function so it
only changes the relevant flags.
Pull Request: https://projects.blender.org/blender/blender/pulls/143405
Right-clicking on a File Browser item shows a context menu that
(usually) includes a submenu "External". The items on that work
correctly when selected from the menu, but will not work correctly if
you create a keyboard shortcut directly to the item. This PR removes
the use of a filepath property on these, instead having each operate
on the currently-selected File Browser item.
Pull Request: https://projects.blender.org/blender/blender/pulls/134819
This adds a slight ease-in fade in to the start of some area
maintenance operations. Fade in the highlighting of join areas, docking
targets, closed areas, etc.
Pull Request: https://projects.blender.org/blender/blender/pulls/140319
This PR adds some missing keymap items to the status bar display for
the mesh Shear operator. Adds snapping, precision, and proportional
editing size (when applicable).
Pull Request: https://projects.blender.org/blender/blender/pulls/141975
Areas can be made to take up more space in two different ways. One we
call "Maximize Area" that just takes up the rest of non-global space,
so leaving Top Bar and Status Bar and everything in the area unchanged.
The other option is shown as "Fullscreen Area" and it calls the same
operator with a use_hide_panels property. This hides the global areas
and also all regions in the area. This was added as an option for the
stereo 3D pipeline for viewing without the distraction of UI elements
that cause depth issue. #142418 further removed text overlays and the
navigation gizmos. This PR just renames the option to better describe
the result, using "Focus Mode".
Pull Request: https://projects.blender.org/blender/blender/pulls/142605
Commit #142418 hid the navigation gizmo and text overlays while in Full
Screen Area by just not allowing those operations while in that mode.
This PR undoes that and instead selectively hides those items and
restores them afterward if they had been showing. The difference is
that this makes it possible to optionally bring them back while in the
mode. This adds a new fullscreen_flag to bScreen to store what was
visible to allow restoring afterward.
Pull Request: https://projects.blender.org/blender/blender/pulls/143144
Add new "Linear 3D Curves" option in the Curves panel in the render
properties. This renders curves as linear segments rather than smooth
curves, for faster render time at the cost of accuracy.
On NVIDIA Blackwell GPUs, this can give a 6x speedup compared to smooth
curves, due to hardware acceleration. On NVIDIA Ada there is still
a 3x speedup, and CPU and other GPU backends will also render this
faster.
A difference with smooth curves is that these have end caps, as this
was simpler to implement and they are usually helpful anyway.
In the future this functionality will also be used to properly support
the CURVE_TYPE_POLY on the new curves object.
Pull Request: https://projects.blender.org/blender/blender/pulls/139735
If the scene is currently set to a Video media type and the user uses
the Save Image As operator, the Media Type in the operator will be
empty. That's because the image saving format is initialized based on
the scene format, but image saving does not support videos, so the enum
is invalid in that context.
This issue already existed before the introduction of media types, but
it happened for the file format field directly.
To fix this, we default to an image type if the scene is set to a video.
Pull Request: https://projects.blender.org/blender/blender/pulls/143549
This PR changes the uses of `PBONE_SELECTED` and all the
places where it *should* have been used
with a new function `bone_is_selected` or `...editbone`
and `...pose_bone` specializations.
No functional changes intended.
Do note that there are still places in the code
where this function should probably be called,
but this PR is very careful not to change any behavior,
even if the current behavior is probably wrong.
In preparation for storing pose bone selection state
on the `bPoseChannel`
Related to #138482
Pull Request: https://projects.blender.org/blender/blender/pulls/139496
These are the changes from #141950 as requested by #141945
this contains the following changes:
Attrs 25.3.0
Cattrs 25.1.1
Fastjsonschema 2.21.1
Typing_extensions 4.14.1
Deprecation meta-data support for RNA properties.
- Properties may have a deprecated note and version.
- Warnings shown when these are accessed from Python.
- A note is included in the generated documentation.
Support for marking functions as deprecated can be added in the future.
Ref !139487
Show warnings for debug builds or when `--debug-python` is passed in.
Without this, only scripts running in the `__main__` namespace
show warnings - hiding warnings for almost all scripts & add-ons.
This is also needed so deprecation warnings can be shown, see !139487.
Some users still have issues getting LFS files downloaded properly, though the
exact cause is unclear. Normally with a properly installed git lfs, git pull
should already take care of it.
When for whatever reason that is not the case and files have not been fetched
yet, now do lfs pull which is the same as lfs fetch + lfs checkout. Even when
git pull can not run.
Ref #143461
Pull Request: https://projects.blender.org/blender/blender/pulls/143478
When trying to capture an asset preview screenshot of the 3D viewport while in
Cycles render preview mode, the screenshot would not capture any geometry.
It turns out the function used (`ED_view3d_draw_offscreen_imbuf`) is not useful
for cycles because it doesn't give cycles time to render.
Instead of having cycles rendering, potentially taking a long time, we fall back to
a direct screencapture.
This has the disadvantage that the background will not be transparent in this case,
but this is a limitation we can document.
Also, instead of only excluding Cycles, I chose to include only EEVEE. That way,
things will work even when using 3rd party render engines.
Pull Request: https://projects.blender.org/blender/blender/pulls/142241
This fixes issues when using Embree on mutliple GPUs.
A previous workaround used separate contexts, this one now
lets us keep a single context for all GPUs.
Pull Request: https://projects.blender.org/blender/blender/pulls/143089
Makes the File Output node panel similar to the Render Output node.
Instead of a dropdown, color management enum property expanded in UI.
Color management settings are now moved inside a panel.
Add/remove file subpapth buttons moved to the side of UIList.
Resolves#133501
See images in PR description for visual changes.
Pull Request: https://projects.blender.org/blender/blender/pulls/133747
The Image Editor had a different menu order compared to the 3DView (this
came with fb74dcc5d6).
Now made the order in the Image Editor match the one of the 3DView.
Also matches the order in the sidebar now.
Pull Request: https://projects.blender.org/blender/blender/pulls/143222
Resolve an error in `BLI_convexhull_2d` where *almost* overlapping
points could result in the hull including *concave* points.
This tended to happen with larger polygons in the range of 100-500.
The regression is likely caused by [0] since this optimization
relies on the input not having any concave coordinates.
[0]: 888c4d0766
`AttributeIter::get()` could potentially use the `accessor` field
which wasn't set for curves or mesh vertex groups. "is_builtin"
can also be explicitly set for this case.
Recursive downsample was only used by workbench DoF
which can be expressed using mip view instead.
The mip render workaround was creating GL error on startup
and is not needed anymore.
Pull Request: https://projects.blender.org/blender/blender/pulls/143246
Currently, bundles can only store socket values of Geometry Nodes. However, it
can make sense to store other kinds of data too. Specifically, this patch adds
support for storing arbitrary internal data in a bundle. This is useful when
storing e.g. the physics world when implementing a proper physics solver for
Geometry Nodes (like in #143171).
One can still see that the data exists in Geometry Nodes in the tooltip, but one
can't extract it. Built-in nodes can still read that data.
Storing built-in data in bundles can also be done as an alternative to having a
new "internal data socket" as we talked in a workshop in the past:
https://code.blender.org/2024/11/geometry-nodes-workshop-october-2024/#internal-data-sockets
A bundle still has to be copyable. Internal data is expected to use implicit
sharing. That way copying it just requires increasing the user count of the
data.
Pull Request: https://projects.blender.org/blender/blender/pulls/143472
Update use_shading, use_camera and the shading system pointers in the same
location, so that when the render is interrupted they are in a consistent state.
The added null pointer checks are not strictly needed, but just in case it
goes out of sync for another reason.
Pull Request: https://projects.blender.org/blender/blender/pulls/143467
Histogram was calculated by copying the rendered image, transforming it
into display space, and calculating the histogram on that. On large
resolutions, this copy+transform+free of the temporary image was taking
up majority of the time. Especially for default use case when the
display transform is a no-op.
Change the code so that display transform, if needed, is done directly
inside histogram calculation, without needing a full-size temporary image.
Performance of histogram calculation, on Ryzen 5950X (Windows), on
a 4K resolution image, with default color management settings:
- PNG (SDR): 3.9 -> 0.9ms
- EXR (HDR): 41.3 -> 6.3ms
With display colorspace (P3) that is different than the sequencer
colorspace (sRGB):
- PNG (SDR): 25.3 -> 11.3ms
- EXR (HDR): 64.9 -> 10.6ms
It also fixes calculation of histogram on float (HDR) images that have
alpha channel; the histogram was wrongly calculated on premultiplied
color values, which was not consistent with how it was calculated
on the byte images.
Pull Request: https://projects.blender.org/blender/blender/pulls/143175
`sd->dPdu`, `sd->dPdv`, `sd->du` and `sd->dv` are computed from
`sd->dP` by constructing a local frame, so both results are the same, subject to some numerical differences.
This avoids constructing the local frame again, so might be faster.
Passing the current enum value as a float to the "min" argument
doesn't seem to do anything. It's also the only place that the min
and max arguments to `uiDefIconTextBut` are used.
When transforming a geometry, we often apply the transposed inverse
to normals / custom normal data. However, that matrix can still contain
scale from the original matrix. That scale has to be removed so we can
avoid also scaling the normals.
I used the opportunity to remove the duplication between mesh and curves
processing of the custom normals, and to formalize an optimization to
skip the final normalization of each vector if the transform is such
that it isn't necessary. The new functions don't fit beautifully into
their public headers, but I don't know of a better place for them.
Pull Request: https://projects.blender.org/blender/blender/pulls/142896