Commit Graph

120055 Commits

Author SHA1 Message Date
Sergey Sharybin
4d02a14e5a Cleanup: Convert BLI_filelist to C++
Pretty much as-is conversion, so it is a C code in a C++ file.
2023-10-20 10:27:26 +02:00
Sergey Sharybin
5954fc45f8 Cleanup: Convert path_util to C++
Pretty much as-is conversion, so it is a C code in a C++ file.
2023-10-20 10:27:26 +02:00
Sergey Sharybin
6bbf7649d0 Cleanup: Convert string_utils to C++
Pretty much as-is conversion, so it is a C code in a C++ file.
2023-10-20 10:27:26 +02:00
casey bianco-davis
5a79023409 GPv3: Cyclical set operator
Simply sets the cyclical property selected strokes. Note this does not add extra geometry like the legacy operator.

Note: also adds a key bind 'alt c' to toggle, same as for curves.

Resolves #113671

Pull Request: https://projects.blender.org/blender/blender/pulls/111904
2023-10-20 10:12:24 +02:00
Hans Goudey
c77bbdcf82 Fix: Mistaken curves copy and reference binding in fillet node
Mistake in f54d5df2fc and 55b477a093.
2023-10-20 09:55:31 +02:00
Campbell Barton
55b477a093 Cleanup: quiet redundant-move warning 2023-10-20 14:21:59 +11:00
Campbell Barton
49218f531a Cleanup: format 2023-10-20 14:20:45 +11:00
Pablo Vazquez
385ef2c298 Extensions: Move Extensions Repositories panel to Extensions tab
Move "Extensions Repositories" panel from FilePaths to Extensions.

Temporary change until a design is agreed on, to make it easier to test
repos while developing without going back and forth between sections.
2023-10-20 14:14:21 +11:00
Campbell Barton
ce7444fa50 Merge branch 'blender-v4.0-release' 2023-10-20 14:00:36 +11:00
Dalai Felinto
a53dd6e93c GPv3: Fix rename layer group not updating RNA
I fixed this earlier for the layer themselves, but I didn't realize then
that I also had to do this change for the layer groups.

For reference, this was the layer name fix: cb0d260c4b.

Pull Request: https://projects.blender.org/blender/blender/pulls/113956
2023-10-20 00:55:14 +02:00
Alaska
686aece797 Shader: Adjust Coat Tint Color intensity based on Coat Weight
The previous formula for adjusting Coat Tint intensity resulted
in strong tints and sudden colour changes when using a low coat weight.

This commit fixes these issues by mixing between a white tint (no tint)
and the chosen tint based on the Coat Weight.

Pull Request: https://projects.blender.org/blender/blender/pulls/113468
2023-10-20 00:34:24 +02:00
Bastien Montagne
3aa5644751 Merge branch 'blender-v4.0-release' 2023-10-19 21:42:26 +02:00
Damien Picard
e3fc935349 I18n: disambiguate and extract a few messages
Extract:
- Sculpt filter types from the Sculpt menu. Some of these types use a
  custom label, different  from those defined in the operator RNA,
  which was never extracted.
- "Today" and "Yesterday" from the file browser modification date.
- All name_plural from IDs, as these are used in the UI to list which
  data block is to be removed, when calling outliner.orphans_purge.

Disambiguate:
- "Area", meaning the measurement of a surface as opposed to a place.

Some messages reported by Satoshi Yamasaki in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/113912
2023-10-19 21:39:58 +02:00
Clément Foucault
f79b86553a EEVEE-Next: Add mesh volume bounds estimation
This adds correct object bounds estimation.

This works by creating an occupancy texture where one
bit represents one froxel. A geometry pre-pass fill this
occupancy texture and doesn't do any shading. Each bit
set to 0 will not be considered occupied by the object
volume and will discard the material compute shader for
this froxel.

There is 2 method of computing the occupancy map:
- Atomic XOR: For each fragment we compute the amount of
  froxels **center** in-front of it. We then convert that
  into occupancy bitmask that we apply to the occupancy
  texture using `imageAtomicXor`. This is straight forward
  and works well for any manifold geometry.
