Commit Graph

132451 Commits

Author SHA1 Message Date
Campbell Barton
635409bfe2 Cleanup: correct type info in check_docs_code_layout 2024-02-03 13:13:56 +11:00
Campbell Barton
836167f1c9 mypy: update checker config, report missing paths 2024-02-03 13:09:57 +11:00
Jesse Yurkovich
f355b20262 Fix #106326: Add scale-bias processing for UsdUVTexture
This adds the processing required to import and export, simple, material
graphs utilizing the UsdUVTexture Scale and Bias inputs.

Since Blender does not have equivalent inputs on its Image node, a
Multiply-Add node is used instead. This matches the calculation as per
the UsdPreviewSurface spec[1]

A complicating factor here is when these two inputs are used for normal
map textures. The Scale and Bias inputs are authored in such a way to
take the [0, 1] image data and expand into the [-1, 1] tangent space
range as per the spec. However, the Blender Normal Map node expects to
do this transformation itself. The processing in this patch needs to
account for this. For the case of normal maps it will:
- Apply the Scale-Bias calculation directly as authored
- Apply an additional transform to move from [-1, 1] back into [0, 1]
- Feeds this into the Normal Map node

This processing extends to Export as well. During material graph
traversal we need to "skip" the middle adjustment transform and only
export the "real" Scale-Bias data. Traversing the graph like this can be
error prone but is probably the best we can do without having a native
Scale-Bias concept on Blender's Image node.

[1] https://openusd.org/release/spec_usdpreviewsurface.html#texture-reader

Pull Request: https://projects.blender.org/blender/blender/pulls/115224
2024-02-02 23:23:29 +01:00
Jacques Lucke
586fadd6d2 Geometry Nodes: deduplicate arrays in baked data
This adds hash-based data deduplication when baking in
geometry nodes. All arrays that are written to `.blob` files
are hashed. If an array is detected to have the same hash
as a previously written array, it is not written again. Instead
the same memory is reused.

We already have a similar optimization, but that only worked .with data that was already implicitly shared. Doing this kind
of deduplication with implicitly shared data has the benefit,
that the equality check is constant time. The hash based
approach implemented here requires linear time in the size
of the array, but works on all kinds of data. Both optimizations
work together. So the hashing is skipped if possible.

The hash-based deduplication primarily benefits cases where
the data is regenerated on each frame, so the data between .frames is not shared. One example  used to require 2.9 GB
disk space. Now it only requires 542 MB. Additionally, the
duplicate arrays will now be implicitly shared between frames
when reading the baked data later.

An extended version of this approach which also detects partial
duplicates is implemented in #117749.

Pull Request: https://projects.blender.org/blender/blender/pulls/117768
2024-02-02 22:33:00 +01:00
Sean Kim
17f075222f Fix: Adjust Grease Pencil invert icon
Fixes the icon used for indicating that a grease pencil mask layer is inverted

Pull Request: https://projects.blender.org/blender/blender/pulls/117769
2024-02-02 21:37:15 +01:00
Hans Goudey
f78d3a807a Cleanup: Store space types in vector of unique_ptr
- Use unique_ptr instead of raw pointers
- Use Vector instead of a linked list
- Use a destructor instead of a free function
- Remove the space type template-- it's much clearer to copy functional code

