Commit Graph

1398 Commits

Author SHA1 Message Date
Richard Antalik
c8b736659b Merge branch 'blender-v4.2-release' 2024-06-28 17:12:57 +02:00
Richard Antalik
1a887c06d9 Fix #123543: Delete retiming keys deletes strip
Delete operator was shared for strips and retiming keys, which was not
ideal. Operator logic relied on invoke function setting proper context
which was also hidden from users.

Split these operators and make dedicated operators for removing retiming
keys - `SEQUENCER_OT_retiming_key_delete`.
This operator returns `OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH` if
executed in non-retiming context, or no key is selected.

Pull Request: https://projects.blender.org/blender/blender/pulls/123767
2024-06-28 17:06:44 +02:00
Christoph Lendenfeld
5427775fef Anim: Theme entry for time visualization
This patch adds two theme entries for data before/after the current frame.
Those entries control what color to use when displaying
reference data from a different point in time (motion path, onion skins).

They are under the `3D Viewport` section of the theme in the user preferences.

## User Facing Changes

### Grease Pencil

When `Custom Colors` is disabled it will now use the theme instead of the layer default color.
Currently this setting is enabled by default. Disable it to get Blender to use the theme.

### Motion Path
If Custom Color is disabled, read from the Theme.

### Annotations
If onion skin is enabled, and custom onion skin colors is disabled, read from the theme.

**Grease Pencil**
* previously the color used for onion skinning (without custom colors) was `U.gpencil_new_layer_col`. This is used in other places as well so it cannot be removed with this PR
* By default, custom colors are enabled with Grease Pencil objects. I specifically did **not** change that with this PR. I will instead let the GP module handle that on their terms.

This PR has been discussed in the Grease Pencil module meeting
https://devtalk.blender.org/t/2024-05-21-grease-pencil-module-meeting/34755#meeting-notes-2
and in the A&R module meeting
https://devtalk.blender.org/t/2024-05-24-animation-rigging-module-meeting/34813#patches-review-decision-time-4

Pull Request: https://projects.blender.org/blender/blender/pulls/120558
2024-06-28 14:59:41 +02:00
Lukas Stockner
6967255906 Color management: Support white balance as part of the display transform
This implements a von-Kries-style chromatic adaption using the Bradford matrix.
The adaption is performed in scene linear space in the OCIO GLSL shader, with
the matrix being computed on the host.

The parameters specify the white point of the input, which is to be mapped to
the white point of the scene linear space. The main parameter is temperature,
specified in Kelvin, which defines the blackbody spectrum that is used as the
input white point. Additionally, a tint parameter can be used to shift the
white point away from pure blackbody spectra (e.g. to match a D illuminant).

The defaults are set to match D65 so there is no immediate color shift when
enabling the option. Tint = 10 is needed since the D-series illuminants aren't
perfect blackbody emitters.

As an alternative to manually specifying the values, there's also a color
picker. When a color is selected, temperature and tint are set such that this
color ends up being balanced to white.
This only works if the color is close enough to a blackbody emitter -
specifically, for tint values within +-150. Beyond this, there can be ambiguity
in the representation.
Currently, in this case, the input is just ignored and temperature/tint aren't
changed. Ideally, we'd eventually give UI feedback for this.

Presets are supported, and all the CIE standard illuminants are included.

One part that I'm not quite happy with is that the tint parameter starts to
give weird results at moderate values when the temperature is low.
The reason for this can be seen here:
https://commons.wikimedia.org/wiki/File:Planckian-locus.png
Tint is moving along the isotherm lines (with the plot corresponding to +-150),
but below 4000K some of that range is outside of the gamut. Not much can
be done there, other than possibly clipping those values...

Adding support for this to the compositor should be quite easy and is planned
as a next step.

