Commit Graph

21009 Commits

Author SHA1 Message Date
Campbell Barton
24b8ccaa94 Cleanup: format 2022-08-30 16:22:49 +10:00
Hans Goudey
6577d2df8c Cleanup: Use const for custom data layers 2022-08-29 17:00:46 -05:00
Hans Goudey
71b660571a Sculpt: Avoid creating mask and face set when remeshing
If these layers didn't exist on the original mesh, they would be created
from scratch and transferred anyway. That is inefficient because all the
work is pointless, and because creating these layers could slow down
subsequent sculpt operations.
2022-08-29 16:55:26 -05:00
Hans Goudey
dc92c5766f Merge branch 'blender-v3.3-release' 2022-08-29 14:55:04 -05:00
Hans Goudey
b814f64f4a Fix: Broken build with OpenVDB turned off
Problem with e3a6a2f412.
2022-08-29 14:50:26 -05:00
Tom Edwards
35df9f80b9 Fix T99576: Guard against empty names when removing attributes
It's possible for misbehaving scripts written before 3.3 to reach
this state and crash Blender. With this change, the error is reduced
to a Python exception.

Differential Revision: https://developer.blender.org/D15724
2022-08-29 14:45:55 -05:00
Hans Goudey
dff15bb5bf Fix: Broken build with OpenVDB turned off
Problem with e3a6a2f412.
2022-08-29 12:12:16 -05:00
Jacques Lucke
1567dca657 Merge branch 'blender-v3.3-release' 2022-08-29 17:01:01 +02:00
Jacques Lucke
e3a6a2f412 Fix T99004: scaling volume down results in crash
OpenVDB crashes when the determinant of the grid transformation is
too small. The solution is too detect when the determinant is too small
and to replace the grid with an empty one. If possible the translation
and rotation of the grid remains unchanged.

Differential Revision: https://developer.blender.org/D15806
2022-08-29 17:00:08 +02:00
Damien Picard
9bf5c37bee I18n: translate newly created node group sockets
Translate:
- new group socket names
  - default names Input and Output
  - on connecting a link from another node
- new geometry nodes input and output socket names

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D15763
2022-08-29 14:26:10 +02:00
Alexander Gavrilov
9823a8f72b Weight Paint: use coordinates from normal evaluated mesh if same topology.
Weight and Vertex paint don't change coordinates and thus don't need
crazyspace data, which allows using coordinates from normal evaluated
meshes.

Since painting uses original topology, the deform only mesh is used,
but if the fully evaluated mesh has the same topology, it is preferred.
This is useful because not only Geometry Nodes, but even simple weight
computation modifiers are excluded from the deform only mesh evaluation.

Differential Revision: https://developer.blender.org/D15501
2022-08-29 14:10:31 +03:00
Antonio Vazquez
613b6ad9e5 GPencil: New conversion to outline in draw mode
This new option converts the stroke to outline perimeter as soon as is drawn.

If no alternative material is set, the actual material is used.

The algorithm is similar to the new operator in D15664

Reviewed By: pepeland

Differential Revision: https://developer.blender.org/D15738
2022-08-29 09:47:08 +02:00
Hans Goudey
67f3259c54 Curves: Avoid creating types array when unnecessary
When the curve type attribute doesn't exist, there is no reason to
create an array for it only to fill the default value, which will add
overhead to subsequent "add" operations. I added a "get_if_single"
method to virtual array to simplify this check. Also use the existing
functions for filling curve types.

Differential Revision: https://developer.blender.org/D15560
2022-08-28 14:33:03 -05:00
Campbell Barton
28750bcf7e Cleanup: replace NULL with nullptr for C++ files 2022-08-28 20:52:28 +10:00
Bastien Montagne
ff7a7a6f77 Merge branch 'blender-v3.3-release' 2022-08-27 09:12:14 +02:00
Bastien Montagne
f7ce20e340 Cleanup: Remove two files committed by mistake.
Committed in rB3c7a6718ddc.
2022-08-27 09:09:41 +02:00
Campbell Barton
7459c0228e Cleanup: rename filename to filepath when used for full paths 2022-08-27 14:52:31 +10:00
Hans Goudey
cc9c4e2744 CustomData: Add function to get name of default layer
Used by D14365
2022-08-26 11:16:10 -05:00
Bastien Montagne
167e2fda15 Merge branch 'blender-v3.3-release' 2022-08-26 18:09:05 +02:00
Bastien Montagne
8181494ffe Fix assert in id remapper tests.
Was using uninitialized ID name, leading to unknown ID type.

