Commit Graph

129910 Commits

Author SHA1 Message Date
Aras Pranckevicius e98cc412ef Fix #114346: PLY export crash with multiple objects that have different custom attributes
Custom attribute export (#114320) code did not realize that
PLY exports everything as one single "mesh" with the same vertex
data for everything. So if exporting several input meshes and they
have different vertex attributes, the result needs to have a union
of all present attributes, with fake/zero data for the ones
that were not actually present. Fixes #114346.
2023-11-02 22:58:26 +02:00
Aras Pranckevicius afe297231d Fix #114304: OBJ import crash when some faces have normals, and others do not
The file that reproduces this had some faces of a mesh with vertex
normals, while some other faces were without vertex normals.
The parsing code assigns INT32_MAX as a fallback of "I could not parse
the normal index as a number" case, but later on code was not
catching this "normal index might be invalid" case. Fixes #114304
2023-11-02 21:35:02 +02:00
Aras Pranckevicius 539b0fd4b5 Unbreak build from missing headers 2023-11-02 21:07:04 +02:00
Clément Foucault 0684b68eb4 EEVEE-Next: Make Ambient Occlusion Pass use Horizon Scan
This adds a new way of computing occlusion using visibility bitmask. To
make it more algorithm agnostic, we name it horizon scan.
This cleans-up / simplify the code compared to the Horizon based solution.
There is no more trickery for fading influence of distant samples which
makes the result match cycles closer.

This introduces a new thickness option. Maintaining it relatively low
makes it possible to avoid over occlusion because of in front geometry.
Making it too low will cause under occlusion.

Related #112979

Pull Request: https://projects.blender.org/blender/blender/pulls/114150
2023-11-02 19:22:01 +01:00
Brecht Van Lommel 14f470cdae Merge branch 'blender-v4.0-release' into main 2023-11-02 19:02:35 +01:00
Brecht Van Lommel 49c3dc9d7f Fix 114336: Cycles crash switching render pass in the viewport 2023-11-02 17:24:54 +01:00
Falk David 91db8fc5a0 GPv3: Multi-frame editing
Adds a new scene tool setting `use_grease_pencil_multi_frame_editing`.

The `foreach_*_drawing` functions are moved to the `ed::greasepencil` namespace in the editor, since they are now context sensitive and depend on the toolsetting. They are now named `retrieve_editable_drawings` and `retrieve_visible_drawings` and return
an array of drawings instead of calling a callback function.

Pull Request: https://projects.blender.org/blender/blender/pulls/114283
2023-11-02 17:10:59 +01:00
Falk David 05d6818aa2 Fix #110038: Crash when sculpting on GP object with modifier
When trying to sculpt a Grease Pencil object with a line art modifier
(other modifiers probably also casue issues), Blender would crash.
I wasn't able to track down the exact issue but it's related to how
the update-cache stores pointers to original data.

This reverts part of e2befa425a to not make use of the update
cache while sculpting. Combined with modifiers, this approach
is just too unstable right now.

Pull Request: https://projects.blender.org/blender/blender/pulls/114410
2023-11-02 17:08:36 +01:00
Miguel Pozo b679ea939a EEVEE-Next: Per probe viewport display
* Add viewport display support for Sphere and Plane probes.
* Make all probe display options per object instead of per scene.
  (Uses the already existing `LIGHTPROBE_FLAG_SHOW_DATA`
   and adds a new `data_display_size ` property to the `LightProbe` DNA)
* Python `show_data` property has been deprecated and renamed to
   `use_data_display` (`data_display_size ` has been exposed as well).

Pull Request: https://projects.blender.org/blender/blender/pulls/114176
2023-11-02 17:08:13 +01:00
Hans Goudey d8f59dce26 Merge branch 'blender-v4.0-release' 2023-11-02 16:41:40 +01:00
Hans Goudey db5cae78b7 Fix: Sculpt redo crash after undoing addition of mask
Fixes a crash in the following case:
Enter sculpt mode -> draw face set -> draw sculpt -> undo * 3 -> redo * 3
2023-11-02 16:40:38 +01:00
Hans Goudey 6935cd0798 BLI: Add "scatter" array_utils function
This function, the opposite of `gather`, would have been useful a
few times in the past. For now, just use it once in sculpt undo code.
2023-11-02 16:33:11 +01:00
Jeroen Bakker 0f5abc5a8b Vulkan: Readback Texture Views
When using EEVEE-Next the final render data is readback from texture
views. This wasn't implemented yet.

This PR adds support for reading back texture views. It also makes sure
the correct layer is read when reading back data from framebuffers and
adds internal support to read back a partial texture.

Pull Request: https://projects.blender.org/blender/blender/pulls/114411
2023-11-02 15:55:05 +01:00
Bastien Montagne 40a46629a2 Merge branch 'blender-v4.0-release' 2023-11-02 14:35:56 +01:00
Bastien Montagne 67445c2353 Fix #114152: Blender crashes when loading files with unknown IDProperty types.
Issue was reported with a 3.6 file crashing 3.3LTS, but the underlying
problem still exists in current codebase, and could also potentially be
caused by other edge-cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/114397
2023-11-02 14:33:04 +01:00
Hans Goudey 22e706e87a Cleanup: Use utility function to fill triangle face offsets 2023-11-02 13:48:13 +01:00
Jeroen Bakker d4262071b1 Fix #114224: Bones Disappear In Pose/Edit Mode
Previous fix partially fixed the issue, there were still some left over
issues where that alpha channel wasn't loaded correctly and therefore
could lead to fully transparent stick bones.

Previous fix: 3da63377fc

Pull Request: https://projects.blender.org/blender/blender/pulls/114393
2023-11-02 13:36:44 +01:00
Lukas Tönne fdd702d2c9 Merge branch 'blender-v4.0-release' 2023-11-02 12:56:33 +01:00
Lukas Tönne 578d91b9db Fix #113919: Avoid crashes with unsupported new socket types
Blender 4.0 added new socket types that get written into legacy node
group interfaces by forward compatibility code. Such unsupported socket
types have to be handled by the socket declaration system and ignored
during execution.

Ported blender-v3.6-release fix #114056

Pull Request: https://projects.blender.org/blender/blender/pulls/114401
2023-11-02 12:55:37 +01:00
Bastien Montagne 730b5057a7 Fix #114237: USD import crashes on reporting during cache handling.
This usage of the whole USD `USDStageReader` as 'cache handle' feels a
bit... uncomfortable to me. It implicitely assumes that all data in this
owned by the reader (or has a lifetime that contains the whole handle
lifetime). IMHO, if such struct is expected to have a long lifetime, it
should be documented, and probably needs better design for sub-data
handling then. Am curious to know if there is a good reason why the
handle itself is not a simple trivial class, able to re-generate an
actual complete USD reader on demand?

Or maybe we need to find a better place to store the `wmJobWorkerStatus`
data?

Anyway, for now this PR addresses the issue by ensuring that the
`worker_status` stored in the `USDImportParams` is not `nullptr` before
trying to access it for the reports.

This is more of a short-term solution though, imho there should be a way
to pass a reportlist to this codepath, and ensure the `wmJobWorkerStatus`
is always valid?

Pull Request: https://projects.blender.org/blender/blender/pulls/114337
2023-11-02 12:45:29 +01:00
Omar Emara 1500a594ad Realtime Compositor: Immediately realize wrapped translations
This patch changes how wrapped translations are handled by the Realtime
Compositor. Previously, translations were always stored on the result
and delayed until automatically realized later. The wrapping status was
also stored to control this later automatic realization.

This patch changes that such that translations are immediately realized
for the axes that has enabled wrapping. Consequently, the image will not
get translated, but its content will, in a clip on one side, wrap on the
opposite side manner.

Another change is that wrapping information is no longer propagated to
future automatic realizations, so tilling or repeating an image is no
longer possible. An alternative method of repetition will be introduced
in a later patch.

Pull Request: https://projects.blender.org/blender/blender/pulls/113669
2023-11-02 12:39:41 +01:00
Xavier Hallade 1161455084 Build: upgrade Intel Graphics Compiler on Linux
In order to speedup compilation, we upgrade IGC to 1.0.14828.26 along
with ocloc and the associated dependencies.
We also bump min-driver version accordingly to 26918.

Ref !114341
2023-11-02 22:27:38 +11:00
Campbell Barton 6a9684afd7 Unbreak build from missing headers 2023-11-02 22:26:06 +11:00
Gilberto Rodrigues dfd1b63cc7 UI: improve mesh edge highlighting
Changes to edit mode mesh overlays, use hue shift instead of color
fading/darkening for selection mode visual differentiation, and some
theme changes to improve the display of mesh edges and faces with good
selection visibility.

- Removed "edge" toggle from edit mode overlays panel.
- No longer halves the edge and face alpha depending on selection mode.
  Half the face alpha in wire-frame mode. For better visibility on most
  themes.

Ref !111431
2023-11-02 22:09:17 +11:00
Omar Emara b54a26ede4 IMB: Support rgba and V channels in single-layer EXR
Currently, the EXR reader only considers uppercase RGBA channel names in
single-layer EXRs, which leaves out the lower case rgba channel names we
started using for data and vector passes in Cycles and the compositor.
Further, a single V channel was also ignored, which is by convention
used for BW passes.

This patch extends the single-layer channel recognition methods to
include lowercase rgba and V channels.

Pull Request: https://projects.blender.org/blender/blender/pulls/114339
2023-11-02 11:08:35 +01:00
Hans Goudey 7760641689 Merge branch 'blender-v4.0-release' 2023-11-02 09:39:32 +01:00
Hans Goudey 0f9dcafa76 Fix #112973: Node tools: Incorrect redo behavior in sculpt mode
When there is a non-sculpt mode undo step before the operation,
redoing the node tool operation doesn't work correctly-- the undo
that happens before repeating the operator doesn't work.

The fix is using the sculpt geometry undo step system. Theoretically
this should be cheap because implicit sharing will avoid copying most
of the attribute layers. However in the future it would be good to avoid
a PBVH rebuild after the operation in some cases.
2023-11-02 09:38:36 +01:00
Iliya Katueshenock 5552ac1832 Cleanup: Use utility to fill index range in curve node
Pull Request: https://projects.blender.org/blender/blender/pulls/114375
2023-11-02 09:07:34 +01:00
Campbell Barton 6983c14955 Cleanup: spelling in comments, use doxygen doc-strings 2023-11-02 16:43:04 +11:00
Campbell Barton 19254ae44c Cleanup: format 2023-11-02 16:34:48 +11:00
Campbell Barton 72798f74ee Merge branch 'blender-v4.0-release' 2023-11-02 16:34:19 +11:00
Campbell Barton 0372bb44f7 Cleanup: format 2023-11-02 16:33:28 +11:00
Campbell Barton c0c94124cc USD: use BLI_snprintf to ensure null terminated string 2023-11-02 16:24:29 +11:00
Campbell Barton 71222c9829 Merge branch 'blender-v4.0-release' 2023-11-02 16:10:37 +11:00
Campbell Barton 8df06e41f3 AUTHORS: add 3 new developers 2023-11-02 16:09:11 +11:00
Habib Gahbiche ab9ce556a1 Cleanup: Silence unused-private-field warning
Warning message: `warning: private field 'level' is not used [-Wunused-private-field]`

Pull Request: https://projects.blender.org/blender/blender/pulls/114372
2023-11-01 19:56:58 +01:00
Lukas Stockner 0b81a163e2 Cycles: Fix Principled BSDF versioning for keyframes and drivers
This is a last-minute patch to address #113898.

There are two remaining known limitations, which are accepted for now:
- Drivers/keyframes don't transfer to the extra nodes in automatic conversion setups (such as for Subsurface Color)
- Drivers/keyframes on Sheen Tint/Specular Tint only apply to the R channel, since they were changed to color inputs in 4.0

Pull Request: https://projects.blender.org/blender/blender/pulls/114300
2023-11-01 19:27:51 +01:00
Brecht Van Lommel 682bdf3110 Merge branch 'blender-v4.0-release' into main 2023-11-01 18:41:16 +01:00
Brecht Van Lommel 39f7411065 Fix "make bpy" on macOS not install libraries inside bpy module
Default to WITH_PORTABLE_INSTALL behavior for this case, same as on
Windows and Linux.
2023-11-01 18:39:06 +01:00
Hans Goudey 90269dfe14 Fix #114357: Dyntopo face set brush does not create face sets layer
Create the face set layer in the BMesh when the face set brush is first
used. This requires iterating through all faces to set the default value
of 1 because the default of 0 (SCULPT_FACE_SET_NONE) has different
behavior defined elsewhere.

Pair-reviewed in person with Sergey
2023-11-01 18:33:22 +01:00
Hans Goudey fbd49adfc4 Sculpt: Dyntopo: Consider all vertices in face set brush
4e87b3004b made the logic to require all vertices in the face
to be covered by the brush. However, the behavior is closer to the non-
BMesh version if only one of the face's vertices needs to be in "inside".

Pair-reviewed in person with Sergey
2023-11-01 18:33:17 +01:00
Hans Goudey 756dea7ca1 Cleanup: PBVH: Remove redundant storage of face set metadata
These two values are already stored in the mesh, and they have no
relation to the PBVH's goal as an acceleration structure. Similar to
a6a2af5fdd, remove the values from the PBVH and
just access them from the mesh as necessary.

Pair-reviewed in person with Sergey
2023-11-01 18:20:43 +01:00
Habib Gahbiche f54ed1c639 Cleanup: Metal: Silence sometimes-uninitialized warning
Warning message:
`warning: variable 'pos' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]`

Pull Request: https://projects.blender.org/blender/blender/pulls/114360
2023-11-01 16:12:30 +01:00
Richard Antalik 6bb238c761 Merge branch 'blender-v4.0-release' 2023-11-01 13:19:06 +01:00
Richard Antalik 01b617a3c6 VSE: remove speed_factor RNA property from sound strips
Property `speed_factor` was used before retiming. It was kept for
potential versioning code for complex speed animation, that was
possible with even older `pitch` property.

Strips, where `speed_factor` is set to static value are already
correctly converted.

Such versioning code would be quite complex, possibly slow and maybe
could corrupt files. This is due to multiple factors:
- Sound seeking was broken, so conversion would have to ignore all
  keyframes before strip starts to map frames properly.
- Because some animation was effectively ignored, it may cause
  inconsistencies when doing conversion.
- It would have to integrate value of `speed_factor` to map keyframes
  to strip space, but the animation is not limited to strip length.
- For each keyframe where speed gradually changes, at least one smooth
  speed transition would be required, but there would be discrepancies
  that would have to be accounted for. With simpler strategy it is
  likely, that extent of ramps would be limited and thus animation would
  be quite different from original.

Because of these reasons, I think it is best to not convert
`speed_factor` animation.

Pull Request: https://projects.blender.org/blender/blender/pulls/114295
2023-11-01 13:17:06 +01:00
Hans Goudey 57fddca9f6 Merge branch 'blender-v4.0-release' 2023-11-01 11:12:04 +01:00
Hans Goudey d503f2ac33 Fix #114177: Crash in extrude mesh vertex mode with unsupported data
Unsupported data can be removed, which reallocated the custom data layer
array. Since the temporary ID vectors referenced memory in that array
directly, this could lead to a use-after-free. Instead remove unsupported
data before collecting the referenced attribute IDs.
2023-11-01 11:08:35 +01:00
Hans Goudey 66c1ca7419 Fix #114102: Node tool data-block inputs broken
Also add data-blocks from the redo panel inputs to the temporary
dependency graph added by 2893dc8ab7. Then make a temporary
copy of the properties list to pass the updated "evaluated" pointers to
the geometry nodes evaluator.

Sharing code between the modifier and tools is starting to make things
more complicated than they should be. But for now it's still probably
worth it.

The remaining issue with data-block inputs is #113383. I'll look into
that next.

Pull Request: https://projects.blender.org/blender/blender/pulls/114347
2023-11-01 10:53:40 +01:00
Habib Gahbiche 021109e633 Speedup classic Kuwahara filter by summed area table
Implemented summed area table (SAT) for CPU.

- Filter runtime becomes independent of filter size
- Up to 30x faster for 4k images for full-frame compositor

Pull Request: https://projects.blender.org/blender/blender/pulls/111150
2023-11-01 10:49:09 +01:00
Antonio Vazquez c412aa1a17 GPv3: Rename `stroke_color_set` to `stroke_material_set`
The old name was logic when the color of the stroke was using a palette and not materials, but now always a material is used so the name "color" is not logic.

As we are changing all the API, now is the moment to set the right name.

Also, the commit includes some cleanup of the code.

Pull Request: https://projects.blender.org/blender/blender/pulls/114186
2023-11-01 10:39:17 +01:00