Pull Request: https://projects.blender.org/blender/blender/pulls/123278
2024-06-27 23:27:58 +02:00
Campbell Barton
f1bfaaf2f7 Merge branch 'blender-v4.2-release' 2024-06-27 21:26:23 +10:00
Campbell Barton
42e1239ba8 Core: support restricting the types an XML preset may load
Prevent potential problems from untrusted XML (typically themes)
traversing into data outside the intended targets.

From what I can tell it's not currently possible but changes to RNA
could allow for this which would likely go by unnoticed.

Further details in code-comments.
2024-06-27 21:21:07 +10:00
Philipp Oeser
77f874ae1d Fix #123782: Asset Browser does not show tags for active asset
Caused by a6ed013baa

Tags live on the `AssetMetaData` of an `AssetRepresentation` (so
`metadata` in py),
`asset_data`(also pointing to `AssetMetaData`) is a member of
`FileSelectEntry` only [which the above commit tried to get rid off...]

Pull Request: https://projects.blender.org/blender/blender/pulls/123818
2024-06-27 10:57:33 +02:00
Sean Kim
9d4d1aea98 Sculpt: Add stroke stabilization to lasso tools
This PR adds stroke stabilization settings for the Sculpt mode lasso
tools:
* Mask
* Hide
* Trim
* Face Set

Only Sculpt tools have a user facing change, even though this was
implemented in `WM_gesture_lasso_modal` and related methods. Other
modes may choose to add these settings and toggles.

## Implementation
The implemented functionality is similar to the Annotate tool in both
interpolation of the new point and drawing the UI hint that
stabilization is happening.

The `radius` and `factor` properties have similar bounds as the same
Brush properties. All values are stored on a per-operator level, not on
a scene or otherwise global tool level.

Based off of [1].

[1] - https://blender.community/c/rightclickselect/ZWG5/

Pull Request: https://projects.blender.org/blender/blender/pulls/122062
2024-06-27 01:32:09 +02:00
Bastien Montagne
f6358f6e71 Merge branch 'blender-v4.2-release' 2024-06-26 19:28:22 +02:00
Damien Picard
f739d4832e I18n: Extract and disambiguate a few messages
Disambiguate
- "Thickness": use "Material" for EEVEE's thickness material setting.
- "Generated": use "Texture" for texture coordinates, "Image" for
  image source, keep default context for animation keyframe types.

Translate
- Split "Online access required to (check for|install) updates..."
  into 2x2 messages individually translatable.
- "Geometry" input in bake node.
- "New" for the Palette ID: extract it as part of the
   BLT_I18N_MSGID_MULTI_CTXT for "New".

Some issues reported by Gabriel Gazzán and Satoshi Yamasaki.

Pull Request: https://projects.blender.org/blender/blender/pulls/123404
2024-06-26 19:25:22 +02:00
Pratik Borhade
e9291548d3 Merge branch 'blender-v4.2-release' 2024-06-26 17:04:14 +05:30
Pratik Borhade
1dd017ac62 Fix #123228: GPU subdivision setting can be adjusted on an unsupported device
GPU subdivision is only supported on OpenGL backend. Exclude this
property for metal backend then.

Pull Request: https://projects.blender.org/blender/blender/pulls/123313
2024-06-26 13:31:37 +02:00
Richard Antalik
d16aa62529 Merge branch 'blender-v4.2-release' 2024-06-26 06:12:39 +02:00
Richard Antalik
2075174496 Fix #120370: Fades don't work well with scene strips
Recently, `volume` property has been added to scene strips. This causes
only volume property to be animated when adding fades with `fades_add`
operator.

Add fades to volume and opacity properties if these are available.

Pull Request: https://projects.blender.org/blender/blender/pulls/123236
2024-06-26 06:04:50 +02:00
Nika Kutsniashvili
b933d6e1c7 Fix #123586: Sequencer: Box select in Preview doesn't work after selecting it in the menu
select_box operator needs different context in preview and sequencer
regions. It wasn't specified, so it defaulted to sequencer context and
wasn't working in preview.

This PR sets poll for region and sets correct context for preview. This
also means shortcut appears on menu item in preview now.