Thanks at Ray molenkamp (@LazyDodo) for noting the issue.
2022-08-26 18:08:46 +02:00
Hans Goudey
aaea263be4 Cleanup: Fix const correctness in CustomData set name function
The function does modify the object since it changes the name of a layer
it owns. Ideally this wouldn't be possible, but raw pointers don't have
ownership semantics so this is a common problem with CustomData.
2022-08-26 10:57:43 -05:00
Campbell Barton
054cec404b Cleanup: use booleans 2022-08-26 15:58:32 +10:00
Campbell Barton
6bf2c73249 Cleanup: quiet GCC array bounds warning 2022-08-26 15:06:33 +10:00
Campbell Barton
6fc7b37583 Cleanup: reduce variable scope 2022-08-26 12:51:46 +10:00
Campbell Barton
a3e1a9e2aa Cleanup: spelling in comments, format 2022-08-26 12:47:21 +10:00
Bastien Montagne
047d0e6c4a Merge branch 'blender-v3.3-release' 2022-08-25 17:26:58 +02:00
Bastien Montagne
500d815478 Fix T100255: Make RigidBodyWorld (and effector_weights) collections refcounted.
Those collections were so far mainly just tagged as fake user (even
though a few places in code already incremented usercount on them).

Since we now clear the fakeuser flag when linking/appending data, ensure
that these collections are preserved by making these usages regular ID
refcounting ones.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D15783
2022-08-25 17:21:39 +02:00
Bastien Montagne
9b41ac6251 Revert "LibOverride: Preserve viewlayers when creating overrides of collecitons."
Commit is not working as expected in some cases, as revealed by
liboverride testcase entering infinite loop.

Code needs some more thinking.

This reverts commit ee7bd79b54.
2022-08-25 16:17:34 +02:00
Bastien Montagne
ee7bd79b54 LibOverride: Preserve viewlayers when creating overrides of collecitons.
Usually, when overriding collections, the linked reference ones are
removed from the ViewLayer, and the overrides replace them.

This change to `layer_collection_sync` code makes it so that in case
there is a free viewlayer hierarchy matching the linked collection, it
gets re-used for the override one, instead of re-creating everything
from scratch.

To achieve this, resync process is split into two steps, first regular
collections are processed, then the override ones. This should ensure
an override does not steal the layers of its reference if the later is
still instantiated in the view layer.
2022-08-25 12:22:38 +02:00
Campbell Barton
fcecbc5610 Cleanup: rename mat3_to_quat_is_ok to mat3_to_quat_legacy
Update comment, noting why this is kept.
2022-08-25 14:33:01 +10:00
Mattias Fredriksson
87e8810dd0 Cleanup: Add asserts to curves data-block creation
Ref D14481
2022-08-24 18:22:39 -04:00
Hans Goudey
fc26e3fe19 Cleanup: Fix typo in comment
Added by mistake in 6718afdc8a.
2022-08-24 11:25:04 -04:00
Hans Goudey
e36ced1dce Fix: Write hide status attributes for undo steps
We don't convert to the old mesh format when writing undo steps to
avoid overhead. So we can't skip writing the hide attributes then.
2022-08-23 13:50:47 -04:00
Hans Goudey
35c601269b Fix T100482: Face Set visibility reset after saving
The face hide attribute wasn't created in order to store the visiblity
from the face sets, it was only updated if it already existed.
2022-08-23 12:17:16 -04:00
Hans Goudey
486d27d32a Cleanup: Move paint.c to C++ 2022-08-23 12:01:37 -04:00
Hans Goudey
59aef1d717 Cleanup: Use utility to write palette color list 2022-08-23 11:19:07 -04:00
Hans Goudey
b649fc13ed Cleanup: Avoid using invalid attribute domain
The number of attribute domains isn't an attribute domain, so storing
ATTR_DOMAIN_NUM in a variable with an eAttrDomain type isn't correct.
In the cases it was used, the value wouldn't be accessed anyway.
2022-08-23 10:44:10 -04:00
Brecht Van Lommel
c32bb58e5b Depsgraph: use more fine grained update tags for scenes
Ref D15710, this avoids unnecessary sequencer updates for some operations.
2022-08-23 15:27:16 +02:00
Jeroen Bakker
37533cd6cb ImBuf: Optimize GPU memory by using 1 component format for grayscale images
This is done by checking the number of bitplanes from the image buffer.
We assume that for float buffer to use the same bitplanes as it was a
byte buffer.

