Move Auto-Offset toggle from Node Editor View menu
into the Editing > Node Editor section of User Preferences,
to reflect its use as a workflow option not configured
per editor or per file.
Pull Request: https://projects.blender.org/blender/blender/pulls/111589
Adds a userpref toggle for the edit mode overlays fresnel.
The edit mode fresnel is only a bit useful in edge cases, like
very dense photogrametry, and the problem is that it causes
more eye strain when modeling for many hours. And it's
benefit on shape readability is small compared to it's negative
impact on selection visibility. It makes the selection color to a
darker less saturated color instead of the theme color, which
leads to worse contrast between the selection and the mesh
or with the background, and also makes the unselected (black)
brighter, also reducing contrast. So it's off by default.
This was split up from https://projects.blender.org/blender/blender/pulls/110097
Pull Request: https://projects.blender.org/blender/blender/pulls/111494
Enables three options of wireframe color for all shading modes: theme color, object color
and random color. Previously this was exclusive to the wireframe shading mode.
Pull Request: https://projects.blender.org/blender/blender/pulls/111502
When creating a new main window, the `context.object` attribute wouldn't
exist, causing an error message to be printed.
Rather than checking if the attribute extists, query the mode from
context directly (this is always available), rather than querying it
through the active object.
This was hard coded to 8, which can still result in a number that
jitters making the overall FPS difficult to measure.
The default is still 8, but this is now a preference that can be
increased for values that don't jitter as much.
Since the 5e1470d1b3 / 0f51b5b599 the `fmodifier_add` operator has
moved to the Channel menu in the Graph Editor and also the channels
context menu in the channels region. The shortcut was not working in the
channels region though since the operator was only in the keymap for the
main region (not the channels region).
Now move the keymap entry to the generic keymap of the Graph Editor so
it works in both regions.
Pull Request: https://projects.blender.org/blender/blender/pulls/111378
This PR adds an initial set of nodes using the new rotation socket.
6 nodes build rotations or convert them to other formats, a 7th rotates
a vector with a rotation, and the last inverts rotations.
The design task #109965 describes the choice to use separate nodes
for the rotation construction and separation operations. In the future,
a "Switch Node" operator (#111438) will help to make working with
these separated nodes faster.
- **Axis Angle to Rotation**
- **Rotation to Axis Angle**
- **Combine Quaternion**
- **Separate Quaternion**
- **Euler to Rotation**
- **Rotation to Euler**
- **Rotate Vector**
- **Invert Rotation**
See #92967
Pull Request: https://projects.blender.org/blender/blender/pulls/109030
Refactor the Add menu in the Compositor, with manually created menus,
inspired by Geometry Nodes.
Minor sorting adjustments by splitting categories in groups, with
separators in between groups, and sorted alphabetically. Compositor
node group assets are also populated in the menus.
This is the first part of the re-organization of the Add menu project,
proposal coming in another patch after this.
Pull Request: https://projects.blender.org/blender/blender/pulls/111282
Instead of putting all the tool specific nodes (inputs, operations, etc)
in a single menu, use the existing categories. This is similar to how
the shader editor shows nodes depending on which render engine
is enabled. It's also more scalable for when more tool-specific nodes
are added.
---
I discussed this with Pablo on Tuesday-- it came up when we talked
about the organization of the compositor add menu.
Pull Request: https://projects.blender.org/blender/blender/pulls/111449
Since these are operations rather than new nodes, they don't make
sense in the add menu. They are also available in the "Node" menu
in the editor's header and in the context menu.
This makes the asset shelf available as a standard, non-experimental
feature. Currently no script makes use of it, so it will still not be
available. However the pose library will be updated to use this for its
UI instead.
Initially the asset shelf was committed as experimental feature, even
though it seemed ready for non-experimental. After double checking with
some people (Dalai and Brecht) we decided to go ahead with this.
There are still some futher changes planned, see #107881.
Specifying the correct operator context (`INVOKE_REGION_CHANNELS` in
this case) is mandatory, otherwise looking up the shortcut in
`wm_keymap_item_find_props` will fetch the wrong region
(`RGN_TYPE_WINDOW` not `RGN_TYPE_CHANNELS`) and thus wont find the keymap
item in that region keymap.
This was already done for the other menus, not for the context menu
though.
Pull Request: https://projects.blender.org/blender/blender/pulls/111376
This is in prevision of EEVEE panoramic projection support.
EEVEE-Next is planned to add support for these parameters.
Not having these parameters in Blender DNA will make Cycles
and EEVEE not share the same parameters and will be confusing
for the user.
We handle forward compatibility by still writing the parameters
as ID properties as previous cycles versions expect.
Since this change will break the API compatibility it is crucial
to make it for the 4.0 release.
Related Task #109639
Pull Request: https://projects.blender.org/blender/blender/pulls/111310
On a user level this view transform provides much better handling of colors in
the over-exposed areas.
With this configuration the following display devices are available, including
AgX view transform for them:
* sRGB
* Display P3
* Rec.1886
* Rec.2020
NOTE: There is no Filmic view transform available for the newly added display
devices.
AgX also brings an implementation of False Colors view transform, which replaces
Filmic-based, and is available for all display devices.
The backward compatibility is preserved. The new files will default to AgX view
transform, which makes it non-forward compatible.
More technical details is available in the original PR #106355.
Please note that the PR has been split into more incremental changes when
was landing.
Pull Request: https://projects.blender.org/blender/blender/pulls/111099
Fix some remaining consistency issues for selection shortcuts for both
left and right click select.
Based on design of #105298
Grease Pencil:
Instead of using `Alt Select` shortcuts for selecting whole strokes,
these are now following existing standards with `L` and `Shift L` from
select linked pick operations.
`Alt Select` keys are instead used for selecting individual components
in modes that use brushes just like [0].
Regular selection like `Select` and `Shift Select` are now always mapped
to ensure that all keymap configurations are able to select individual
components in every mode.
This does not cause conflicting behavior with brushes.
Lasso Select shortcuts on `Ctrl Alt` and `Shift Ctrl Alt` have been
removed. These were duplicates and are not needed.
Mesh Sculpt Mode:
Mesh sculpt mode uses correct lasso masking shortcuts in both right and
left click select. These are now the same as lasso selection shortcuts
in other modes.
Ref !110960.
[0]: fb54d3f865
Customprops to IDs are supported since years through code, but were
never exposed directly in the UI of customporperties.
This commit mainly:
* Adds a new `DATA_BLOCK` type to UI customprops types.
* Exposes the existing `id_type` settings to python API.
Pull Request: https://projects.blender.org/blender/blender/pulls/110458
For speed and consistency with other areas in Blender like Outliner,
UILists, animation channels, etc.
This is additionally to F2 (Enter in Industry Compatible keymap),
that shortcut is still valid.
Pull Request: https://projects.blender.org/blender/blender/pulls/111264
Listing the "Blender Foundation" as copyright holder implied the Blender
Foundation holds copyright to files which may include work from many
developers.
While keeping copyright on headers makes sense for isolated libraries,
Blender's own code may be refactored or moved between files in a way
that makes the per file copyright holders less meaningful.
Copyright references to the "Blender Foundation" have been replaced with
"Blender Authors", with the exception of `./extern/` since these this
contains libraries which are more isolated, any changed to license
headers there can be handled on a case-by-case basis.
Some directories in `./intern/` have also been excluded:
- `./intern/cycles/` it's own `AUTHORS` file is planned.
- `./intern/opensubdiv/`.
An "AUTHORS" file has been added, using the chromium projects authors
file as a template.
Design task: #110784
Ref !110783.
The changes in this keymap are much more involved.
If any shortcut isn't mentioned, that means it is unchanged.
General:
- All brush shortcuts have been removed for free custom mapping
- `S` & `U` are now consistently mapped for Brush size & strength
- Redundant shortcuts have been removed such as
- Line Session drawing (In GP Draw Tool)
- Select Alternate in GP
- Quadriflow Remesh (In Mesh Sculpt Mode)
- Box Hide (In Mesh Sculpt Mode)
- Dynamic Topology Toggle (In Mesh Sculpt Mode)
- Mask Overlay (In Mesh Sculpt Mode)
- Removed Lasso Mask/Select shortcuts (This keymap is mainly using the Tools instead. Easy to add back if needed.)
Mode Switching (Global change):
Easier mode switching access for any workflow.
- `123` = switch selection/mask modes for the **current mode**. If in object mode, it will first switch to edit mode (Previously this would always switch to edit mode)
- `4` = Mode switching pie menu (previously `4-7` for individual modes)
- `Tilde` = Transfer Mode (Previously not mapped. Useful for instant object switching while keeping the current mode)
- `5-0` = Unassigned
Brush vs Selection:
Multiple Modes were missing these shortcuts.
- `Shift` `LMB` = Smooth Brush
- `Ctrl` `LMB` = Inverted Brush
- `Shift` `Alt` `LMB` = Set Selection
- `Shift` `Alt` `Ctrl` `LMB` = Toggle-Extend Selection
Brush Size vs Select Linked:
These were previously in direct conflict. Now they are both distinct and based on other DCC software.
- `[` = Decrease Brush Size
- `]` = Increase Brush Size
- `Alt` `dbl LMB` = Select Linked Pick
- `Ctrl` `Alt` `dbl LMB` = Deselect Linked Pick
- `Ctrl` `L` = Select Linked
Select & Mask:
- `Q` = Cycle Masking/Selection Tools
- `Ctrl` `A` = Mask/Select Pie Menu (Draw, Paint, Sculpt Modes)
- `Alt` `A` = Auto-Masking Pie Menu (Mesh & GP Sculpt Mode)
- `Shift A` = Expand Mask (Mesh Sculpt Mode) / Grow Selection (Curve Sculpt Mode)
- `Shift` `Alt` `A` = Expand Mask by Normals (Mesh Sculpt Mode)
Face Sets & Visibility:
Previously missing shortcuts.
- `Shift` `W` = Face Set Expand
- `Shift` `Alt` `W` = Active Face Set Expand
- `Ctrl` `W` = Face Set Edit Pie Menu
- `Page Up` = Grow Active Face Set
- `Page Down` = Shrink Active Face Set
- `H` = Hide Active Face Set
- `Shift` `H` = Hide Inactive Face Sets / Show everything
- `Ctrl` `H` = Hide Masked Geometry
Transforming:
For Sculpt and Weight Painting modes. Previously missing
- `C` = Cursor Tool
- `W` = Move Tool
- `E` = Rotate Tool
- `R` = Scale Tool
- `T` = Transform Tool
- `Shift` `RMB` = Set Cursor / Set Transform Pivot in Sculpt Mode
Sculpting:
Consistent and easier to access shortcuts for remeshing and subdiv level .
- `Shift` `D` = Subdivision level Down (Previously on `Pg Down`)
- `D` = Subdivision level Up (Previously on `Pg Up`)
- `Shift` `Ctrl` `D` = Voxel Size / Dyntopo Size
- `Ctrl` `D` = Voxel Remesh / Dyntopo Flood Fill
Adding missing shortcuts
Painting:
Fixing various missing or inconsistent shortcuts.
- `Backspace` = Set Color/Weight
- `I` = Sample Color/Weight
- `Alt` `I` = Sample Vertex Group
- `Alt` `Ctrl` `I` = Vertex Group Lock Pie
- `X` = Swap Colors (Previously missing in Sculpt Mode)
Grease Pencil:
Adding many missing shortcuts.
- `Shift S` = Animation Menu (Previously on `I` and missing outside of Draw Mode)
- `Shift` `Alt` `S` = Insert Blank Keyframe
- `Alt` `H` = Unhide Layers
- `Ctrl` `H` = Hide Active Layer
- `Shift` H = Hide Inactive Layers
- `Y` = Active Layer Menu
- `Shift` `Y` = Merge Layer Down
- `Alt` `Y` = Material Menu
- `Alt` `Backspace`/`Delete` = Delete Active Keyframe (Previously on `D` `Backspace`/`Delete`)
Other:
Adding missing shortcuts.
- `MMB` for panning in the User Interface (Highly requested)
- `Shift F` = Center View to Mouse (Replacing Frame Selected(All Regions) shortcut)
- `D` = Annotate
- `L` = Toggle Stabilize Stroke (Previously on `Shift` `S`)
- `Ctrl F` = Weight radial control in weight painting modes
Ref !109750.
For shader nodes, use the flat preview scene as default.
A new setting in the overlay panel adds the possibility to
use the material preview scene for the node previews.
Pull Request: https://projects.blender.org/blender/blender/pulls/110958
This PR blends the selected keyframes to an ease-in or ease-out curve.
The difference to the existing ease slider is that this one blends,
while the other snaps to the ease curve
Co-authored-by: Ares Deveaux <aresdevo@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/110566
The `BPy_IDPropertyUIManager` takes different keywords for different
data types in its `update` methods.
Booleans and Strings only handle defaults and description while Floats
and Ints can handle additional stuff like min/max.
(see `idprop_ui_data_update_string` vs. e.g.
`idprop_ui_data_update_float`)
There was a different code path in `rna_idprop_ui_create` for bools
already (only passing a subset to `update`), now use this for string as
well since it matches.
Bug introduced in 8b9a3b94fc.
Probably good for LTS.
Pull Request: https://projects.blender.org/blender/blender/pulls/110935
Add a High Dynamic Range option in the Color Management > Display panel.
This enables display of extended color ranges above 1.0 for the 3D
viewport, image editor and render previews.
This requires a monitor that can display HDR colors, and a view
transform designed for HDR output. The Standard view transform works,
but Filmic does not as it was designed to bring values into the 0..1
range for SDR displays.
This patch is limited to allowing the display to visualize extended
colors, but does not include future looking work to better integrate HDR
into the full workflow.
It is implemented by rendering to high bit-depth texture formats for
the user interface, and uncapping the color range in color management.
Authored by Apple: Michael Parkin-White
Pull Request: https://projects.blender.org/blender/blender/pulls/105662
Support name-spaced add-ons, exposed via user configurable extension
repositories.
Directories for add-ons can be added at run-time and are name-spaced to
avoid name-collisions with Python modules or add-ons from other
repositories.
This is exposed as an experimental feature "Extension Repositories".
Details:
- A `bUserExtensionRepo` type which represents a repository which is
listed in the add-ons repository.
- `JunctionModuleHandle` class to manage a package with sub-modules
which can point to arbitrary locations.
- `bpy.app.handlers._extension_repos_update_{pre/post}` internal
callbacks run before/after changes to extension repositories,
callbacks are used to sync the changes to the Python package that
exposes these to add-ons.
- The size of an add-on name has been increased so a user-defined package
prefix can be included without enforcing shorter add-on names.
- Functionality relating to package management has been left out of this
change and will be developed separately.
Further work:
- While a repository can be renamed, enabled add-ons aren't renamed.
Eventually we might want to support this although we could also
disallow renaming repositories with add-ons enabled as the name isn't
all that significant.
- Removing a repository should remove all the add-ons located in this
repository.
- Sub-module names are currently restricted to `[A-Za-z]+[A-Za-z0-9_]*`
we might want to relax this to allow unicode characters (we might
still want to disallow `-` or any characters that would prevent
attribute access in code).
Ref !110869.
Reviewed By: brecht
First implementation of node previews in the shader node editor. Using
the same user interface as compositor node previews, most shader nodes
can now be previewed (except group in/output and material output).
This is currently still an experimental feature, as polishing of the
user experience and performance improvements are planned. These will
be easier to do as incremental changes on this implementation.
See #110353 for details on the work that remains to be done and known
limitations.
Implementation notes:
We take advantage of the `RenderResult` available as `ImBuf` images to
store a `Render` for every viewed nested node tree present in a
`SpaceNode`. The computation is initiated at the moment of drawing nodes
overlays.
One render is started for the current nodetree, having a `ViewLayer`
associated with each previewed node. We separate the previewed nodes in
two categories: the shader ones and the non-shader ones.
- For non-shader nodes, we use AOVs which highly speed up the rendering
process by rendering every non-shader nodes at the same time. They are
rendered in the first `ViewLayer`.
- For shader nodes, we render them each in a different `ViewLayer`, by
rerouting the node to the output of the material in the preview scene.
The preview scene takes the same aspect as the Material preview scene,
and the same preview object is used.
At the moment of drawing the node overlay, we take the `Render` of the
viewed node tree and extract the `ImBuf` of the wanted viewlayer/pass
for each previewed node.
Pull Request: https://projects.blender.org/blender/blender/pulls/110065
This commit allows invoking user-defined Python 'hook' functions to extend
the USD export functionality.
Added support for registering subclasses of a new bpy.types.USDHook
type which may implement the hooks as member functions. Supported
hook functions are on_export() and on_material_export(). Also added
definitions and Python registration for USDSceneExportContext and
USDMaterialExportContext structs that encapsulate arguments
to these functions.
Pull Request: https://projects.blender.org/blender/blender/pulls/108823
This patch includes set of smaller changes to address visual
inconsistencies and bugs:
- Strip previews are drawn under title bar
- All strip previews now disappear when there isn't enough space for
drawing
- Like the sound strip, the color strip expands to fill the whole strip
when there is little vertical space, "taking over" the strip title
Color is more important visual indicator than the name of the strip
- Disabling strip title no longer disables strip handle frame previews
- All strip previews are now be affected by the "Show overlays" toggle
- Turning off strip text overlay no longer makes the color strip
preview disappear
This feature is going to be replaced with a more thorough refactoring
of the node group interface UI, which has actual node drawing support
and a new API for integration of panels into nodes.
Design task: #109135
Implementation: #110272
Pull Request: https://projects.blender.org/blender/blender/pulls/110803
This allows irradiance volume that have less priority to
transfer lighting to the ones with higher priority.
Meaning interactive relighting from the world or
lookdev HDRI is now supported if the world isn't baked
inside the volume data.
This should improve workflow with larger scenes and
interactivity with light setups.
To help setup with dynamic objects, this patch introduce
3 new parameter to remove some components from the
irradiance grids.
Pull Request: https://projects.blender.org/blender/blender/pulls/110838