Commit Graph

115462 Commits

Author SHA1 Message Date
cf5529af12 Cleanup: remove gizmo transform workaround which is no longer needed
Now gizmos forward the original event to transform so assuming an LMB
event is no longer needed.
2022-06-03 15:08:11 +10:00
e87082d8a7 Cleanup: spelling in comments 2022-06-03 15:08:11 +10:00
379672ca0b Cleanup: remove unused, commented MTexFace assignments 2022-06-03 15:08:11 +10:00
9ad19b0453 Merge branch 'blender-v3.2-release' 2022-06-03 13:15:35 +10:00
c4701a027f Fix T98558: island selection in UV editor can crash
Regression in [0]. When zoomed in, we can be within the face of an
island but too far from an edge, in this case
uv_find_nearest_face_multi_ex is used instead of
uv_find_nearest_edge_multi with the consequence that hit.l cannot be
used in uvedit_uv_select_test (it is NULL).

Instead, use uvedit_face_select_test instead in this case.

[0]: d356edf420

Reviewed By: campbellbarton

Ref D15100
2022-06-03 13:14:20 +10:00
1fb36e9a7c Cleanup: DRW: Overlay: Make simple fragment shaders local
This avoids reusing gpu shader files that have different requirements.
2022-06-02 23:50:29 +02:00
4a72b64c7b Cleanup: Split large block of versioning code to separate function
Large blocks of versioning code should be separate to keep
`blo_do_versions_300` more readable.
2022-06-02 22:26:34 +02:00
545b9ddc34 Cleanup: Simplify curves toolbar drawing logic
Use `elif` to clarify that only one case happens.
2022-06-02 22:18:07 +02:00
049e42ef20 Cleanup: DRW: Added basic_ prefix to all *.glsl files in basic/shaders
This is needed to avoid potential naming collision with other engines.
2022-06-02 21:25:38 +02:00
c15e913df8 Cleanup: DRW: Added overlay_ prefix to all *.glsl files in overlay/shaders
This is needed to avoid potential naming collision with other engines
2022-06-02 21:08:05 +02:00
7f47f187c1 EEVEE-Next: Fix compilation of hair domain materials
Also fix formating of `curves_attribute_element_id` which was copy pasted.

# Conflicts:
#	source/blender/draw/engines/eevee_next/shaders/eevee_attributes_lib.glsl
2022-06-02 20:00:05 +02:00
b5fe0f02be Cleanup: DRW: Added overlay_ prefix to all *_info.hh files in overlay 2022-06-02 19:58:10 +02:00
73d8015aa3 Fix T79801: openvdb cache does not support Unicode paths on windows
"Fix" should be taken with a grain of salt, this will fix
the issue on win10 1903 and newer.

OpenVDB uses boosts memory mapped files which call
CreateFileA in the back-end when you feed it a
regular string.

now the encoding for CreateFileA will be whatever the
default is for the system, it internally turns it into
a wide string with said encoding and calls CreateFileW.

This change changes that encoding to UTF-8 for just
blender so we can use utf-8 with any of the narrow
api functions. This is a manifest change and only win10
1903 will look for it, so that sadly limits the fix
to only a subset of users.

While ideally we would have fixed the issue our selves,
some of the calls to openvdb::io::file::open are beyond
our control (ie from inside USD or Mantaflow)

Note: This only changes the behaviour in regard to Win32
API functions, regular CRT functions like fopen or if_stream will
still not accept utf-8 filenames.

Differential Revision: https://developer.blender.org/D14981
Reviewed by: brecht
2022-06-02 11:18:43 -06:00
2b80bfe9d0 Color Management: add Filmic sRGB as an image colorspace
A typical use case is when you want to render with the Filmic view transform, but
composite an existing image in the background that should not be affected by the
view transform.

With this colorspace it's possible to do an inverse Filmic transform, render
everything in scene linear space, and then apply the Filmic transform again.

This is pretty basic in that this is not going to take into account the full view
transform including looks, curves and exposure. But it can be helpful anyway.

Ref T68926
2022-06-02 18:49:04 +02:00
33f5e8f239 Cycles: load 8 bit image textures as half float for some color spaces
For non-raw, non-sRGB color spaces, always use half float even if that uses
more memory. Otherwise the precision loss from conversion to scene linear or
sRGB (as natively understood by the texture sampling) can be too much.

This also required a change to do alpha association ourselves instead of OIIO,
because in OIIO alpha multiplication happens before conversion to half float
and that gives too much precision loss.

Ref T68926
2022-06-02 18:04:38 +02:00
10488d54d9 Cleanup: Use const pointers 2022-06-02 18:02:48 +02:00
91c44920dd Fix: Build error after merge from release branch 2022-06-02 18:02:32 +02:00
3cd6ccd968 Merge branch 'blender-v3.2-release' 2022-06-02 17:54:17 +02:00
2d9c5f3dcf Fix T98556: Crash with extrude node in edit mode
The original index layer was not initialized properly.
Supporting original indices properly for this node is
doable, but for now it is better to simply initialize them
to the "none" value to fix the crash.

