Commit Graph

93849 Commits

Author SHA1 Message Date
Hans Goudey
2ba2efc296 Cleanup: Simplify arguments to sculpt draw functions
Instead of passing pointers to specific mesh data, rely on
retrieving that data from the mesh internally. This makes
it easier to support retrieving additional data from Mesh
(like active attribute names in D15101 or D15169). It also makes
the functions simpler conceptually, because they're drawing
a mesh with an acceleration strcture on top.

The BKE_id_attribute_copy_domains_temp call was unnecessary
because the GPU_pbvh_mesh_buffers_update function was only
called when Mesh/PBVH_FACES is used in the first place.

Differential Revision: https://developer.blender.org/D15197
2022-08-02 13:32:45 -05:00
Aras Pranckevicius
5ddaf2fa7b Merge branch 'blender-v3.3-release' 2022-08-02 21:01:54 +03:00
Aras Pranckevicius
ead8260a49 Object: move collection resync after empty duplicate early-out
As pointed out in rB02b1a209be88 comment, the BKE_main_collection_sync
should be after "nothing to duplicate" early-out.
2022-08-02 21:01:25 +03:00
Sebastian Parborg
b010985e4a Fix T99255: Strips inserting incorrectly
When dropping file to sequencer timeline, coordinates for strip position
and overlap handling are used even if not set.

Reset internal state in on_drag_start callback and set is_modal
variable only if coordinates are updated. This way when dragging file
from external file browser, strip is added at current frame as before
modal operator was implemented.

Reviewed By: Richard Antalik

Differential Revision: http://developer.blender.org/D15333
2022-08-02 19:36:42 +02:00
Hans Goudey
2d4498e457 Merge branch 'blender-v3.3-release' 2022-08-02 11:11:20 -05:00
Hans Goudey
efe0e2b183 Fix T96810: Invalid sculpt normals after some operations
Mask and color brushes were using the existing PBVH vertex "update tag"
to mark their modifications. This was mostly unnecessary, and causes
unnecessary calculation of normals. It also caused errors though,
because they didn't tag the corresponding PBVH node for normal
recalculation, causing problems on the borders of nodes, since one
node might accumulate into another's vertex normals, but the other
node wouldn't also accumulate and normalize the normals.

