Commit Graph

109808 Commits

Author SHA1 Message Date
Clément Foucault
ce062f03a3 Cleanup: EEVEE-Next: Rename lightprobe display files
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/122457
2024-05-30 00:15:43 +02:00
Clément Foucault
a6774b2930 EEVEE-Next: Add pdf to LOD to reduce noise from HDRI
Sphere lightprobe have pre-filtered LODs.
Sample lower LODs when PDF is high to reduce variance.
2024-05-30 00:14:51 +02:00
Harley Acheson
3ee8a75e8e Fix #122381: Changes to Text Overlay Colors
Show white text and black outline when dark, black text and white
outline when light. Slight darkening of TH_TIME_GP_KEYFRAME and
the red used for slow FPS to better work with varying backgrounds.

Pull Request: https://projects.blender.org/blender/blender/pulls/122449
2024-05-29 20:10:45 +02:00
Clément Foucault
ec36412c45 Overlay: Make Facing overlay not rely on render engine depth
This add depth writting to avoid missing pixels that haven't
been rendered by the render engine. But this forces to
not use the blending mode (otherwise we would have
order dependent results). Removing blending breaks selection
outlines so we have to move the rendering of the facing
overlay before the outline overlay. This doesn't fix the
situation for in-front objects but it improves the current
behavior for non-in-front objects.

Fix #121662
2024-05-29 17:54:42 +02:00
Clément Foucault
fabdeff9ca Fix: EEVEE-Next: Wrong variable in versioning code
Caused by 32259aa0b6
2024-05-29 17:54:42 +02:00
Bastien Montagne
b32d026441 Fix (studio-reported) unlinkable IDs made directly linked during blendfile write.
Regression from 435b6743fd, no usage of unlinkable ID (mainly
shapekeys...) should make them directly linked.

Note that this had no serious consequences, it was mainly printing annoying
error messages in release builds, and asserting in debug ones.
2024-05-29 17:38:08 +02:00
Harley Acheson
50bf1f3a52 Fix #122395: Fix Icon Errors Building Headless
Add defines to allow building headless, otherwise we
get undefined symbol errors for UI_icon_from_event_type

Pull Request: https://projects.blender.org/blender/blender/pulls/122406
2024-05-29 17:32:28 +02:00
Hans Goudey
628e34fdfb Cleanup: Use C++ types for sculpt boundary brush data 2024-05-29 11:04:33 -04:00
Jacques Lucke
7be4d4f443 Nodes: automatically move viewer node to current node
This improves working with viewer nodes in geometry and compositor nodes.
Previously, the viewer node would typically stay at the position where it was first
inserted which leads to very long links in many cases. Now the viewer node
automatically moves to the place where the user ctrl+shift+clicked to view data.

The viewer is placed slightly to the right and top of the current node. It is moved
up a bit, so that it does not get in the way as quickly when the user wants to add
another new node. Furthermore, the viewer node position is chosen so that it
does not intersect with other nodes.

In the future we could implement animating the node position so that it slowly
transitions to it's new places.

Pull Request: https://projects.blender.org/blender/blender/pulls/121951
2024-05-29 16:49:33 +02:00
Hans Goudey
96415bc42a Sculpt: Specialize a few vertex neighbor iteration cases for BMesh
The start of a transition to remove this API more generally.
2024-05-29 10:41:41 -04:00
Clément Foucault
32259aa0b6 Fix: EEVEE-Next: Versioning older file to remove indirect volume light
Make sure older file have indirect volume lighting disabled to
avoid this new feature washing out the volume object lighting.
2024-05-29 16:19:32 +02:00
Clément Foucault
4ab652256d Fix: EEVEE-Next: Invisible volume without any shader attributes
By removing the check we make it possible to render volume objects
even if the shader doesn't require any volume attribute.

We still check if there is any attribute to not draw empty
volume objects that have no attribute as a unit cube.

Fix #103683
2024-05-29 16:17:53 +02:00
Clément Foucault
204f56e59d EEVEE-Next: Add jittering in fast GI bitmask angle
This avoids banding artifacts caused by the finite bitmask
using for Fast GI / Ambient Occlusion.

