Commit Graph

103368 Commits

Author SHA1 Message Date
Omar Emara
17bdf18397 Realtime Compositor: Implement Keying Screen node
This patch implements the Keying Screen node for the Realtime
Compositor. Draw data was introduced to the Movie Clip ID to allow
caching of the keying screen.

Pull Request: https://projects.blender.org/blender/blender/pulls/113055
2023-10-04 07:35:07 +02:00
Omar Emara
75c947a467 Compositor: Use RBF Interpolation in Keying Screen node
This patch changes the interpolation algorithm utilized by the Keying
Screen node to a Gaussian Radial Basis Function Interpolation. This is
proposed because the current Voronoi triangulation based interpolation
has the following properties:

- Not temporally stable since the triangulation can abruptly change as
  tracking markers change position.
- Not smooth in the mathematical sense, which is also readily visible in
  the artists sense.
- Computationally expensive due to the triangulation and naive
  rasterization algorithm.

On the other hand, the RBF interpolation method is temporally stable and
continuous, smooth and infinitely differentiable, and relatively simple
to compute assuming low number of markers, which is typically the case
for keying screen objects.

This breaks backward compatibility, but the keying screen is only used
as a secondary input for keying in typical compositor setups, so one
should expect minimal difference in outputs.

Pull Request: https://projects.blender.org/blender/blender/pulls/112480
2023-10-04 07:07:04 +02:00
Campbell Barton
0b302d2139 Merge branch 'blender-v4.0-release' 2023-10-04 15:25:47 +11:00
Peng Yan
dcb2c0bdf6 BMesh: remove redundant calculation from BMesh bisect
Besides being a redundant calculation,
reducing stack memory usage is generally worthwhile.

Ref !113153.
2023-10-04 15:25:07 +11:00
Campbell Barton
a5049ba8f0 Merge branch 'blender-v4.0-release' 2023-10-04 15:14:04 +11:00
Colin Basnett
46647ed911 Fix typo in documentation for BMVertSeq.new
Ref !113190.
2023-10-04 15:13:06 +11:00
Campbell Barton
2e732328a8 Merge branch 'blender-v4.0-release' 2023-10-04 11:58:32 +11:00
Campbell Barton
30a580bf30 Fix failure to remove temp-dir when initializing GPU backend fails
Call WM_exit() instead of exit() cleanup functions run.
2023-10-04 11:41:59 +11:00
Campbell Barton
b469d9dd7d Merge branch 'blender-v4.0-release' 2023-10-04 10:33:26 +11:00
Campbell Barton
f82e520d22 Cleanup: spelling in comments 2023-10-04 10:31:52 +11:00
Harley Acheson
e1a868df1d Merge branch 'blender-v4.0-release' 2023-10-03 09:46:24 -07:00
Harley Acheson
e44f500be8 Fix #102591: Improvements to Context Menu Path Operators
Improvements to `ui_but_menu_add_path_operators` so that it properly
differentiates between files and directories even if the filepath is
not slash terminated. It will also not add the operators to the menu
if the filepath does not exist.

---

Right-clicking on a pathname input we get a context menu that might contain "Open File Externally" and/or "Open Location Externally".  But the first problem is that it does not check if this location exists, and we do have times where the paths do not exist yet.  This PR makes this function a bool so that can return false if the files do not exist.

The second problem is that the function does not properly differentiate between a file path and directory path. For a directory path that is not slash terminated it will assume it is a file path.  This PR actually checks the path (BLI_is_dir) to see if it really is a directory path.

Pull Request: https://projects.blender.org/blender/blender/pulls/113216
2023-10-03 18:44:56 +02:00
Damien Picard
b05db089af I18n: translate node panel titles
Nodes recently gained the ability to group inputs into collapsible
panels. These were untranslated, so this commit:
- Adds the appropriate regex to extract node panels defined with
  the `add_panel()` callback.
- Adds the `IFACE()` translation macro to the drawing code for the
  nodes, as well as the properties.

Pull Request: https://projects.blender.org/blender/blender/pulls/112968
2023-10-03 18:24:19 +02:00
Damien Picard
52fcd5fdfd I18n: extract and disambiguate a few messages
Disambiguate:
- Rename "Near" to "Proximity" as a particle event type, because using
  an adjective in this context is inconsistent and sounds
  strange (even in English IMO).

Extract:
- "Skip" (Geometry nodes Simulation node output socket)
- "Bake" (Directory path to geometry nodes bake files in the modifier
  UI)