Pull Request: https://projects.blender.org/blender/blender/pulls/123757
2024-06-26 05:54:28 +02:00
Falk David
c5e7498f89 GPv3: Draw Tool: Random Rotation
This was previously named `UV` in the UI.
Now renamed to the more appropriate `Rotation` since
it controls the random rotation of the texture on
each stroke point.

Otherwise implements the same functionality as GPv2.

Pull Request: https://projects.blender.org/blender/blender/pulls/123741
2024-06-25 19:21:13 +02:00
Omar Emara
f1134ce0b7 Merge branch 'blender-v4.2-release' 2024-06-25 16:40:44 +03:00
Dalai Felinto
dd7cc11796 Extensions: Link to visit the extensions platform 2024-06-25 15:13:50 +02:00
Dalai Felinto
33a7cf8c49 Translations: blender.org should not be translatable 2024-06-25 15:13:50 +02:00
Thomas Dinges
56fdfe5793 Fix typo in VSE / Movieclip strip type. 2024-06-25 12:37:43 +02:00
Falk David
d29d410a2f GPv3: Draw Tool: Show "Cursor" menu
Show the "Cursor" menu in the view3d header an side panel.
2024-06-25 12:14:15 +02:00
Pratik Borhade
bba375c785 GPv3: Sculpt Advanced panel is displayed empty
Only smooth and randomize brush has properties in advanced panel. For
others, panel is empty. Include condition in poll function to skip
drawing of "advanced" panel for rest brushes

Resolves #123536

Pull Request: https://projects.blender.org/blender/blender/pulls/123549
2024-06-24 13:54:54 +02:00
YimingWu
8c647e7108 Fix #123396: GPencil: Show brush options for GPv3
Some brush options aren't shown in GPv3. Now fixed.

Pull Request: https://projects.blender.org/blender/blender/pulls/123412
2024-06-24 13:47:02 +02:00
Pratik Borhade
6c2ffc526c GPv3: Copy layers to selected operator
Port `GPENCIL_OT_layer_duplicate_object` operator to new structure.
New function created to duplicate layer and its frames. This could also
be used in duplicate_layer operator later.

Part of #110056

Pull Request: https://projects.blender.org/blender/blender/pulls/123366
2024-06-23 07:42:15 +02:00
Campbell Barton
732a246cc0 Merge branch 'blender-v4.2-release' 2024-06-23 14:50:09 +10:00
Campbell Barton
485a4dbf0f Extensions: order "System" repositories last
The default "System" repository which was ordered before "User Default",
order system repositories last as these are a special case many users
won't touch.
2024-06-23 14:43:31 +10:00
Campbell Barton
278aa84218 Merge branch 'blender-v4.2-release' 2024-06-23 13:02:18 +10:00
Campbell Barton
c78adfc698 Extensions: use str.casefold for case insensitive search
`str.casefold` is intended for case insensitive string matching and
finds more matches with some unicode characters.
2024-06-23 12:57:08 +10:00
Campbell Barton
bfd999401f Merge branch 'blender-v4.2-release' 2024-06-21 11:37:32 +10:00
Campbell Barton
38e25d7838 UI: tweaks to extension & addon items
- Use line separator over box instead of separate boxes.
- Format web-links with a label, then the button instead
  of positioning the buttons side-by-side.

Changes by Brecht with minor edits (see !123420).

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
2024-06-21 11:34:10 +10:00
Campbell Barton
8b9cf02ce9 Merge branch 'blender-v4.2-release' 2024-06-21 10:53:08 +10:00
Campbell Barton
72ef03d5a1 Extensions: split add-ons & extensions into separate preferences
Add back the "Add-ons" preferences, removing add-on logic from
extensions.

- Add support for filtering add-ons by tags
  (separate from extension tags).
- Tags now respect the "Only Enabled" option.
- Remove the ability to enable/disable add-ons from extensions.
- Remove add-on preferences from extensions.
- Remove "Legacy" & "Core" prefix from add-on names.
- Remove "Show Legacy Add-ons" filtering option.