Fix #116032
2024-05-29 16:01:58 +02:00
Philipp Oeser
40e036b63e Fix #122344: PLY exports non-normalized custom normals on scaled objects
On export, PLY creates a matrix (in `set_world_axes_transform`) -- the
inverse transpose of the regular matrix [seems like the usual way of
transforming normals]] --  by which the normals are multiplied. This can end
up in non-normalized custom normals on scaled objects though. Corrected
in this PR by just normalizing after said multiplication.

On import, `BKE_mesh_set_custom_normals_from_verts` is used with the raw
data -- which ends up in `mesh_normals_corner_custom_set` which in turn
"is expected to have normalized normals" (from the comment).
We _could_ also make sure to normalize on import, however, setting these
properly on export seems the primary choice.
Other importers also dont go the extra route of making sure to normalize
the incoming data, so this seems to be in line of what other Im-/Exports
do.

Pull Request: https://projects.blender.org/blender/blender/pulls/122432
2024-05-29 15:39:24 +02:00
Hans Goudey
98eecfcff0 Cleanup: Sculpt: Use C++ Vector for vertex neighbors 2024-05-29 08:58:10 -04:00
Jacques Lucke
05820ae1cc Cleanup: remove unnecessary assert
It doesn't make sense to check if an unsigned integer is >= 0.
2024-05-29 14:55:14 +02:00
Jacques Lucke
59ae253664 Fix: remove test for removed method
The method was removed in bea8825446.
2024-05-29 14:54:31 +02:00
Iliya Katueshenock
bea8825446 Cleanup: BLI: Remove Span::get method
Unlike to `lookup_or_default` accessor methods of `Map` or attribute provider class,
`Span::get` is not so explicit and self described to be used with default value.
Other one issue was is that result is by value. But this is not the main reason to
delete this method. And although this can be fixed by reference, this is still not
such good to just have method to check index and return something.

Pull Request: https://projects.blender.org/blender/blender/pulls/122425
2024-05-29 14:26:21 +02:00
Pratik Borhade
c7635fa200 GPv3: Assert on translating keys
Caused by f011d8f508.
`ale->update` should be 0 after animdata update. Otherwise it would
cause the assert (it also ensures all update cases are handled for keys).

Resolves #122259

Pull Request: https://projects.blender.org/blender/blender/pulls/122435
2024-05-29 14:24:37 +02:00
Iliya Katueshenock
022620b490 Fix: Missing space in tooltip
Fix of change from e6ccff1044

Pull Request: https://projects.blender.org/blender/blender/pulls/122434
2024-05-29 14:05:54 +02:00
Falk David
bf676e8973 GPv3: Draw Tool: Replace "Input Samples" with "Spacing"
The GPv2 draw tool used a setting called "Input Samples" to
generate points (subdivisions) when two samples are far apart
from one another.

In GPv3 we have the same feature, but with a bit more control.
Users can now specifiy the maximum distance between two
points based on a percentage of the brush size (in pixels).
2024-05-29 11:55:59 +02:00
Falk David
6e76b9f6b3 Fix: GPv3: Issues in find_or_create_layer_in_dst_by_name
There were some issues in this function.
* Undefined behavior for the fallback when getting the `layer_src`
* Searching for the layer `grease_pencil_dst` based on the value of a pointer, instead of the `name`.

Pull Request: https://projects.blender.org/blender/blender/pulls/122426
2024-05-29 11:25:15 +02:00
Clément Foucault
91fee3eca8 Cleanup: EEVEE-Next: Rename lightprobe files
Use new naming convention

Pull Request: https://projects.blender.org/blender/blender/pulls/122405
2024-05-29 11:19:50 +02:00
Raul Fernandez
8182ebd4d2 Fix #95419: Sculpt: Invert visible hides all faces with Multires modifier
Fix for sculpt mode: invert visible hides all faces with Multires modifier #95419

Grids face indices should not change on the fly based on hidden state.
It caused the rendering glitches shown on the original bug report and the attached recordings.

* this PR removes the unnecessary check and dependency of grids visibility with the smooth/sharp of faces.
* replaces smooth flag for sharp flag which better express the intent and simplifies the logic.

