Commit Graph

140059 Commits

Author SHA1 Message Date
Hans Goudey
658b32093a Refactor: Sculpt: Replace sculpt attribute system for dynamic topology data
Part of #118145.
Use the BMesh functions instead of the sculpt attribute API which we
intend to remove.
2024-08-14 10:25:52 -04:00
Hans Goudey
d065d54972 Fix: Missing sculpt overlays for dynamic topology
Caused by 9eb7e8bfd1.
2024-08-14 10:24:16 -04:00
Hans Goudey
e612260f5c Refactor: Sculpt: Replace sculpt attribute system for persistent base data
Part of #118145.
Use the mesh attribute API instead of the sculpt attribute API which we
intend to remove.
2024-08-14 10:13:37 -04:00
Sergey Sharybin
a4fff6cd66 Libs: sse2neon: update to the newer version
Addresses compilation issue with clang-cl on WoA.

Ref #126237
2024-08-14 16:08:35 +02:00
Aras Pranckevicius
df00c30fcd Fix #126201: Video artifacts when rendering into ffmpeg with PNG codec
Started happening with 422dd9404f that introduced multi-threaded
conversions of src->dst (usually RGBA->YUV) format before encoding
the frame with ffmpeg. But the issue itself is not related to
multi-threading, but rather with the fact that AVFrame objects
started to be backed by an AVBuffer object (as that is needed for
threaded swscale to work).

Turns out, if a frame is backed by AVBuffer object, said buffer
might become "non writable" because it got shared (non-1 refcount).
And that happens with some ffmpeg video codecs, particularly PNG one.

Make sure to make the AVFrame objects writable inside
generate_video_frame. This follows official ffmpeg example
(doc/examples/encode_video.c) that explains why that is needed:

"the codec may have kept a reference to the frame in its internal
structures, that makes the frame unwritable. av_frame_make_writable()
checks that and allocates a new buffer for the frame only if necessary"

Pull Request: https://projects.blender.org/blender/blender/pulls/126317
2024-08-14 16:07:11 +02:00
Hans Goudey
7d08d6be6a Fix #126013: Geometry nodes PLY import node skips attributes
Just turn on the option for geometry nodes where attributes are
generally expected to be used. We could expose this and other
options at some point too but that requires a bit more thought.
2024-08-14 08:43:06 -04:00
Thomas Dinges
d56196ad96 Tools: Update issues script after label rename from priority to severity 2024-08-14 14:42:04 +02:00
Omar Emara
075bdbcd63 Nodes: Improve isotropic Gabor noise UI controls
This patch improves the isotropic Gabor noise UI controls such that
variations happen in both directions of the base orientation, as opposed
to being biased in the positive direction only.

Thanks to Charlie Jolly for suggesting this improvement.
2024-08-14 15:26:03 +03:00
Omar Emara
ce89d7949c Nodes: Optimize Gabor noise variance estimation
This patch optimizes the Gabor noise standard deviation estimation by
computing the upper limit of the integral as the frequency approaches
infinity, since the integral is mostly constant for the relevant
frequency range. The limits are 0.25 for the 2D case and 1 / 4 * sqrt2
for the 3D case.

This also improves normalization for low frequencies, possibly due to
the effect of windowing.

Thanks to Charlie Jolly for spotting the optimization.
2024-08-14 14:27:23 +03:00
Pratik Borhade
8e771104d8 GPv3: Cursor panel not usable in paint modes
This is due to failing poll function. Use correct tool setting pointer
based on the active mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/126279
2024-08-14 13:26:00 +02:00
Sergey Sharybin
f1fe232e89 Cycles: Add parallel_reduce() to the ccl namespace
Currently unused, but is a good utility to have to make code
threaded in the future.
2024-08-14 12:33:40 +02:00
Sergey Sharybin
1fc6a5b9bd Fix #126108: Crash when EXR image is loaded in image list
Technically the regression was caused by #124472 which made it so
duplicating ImBuf allocates the exact amount of memory needed to
hold the pixels, while before IMB_dupImBuf() would leave the float
buffer over-allocated for images that are less than 4 channels per
pixel.

At the same time IMB_scalefastImBuf() was hard-coded to use 4
channels per pixels, for both byte and float buffers. It did not
crash in Blender 4.1 as it was accessing memory that is over-allocated,
but it also did not generate proper preview.