Differential Revision: https://developer.blender.org/D15105
2022-06-02 17:53:35 +02:00
96a47af413 Fix T98546: Crash with multires bake and zero levels
The problem was that copying a `CDDerivedMesh` (`CDDM_copy`) doesn't
copy the `vert_normals` reference that it takes from a mesh. Since this
entire area is almost completely broken anyway (mainly in terms of
ownership handling), for now we can just avoid copying the `DerivedMesh`
in the zero levels case.

Longer term, this area should be refactored to remove `DerivedMesh`
and use the newer subdivision evaluation system.

Differential Revision: https://developer.blender.org/D15099
2022-06-02 17:46:38 +02:00
9e43a57d22 Cycles: fix missing attribute update
Differential Revision: https://developer.blender.org/D15102
2022-06-02 16:42:53 +02:00
9580f23596 install_deps: Add support for oneAPI Level Zero library. 2022-06-02 15:53:50 +02:00
1174cdc914 install_deps: raise default ffmpeg version to 5.0, minimum 4.0.
Ref. T98555.
2022-06-02 15:53:50 +02:00
9bb7de274d USD: Enable operator presets when exporting
This patch enables operator presets for USD exports.
The export menu has many options, so enabling the feature
will help users manage their export settings in the same
way they can with other filetypes.

Same as {rB1d668b635632}

Differential Revision: https://developer.blender.org/D14896
2022-06-02 15:07:54 +02:00
432c4c74eb LineArt: Speedup construction of quad trees.
Using multithread for `add_triangles` to speed up quad tree building.
Each thread would lock its respective tile to work on triangle insertion,
intersection calculation, tile splitting and triangle array extension.

Reviewed By: Sebastian Parborg (zeddb), Sergey Sharybin (sergey)

Ref D14953
2022-06-02 20:46:08 +08:00
Bastien Montagne
901791944d Anim: Refactor 'F-curve from rna path' code.
Move into its own new function the the low-level logic to search for a
given RNA path in Action F-curves, then driver F-curves of a given AnimData.

This deduplicates code from `BKE_fcurve_find_by_rna_context_ui` and
`id_data_find_fcurve`, and will allow for future more usages of this
functionality.

Differential Revision: https://developer.blender.org/D15068
2022-06-02 12:28:50 +02:00
3ca76ae0e8 Cleanup: remove "<pep8 compliant>" from headers
It can be assumed that all scripts comply with basic pep8 formatting
regarding white-space, indentation etc.

Also remove note in best practices page & update `tests/python/pep8.py`.

If we want to exclude some scripts from make format,
this can be done by adding them to `ignore_files` in:
source/tools/utils_maintenance/autopep8_format_paths.py

Or using `# nopep8` for to ignore for individual lines.

Ref T98554
2022-06-02 20:16:20 +10:00
48bb144fea PyDoc: reference enum instead of inlining 2022-06-02 20:16:20 +10:00
f4456a4d3c Expose background job info to Python
Add `bpy.app.is_job_running(job_type)` as high-level indicator. Job
types currently exposed are `WM_JOB_TYPE_RENDER`,
`WM_JOB_TYPE_RENDER_PREVIEW`, and `WM_JOB_TYPE_OBJECT_BAKE`, as strings
with the `WM_JOB_TYPE_` prefix removed. The functions can be polled by
Python code to determine whether such background work is still ongoing
or not.

Furthermore, new app handles are added for
`object_bake_{pre,complete,canceled}`, which are called respectively
before an object baking job starts, completes sucessfully, and stops due
to a cancellation.

Motivation: There are various cases where Python can trigger the
execution of a background job, without getting notification that that
background job is done. As a result, it's hard to do things like
cleanups, or auto-quitting Blender after the work is done.

The approach in this commit can easily be extended with other job types,
when the need arises. The rendering of asset previews is one that's
likely to be added sooner than later, as there have already been
requests about this.

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D14587
2022-06-02 11:20:17 +02:00
40ecf9d606 Merge branch 'blender-v3.2-release' 2022-06-02 10:05:56 +02:00
33eeed5b3c Fix T98538 EEVEE: Geometry input node breaks with Displacement Texture
This was due to older drivers not honoring varying attributes shadowing by
local variables. Renaming the input argument fixes the issue.
2022-06-02 10:05:14 +02:00
d73adfdc86 PyDoc: changes to the generated conf.py file
- Set the highlight language to python3 (excludes python2 syntax).
- Set the encoding for code highlighting to utf-8 (no need to detect).
- Update deprecated variable name.
- Remove redundant unicode prefixed string.
2022-06-02 15:02:25 +10:00
0f73a27b76 Fix T98552: Experimental Tweak Select: Curve handle tweak is difficult
When this preference is enabled, use selection behavior matching the
graph editor. We may want to make this default (see T98552).
2022-06-02 13:55:06 +10:00
ef3f33dfd3 Cleanup: quiet warnings, remove unused arguments 2022-06-02 13:47:54 +10:00
7afcfe111a VSE: Make time operations self-contained
This patch makes it possible to manipulate strips without need to use
update functions to recalculate effect and meta strips.