Pull Request: https://projects.blender.org/blender/blender/pulls/121929
2024-05-29 06:02:54 +02:00
Campbell Barton
c5a27f011e Cleanup: spelling in comments 2024-05-29 12:49:07 +10:00
Campbell Barton
e3a6eed5c5 Cleanup: correct function name spelling 2024-05-29 12:49:07 +10:00
Nathan Burnham
f0603d8fac PyAPI Doc: improve BMesh typing
- `BMLayerItem.copy_from(other)` had a typo in its docstring that prevented `other` being typed.
- `BMesh.from_object()` and `BMesh.from_mesh()` had untyped arguments.
- `BMVert.copy_from_vert_interp()`'s `fac` argument was untyped.
- `remove(item)` method of `BMVertSeq`, `BMEdgeSeq` and `BMFaceSeq` had no type for `item`.
- `get()` method of `BMEdgeSeq` and `BMFaceSeq` had "sequence" in the description of `verts` but not in the type.

Pull Request: https://projects.blender.org/blender/blender/pulls/122374
2024-05-29 03:00:03 +02:00
Harley Acheson
707503bf73 Fix #122403: Show correct Hex values for managed colors
Adjusted calculation of hex values so that what is shown matches what
is displayed for material colors as well as for theme colors.

Pull Request: https://projects.blender.org/blender/blender/pulls/122409
2024-05-29 01:13:50 +02:00
Hans Goudey
434b225bb8 Cleanup: Sculpt: Reduce usage of topology array references
Access topology arrays directly from the mesh as needed instead.
Part of #118145.

Pull Request: https://projects.blender.org/blender/blender/pulls/122407
2024-05-28 23:48:39 +02:00
Hans Goudey
61fa2b7991 Paint: Reduce constant work for each node in weight paint
Move the loop over all affected nodes to each brush implementation,
making use of lambdas to avoid a bunch of boilerplate code. This makes
it clearer what logic actually depends on the vertices in each node, and
decreases future overhead if we decide to make PBVH nodes smaller.
2024-05-28 23:48:37 +02:00
Hans Goudey
aae77d5e60 Cleanup: Paint: Use const arguments 2024-05-28 23:48:37 +02:00
Hans Goudey
808c29d8db Cleanup: Paint: Remove more permanent storage of topology map
Access the vertex to face map directly from the mesh as necessary.
This helps to prevent unnecessary calculation (it isn't necessary in
weight paint mode besides the blur brush anymore), though it is
used for vertex normals calculation for smooth-shaded meshes.
2024-05-28 23:48:37 +02:00
Hans Goudey
f31d3b9e39 Paint: Remove use of vert to corner topology map
This saves 4 bytes per face corner and 4 bytes per vertex.
2024-05-28 23:48:37 +02:00
Hans Goudey
5cd06ffe60 Cleanup: Mesh: Modernize vert to corner topology map naming 2024-05-28 23:48:37 +02:00
Hans Goudey
bdb949bc76 Cleanup: Paint: Retrieve vert positions from consistent array
`ss.vert_positions` and `pbvh.vert_positions` are expected to point to the
same evaluated deformed position array here. It's preferrable to use the
span we already have locally. Though eventually we hope to remove the
vertex position array from PBVH.
2024-05-28 23:48:37 +02:00
Hans Goudey
144c995c06 Paint: Remove PBVH vertex iteration macro from weight & vertex paint
Part of #118145.
2024-05-28 23:48:37 +02:00
Hans Goudey
73a407061a Paint: Read selection before brush falloff
Reading the selection is much cheaper than calculating the brush radius
since it just requires reading from a boolean array. Better to do it earlier
so the radius calculation can be skipped for deselected points.
2024-05-28 23:48:37 +02:00
Hans Goudey
1c3d6fa4dd Paint: Avoid virtual array access overhead for weight and vertex paint
Use an optionally empty VArraySpan instead of a potentially-single VArray.
2024-05-28 23:48:37 +02:00
Hans Goudey
08ecad5471 Cleanup: Paint: Remove useless comments 2024-05-28 23:48:37 +02:00
Hans Goudey
8c7708acbc Cleanup: Paint: Remove multires code paths from vertex & weight paint
Multires isn't supported here anyway, and if it was it would look very different
because the weights and colors would probably be stored on the subdivided
grids somehow. For now this code is just confusing and gets in the way. It
also mixes up the purpose of the PBVH iteration macro abstraction.
2024-05-28 23:48:37 +02:00
Hans Goudey
c7e115a5ff Cleanup: Paint: Rename index variables 2024-05-28 23:48:37 +02:00
Clément Foucault
5bab443c63 Fix: EEVEE-Next: Fix broken Translucent Shadow bias
This was caused by #122255 which used the normal
to tag the translucent with thickness case. But
this normal is then overwritten during the first
call to `light_eval_single`.