The solution is to only use the update tag for tagging deformed
vertices that need recalculated normals. Everything else is handled at
the PBVH node level (which was already the case, but it wasn't clear).

The update tag was also used for undo to tag the nodes corresponding to
changed vertices. This was wrong though, because normals and visibility
would also be recalculated for just color or mask undo steps. Instead,
just use local arrays to map from vertices to nodes.

Differential Revision: https://developer.blender.org/D15581
2022-08-02 11:00:57 -05:00
Richard Antalik
ac9d9c993a Merge branch 'blender-v3.3-release' 2022-08-02 17:57:12 +02:00
Richard Antalik
97b226ac51 Fix T100049: Crash when render finishes
Caused by NULL dereference of `Editing` before NULL check was done.
2022-08-02 17:52:40 +02:00
Antonio Vazquez
09ac5f97a7 GPencil: Fix compiler warning
The variable can never be NULL and the comparison was wrong.
2022-08-02 17:03:33 +02:00
Hans Goudey
dadfdc8226 Merge branch 'blender-v3.3-release' 2022-08-02 09:51:08 -05:00
Hans Goudey
d3eef4d22a Fix: Use evaluated materials in OBJ exporter
Since 1a81d268a1, materials on object data can change during
evaluation. But a different function is necessary to retrieve materials
taking that into account.

Solves part of T96721.

Differential Revision: https://developer.blender.org/D15595
2022-08-02 09:49:51 -05:00
Bastien Montagne
84aa8b85a2 Merge branch 'blender-v3.3-release' 2022-08-02 15:07:54 +02:00
Bastien Montagne
e4dd644d6b LibOverride: Add 'editable/clear' toggle to ID template.
Now when an ID template is set to an override ID, `Shift-Click` on the
right button toggles between making it user-editable (if it's a system
override), or clearing any user edit and setting it back to system override.
2022-08-02 15:07:33 +02:00
Bastien Montagne
2a7e83ce18 LibOverride: Expose in public API the utils to get actual override data.
This is useful when input ID is a 'non-override' one (like embedded IDs
or shapekeys), to get override data and 'owner' ID pointer.
2022-08-02 15:07:33 +02:00
Sergey Sharybin
588791df63 Fix compilation error after recent DNA changes
Apparently, Clang allows to specify underlying enum type in C
but onot GCC. The latter one is actually closer to the standard.
2022-08-02 14:15:53 +02:00
Jeroen Bakker
4e2af28bc7 Merge branch 'blender-v3.3-release' 2022-08-02 13:42:14 +02:00
Jeroen Bakker
78ad9ebed3 Fix T99715: Only force optimal display during on cage editing.
This loosens the current implementation a bit to only force optimal
display when editing on cage. It used to be any editing mode.

Brings GPU based subdivision closer to the CPU version.
2022-08-02 13:38:34 +02:00
Bastien Montagne
33e4ecc750 Merge branch 'blender-v3.3-release' 2022-08-02 12:55:29 +02:00
Bastien Montagne
33d0b7c5bd Fix T100133: Crash when linking an evaluated object to a collection.
Note that ideally, we should have a protection mechnism at global RNA
level, making e.g. any evaluated data read-only... But for now, give
better (and more consistent) protection for the collections' link/unlink
of children collections  and objects.
2022-08-02 12:54:08 +02:00
Amelie Fondevilla
fdf34666f0 Fix Unreported : add F-curves only filter to functions only appliable to F-curves channels.
The filter was missing in some places that are using channel data as if it was f-curve channel.
There seems to be no related issue or bug, but still it would be best to have them there.

Reviewed By: sybren

Differential Revision: http://developer.blender.org/D15505
2022-08-02 12:27:53 +02:00
Sergey Sharybin
bb7747e7ca Fix undefined behavior in dependency graph tagging
The tagging code was iterating over bits set in the ID_RECALC_ALL and
was casting the flag to IDRecalcFlag. This was triggering an undefined
behavior warning in Clang since the bit might not have a corresponding
value in the enumerator.

The solution is to pre-define all reacalc flags for all bits. While
this seems a bit annoying this seems to be the least fragile solution
from all suggested ones.

Differential Revision: https://developer.blender.org/D15602
2022-08-02 11:50:54 +02:00
Sergey Sharybin
1c90ab7bf2 Depsgraph: Make naming and recalc flag sign consistent
Always use unsigned int for the recalc flags. This allows to use
all 32 bit of integer for the flags without worrying about the
sign. Use full notation of `unsigned int` instead of short `uint`
to avoid pulling more headers in.

Whenever depsgraph API allows passing combined recalc flags call
the variable `flags` and use `unsigned int` type for it. For a
single flag use `IDRecalcFlag` flag.

No functional changes expected.
2022-08-02 11:38:16 +02:00
Antonio Vazquez
670ced9758 GPencil: Allow import several SVG at time
For SVG is very convenient to be able to import several SVG in one operation. Each SVG is imported as a new Grease Pencil object.

Also, now the SVG file name is used as Object name.

Important: As all SVG imported are converted to Grease Pencil object in the same location of the 3D cursor, the SVG imported are not moved and the result may require a manual fix of location. The same is applied for depth order, the files are imported in alphabetic order according to the File list.

Reviewed By: mendio, pepeland

Differential Revision: https://developer.blender.org/D14865
2022-08-02 09:46:32 +02:00
Aras Pranckevicius
f263334529 Merge branch 'blender-v3.3-release' 2022-08-02 09:28:38 +03:00
Aras Pranckevicius
02b1a209be Fix T100118: Crash after Shift+D with nothing selected and then making new object
Regression from rB2d041fc46823, the "nothing to do, return" code path
was not re-enabling layer collection sync. Fixes T100118.
2022-08-02 09:28:17 +03:00
Chris Blackbourn
1ac956a9f9 Cleanup: simplify uv parametrizer in preparation for C++
No functional changes.

Add casts required by C++. Simplify destructors. Simplify types.
2022-08-02 10:53:16 +12:00
Hans Goudey
1dc503b33a Nodes: Remove node after link drag search cancel
Remove the node if the transform operation is cancelled rather than
confirmed. This is consistent with the regular search menu.
2022-08-01 17:03:21 -05:00
Hans Goudey
2c00889d3e Cleanup: simplify function for adding node to editor
Split it into two functions, one for static node types,
and another for ID names.
2022-08-01 16:32:43 -05:00
Aras Pranckevicius
6b6d3b86d5 Merge branch 'blender-v3.3-release' 2022-08-01 21:19:27 +03:00
Aras Pranckevicius
2542fda14d Fix T99502: OBJ/MTL import: behavior changed for missing texture files
Python based OBJ importer, as well as glTF2 importer, are creating
"placeholder" images for texture images that can't be found. These
are empty textures (displayed as magenta), but with their file paths
set so that File > External Data > Report Missing Files can report
them as missing.

Make the new C++ OBJ importer do the same as well. Fixes T99502.
2022-08-01 21:14:14 +03:00
Michael Kowalski
0fade955dd USD import: Handle material purpose
This is a partial fix for T90535.

USD allows binding materials generically as well as for a
specific purpose. I.e., purpose may be generic (unspecified)
or one of

- Full: truest representation of the scene
- Preview: lightweight material for preview

Curently, only generically bound materials, with unspecified
purpose (allPurpose), are imported. This issue is preventing
preview materials from being imported in the Alab scene.

This patch adds logic to attempt to fall back on importing
preview or full materials, in that order, if there is no
generic material bound to the mesh.

Reviewed by: Sybren

Differential Revision: https://developer.blender.org/D15352
2022-08-01 12:14:05 -04:00
Pratik Borhade
3e8bd1f6e4 Fix T100040: Crash when transform applied on multi-user image
Affected by rB8621fdb10dc4
Crash if single-user data is created when we apply transform
on multi-user image data. Crash occurs because creation of new copy
was not handled in `single_obdata_users` for empty objects (image for example)

Reviewed By: dfelinto, mont29

Maniphest Tasks: T100040

Differential Revision: https://developer.blender.org/D15587
2022-08-01 17:16:30 +02:00
Bastien Montagne
99f2b59fe6 Merge branch 'blender-v3.3-release' 2022-08-01 16:53:06 +02:00
Bastien Montagne
4d8018948d Fix T99820: missing 'no more mising' tagging on reloaded libraries.
Can be also backported to 2.93LTS.
2022-08-01 16:52:45 +02:00
Jeroen Bakker
577a2a5dbe Merge branch 'blender-v3.3-release' 2022-08-01 15:24:48 +02:00
Jeroen Bakker
f08ea76db5 GPU: Fix failing compute tests.
Tests created GPUTextures with incorrect mipmaps.
2022-08-01 15:23:53 +02:00
Jeroen Bakker
e0603f77af Merge branch 'blender-v3.3-release' 2022-08-01 15:02:31 +02:00
Jeroen Bakker
e9586b14b7 Eevee: Add support of rendering curves with cryptomatte.
There were 2 errors.
1. hair code was used to draw curves
2. vertex shader wasn't aware of curves and failed to compile.
2022-08-01 15:00:47 +02:00
Jeroen Bakker
33e5a66f67 Merge branch 'blender-v3.3-release' 2022-08-01 14:48:44 +02:00
Jeroen Bakker
55c5eb3312 Eevee: Fix compilation error in eevee-next.
Although eevee-next is disabled in Blender 3.3 there is an error that is
visible when compiling shaders using the shader builder.

This is because of an error in a preprocessing directive (defined should
be define).
2022-08-01 14:47:18 +02:00
Bastien Montagne
19a7a013ce Merge branch 'blender-v3.3-release' 2022-08-01 14:37:16 +02:00
Bastien Montagne
afd1357aa8 tweaks & fixes to UI messages. 2022-08-01 14:36:06 +02:00
Damien Picard
543b47f162 I18n: make newly added constraints' names translatable.
This is the same principle as D15418 and D15532, but this time it's
only really needed for "IK".

Nevertheless it's probably good to add them anyway in case they get
renamed and don't share a translation with other messages somewhere
else in the code, for instance if it is decided that new constraint names
shouldn’t include spaces, like other data do.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D15571
2022-08-01 14:08:53 +02:00
Damien Picard
1875c5d24c I18n: make Grease Pencil modifiers and shader FX translatable.
Pretty much like D15418: add `N_()` macro around names for
Grease Pencil modifiers and shader FX.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D15532
2022-08-01 13:58:23 +02:00
Aras Pranckevicius
0adedaa4cc Merge branch 'blender-v3.3-release' 2022-08-01 13:39:59 +03:00
Aras Pranckevicius
e2be6bc03f Fix T100076: OBJ import: new importer doesn't use //relative/image/paths
The Python based importer had logic to immediately turn image paths
into relative-to-blender-file paths, if user preference for relative
paths is used (which is on by default). The new importer code did not
have that. Fixes T100076.
2022-08-01 13:39:08 +03:00
Jeroen Bakker
3393b7137e RenderReport: Add option to add platform specific overrides.
Reference images in the reference_override_dir will be chosen before
images in reference_dir. This allows platform specific reference
images, with a common base.

Ignored when set to None. The caller is responsible
of setting the reference override dir as the unit test is more aware
what the definition of a platform is.

Patch adds `gpu.platform.device_type_get` function to get the device
type that blender has detected.

Reviewed By: brecht

Maniphest Tasks: T99046

Differential Revision: https://developer.blender.org/D15265
2022-08-01 10:57:32 +02:00
Campbell Barton
6749a4a8f0 Cleanup: missing braces warning 2022-08-01 11:02:18 +10:00
Chris Blackbourn
ca172677b1 Cleanup: simplify uv parametrizer in preparation for C++
Replace `PChart` allocation with simpler calloc/free
2022-08-01 09:46:39 +12:00
Hans Goudey
17567c235a Cleanup: Remove mesh edge "tmp tag"
Ref T95966. Also fixes modification of input mesh,
which should be considered constant.
2022-07-31 11:56:44 -05:00