- Hit List: For each fragment we write the fragment depth
  in a list (contained in one array texture). This list
  is then processed by a fullscreen pass (see
  `eevee_occupancy_convert_frag.glsl`) that sorts and
  converts all the hits to the occupancy bits. This
  emulate Cycles behavior by considering only back-face
  hits as exit events and front-face hits as entry events.
  The result stores it to the occupancy texture using
  bit-wise `OR` operation to compose it with other non-hit
  list objects. This also decouple the hit-list evaluation
  complexity from the material evaluation shader.

## Limitations
### Fast
- Non-manifolds geometry objects are rendered incorrectly.
- Non-manifolds geometry objects will affect other objects
  in front of them.
### Accurate
- Limited to 16 hits per layer for now.
- Non-manifolds geometry objects will affect other objects
  in front of them.

Pull Request: https://projects.blender.org/blender/blender/pulls/113731
2023-10-19 19:22:14 +02:00
Harley Acheson
dbd775c708 Revert "UI: Remove Colons from Property Names"
This reverts commit 8acd7a3c96.
2023-10-19 09:24:06 -07:00
Harley Acheson
8acd7a3c96 UI: Remove Colons from Property Names
Remove any automatic addition of the colon character to property names.

Pull Request: https://projects.blender.org/blender/blender/pulls/113797
2023-10-19 18:08:23 +02:00
Dalai Felinto
cb0d260c4b GPv3: Fix rename layers not updating RNA
Implement the same logic as we do for the active layer, by calling the
corresponding RNA function.

This makes sure all the notifiers and DEG update calls are properly
called. This is needed at least for !113908.

Also adds an undo push step which was missing in main.

Co-authored and reviewed (in real life) by: Julian Eisel <julian@blender.org>
2023-10-19 17:17:19 +02:00
Hans Goudey
b6b17ee5f9 Fix: Missing node tool menu update after moving asset to catalog
Moving an asset from "Unassigned" to a catalog needs to clear the node tool
asset tree caches and redraw the editor. That's solved here by emitting
an asset-specific notifier rather than the less clear "file list" one.

Pull Request: https://projects.blender.org/blender/blender/pulls/112980
2023-10-19 16:55:58 +02:00
Clément Foucault
454c8fd866 Fix EEVEE-Next: Broken volume shadowing from sun lights
Caused by 71dfcf4558
2023-10-19 16:50:57 +02:00
Christoph Lendenfeld
3fc2077c2a Fix: autokeyframing when pasting poses no longer worked
The if check wasn't properly inverted in
7be1b59daa

Pull Request: https://projects.blender.org/blender/blender/pulls/113940
2023-10-19 16:23:04 +02:00
Philipp Oeser
58721585b1 Merge branch 'blender-v4.0-release' 2023-10-19 16:03:12 +02:00
Philipp Oeser
cdd122cd74 Fix #113885 : Drag and Drop colors misses an undo push
Since the operator can also act on e.g theme colors [and changes to these shouldnt send undo pushes], dont do a general `OPTYPE_UNDO`, but instead be a bit more specific and only do an undo push for buttons with `UI_BUT_UNDO`.

Probably good for LTS.

Pull Request: https://projects.blender.org/blender/blender/pulls/113887
2023-10-19 16:02:34 +02:00
Sybren A. Stüvel
29df70af44 Windows: fix missing #includes
Include the `<limits>` header for the `std::numeric_limits<>...` calls in
both `makesrna.cc` and the code it generates.

This fixes 395ac4c41f.
2023-10-19 15:47:40 +02:00
Clément Foucault
439d3ae945 Fix 113839: Eevee Next: Low resolution on local lights shadows
This was caused by the scalling factor not taken into
account during the usage tagging phase.
2023-10-19 15:45:32 +02:00
Julian Eisel
aae0d12e50 Merge branch 'blender-v4.0-release' 2023-10-19 15:44:43 +02:00
Julian Eisel
e7abced86e Fix #113726: Unable to open N panel for the first time with click drag
View2D isn't initialized in these regions yet, which is a valid state
for hidden regions. So consider that when calculating the region zoom
factor in the region scale operator.
2023-10-19 15:44:16 +02:00
Sergey Sharybin
687e58bb77 Cleanup: Simplify public API of unique name functions
Their return value was only used in one place.

Change it to comparison with a stored name, and make the functions
to return void instead.

Removing the return boolean makes it possible to change underlying
functions to work with std::string and return unique name by value.