This patch moves the tag to a special type of
`LightingType` which then gets flushed to
`LIGHT_DIFFUSE` when used.

Pull Request: https://projects.blender.org/blender/blender/pulls/122400
2024-05-28 21:23:46 +02:00
Vitaljok
14f9ae90c2 EEVEE: fixing vector displacement
Fix for #121890

The image shows testing results with "green" texture. It is expected that
all vectors are displaced along Y axis.
Cases are "no displacement", "tangent", "object" and "world" spaces.

Results are consistent with Cycles.

Pull Request: https://projects.blender.org/blender/blender/pulls/122376
2024-05-28 21:20:54 +02:00
Sergey Sharybin
9faed28dcd Fix #122401: Missing animation rendering scene with "Render Single Layer"
Ensure that the re->r.scemode has R_SINGLE_LAYER when not rendering the
single layer.

Pull Request: https://projects.blender.org/blender/blender/pulls/122402
2024-05-28 21:19:43 +02:00
Clément Foucault
7d533175f2 EEVEE-Next: Shadow: Avoid transmission shadow to go behind light
This avoid missing tiles if light is inside the object radius.
2024-05-28 19:43:24 +02:00
Hans Goudey
2918602586 Fix #119980: BMesh copy functions can clear selection
A subtle error in 66da875488 mean that the existing selection
was overwritten instead of adding to the final flag on the result BMesh
element. Selection is often interpolated separately which is probably
why this mistake wasn't more observable earlier.
2024-05-28 13:34:50 -04:00
Hans Goudey
f38c4e0a39 Fix #119980: BMesh copying functions can clear selection
A subtle mistake in 66da875488 meant that existing selection
was overwritten instead of maintained in the BMesh utility functions for
copying element custom data and flags.
2024-05-28 13:34:50 -04:00
Hans Goudey
34af347bb5 Cleanup: Remove unused mesh extractor 2024-05-28 13:34:50 -04:00
Jacques Lucke
b210d56857 Nodes: support adding nodes in versioning without node callbacks
There is a fundamental issue when adding nodes from versioning code right now.
Generally speaking, versioning code should not change after it has been written.
If old versioning code suddenly changes its behavior, it can invalidate the versioning
code that comes after it.

The issue is that while the versioning code itself doesn't change, it is indirectly calling
code that is changing and evolving all the time. This makes the versioning unreliable
and makes it hard to do certain changes (e.g. changing which sockets a node has).
It's easy to overlook issues this creates because many of these cases don't have
regression tests.

The solution is to keep the versioning code more independent from the part of
Blender that is constantly evolving. More specifically, this means that when adding
a node, this should not take the current node initialization and declaration code into
account. Instead, the versioning code should just manually create the node with
the sockets that it expects based on the version that the versioning code has been
written for.

This patch adds new `version_node_add_empty`, `version_node_add_socket` and
`version_node_add_link` methods which allow creating nodes without calling ever
evolving code.

Pull Request: https://projects.blender.org/blender/blender/pulls/121664
2024-05-28 18:57:06 +02:00
Sean Kim
025df21a0f Sculpt: Add Polyline Mask, Face Set, and Trim
This PR adds the *Polyline Mask*, *Polyline Face Set*, and
*Polyline Trim* tools.

## Limitations
* *Polyline Face Set* is not added to either of the *Sculpt*
or *Face Sets* menu as none of the other face set gestures are in
either.

Pull Request: https://projects.blender.org/blender/blender/pulls/122248
2024-05-28 18:33:45 +02:00