Prior to this change function `SEQ_time_update_sequence` had to be used
to update mainly effects and meta strips. This was implemented in a way
that relied on sorted list of strips, which can't always be done and in
rare cases this approach failed.

In case of meta strips, `seqbase` had to be passed and compared with
"active" one to determine whether meta strip should be updated or not.
This is especially weak system that is prone to bugs when functions are
used by python API functions.

Finally, other strip types had startdisp` and `enddisp` fields updated
by this function and a lot of code relied on these fields even if strip
start, length and offsets are available. This is completely
unnecessary.

Implemented changes:
All effects and meta strips are updated when strip handles are moved or
strip is translated, without need to call any update function.

Function `SEQ_time_update_sequence` has been split to
`SEQ_time_update_meta_strip_range` and
`seq_time_update_effects_strip_range`. These functions should be only
used within sequencer module code. Meta update is used for versioning,
which is only reason for it not being declared internally.

Sequence fields `startdisp` and `enddisp` are now only used for
effects to store strip start and end points. These fields should be
used only internally within sequencer module code.
Use function `SEQ_time_*_handle_frame_get` to get strip start and end
points.

To update effects and meta strips with reasonable performance, cache
for "parent" meta strip and attached effects is added to
`SequenceLookup` cache, so it shares invalidation mechanisms.
All caches are populated during single iteration.

There should be no functional changes.

Differential Revision: https://developer.blender.org/D14990
2022-06-02 03:16:20 +02:00
604409b8c7 Cleanup: undeclared warning 2022-06-02 10:07:07 +10:00
f60ac5068a PyDoc: remove CSS override for scrolling long enum lists
Adding a scroll-bar to in-line lists has the down-side that it cuts
of text including warnings or notes that can be included, see: T87008.

Now enums are referenced [0] this is no longer needed, reverting [1].

[0]: 1c6b66c9cf
[1]: 1e8f266591
2022-06-02 10:03:00 +10:00
fb08353f38 Cleanup: replace ParamBool and PBool with bool for GEO_uv API
Also improve const correctness and type correctness.

Reviewed By: brecht

Ref D15075
2022-06-02 09:52:51 +10:00
b450a8c851 Cleanup: remove unused area smoothing logic for UV unwrap
This used to run when holding Shift while unwrapping until 2006 when it
was removed [0].

[0]: e66b5e5cd5

Reviewed By: brecht

Ref D15075
2022-06-02 09:47:01 +10:00
68150b666c Fix T92952: Knife inconsistent angle printout
Knife could display incorrect snapping angle printout in
header/footer because it was not always updated after angle snapping
calculations.
2022-06-01 21:20:53 +01:00
129ea355c8 GPencil: Add support to name new layer when moving to layer
To make it consistent with collections, now it's possible to name the new layer created using the `Move to Layer` option.

Differential Revision: https://developer.blender.org/D15092
2022-06-01 18:25:12 +02:00
bff9841465 Merge branch 'blender-v3.2-release' 2022-06-01 15:44:19 +02:00
a493956eaa Release schedule: Entering Bcon4 for Blender 3.2 (RC) 2022-06-01 15:39:52 +02:00
a1e6245650 Merge branch 'blender-v3.2-release' 2022-06-01 15:04:54 +02:00
e72b86d3cb Fix T98469: Crash trying to add an object to a linked collection that is linked to multiple scenes.
Crash happened because code could not find a valid base in current scene
after adding the object, added some checks for that.

Root of the issue was wrong assumptions in `BKE_object_add` logic, which
would pick the first valid ancestor collection in case initially
selected collection was not editable. In some case, this could pick a
collection not instanced in the current scene's view layer, leading to
not getting a valid base for the newly added object.

Addressed this by adding a new variant of `BKE_collection_object_add`,
`BKE_collection_viewlayer_object_add`, which ensures final collection is
in given viewlayer.
2022-06-01 15:04:34 +02:00
c667069a12 Merge branch 'blender-v3.2-release' 2022-06-01 14:55:26 +02:00
7dd0258d4a Fix T98536: geometry nodes wrong selection on duplicate edges
Code was using the loop [which is looping over the selection] index as
an index for the lookup into the edges directly, but needs to be a
lookupinto the IndexMask.

Also renamed the variable (as used elsewhere) to make this more clear.

If accepted, would be nice to still get this into 3.2.

Maniphest Tasks: T98536

Differential Revision: https://developer.blender.org/D15089
2022-06-01 14:53:35 +02:00
ae0b68e129 Merge branch 'blender-v3.2-release' 2022-06-01 22:46:17 +10:00
e0f3c23ac0 Fix T98370: Shift+RMB Select nodes doesn't work with the tweak tool
The tweak tool was toggling node selection twice, as the selection
key-map is already accounted for in the node key-map there is no need
to duplicate the actions in the tweak tool.
2022-06-01 22:45:45 +10:00
e9eae1b857 Curves: Avoid optimization to avoid storing selection for now
This optimization should be restored when there is proper vizualization
for the selection attributes.
2022-06-01 11:57:38 +02:00