Then, the data of the image buffer is packed at the start of the `rect` or
`float_rect` before upload.

**Statistics - einar.v004.blend **

Note that not all grayscale textures have been stored as BW images so the
amount of memory that can be reduced would be more.

Without patch
```
104 Textures - 3294.99 MB (3294.47 MB over 32x32), 37 RTs - 192.52 MB.
Avg. tex dimension: 2201.88x1253.51 (2283.53x2202.13 over 32x32)
464 Buffers - 25.01 MB total 1.24 MB IBs 23.50 MB VBs.
3512.52 MB - Grand total GPU buffer + texture load
```

Patch applied
```
104 Textures - 2917.66 MB (2917.14 MB over 32x32), 39 RTs - 215.45 MB.
Avg. tex dimension: 2221.38x1252.75 (2323.28x2253.47 over 32x32)
467 Buffers - 25.01 MB total 1.24 MB IBs 23.51 MB VBs.
3158.13 MB - Grand total GPU buffer + texture load.
```

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D15484
2022-08-23 14:35:39 +02:00
Jacques Lucke
511ff898da Merge branch 'blender-v3.3-release' 2022-08-23 12:40:58 +02:00
Jacques Lucke
1663530408 Fix T100318: handle custom nodes in field inferencing more gracefully
Custom nodes are not supported, but it shouldn't crash here.
2022-08-23 12:40:26 +02:00
Jacques Lucke
65c6886284 Merge branch 'blender-v3.3-release' 2022-08-23 11:55:57 +02:00
Jacques Lucke
95464a842c Fix T99932: video in node group does not play 2022-08-23 11:54:51 +02:00
Campbell Barton
7694678025 Cleanup: remove unnecessary NULL check 2022-08-23 12:18:01 +10:00
Bastien Montagne
500e4d540a Merge branch 'blender-v3.3-release'
Conflicts:
	release/scripts/startup/bl_ui/space_userpref.py
2022-08-22 15:44:44 +02:00
Damien Picard
ee985fa925 I18n: disambiguate a few translations
- Keying (keyframe insertion)
- Roughness (particle children)
- New image, collection, text (in menus)
- Parents (particles)
- Wrap (text)
- Light (add menu)
- Empty (volume add menu)
- Empty (empty add menu)
- Cycles (f-curve modifier)
- Drag (workspace tool type)
- Power (light intensity)
- Power (math nodes)

This last change also moves all math operations in nodes to the
ID_nodetree context. It's needed only for some operations, but we
can't be more granular here.

Also...

- Fix context extraction for interpolation mode headers in F-Curves
  and GPencil interpolation operator
- Enable new translation: "Slot %d" in image editor
- Fix an English message in the node editor:
  "Replace the input image's alpha channels by..." -> channel

Ref. T43295

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D15694
2022-08-22 14:33:07 +02:00
Jeroen Bakker
0aeae0d0b9 Revert "Fix T99259: Python API: ViewLayer.aovs.remove isn't available"
This reverts commit ae7909010f.
2022-08-22 08:40:36 +02:00
Mangal Kushwah
ae7909010f Fix T99259: Python API: ViewLayer.aovs.remove isn't available
Imeplemented **ViewLayer.aovs.remove** by Adding a new rna function to call the internal **BKE_view_layer_remove_aov**, removed assert from **BKE_view_layer_remove_aov**.

Reviewed By: jbakker

Maniphest Tasks: T99259

Differential Revision: https://developer.blender.org/D15341
2022-08-22 08:36:19 +02:00
Campbell Barton
2a43c9bb08 Cleanup: move inline unit system search into a function
Improved readability and remove redundant NULL checks.
Also remove redundant assignment.
2022-08-22 12:42:23 +10:00
Julian Eisel
8115d31248 Outliner: (Refactor) Use C++ map instead of GHash
This container is type safe and contains a few nice optimizations,
although they shouldn't make a big difference here in practice. The
hashing now uses our default hashing method which reduces code
complexity and seems to perform slightly better in my tests.

For a Heist shot with a highly complex library overrides hierarchy in
the Outliner this reduces the tree building time from around 25 to 23.6
seconds here. However the main design change for performance is yet to
come, all this is just general code refactoring (which at least
shouldn't make performance worse).
2022-08-19 22:21:04 +02:00