This fix makes the IMB_scalefastImBuf() to operate on an arbitrary
number of channels in the float buffer.

Pull Request: https://projects.blender.org/blender/blender/pulls/126234
2024-08-14 11:34:29 +02:00
Omar Emara
847a3a7ea3 Nodes: Optimize Gabor noise with early exit
Optimize the Gabor noise texture code with an early exit for points that
are further away from the kernel center. This was already done for the
kernel, but is now being done earlier before computing the weight, so
its computation is now skipped.

Thanks to Charlie Jolly for the suggestion.
2024-08-14 12:12:34 +03:00
Pratik Borhade
8ccf6036e6 Fix: Declaration warning after 7bfdc6dfea 2024-08-14 14:34:55 +05:30
Dalai Felinto
c629a85c54 Update bug report template to follow the new bug report process
* Severity instead of Priority
* Bug instead of Report

Ref: https://projects.blender.org/infrastructure/blender-projects-platform/issues/118
2024-08-14 10:22:32 +02:00
Pratik Borhade
7bfdc6dfea GPv3: Invert weight operator
Port gp legacy "invert weight" operator.

Pull Request: https://projects.blender.org/blender/blender/pulls/126275
2024-08-14 08:55:24 +02:00
Omar Emara
94d3b764e7 Geometry Nodes: Implement Gabor noise node
This patch ports the Gabor noise shader texture node into Geometry
Nodes.

Pull Request: https://projects.blender.org/blender/blender/pulls/125718
2024-08-14 08:48:17 +02:00
Omar Emara
8504ab2070 Fix: Compile error when FFTW is disabled 2024-08-14 09:22:33 +03:00
YimingWu
fec8591464 Fix #126278: Missing finish() call joining .sculpt_face_set
In `mesh_join_offset_face_sets_ID()`, `.sculpt_face_set` is
modified but the `finish()` call wasn't present on the
`SpanAttributeWriter`, leading to warnings and potentially broken
data. This is now fixed.
2024-08-14 11:34:19 +08:00
Sean Kim
63bc8997a0 Fix #126199: Various brushes deform base mesh on non-basis shape key
When restoring the orig_position values for certain brushes, we need to
apply similar logic and avoid updating the base mesh if we are sculpting
on a non-basis shape key.

Pull Request: https://projects.blender.org/blender/blender/pulls/126305
2024-08-14 02:53:47 +02:00
Hans Goudey
2af62ba0f6 Refactor: Sculpt: Reduce usage of BVH tree geometry back pointers
Similar to 9eb7e8bfd1
Pass the object instead of retrieving geometry data from the BVH tree.
2024-08-13 19:01:15 -04:00
Hans Goudey
1661f0728f Cleanup: Remove usage of BKE_pbvh_get_mesh
Part of #118145.
This acts as a back pointer, allowing code that looks like it just deals with
the sculpt BVH tree to do basically anything.
2024-08-13 19:01:15 -04:00
Hans Goudey
c1bb5c03fe Cleanup: Sculpt: Remove now unused parts of automasking API
Part of #118145.
2024-08-13 19:01:15 -04:00
Harley Acheson
8f996f1786 UI: Simplified Feedback for Docking
This simplifies the feedback shown while using the "Interactive Editor
Docking" experimental feature.  It removes the "X" icon shown on areas
that are removed. It does not show an icon for the areas that are left
over and altered. It only shows an icon for the active target area, and
does so without the outline of the icon. The result is a calmer
experience and it is easier to see exactly where the area is going.

Pull Request: https://projects.blender.org/blender/blender/pulls/126304
2024-08-14 00:21:39 +02:00
Sean Kim
58e55ef023 Fix #126293: Crash when moving mouse after enabling Dyntopo
Introduced in 45d9bfa734

We currently do not invalidate the `active_vert` variable when changing
between different mesh implementations. Therefore, it is incorrect to
assume the value can be turned into a valid concrete reference simply
based on the PBVH type.

Pull Request: https://projects.blender.org/blender/blender/pulls/126299
2024-08-13 21:38:13 +02:00
Sean Kim
f7d94d3e73 Fix #126252: Polyline target circle changes color randomly
When the operator was introduced, the program specified the immediate
mode program GPU_SHADER_3D_UNIFORM_COLOR but did not bind a particular
value. This leads to the color used for this circle changing depending
on the last color bound when drawing.

