Commit Graph

110767 Commits

Author SHA1 Message Date
Falk David
2c773ce857 Fix: GPv3: Draw Tool: First point too large when using angle factor
The first point was always set to the brush radius, even when the
angle setting was used. Additionally, the approximation for the
pen direction started at (0, 0).

This fixes the issue by overwriting the radius of the first point
once we get the first extension sample and with that the first
approximation of the pen direction.
The pen direction is also set to the initial direction from the
first to the second point.
2024-06-26 13:51:18 +02:00
Falk David
c3b5a889bd Cleanup: GPv3: Draw Tool: Remove unnecessary lambdas 2024-06-26 11:13:56 +02:00
Falk David
db25962c27 Cleanup: GPv3: Draw Tool: Use math::numbers::pi 2024-06-26 11:13:17 +02:00
Falk David
8748225d58 GPv3: Draw Tool: Random Color
This implements the random color option from GPv2.

Now uses a perlin noise instead of the hash based noise
from before.

Pull Request: https://projects.blender.org/blender/blender/pulls/123746
2024-06-26 11:00:50 +02:00
Sergey Sharybin
4a37e8ed7b Merge branch 'blender-v4.2-release' 2024-06-26 09:59:31 +02:00
Sergey Sharybin
0081c4b64a Fix #123576: VSE Crash: Preview render fails if two Scene strips are stacked
The issue was caused by the ImBuf of the scene strip render sharing the float
buffer pixels with the ImBuf from the render result. If the render result is
ever gets freed (i.e., by a request to perform another render) it'll leave the
strip ImBuf pointing to a freed memory.

This was caused by the #109788.

The simple solution is to restore the code to the state prior to the ImBuf
refactor in the RenderRsult. A better solution would be to use implicit
sharing, similar to how it was done in the #108045.

Pull Request: https://projects.blender.org/blender/blender/pulls/123731
2024-06-26 09:58:46 +02:00
Lukas Tönne
be3942e5de Merge branch 'blender-v4.2-release' 2024-06-26 09:52:02 +02:00
Lukas Tönne
864d701083 Fix #123705: Object Info node is not setting Transform output
This was simply missing in the Object Info node.

Pull Request: https://projects.blender.org/blender/blender/pulls/123709
2024-06-26 09:50:52 +02:00
Omar Emara
58f19f41ce Fix: EEVEE displays wrong pass if Cryptomatte is enabled
EEVEE displays the Cryptomatte false color if the Cryptomatte passes are
enabled in the viewport, even if the display pass is set to something
else. This problem doesn't really trigger at the moment, because
Cryptomatte passes can't be enabled in the viewport unless the display
pass is set to Cryptomatte. But the issue triggers in case of multi-pass
compositing as in #123378.

This is caused by unconditional write to the fragment color in the film
shader in case of Cryptomatte. To fix this, we only write the fragment
color if the display storage type is Cryptomatte.

Needed by #123378.

Pull Request: https://projects.blender.org/blender/blender/pulls/123723
2024-06-26 08:44:43 +02:00
Campbell Barton
66e422f33d Merge branch 'blender-v4.2-release' 2024-06-26 14:27:40 +10:00
Campbell Barton
8b3ec86561 Merge branch 'blender-v4.2-release' 2024-06-26 14:27:38 +10:00
Campbell Barton
96906536db Extensions: add a Python API for user editable extension directories
Provide a convenient way to access a writable directory for extensions.
This will typically be accessed via:

  bpy.utils.extension_path_user(__package__, create=True)

This API is provided as some extensions on extensions.blender.org
are writing into the extensions own directory which is error prone:

- The extensions own directory is removed when upgrading.
- Users may not have write access to the extensions directory,
  especially with "System" repositories which may be on shared network
  drives for example.

These directories are only removed when:

- Uninstalling the extension.
- Removing the repository and its files.
2024-06-26 14:23:17 +10:00
Campbell Barton
f5aaee39d2 Extensions: prevent recursive file removal for corrupt repositories
When removing a repository & files a valid module name was assumed.
While this should always be the case, add an additional check so in
the unlikely event of memory/file corruption (especially `..`)
recursively removing files outside the repository is never allowed.
2024-06-26 14:22:21 +10:00
Richard Antalik
44bc433ed4 VSE: Copy channels when making meta strip
Copy channel name and flags from parent channels.
Only channels used by strips will be copied.

Pull Request: https://projects.blender.org/blender/blender/pulls/123073
2024-06-26 06:10:14 +02:00
Harley Acheson
1d47e3276b UI: File Browser Thumbnail View SVG Icons
Use the new SVG Icons for large document and folder images when in
thumbnail view in File Browser.

Pull Request: https://projects.blender.org/blender/blender/pulls/123754
2024-06-26 04:16:27 +02:00
Hans Goudey
5998bab73f Cleanup: Sculpt: Remove unused PBVH is_drawing variable
The value was set and transfered to `MeshBatchCache`but never
actually used. Even then, this is clearly not a good solution to the
problem the comments mentioned. If that happens if would be
better to solve it in a different way.
2024-06-25 21:51:20 -04:00
Hans Goudey
9b9ed0a76d Refactor: Sculpt: Remove corner_tris reference from PBVH
Part of #118145.
2024-06-25 21:33:20 -04:00
Hans Goudey
59d6eae116 Sculpt: Reuse existing mesh triangles cache in sculpt mode
Addresses #121240.
Instead of allocating a new array and recalculating mesh triangulation
every time the user enters sculpt mode, reuse the mesh's existing cache.
Currently in order to avoid recalculating triangulation on every brush update
(which would typically be necessary because the triangulation direction
depends on vertex positions), add a mechanism to "freeze" the cache to
skip recalculations until the user exits sculpt mode. That even avoids
recalculation if vertex positions aren't affected. This is necessary because
we can't use the cache in a dirty state; tagging the cache dirty frees the
triangulation array.

Removing the duplicate triangles array reduces memory usage by 384 MB
in a 16 million vertex sculpt, and makes entering sculpt mode 125ms faster
(tested on a Ryzen 7840u).

In the long term, I hope we find a different solution that's a bit more
transparent and hopefully more integrated with the caching system
in general. In the meantime, this is a relatively safe low impact change
that helps document the needs for such a system anyway.

Pull Request: https://projects.blender.org/blender/blender/pulls/123638
2024-06-26 03:04:50 +02:00
Campbell Barton
06ccf0c338 Merge branch 'blender-v4.2-release' 2024-06-26 10:27:58 +10:00
Campbell Barton
906dfdfb67 Merge branch 'blender-v4.2-release' 2024-06-26 10:27:55 +10:00
Andrej730
fcad7e7d2b Fix mathutils array parsing exception message
Error in exception message when the argument doesn't meet the sequence
length requirement.

Ref: !123748
2024-06-26 10:25:56 +10:00
Mangal Kushwah
30ad15c01c Fix: #123349 Incorrect initialization of face sets by material
Changes the way the face set index generated for intialize by material.
In current implementation face set index is generated by adding 1 to
material index. In most cases it'll work fine. But in some cases hidden
face sets and material face sets can have same index.

Pull Request: https://projects.blender.org/blender/blender/pulls/123465
2024-06-26 02:22:16 +02:00
Harley Acheson
983b0b6182 UI: Converting SVG Icons to Bitmaps
On rare occassions we need to turn an icon into a bitmap rather than
just draw it. For example, File Browser needs the bitmaps of the large
folder and file icons for use while dragging list items. This PR just
adds functions for this conversion from cached glyphs, and then uses
them to load the gSpecialFileImages "prv" icons so we no longer have
to include these in an embedded PNG file.