Implements design task #122735.

Details:

- Add-on names and descriptions are no longer translated,
  since it's impractical to translate text which is mostly
  maintained outside of Blender.
- Extensions names have a `[disabled]` suffix when disabled so it's
  possible to identify installed but disabled extensions.
- The add-on "type" is shown in the details,
  so it's possible to tell the difference between an extension,
  a core add-on & a legacy user add-on.
- Icons are also used to differentiate the add-on type.
- User add-on's must be uninstalled from the add-ons section
  (matching 4.1 behavior).
- Simplify logic for filtering tags, move into a function.
2024-06-21 10:42:53 +10:00
Harley Acheson
9c4e56e307 UI: Move Save Incremental Menu Item Down
Move "Save Incremental" down the File menu to the bottom of its
section.

Pull Request: https://projects.blender.org/blender/blender/pulls/123463
2024-06-20 18:14:04 +02:00
Pratik Borhade
c49bbb978a Fix: GPv3: Assert opening overlay panel in sculpt mode
Assert is due to wrong bounds passed to `std::clamp`. There seems no
error in UI code, instead this occurs due to `layout.label()`. It
returns an error due to missing case of `SCULPT_GREASE_PENCIL`. Due to
the error, panel is not generated with properties and the `rect-> min/max`
remained short enough to trigger assert

Pull Request: https://projects.blender.org/blender/blender/pulls/123478
2024-06-20 13:32:39 +02:00
Omar Emara
4f51033708 Nodes: Implement Gabor noise
This patch implements a new Gabor noise node based on [1] but with the
improvements from [2] and the phasor formulation from [3].

We compare with the most popular existing implementation, that of OSL,
from the user's point of view:

  - This implementation produces C1 continuous noise as opposed to the
    non continuous OSL implementation, so it can be used for bump
    mapping and is generally smother. This is achieved by windowing the
    Gabor kernel using a Hann window.

  - The Bandwidth input of OSL was hard-coded to 1 and was replaced with
    a frequency input, which OSL hard codes to 2, since frequency is
    more natural to control. This is even more true now that that Gabor
    kernel is windowed as opposed to truncated, which means increasing
    the bandwidth will just turn the Gaussian component of the Gabor
    into a Hann window. While decreasing the bandwidth will eliminate
    the harmonic from the Gabor kernel, which is the point of Gabor
    noise.

  - OSL had three discrete modes of operation for orienting the kernel.
    Anisotropic, Isotropic, and a hybrid mode. While this implementation
    provides a continuous Anisotropy parameter which users are already
    familiar with from the Glossy BSDF node.

  - This implementation provides not just the Gabor noise value, but
    also its phase and intensity components. The Gabor noise value is
    basically sin(phase) * intensity, but the phase is arguably more
    useful since it does not suffer from the low contrast issues that
    Gabor suffers from. While the intensity is useful to hide the
    singularities in the phase.

  - This implementation converges faster that OSL's relative to the
    impulse count, so we fix the impulses count to 8 for simplicitly.

  - This implementation does not implement anisotropic filtering.

Future improvements to the node includes implementing surface noise and
filtering. As well as extending the spectral control of the noise,
either by providing specialized kernels as was done in #110802, or by
providing some more procedural control over the frequencies of the
Gabor.

References:

[1]: Lagae, Ares, et al. "Procedural noise using sparse Gabor
convolution." ACM Transactions on Graphics (TOG) 28.3 (2009): 1-10.

[2]: Tavernier, Vincent, et al. "Making gabor noise fast and
normalized." Eurographics 2019-40th Annual Conference of the European
Association for Computer Graphics. 2019.

[3]: Tricard, Thibault, et al. "Procedural phasor noise." ACM
Transactions on Graphics (TOG) 38.4 (2019): 1-13.