- " (Recovered)" (File information in title bar)

Pull Request: https://projects.blender.org/blender/blender/pulls/112974
2023-10-03 18:21:03 +02:00
Richard Antalik
a6376ec77a Merge branch 'blender-v4.0-release' 2023-10-03 18:14:42 +02:00
Marcos Perez
5c76c7bf84 Fix: #113084 VSE equalizer stutters when any strip is animated
Only update equalizer data, when sound is tagged to be recalculated.

Co-authored-by: menda <alguien@aqui.es>
Pull Request: https://projects.blender.org/blender/blender/pulls/113156
2023-10-03 18:13:24 +02:00
Lukas Tönne
12a562cb8d Merge branch 'blender-v4.0-release' 2023-10-03 18:10:10 +02:00
Lukas Tönne
050c081784 Fix #113210: Custom socket declarations require idname reference
This was removed accidentally. Custom socket declarations require the
idname reference to check for matching node group sockets.

Pull Request: https://projects.blender.org/blender/blender/pulls/113214
2023-10-03 18:09:17 +02:00
Clément Foucault
bcf0c117a0 Revert "EEVEE-Next: Fix DupliObject ObjectKey"
This reverts commit 641dff8bf4.
2023-10-03 18:03:27 +02:00
Sergey Sharybin
ff1f4aa53d Merge branch 'blender-v4.0-release' 2023-10-03 17:10:14 +02:00
Sergey Sharybin
fff74145f1 Fix #113186: The Render Result attribute "has_data" is always False
Caused by d579ac2b3f

This change restores the behavior of the flag to how it was prior to
the refactor which used ImBuf for storage in the RenderResult.

This flag still has issues with configurations when there are multiple
scenes in the .blend file, and that it is only "valid" when the image
is actually displayed. However, these limitations and quirks already
existed prior to the refactor commit.

Pull Request: https://projects.blender.org/blender/blender/pulls/113199
2023-10-03 17:09:04 +02:00
Brecht Van Lommel
a2da71d3a9 Merge branch 'blender-v4.0-release' into main 2023-10-03 16:13:12 +02:00
Brecht Van Lommel
8562cecf1b Fix #112991: crash switching from Hydra Storm viewport to other renderer
The viewport render engine was freed outside the DRW OpenGL context, which
resulted in Storm deleting a VAO from another OpenGL context.
2023-10-03 16:12:45 +02:00
Germano Cavalcante
0780df448e Merge branch 'blender-v4.0-release' into main 2023-10-03 11:11:07 -03:00
Germano Cavalcante
586ffcd669 Fix 'Automatic Constraint' appearing in statusbar although not supported 2023-10-03 11:10:22 -03:00
Clément Foucault
1b1b1a19bf EEVEE-Next: Add world clip plane support
This add a way to use a software clip plane in the
prepass shader (surf_depth_frag.glsl).

The benefit of using this instead of gl_ClipDistance
is that the rasterization pattern is given to match.
Which means that only the prepass shader have to use
this.

This is slow and should only be enabled when needed.
2023-10-03 16:09:12 +02:00
Clément Foucault
23e4cbc86a EEVEE-Next: Split curve attributes to their own interface
This avoid poluting shader interfaces which might not be
optimized by the compilers.
2023-10-03 16:09:12 +02:00
Jacques Lucke
fb38327e6a Geometry Nodes: refactor how side effect nodes are set up
Previously, the geometry nodes modifier was converting the
viewer path to a compute context at the same time as it was
setting up side effect nodes for the geometry nodes evaluation.

Now, this is changed to be a two step process. First, the viewer
path is converted to the corresponding compute context.
Afterwards, a separate function sets side effect nodes up so
that the given node in the given compute context will be evaluated.

This has three main benefits:
* More obvious separation of concerns.
* Can reuse the code that maps a viewer path element to a compute
  context already.