Pull Request: https://projects.blender.org/blender/blender/pulls/123749
2024-06-26 00:12:23 +02:00
Miguel Pozo
840457c45c Merge branch 'blender-v4.2-release' 2024-06-25 19:53:33 +02:00
Miguel Pozo
066619e1a8 Fix: GPU: GLStorageBuf::async_flush_to_host non named path
Fix the read parameter when there's no direct_state_access_support.
2024-06-25 19:52:39 +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
Miguel Pozo
42e015e77c Merge branch 'blender-v4.2-release' 2024-06-25 17:59:08 +02:00
Miguel Pozo
9b61673b46 Fix: EEVEE: Add missing view bind
Seems to fix #123413
2024-06-25 17:58:21 +02:00
Bastien Montagne
fa2c7ccdda Fix (unreported) memleak in some BKE tests in multi-binaries case.
Some tests would access system paths somehow, which implicitely creates
the static `m_systemPaths` variable, but would not explicitely call
`GHOST_DisposeSystemPaths` at the end to release it.

Noticeable when disabling the `WITH_TESTS_SINGLE_BINARY` option.
2024-06-25 17:51:31 +02:00
Bastien Montagne
b53ae4745c Merge branch 'blender-v4.2-release' 2024-06-25 16:43:23 +02:00
Bastien Montagne
fccdfa2b06 Fix (unreported) missing IDTypes init in lib_remapper tests.
This is usualy hidden it'd seem by the `WITH_TESTS_SINGLE_BINARY`
option.
2024-06-25 16:42:30 +02:00
Miguel Pozo
17ba53f605 Merge branch 'blender-v4.2-release' 2024-06-25 16:10:51 +02:00
Miguel Pozo
b8587c96ec Fix #120628: Transfer mode overlay flickering artifacts
Clear depth from Workbench when overlays are disabled.
Disable alpha blend and enable depth testing in the transfer mode
overlay so it works without a previously rendered depth buffer.

Pull Request: https://projects.blender.org/blender/blender/pulls/123729
2024-06-25 16:09:06 +02:00
Falk David
451212a4fb Fix: Error when building without experimental features
The `rna_grease_pencil.cc` file should now always be in `DEFSRC`
even if `WITH_EXPERIMENTAL_FEATURES` is not set.
2024-06-25 16:03:41 +02:00
Miguel Pozo
b855cd7bb0 Merge branch 'blender-v4.2-release' 2024-06-25 15:57:11 +02:00
Miguel Pozo
f16cf49c8a Cleanup: EEVEE: Clarify Jitter Camera tooltip 2024-06-25 15:56:51 +02:00
Omar Emara
f1134ce0b7 Merge branch 'blender-v4.2-release' 2024-06-25 16:40:44 +03:00
Omar Emara
f19a9e9b4d Fix #123607: Plane Track Deform produces wrong output
The Plane Track Deform node produces wrong outputs in the GPU compositor
in case the input size was different from the movie size. That's because
the coordinates were normalized based on the input size, while they
should be normalized based on the output size, which is what this
patches does.
2024-06-25 16:37:18 +03:00
Jeroen Bakker
ee0b7b9a95 Vulken: Mix array aspect of image views
The image views type can change depending based on how they are bound
to shaders. When a shader accesses a view without array operations,
the image view should not be an array. This was previously ignored.

Pull Request: https://projects.blender.org/blender/blender/pulls/123726
2024-06-25 15:15:18 +02:00
Dalai Felinto
583ad3460a UI: Extensions: Changes on the Preferences Tabs
The goal of these changes was to make the distinction between Extensions
and add-ons more clear.

* Extensions -> Get Extensions
* Separate Get Extensions from Add-ons and Themes
* Add Tooltip for Get Extensions, Add-ons and Themes

Co-authors:
* Pablo Vazquez <pablo@blender.org>
* Brecht Van Lommel <brecht@blender.org>
2024-06-25 15:14:04 +02:00
Dalai Felinto
8ee43f34be UI: Simplify tooltip for the preferences active section 2024-06-25 15:13:50 +02:00
Falk David
56566515d4 GPv3: Update default brush settings
This updates the settings in `BKE_gpencil_brush_preset_set`
to better match the behavior of the brushes in GPv2.