This change makes the color of the circle white, as initially intended,
and adds a darker outline to improve readability.

Pull Request: https://projects.blender.org/blender/blender/pulls/126259
2024-08-13 21:24:27 +02:00
Iliya Katueshenock
4839a86984 Cleanup: BLI: Merge files
Deduplicate IndexRange implementation files.

Pull Request: https://projects.blender.org/blender/blender/pulls/126169
2024-08-13 20:26:55 +02:00
Iliya Katueshenock
593e70dc53 Fix: Geometry Nodes: typo in node description
Pull Request: https://projects.blender.org/blender/blender/pulls/126165
2024-08-13 19:56:20 +02:00
Jacques Lucke
4f491aca80 Fix #126286: crash when opening blend file with point cache 2024-08-13 19:53:46 +02:00
bartus
7207015a58 Fix #125070: Handle "Unit Scale" correctly in the STL and PLY importers
When importing an STL file with the "Scene Unit" option enabled, we
should divide by the Unit Scale instead of multiply (which was already
done when Exporting with "Unit Scale" enabled)

The PLY importer had the same issue.

The prior "legacy" implementation did this correctly:
b42d686277/io_mesh_stl/__init__.py (L110)

Co-authored-by: Jesse Yurkovich <jesse.y@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/124718
2024-08-13 19:22:58 +02:00
Hans Goudey
5b75c5b89d Refactor: Sculpt: Specialize expand operator boundary calculation
Part of #118145.
2024-08-13 13:07:28 -04:00
Hans Goudey
90460878b3 Cleanup: Sculpt: Remove unused hide_poly argument
Even if/when we take visibility into account for multires calculations,
the per-grid-face visibility is stored in SubdivCCG::grid_hidden, not
the base mesh's face visibility.
2024-08-13 12:49:20 -04:00
Hans Goudey
6229f10e93 Cleanup: Sculpt: Pass position argument instead of PBVHVertRef 2024-08-13 12:35:30 -04:00
Hans Goudey
e12c568a69 Cleanup: Sculpt: Remove unused function 2024-08-13 12:35:11 -04:00
Hans Goudey
2449b12e67 Fix #125929: Add curves creates 1-segment too short curves
Caused by 5e96934ef6.
2024-08-13 12:11:58 -04:00
Hans Goudey
a716685f2f Fix #126149: Flat face wireframe edges hidden on some platforms
d1049f6082 translated the logic from the `int8` to `float`
conversion incorrectly. Previously the data was extracted to an integer
array (multiplied by 254) first then translated to a float VBO (and
divided by 255). I think conceptually the special `1.0/255` value isn't
necessary because the "optimal display edges" area already taken into
account for the creation of the index buffer. But as a quick fix, just
fix the factor to be the same as before.

Pull Request: https://projects.blender.org/blender/blender/pulls/126290
2024-08-13 18:09:23 +02:00
Jacques Lucke
e1422530d6 Fix: crash when attempting to unload volume tree twice 2024-08-13 17:47:52 +02:00
Hans Goudey
9eb7e8bfd1 Refactor: Sculpt: Reduce reliance on BVH tree geometry back pointers
Retrieve the relevant data directly from the original object's mesh
(or the evaluated SubdivCCG in that case) rather than using the
BVH tree's geometry points which we'd like to remove.

Pull Request: https://projects.blender.org/blender/blender/pulls/126284
2024-08-13 17:38:09 +02:00
Christoph Lendenfeld
9741750497 Refactor: move BKE_action_get_item_transform_flags out of the kernel
No functional changes expected.

The function `BKE_action_get_item_transform_flags` was only ever used in a single place.
As such it could be a static function within the given file.
This reduction in scope will help with future refactors.

This is in service of fixing #126125 since the function in its current form
does not support layered actions.

Pull Request: https://projects.blender.org/blender/blender/pulls/126287
2024-08-13 17:04:01 +02:00
Anthony Roberts
9df75725be Switch to using blender::BitVector in tile changesets
This avoids an issue in clang-cl on Windows ARM64 where an invalid pointer would be (re)used.

See #124182 for more details, but basically without this, when the vector of tiles inside changeset is resized, a reference to an invalid pointer (ie, the location in the old vector) is kept somewhere, which makes the test fail.