* With gizmo nodes (#112677), it may become necessary to add side
  effect nodes  based on a compute context, but without having a
  corresponding viewer path.
2023-10-03 14:12:42 +02:00
Lukas Tönne
ecb7562c74 Merge branch 'blender-v4.0-release' 2023-10-03 12:20:00 +02:00
Lukas Tönne
71732a9600 Fix #113014: Improved sorting to keep node group outputs above inputs
The position validation when manipulating node group items now includes
outputs..inputs order in addition to sockets..panels order. The method
for finding a valid position has been simplified, it's just a single
iteration of insertion sort.

Versioning has been added to ensure files from 4.0 alpha with
potentially unsorted sockets get re-sorted. This uses `std::stable_sort`
so that sockets keep their relative order apart from the input/output
grouping.

Pull Request: https://projects.blender.org/blender/blender/pulls/113060
2023-10-03 12:18:36 +02:00
Lukas Tönne
e9625b10ab Merge branch 'blender-v4.0-release' 2023-10-03 11:40:20 +02:00
Lukas Tönne
a06403cd3b Nodes: Include rotation socket type in anonymous attribute inferencing
Rotation socket is missing in `is_possible_field_socket` for detecting socket types that can be fields.

Pull Request: https://projects.blender.org/blender/blender/pulls/113197
2023-10-03 11:39:47 +02:00
Jacques Lucke
48fe3aab36 UI: start search in menu when pressing spacebar
This way one can easily access the item that has been searched for most
recently if `Sort by Most Recent` is enabled in the user preferences.

Pull Request: https://projects.blender.org/blender/blender/pulls/113144
2023-10-03 11:39:00 +02:00
Sybren A. Stüvel
3d6713e086 Fix #113178: .dae file with collection-less armature crashes on import
If the DAE file was written with something other than Blender 4.0, it
doesn't have the bone collections info. That resulted in a nullptr, which
is now handled properly.
2023-10-03 10:34:44 +02:00
Campbell Barton
818ae7b149 Merge branch 'blender-v4.0-release' 2023-10-03 16:41:19 +11:00
Campbell Barton
3e7769215e Merge branch 'blender-v4.0-release' 2023-10-03 16:41:16 +11:00
Jeroen Bakker
ee92151c3a Overlay-Next: Fix Copy Uninitialized Texture
Overlay engine is currently responsible to initialize the framebuffers
depth_in_front texture. This is a hack and hasn't been ported to
Overlay-Next (yet). This PR skips copying the depth_in_front texture
when it isn't initialized yet.

Issue detected when working on Vulkan backend due its more
strictness.

Pull Request: https://projects.blender.org/blender/blender/pulls/113188
2023-10-03 07:27:36 +02:00
Jeroen Bakker
7d05a4a69f Cleanup: Make format 2023-10-03 07:23:46 +02:00
Campbell Barton
41d62f36d5 Fix uninitialized variable use accessing the screen size under Wayland
It's possible for there to be no outputs under Wayland
(when unplugging monitors for e.g.) so this must be accounted for.

Also avoid calculating the window position when the GHOST backend
doesn't support window positions (which is the case for Wayland).

Add checks for the SDL backend too, where accessing the
screen & desktop size may fail.
2023-10-03 15:40:58 +11:00
Campbell Barton
dea7a94e0c Cleanup: remove redundant call to GHOST_GetMainDisplayDimensions
A maximum window size was calculated but not used
(dating back to the first commit).
2023-10-03 15:09:53 +11:00
Campbell Barton
1e50b54ff2 Merge branch 'blender-v4.0-release' 2023-10-03 13:58:31 +11:00
Campbell Barton
26bb029ad8 Fix #113154: Hang double-clicking on UI elements outside a text field
The logic to handle word selection from double clicking ran even when
the event wasn't inside the button. This would pass an invalid position
to BLI_str_cursor_step_bounds_utf8 which hung.

Resolve by limiting word-selection to when the event is inside
the text editing field as well as clamping the position to ensure
it's within the allowed range.
2023-10-03 13:57:33 +11:00
Campbell Barton
9c018def3e Cleanup: spelling in comments 2023-10-03 11:24:48 +11:00
Campbell Barton
8b940ab0c2 Merge branch 'blender-v4.0-release' 2023-10-03 11:19:40 +11:00
Campbell Barton
779239f5e1 Cleanup: spelling in comments 2023-10-03 11:16:55 +11:00
Campbell Barton
74bb280df5 Fix incorrect sizeof argument to memcmp in EEVEE's ObjectKey comparison 2023-10-03 11:14:08 +11:00
Campbell Barton
83724fe1eb Merge branch 'blender-v4.0-release' 2023-10-03 11:11:17 +11:00
Campbell Barton
69d18c6063 Cleanup: quiet unknown escape sequence warning 2023-10-03 11:08:49 +11:00
Harley Acheson
27aecd34e1 Merge branch 'blender-v4.0-release' 2023-10-02 17:08:26 -07:00
Harley Acheson
68bde462e5 Cleanup: Make format
Formatting changes resulting from Make Format
2023-10-02 17:06:55 -07:00