Pull Request: https://projects.blender.org/blender/blender/pulls/121820
2024-06-19 09:33:32 +02:00
Campbell Barton
df78d23f93 Merge branch 'blender-v4.2-release' 2024-06-19 16:01:53 +10:00
Campbell Barton
6eb2b5f47b Fix local extension errors being shown as remote errors
Also fix error with non extension add-on display by removing
an exception for extensions which is no longer needed.
2024-06-19 15:58:45 +10:00
Brecht Van Lommel
a26fd603b0 Merge branch 'blender-v4.2-release' 2024-06-18 21:19:24 +02:00
Nathan Vegdahl
295df94478 Anim: add "legacy behavior" option to Limit Rotation constraint
This adds a "Legacy Behavior" option to the Limit Rotation constraint that makes
it behave how Limit Rotation constraints did prior to
ed2408400d. Newly created constraints have this
option disabled, but versioning code enables the option on constraints from
older files to ensure that the behavior of e.g. existing rigs is not altered.

This is one part of a two-part fix for #123105. The other part is in PR
extensions/rigify#4.

Pull Request: https://projects.blender.org/blender/blender/pulls/123361
2024-06-18 18:29:25 +02:00
Pablo Vazquez
6684504d4f UI: Rename "Strip Colors" panel in theme editor
Rename to "Strip Color Tags" to match how these are called throughout
menus and overlay popover.
2024-06-18 16:13:28 +02:00
Nika Kutsniashvili
2aa388a5f2 UI: Correct alignment for active tool properties
Fix some active tools properties panel that didn't follow Blender's UI guidelines.
Only cosmetic changes, no functionality has changed.

Images and details in the pull request description.

Pull Request: https://projects.blender.org/blender/blender/pulls/122819
2024-06-17 15:38:13 +02:00
Casey Bianco-Davis
3b5cdbad6b GPv3: Add Set Handle Type operator
Adds the ability to change the handle types of points,
this only applies for curves with type bézier.

Pull Request: https://projects.blender.org/blender/blender/pulls/122965
2024-06-17 14:04:04 +02:00
Casey Bianco-Davis
d63b1dd178 GPv3: Add Set Curve Type operator.
Adds the ability to change the curve type of selected strokes.

First steps toward #121574.

Note: Currently there is no way to visually notice any change. This
will be added in subsequent commits.
Pull Request: https://projects.blender.org/blender/blender/pulls/122964
2024-06-17 13:56:13 +02:00
Falk David
10af923eac Grease Pencil: Move GPv3 out of experimental
This removes the experimental flags related to the GPv3 project.

Note that this doesn't remove GPv2 code just yet.
It just exposes GPv3 by default now.

Pull Request: https://projects.blender.org/blender/blender/pulls/122723
2024-06-17 13:50:41 +02:00
Jeroen Bakker
f8d95401d9 Merge branch 'blender-v4.2-release' 2024-06-17 09:37:12 +02:00
Jeroen Bakker
52d72d9fbb Fix #122847: Show Transparent Render Pass
EEVEE has a transparent render pass that renders materials where
the render mode is set to blended. This was introduced when EEVEE-Next
was still in development, but was never fully backported.

This PR adds the missing pieces.

Pull Request: https://projects.blender.org/blender/blender/pulls/123298
2024-06-17 09:35:03 +02:00
Campbell Barton
ed1e3d1c1f Merge branch 'blender-v4.2-release' 2024-06-15 18:43:33 +10:00
Miguel Pozo
a11d3c6c01 EEVEE: Add Ray Visibility > Camera support
FIx #122980.

Pull Request: https://projects.blender.org/blender/blender/pulls/123248
2024-06-15 08:54:20 +02:00
Richard Antalik
6079b16d52 VSE: Add movie clip panel
This moves move clip related properties to own movie clip panel as it
is done with other strip types that uses other datablocks. The clip
property is added to RNA, so this can be added to the panel.

Requested in #120357
2024-06-14 18:00:13 +02:00
Campbell Barton
e0bdb74d8d Merge branch 'blender-v4.2-release' 2024-06-14 15:46:24 +10:00