Pull Request: https://projects.blender.org/blender/blender/pulls/126083
2024-08-13 16:52:52 +02:00
Alaska
a3b0c68ca9 Fix #123634: Missing 3D curve intersections with Metal BVH2
Fixes missing intersections on straight 3D curves with the
Metal backend, with BVH2.

This issue could of manifested on other devices, but didn't seem to
in practice.

Pull Request: https://projects.blender.org/blender/blender/pulls/126197
2024-08-13 16:49:28 +02:00
Jacques Lucke
d81ba55ce4 Fix #124467: lazy-connect does not work with Capture Attribute node
The lazy-connect feature of node wrangler uses the built-in `connect_sockets`
function which automatically handles virtual sockets in group input and output
nodes already. However, it does not handle virtual sockets in other nodes.

The fix is to generalize this behavior. For that, a new `handle_dynamic_sockets`
boolean input is added to `tree.links.new`. When enabled, virtual sockets are
handled properly by internally calling the `bNodeType.insert_link` methods.

The new behavior is turned of by default for compatibility reasons.

Pull Request: https://projects.blender.org/blender/blender/pulls/126282
2024-08-13 16:25:20 +02:00
Omar Emara
59a4fdfc81 Cleanup: Fix warning about non void function 2024-08-13 16:36:05 +03:00
Omar Emara
edc4d0d84a Compositor: Support CPU storage in result class
This patch adds support for CPU side buffers for the result class. A new
storage type member was added to identify the type of buffer storage,
and allocation will either allocate a GPU texture or a CPU buffer based
on the context's GPU usage.
2024-08-13 16:13:22 +03:00
Falk David
81d78e3416 GPv3: Apply Modifier
This implements the `Apply Modifier` operator for GPv3.

Applies the modifier to the current frame. Drawings at the current frame will be updated.
If the result of the modifier creates new layers, the layers will be added and a drawing
at the current frame will be inserted.

Applying a modifier will run the following steps:
* Create a localized copy of the original Grease Pencil data and insert it into a geometry
   set that owns it.
* Execute the `modifiy_geometry_set` function of the modifier with this geometry set.
* In the resulting Grease Pencil data loop over all layers:
   * If the original data has a layer with the same name, overwrite its drawing data in the
      current frame.
   * Otherwise create a new layer in the original data and insert a resulting drawing at
      the current frame.
* Remove all original layers that are not mapped to from a result layer.
* Remap the material indices for all drawings that have not been updated (e.g. the ones
    that are not on the current frame).
* Copy all the layer attributes to the original Grease Pencil.

Pull Request: https://projects.blender.org/blender/blender/pulls/124543
2024-08-13 15:02:25 +02:00
casey bianco-davis
738c2a5e1c Fix #126241: Some attributes set to default.
The problem was that the attributes where hard coded, rather then using the function.

Pull Request: https://projects.blender.org/blender/blender/pulls/126251
2024-08-13 15:01:48 +02:00
Jacques Lucke
05925b404d Fix #125419: crash when loading baked data with empty instances
The problem was the automatic instance deduplication. There were two
instance references before baking, both of which were referenced by instances.
When loading the bake, they were deduplicated, so there was only one geometry,
but the instances still referenced two.

The fix is to not do deduplication when loading instances from a bake.
2024-08-13 14:10:25 +02:00
Jeroen Bakker
7fc55c0ad8 OpenGL: Remove conservative depth extension check
No need to enable the GL_ARB_conservative_depth extension as it is
core in GLSL 4.20. Some drivers still complain that the
extension was explicitly enabled.

Detected on AMD 21.Q2.1 (27.20.21026.2006) legacy driver.

Pull Request: https://projects.blender.org/blender/blender/pulls/126223
2024-08-13 12:10:00 +02:00
Anthony Roberts
07d0ecb9d6 Windows: Fix OpenVDB errors when compiling with clang-cl
Pull Request: https://projects.blender.org/blender/blender/pulls/126236
2024-08-13 11:36:36 +02:00
Jeroen Bakker
c4e90eddcb Fix #125618: EEVEE: Cryptomatte Material Layer Incorrect
The encoded material names used by cryptomatte were incorrect. Reason
was that it used the name including the object type.

NOTE: reference images needs to be updated

Pull Request: https://projects.blender.org/blender/blender/pulls/126267
2024-08-13 11:28:45 +02:00