Changes:
* Use a default spacing of 100%. Only the airbrush and the rough pencil need a lower spacing (higher density).
* Use the pen pressure setting for the radius.
* Update the `draw_angle_factor` for the marker chisel.
2024-06-25 14:34:50 +02:00
Sybren A. Stüvel
e067b11c3c Anim: add non-const version of animrig::fcurves_all(action)
To avoid code duplication between the const and non-const versions, use
a static function with lotsa template arguments.

Pull Request: https://projects.blender.org/blender/blender/pulls/123722
2024-06-25 14:26:11 +02:00
Nathan Vegdahl
fb0f409237 Fix #123716: autokeying Shape Key fields does not work
The issue had essentially the same origin as #123538 (fixed
in #123719), but in the autokeying code. The autokeying code was
already fully resolving the RNA path to be relative to the owning
ID, but the RNA pointer getting passed with that fully-resolved path
to the keying code was the struct for the not-fully-resolved path.

This fixes it by simply passing the RNA pointer for the owning ID
rather than the struct being keyed.

Pull Request: https://projects.blender.org/blender/blender/pulls/123721
2024-06-25 14:21:02 +02:00
Nathan Vegdahl
38f889d07a Fix #123538: Crossfade sounds sets volume to 0
The issue was that the Python keyframing code was already resolving the
RNA path fully to the owning ID, but then erroneously passing the
non-ID RNA pointer (in this case the sound sequence pointer) to the
keyframing code with that fully resolved path.

Notably, it wasn't just the VSE keyframing that was broken: keying any
non-ID structs via the Python API was broken. A good example is pose
bones: the Python keyframing code was resolving e.g. "location" on
the bone to "pose.bones["Bone"].location", but then passing that
path along with the pose bone struct to the keyframing code.  Since
that fully resolved path of course doesn't exist on the bone itself,
keying would fail.

This fixes it by simply passing the owning ID's RNA pointer instead,
which it should have been doing in the first place.

Pull Request: https://projects.blender.org/blender/blender/pulls/123719
2024-06-25 14:16:55 +02:00
Nathan Vegdahl
2034884a81 Anim: make auto-keying in shapekey anim editor work for layered actions
It previously used duplicated, bespoke code to do the keyframing, and therefore
still only worked with legacy actions.

This makes it use the same keyframing function as everything else, making it
naturally work with layered actions as well.  There should be no functional
changes for legacy actions.

Pull Request: https://projects.blender.org/blender/blender/pulls/123673
2024-06-25 14:15:23 +02:00
Falk David
5685ec5952 GPv3: Draw Tool: Use brush strength for fill opacity
Makes sure the the brush strength is used to write to
the fill opacity.

The conditions for what attribute to skip when copying
previous data from the curves geometry was getting a bit
complicated so this part got refactored.
2024-06-25 14:02:38 +02:00
Campbell Barton
4915e6dc83 Merge branch 'blender-v4.2-release' 2024-06-25 21:54:09 +10:00
Falk David
88387e3a82 GPv3: Draw Tool: Randomize radius and opacity
This adds the randomization options for radius and opacity (strength).

Instead of pure white noise (like in GPv2) this uses perlin noise to make
the effect less jagged. The scale of the noise (in screen space) is
hardcoded to roughly fit GPv2. It could be exposed as a setting in the
future to get noise that changes slower/faster along the stroke.

Pull Request: https://projects.blender.org/blender/blender/pulls/123715
2024-06-25 12:13:21 +02:00
Jeroen Bakker
fa39948602 Fix #123583: Facesets not visible in EEVEE
Facesets overlay used a depth equal test, which isn't supported by
EEVEE.

Pull Request: https://projects.blender.org/blender/blender/pulls/123714
2024-06-25 11:17:19 +02:00