Pull Request: https://projects.blender.org/blender/blender/pulls/113934
2023-10-19 15:07:57 +02:00
Hans Goudey
fba7671205 Cleanup: Const correctness, unused variable warning in GP draw code 2023-10-19 15:03:32 +02:00
Hans Goudey
5db502a122 Fix: Build error after bounding box refactor
This function was changed in main after the buildbot built the PR.
Since we are just interested in grease pencil data here, just retrieve
the bounds from the geometry directly.
2023-10-19 15:02:15 +02:00
Jeroen Bakker
f9aca93a47 Vulkan: Add Support for sRGB Framebuffer Enablement
Allow binding of framebuffers without sRGB to linear transform.
`GPU_framebuffer_bind_no_srgb`. This Patch removes color transform
artifacts in node, image and sequence editor.

When the framebuffer is an srgb framebuffer and it is bound without
the transformation, the SRGB textures are bound as UNORM variants.

As framebuffer, render pass and subpass recreation is ensured by
`VKCommandBuffer` we don't need to mark the framebuffer dirty at
this time. Later on we can optimize this by adding a state changed
detection for framebuffers and render passes.

Pull Request: https://projects.blender.org/blender/blender/pulls/113838
2023-10-19 14:41:18 +02:00
georgiy.m.markelov@gmail.com
d6b8422193 Fix #113880: Vector Curve node crashes Hydra render
Fix incorrect input name.

Pull Request: https://projects.blender.org/blender/blender/pulls/113928
2023-10-19 14:35:46 +02:00
Hans Goudey
1cbd0f5a85 Refactor: Improve access to object data bounds
Currently object bounds (`object.runtime.bb`) are lazily initialized
when accessed. This access happens from arbitrary threads, and
is unprotected by a mutex. This can cause access to stale data at
best, and crashes at worst. Eager calculation is meant to keep this
working, but it's fragile.

Since e8f4010611, geometry bounds are cached in the geometry
itself, which makes this object-level cache redundant. So, it's clearer
to build the  `BoundBox` from those cached bounds and return it by
value, without interacting with the object's cached bounding box.

The code change is is mostly a move from `const BoundBox *` to
`std::optional<BoundBox>`. This is only one step of a larger change
described in #96968. Followup steps would include switching to
a simpler and smaller `Bounds` type, removing redundant object-
level access, and eventually removing `object.runtime.bb`.

Access of bounds from the object for mesh, curves, and point cloud
objects should now be thread-safe. Other object types still lazily
initialize the object `BoundBox` cache since they don't have
a data-level cache.

Pull Request: https://projects.blender.org/blender/blender/pulls/113465
2023-10-19 14:18:40 +02:00
Hans Goudey
40080f618c Sculpt: Use C++ Set to store PBVH Node BMesh elements
Mainly to simplify code and also add some add type safety, replace
`GSet` with `blender::Set` for the storage of BMesh triangles and
vertices on each PBVH node. Some initial tests point to better
performance too, but the numbers are hard to verify so far.

Because of the larger `PBVHNode`, memory usage slightly increases
(observed a 2% increase with a 1M face grid) for regular Mesh sculpting,
but it seems `Set` is more memory efficient than `GSet`, because I also
observed a 10% decrease in memory usage for dynamic topology.
In the future nodes can be split in a more data-oriented fashion to
reduce memory usage overall.

This also makes it simpler to switch to another type in the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/113907
2023-10-19 14:18:15 +02:00
Sybren A. Stüvel
395ac4c41f RNA: generate valid infinite float property default values
In `makesrna`, generate valid default values for float properties, when those
defaults are positive/negative infinity.

Blender would currently generate the strings `inff` and `-inff`, which are not
valid C++. This PR changes that to `std::numeric_limits<float>::infinity()` and
`-std::numeric_limits<float>::infinity()`.