Pull Request: https://projects.blender.org/blender/blender/pulls/117766
2024-02-02 20:59:20 +01:00
Aras Pranckevicius
5ff0feee52 VSE: tweak look of Vectorscope to match upcoming Image vectorscope
Image vectorscope is getting some visual updates (#116974), here make the
Sequencer vectorscope match the look fairly closely:

- Use same scaling factor for both U & V, instead of trying to use all
  the texture space.
- Instead of drawing hexagonal area between color primary "pure" and
  "75% saturation safe" points, draw a circle with colored background
  and five inner rings.
- Indicate "75% saturation primaries" as wire rectangles with a text label.

Images in PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/117738
2024-02-02 20:59:01 +01:00
Hans Goudey
eb71d9f7bc Fix: Exception thrown when displaying spreadsheet
Problem in 660867fa00.
Comment out the offending assert for now until it can be fixed later.
2024-02-02 14:07:27 -05:00
Jacques Lucke
319b911784 Cleanup: move hash and ghash utils to C++
Also see #103343.

Pull Request: https://projects.blender.org/blender/blender/pulls/117761
2024-02-02 19:55:06 +01:00
Philipp Oeser
9aa20a0979 Fix #54554: missing colorspace calling paint.image_paint() from python
Without doing a stroke "manually", colorspace initialization on
UnifiedPaintSettings was never done.

This lead to wrong colors in the past, since modern CS code with OIIO
this also crashes.

Colorspace was added into UnifiedPaintSettings in 6f153046e0 to avoid
doing this when sampling the brush texture images [which is good], but
the initalization was done in `paint_brush_update`.

We dont need to have this called for every step (it was skipped anyways
after one run), so it seems we can move this out of `paint_brush_update`
and put this into `paint_stroke_new`.

Thx @RevDr for initial findings.

Pull Request: https://projects.blender.org/blender/blender/pulls/117756
2024-02-02 19:43:19 +01:00
Harley Acheson
2e02c0c515 UI: TreeView Changes
TreeView changes including change of disclosure icon, decreased indent,
indented items without children, lowered line opacity.

Pull Request: https://projects.blender.org/blender/blender/pulls/117654
2024-02-02 19:40:28 +01:00
Clément Foucault
5ee72e812c Fix: DRW: Missing pointcloud dummy binding
Fixes a GPU error on opengl.
2024-02-02 19:35:22 +01:00
Eric Cosky
4842625902 Fix: Crash when expected method on Python class is None
Check for class methods dynamically changing type after initial registration.
This was found to happen in an add-on causing Blender to crash.

Pull Request: https://projects.blender.org/blender/blender/pulls/117660
2024-02-02 19:10:25 +01:00
Clément Foucault
9e015f703c Fix: EEVEE-Next: Shadow: Fix infinite loop in shadow rendering
The render shadow loop would always tag new casters to update
the tiles that were already rendered. This patch split the
caster tagging into it's own pass and move it out of the loop.

Also adds a needed `async_flush_to_host` to make sure the
statistic buffer is up to date.
2024-02-02 19:04:55 +01:00
Prikshit singh
1159da5f36 Fix #117636: Update check code layout script for new docs
Pull Request: https://projects.blender.org/blender/blender/pulls/117684
2024-02-02 18:59:11 +01:00
Xavier Hallade
b91ebfb866 Build: upgrade OIDN to 2.2-rc
It includes support for Meteor Lake, the CUDA driver API, and Metal (to
be enabled by https://projects.blender.org/blender/blender/pulls/116124)

Pull Request: https://projects.blender.org/blender/blender/pulls/117752
2024-02-02 18:31:14 +01:00
Xavier Hallade
cb643f8e44 Build: upgrade Level Zero to 1.15.8
OpenImageDenoise 2.2 requires at least 1.9.4 and 1.8.8 was used, so we
upgrade to latest version.
2024-02-02 18:31:12 +01:00
Brecht Van Lommel
03e92a9d28 Tests: Temporarily increase OpenImageDenoise test threshold for upgrade
So that both the current and upcoming version pass tests. To be lowered
again when all platforms have upgraded.
2024-02-02 18:12:45 +01:00
Hans Goudey
038ad97a7c BLI: Avoid computing size when referencing std::string
The std::string already knows its size; there's no need to find it from scratch.

Pull Request: https://projects.blender.org/blender/blender/pulls/117757
2024-02-02 17:48:52 +01:00
Brecht Van Lommel
25acfc7497 Fix: OpenColorIO deps build not finding pystring header 2024-02-02 17:23:05 +01:00
Hans Goudey
0f1bccd1d6 Cleanup: Reduce indentation in UI tooltip function 2024-02-02 11:13:09 -05:00
Hans Goudey
432ed47084 Cleanup: Remove unnecessary std::string braces for default construction
std::string has a default constructor, so this is unnecessary.
2024-02-02 11:13:09 -05:00
Harley Acheson
311a2ec74d Anim: Properties Dialog Titles
For ARMATURE_OT_move_to_collection, when moving to a NEW collection,
title of "Move to New Collection" and confirm button that says "Move".
For POSE_OT_paths_calculate, title of "Calculate Paths for the Selected
Bones", confirm button text of "Calculate"

Pull Request: https://projects.blender.org/blender/blender/pulls/117741
2024-02-02 17:12:35 +01:00
Jacques Lucke
39ec00f985 Cleanup: improve method name 2024-02-02 17:03:14 +01:00
Jacques Lucke
da540a73de Geometry Nodes: split sharing utility for reading and writing
This makes it more obvious that the sharing information is actually
completely independent for reading and writing currently.
2024-02-02 17:01:20 +01:00
Brecht Van Lommel
deb4273565 Build: Bump OpenColorIO to 2.3.2
To fix issues with detection of AVX instruction support.

Ref #113157, #117435
2024-02-02 16:37:30 +01:00
Aras Pranckevicius
0bfffdaf82 VSE: bilinear upscaling no longer adds transparent border around the image
Part of overall "improve image filtering situation" (#116980), this PR addresses
two issues:
- Bilinear (default) image filtering makes half a source pixel wide transparent
  border around the image. This is very noticeable when scaling images/movies up
  in VSE. However, when there is no scaling up but you have slightly rotated
  image, this creates a "somewhat nice" anti-aliasing around the edge.
- The other filtering kinds (e.g. cubic) do not have this behavior. So they do
  not create unexpected transparency when scaling up (yay), however for slightly
  rotated images the edge is "jagged" (oh no).

More detail and images in PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/117717
2024-02-02 16:28:51 +01:00
Brecht Van Lommel
43bcd48ea6 Cleanup: make format 2024-02-02 16:11:40 +01:00
Clément Foucault
046f2ac206 Cleanup: EEVEE-Next: Shadow: Wrap loop condition in function 2024-02-02 15:38:48 +01:00
Clément Foucault
a682d12015 Fix: EEVEE-Next: Wrong lightcache bake command 2024-02-02 15:14:41 +01:00
Clément Foucault
18a04965fd Fix: EEVEE-Next: Artifacts with volume + motion blur
The root cause is still unknown. But replacing the
use of the depth texture by the hiz buffer fixes the
issue.

The issue was apparent on Linux + Mesa + AMD.
2024-02-02 15:14:41 +01:00
Sean Kim
c15d1b8ccb UI: Add visual indicator for automasking state
This adds a visual toggle for sculpt automasking in both regular and Grease Pencil modes.

If no automasking settings are used, use the icon `CLIPUV_DEHLT`, otherwise it is CLIPUV_HLT.
As it was agreed on in #117467

Addresses #102585

Pull Request: https://projects.blender.org/blender/blender/pulls/117649
2024-02-02 14:34:43 +01:00
Pratik Borhade
561363dbed GPv3: Dopesheet UI template
Includes add/remove layer, move up/down layer operators in dopesheet UI.

Part of #110056

Pull Request: https://projects.blender.org/blender/blender/pulls/117628
2024-02-02 13:11:55 +01:00
Sybren A. Stüvel
660867fa00 Anim: bone collections, store expanded/collapsed state in DNA
Store the 'expanded/collapsed' state of the bone collection tree view in
the DNA data of the bone collections themselves. This way the tree state
is restored when loading the file.

This commit also adds some code to the abstract tree view classes, for
supporting synchronisation of the extended/collapsed state between it
and external data. It follows the same approach as the handling of the
active element.

RNA wrappers have been added to make it possible for Python code to
expand/collapse parts of the tree.

Library overrides are supported for this property, so the
expanded/collapsed state of linked armatures can be locally saved. If
there is no override, the `is_expanded` property is still editable;
changes will not be saved to file in that case, though.

Pull Request: https://projects.blender.org/blender/blender/pulls/116940
2024-02-02 12:28:22 +01:00
Sergey Sharybin
e2b9ebd23c Cleanup: Remove unused capture
Pull Request: https://projects.blender.org/blender/blender/pulls/117750
2024-02-02 12:18:32 +01:00
Omar Emara
ce2a945dff Cleanup: Correctly name bokeh blur shaders
The bokeh blur shaders are incorrectly named as standard blur shaders,
while this isn't the case. Rename them to include the bokeh keyword.
2024-02-02 13:15:59 +02:00
Sybren A. Stüvel
f208a3719a Cleanup: document CTX_wm_operator_poll_msg_set
The function name "operator poll message set" is rather troublesome, as:

- the message is only used when the operator is disabled, and
- the message is shown if the operator is disabled by any means, and not
  just limited to the `poll()` function returning `false`.

A better name would be `CTX_wm_operator_disabled_msg_set`, but refactoring
that is for another time. Now at least the behaviour is documented.

No functional changes.
2024-02-02 12:04:37 +01:00
Philipp Oeser
79a7bdf33e Cleanup: remove empty statements 2024-02-02 11:57:51 +01:00
Dalai Felinto
fa5f1b3a9c Fix building errors 2024-02-02 11:24:08 +01:00
Campbell Barton
adb304f0ed Extensions: improve UI for adding/removing repositories
- Adding new repositories now differentiates between "Online" & "Local"
  where adding a local repository doesn't prompt for a URL.
- Support removing repositories and their files (uses confirmation
  defaulting to "Cancel" to avoid accidents).
- Show an error icon next to repositories that have invalid settings,
  these repositories are now ignored until the settings are corrected,
  required fields are highlighted red when they're unset & required.
- Rename "directory" to "custom_directory" since an automatic path is
  used when not set - created in the users scripts directory.
- Use toggles for custom-directory & remote URL instead of relying on
  the value to be left an empty string for alternative behavior.
2024-02-02 20:46:45 +11:00
Jacques Lucke
7d3003be4d Geometry Nodes: store bake item names on disk
Bake items are generally identified by their (generated) identifier.
This allows changing the name and reordering sockets without breaking
baked data.

In the future we want to have some kind of Import Bake node that
ideally automatically creates its output sockets and names them correctly.
For that to work, the baked data has to contain the user-defined names
for each socket. Those names are not used yet.
2024-02-02 10:02:25 +01:00
Harley Acheson
31df006b39 UI: Two Misc Prop Dialog Title Changes
IMAGE_OT_new getting a title of "Create a New Image" and confirm button
text of "New Image". TEXT_OT_jump gets a title of "Jump to Line Number"

Pull Request: https://projects.blender.org/blender/blender/pulls/117744
2024-02-02 03:43:21 +01:00
Campbell Barton
8b827a5bb5 Cleanup: spelling in comments 2024-02-02 10:48:22 +11:00
Campbell Barton
e72c9397f5 Cleanup: various non-functional changes for C++ 2024-02-02 10:43:18 +11:00
Campbell Barton
c4a2858975 Cleanup: strip trailing space 2024-02-02 10:43:17 +11:00
Harley Acheson
23faaac68b UI: Gizmo Button for Lock Camera to View
3DView 2D gizmo navigation button to toggle "Lock Camera to View".

Pull Request: https://projects.blender.org/blender/blender/pulls/111076
2024-02-01 21:47:50 +01:00
Brecht Van Lommel
c04a79622c Cleanup: make format 2024-02-01 21:33:05 +01:00
Brecht Van Lommel
1f142b3d44 Fix: Cycles MIS disabled unnecessarily with transparency, causing fireflies
This is a leftover from when there was a global option for transparent
shadows, but since it's now per material this makes no sense anymore.

Solution found by Olivier Maury.

Pull Request: https://projects.blender.org/blender/blender/pulls/117735
2024-02-01 21:23:28 +01:00
Sean Kim
f3c401ef6f UI: Update default mask icon
Based on the design of #102585, This PR replaces the MOD_MASK icon with
the CLIP_UVDEHLT icon to better communicate the intent of masking across
many areas of Blender. It also changes the Grease Pencil `invert` icons
to avoid conflicts with the CLIPUV_DEHLT & CLIPUV_HLT.

Pull Request: https://projects.blender.org/blender/blender/pulls/117467
2024-02-01 20:56:18 +01:00
Hans Goudey
266230dd88 Refactor: UI: Pass StringRef to more button definition functions
Similar to 9c3aa8b824. This time there is one null argument
that has to be changed. It was simple to just move the logic to that one
caller.
2024-02-01 14:40:40 -05:00