Context: the layered animation system (see #113594) will have animation layers
with strips on them. It will have the concept of "infinite strips", where from
a user's perspective there aren't even any strips at all, and the layer seems
to directly contain the keys themselves. This is purely a UI distinction
though, where we simply won't draw the outline of infinite strips. Being able
to work with ±∞ as floating point values has clear advantages, as then the
`strip.frame_start` and `strip.frame_end` properties will always "tell the
truth".

This particular change is necessary to allow these values as defaults. It is
not intended that users will have property sliders for these properties when
their value is "infinite" (but rather a button 'make finite' or something along
those lines), so interaction with the UI code will likely be minimal.

Pull Request: https://projects.blender.org/blender/blender/pulls/113854
2023-10-19 14:15:11 +02:00
Campbell Barton
0488117548 Unbreak debug build 2023-10-19 22:43:26 +11:00
Brecht Van Lommel
488989f78e Merge branch 'blender-v4.0-release' into main 2023-10-19 13:37:18 +02:00
Alaska
37ab9bb1ed Fix unnecessary mix nodes for Principled BSDF specular tint
If the specular tint is 0 in a 3.6 file, and the base color has a
node input, then don't add a mix node in versioning.

Pull Request: https://projects.blender.org/blender/blender/pulls/113893
2023-10-19 13:36:34 +02:00
Falk David
6281d9a039 Fix: GPv3 depth buffer
Resolves #113422.

The depth buffer was rendered to, but not correctly merged
with the scene depth buffer. This lead to, e.g. the object appearing
behind the grid.

This fixes the issue by rendering a "merge" pass.

Pull Request: https://projects.blender.org/blender/blender/pulls/113779
2023-10-19 13:22:38 +02:00
Falk David
26816931c4 Fix: GPv3: Remap materials
Also fixes a crash when moving the first material of the default Grease Pencil Suzanne down by one.

Pull Request: https://projects.blender.org/blender/blender/pulls/113855
2023-10-19 13:19:41 +02:00
Jacques Lucke
a5b8a04cb0 Cleanup: remove unnecessary namespace specifier 2023-10-19 12:28:22 +02:00
Lukas Tönne
36c127805f Merge branch 'blender-v4.0-release' 2023-10-19 12:22:31 +02:00
Lukas Tönne
52e6106d28 Fix #113860: Incorrect conditionals for node group socket names
Nested conditions broken by #113924.

Pull Request: https://projects.blender.org/blender/blender/pulls/113929
2023-10-19 12:21:47 +02:00
Julian Eisel
3d97c7dbcb Merge branch 'blender-v4.0-release' 2023-10-19 12:10:23 +02:00
Julian Eisel
838aca5f18 Fix #102856: Too small draggable area of asset view template items
For historic reasons buttons don't use the full button size as draggable
area by default, only a small part of it that is assumed to contain the
icon (e.g. of a label button). This isn't what we want for the big
preview buttons used here, their entire surface should be draggable.
We already have a workaround in place for this historic behavior, so we
can just enable that.
2023-10-19 12:09:55 +02:00
Lukas Tönne
367320a0f5 Merge branch 'blender-v4.0-release' 2023-10-19 11:48:54 +02:00
Lukas Tönne
dfc3f75e77 Fix #113860: Nullptr checks for node socket and panel name pointers
In 3.6 the names of node group sockets were using char arrays, but now
use allocated strings. The RNA system assigns nullptr to such strings
when assigning an empty string through python (UI assignment appears to
always generate a valid string). This creates issues with many STL
functions, in particular assigning nullptr to `std::string` will crash.

We have to check for valid pointers before using them in places that
don't handle nullptrs.

Pull Request: https://projects.blender.org/blender/blender/pulls/113924
2023-10-19 11:48:08 +02:00
Antonio Vazquez
5736438b95 Cleanup: GPv2 remove duplicate matrix
The Bound box matrix was already as parameter.
2023-10-19 11:26:42 +02:00
Jacques Lucke
1c703eac2e Cleanup: use single declare function for all group nodes
The longer term plan is to allow using the same node groups in different
node tree types anyway. Also, the implicit field inputs is something that
shader nodes could benefit from soonish already.

This also fixes a bug where the geometry nodes specific declare function
was not used anymore since 38813a7441.
2023-10-19 11:13:52 +02:00
Sergey Sharybin
d826bcd02f Merge branch 'blender-v4.0-release' 2023-10-19 11:02:40 +02:00
Sergey Sharybin
78b2e9071f Fix #113875: 2D Animation template's view transform set to AgX
Pull Request: https://projects.blender.org/blender/blender/pulls/113903
2023-10-19 11:02:01 +02:00