Commit Graph

130105 Commits

Author SHA1 Message Date
chris 27bcf4e52d GooEngine: Add Continous Trackball mode option 2024-03-23 10:42:53 +00:00
chris c48dcc2fb1 GooEngine: Option to disable Material Icon rendering 2024-03-23 10:42:52 +00:00
codywinch d339d5fc36 Goo Engine - Add Start Frame and End Frame to Scene Time node 2024-03-23 10:42:34 +00:00
codywinch bbb866914a Add randomize options to gpencil texture mapping modifier 2024-03-23 10:42:34 +00:00
codywinch f0094e05f9 Add randomize options to gpencil texture mapping modifier 2024-03-23 10:42:34 +00:00
chris 0788c1180b GooEngine: Fix Set Depth node.
Set the depth qualifier to depth_any according to GL_ARB_conservative_depth specification
2024-03-23 10:42:34 +00:00
chris 10cfcc3260 GooEngine: Change App ID 2024-03-23 10:42:34 +00:00
codywinch 96e51a0443 Update requirements.txt
Add discord webhook requirement
2024-03-23 10:42:34 +00:00
chris 2be1e5aa97 fix versioning crash with older files 2024-03-23 10:42:33 +00:00
chris 89a160dd4e fix build issue on windows 2024-03-23 10:42:11 +00:00
chris 648c036337 Splash screen easter egg 2024-03-23 10:42:11 +00:00
chris 9d27635972 Merge remote-tracking branch 'blender/main' into goo-engine-main 2023-11-11 20:44:12 +00:00
chris b4e0bd15d1 Merge remote-tracking branch 'blender/main' into goo-engine-main 2023-11-07 17:28:22 +00:00
Aras Pranckevicius b1c7b573c0 mesh: use faster acos() variant in normals calculation
Function                         Module   Inclusive Time  Exclusive Time
--------------------------------------------------------------------------
  mesh_render_data_update_normals  blender  297.51          0.00

  315 -> 297

acos() usage in all places related to normal calculations shows up in the
profiler. Given that "angle between faces" is only additional heuristic
weight in there (the effect of it at all is very subtle), approximate but
faster version of acos() might be just fine. Especially since some other
parts of Blender (e.g. mikktspace) use approximate acos in a conceptually
the same part.

- Adds safe_acos_approx() to BLI_math_base.hh. Implementation the same
  as already exists in Cycles; max error 0.00258 degrees. Between 2x and 4x
  faster in my tests.
- Changes all normals related calculations to use the function above instead
  of saacos.

Computing normals on a Stanford Lucy (14m verts) mesh:
- Mac (arm64, M1 Max): 247ms -> 229ms
- Win (x64, Ryzen 5950X): 276ms -> 250ms

All places that are about "normal calculation" were changed, including e.g.
Corrective Smooth modifier. Applying that one to the same 14m vertices mesh,
Mac M1 Max: 9.96s -> 9.76s

Tiny changes in several test output expectations w.r.t. normals are
observed, these were reviewed and updated expectations checked in svn.

Pull Request: https://projects.blender.org/blender/blender/pulls/114501
2023-11-07 18:22:17 +01:00
Damien Picard 7231ac0a52 I18n: extract and disambiguate a few messages
Extract:
- "Attribute", when creating a new attribute with
  `GEOMETRY_OT_attribute_add()`: make the default name in the operator
  a null string, and set it to "Attribute" translated inside an invoke
  method instead.
- Also for new attributes, from `BKE_id_attribute_calc_unique_name()`,
  for instance to create a default vertex color layer when going into
  Vertex Paint mode: use `DATA_()` instead of `IFACE_()`, since it
  represents user data.

Disambiguate:
- "Weight" can be the thickness of font glyphs.
- "Mark as Asset" and "Clear Asset" are operator names already
  extracted using the Operator context. They were recently added to a
  manual translation in the UI, but the existing one can be reused.
- "Second" as a time unit in the context of frame snapping.

Some messages reported by Satoshi Yamasaki in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/114159
2023-11-07 18:08:58 +01:00
Damien Picard f48f901b3b I18n: translate socket properties in the Modifier Properties editor
Each node group asset exposes various properties through sockets.
Although they can generally be considered user-created data, for
built-in assets they are also part of the UI and should be
translated--especially since more modifiers should be migrated to
Geometry Nodes in the future.

This commit enables the translation of those properties in the
Modifier Properties editor.

Pull Request: https://projects.blender.org/blender/blender/pulls/114256
2023-11-07 18:08:35 +01:00
Damien Picard 772e99b4f7 I18n: extract node group asset sockets
Each node group asset exposes various properties through sockets.
Although they can generally be considered user-created data, for
built-in assets they are also part of the UI and should be
translated--especially since more modifiers should be migrated to
Geometry Nodes in the future.

This commit allows extraction of such socket names and descriptions.
Since the message extraction script already extracted names and
descriptions for each asset, this commit only adds the socket in the
same loop, so that they are extracted while the asset file is already
being read.

Properties from sockets are not yet translated in the modifier
properties editor, this will be enabled in a follow-up commit.
2023-11-07 18:08:28 +01:00
Christoph Lendenfeld 1b95e74b8a Cleanup: comment style in animrig
No functional changes.

Functions moved to animrig recently did not adhere to
the comment style guidelines

Pull Request: https://projects.blender.org/blender/blender/pulls/114586
2023-11-07 17:24:36 +01:00
Christoph Lendenfeld c8ccd3d58a Refactor: Rename functions in ANIM_animdata.hh
No functional changes.

Renaming the following functions
`ANIM_remove_empty_action_from_animdata` and
`ANIM_fcurve_delete_from_animdata`
to
`animdata_remove_empty_action` and
`animdata_fcurve_delete`

The `ANIM` prefix was no longer needed since the code is now in
a namespace. In order to make the function name consistent with
the functions in `fcurve.cc` the thing it modifies is now at the
start of the function name

Pull Request: https://projects.blender.org/blender/blender/pulls/114584
2023-11-07 17:03:29 +01:00
Christoph Lendenfeld fc74f341a5 Refactor: Move code related to animdata to animrig
No functional changes.

Move the following functions
`ANIM_fcurve_delete_from_animdata` and
`ANIM_remove_empty_action_from_animdata`
to
`ANIM_animdata.hh` / `animdata.cc`
in animrig

This removes some includes to `ED_anim_api.hh`
from animrig

Pull Request: https://projects.blender.org/blender/blender/pulls/114581
2023-11-07 16:46:38 +01:00
Christoph Lendenfeld 40dccc1975 Anim: Unit tests for inserting keyframes
Cover the current behavior of keyframe insertion with unit tests,
so the changes planned in #113278 are less likely to break things.

Unit tests added:

InsertKeyTest
very basic test to ensure keying things by
name or with a keying set adds the right keys

VisualKeyingTest
check if visual keying produces the
correct keyframe values

CycleAwareKeyingTest
check if cycle aware keying remaps
the keyframes correctly and adds fcurve modifiers

Pull Request: https://projects.blender.org/blender/blender/pulls/114465
2023-11-07 16:17:32 +01:00
Miguel Pozo d64e9759ef Fix #114377: Workbench: Support None and Channel Packed alpha modes 2023-11-07 15:51:45 +01:00
Miguel Pozo b4316445a8 EEVEE-Next: Add Max Displacement option
Add a Max Displacement option to Material settings, so frustum culling
can work correctly with vertex displacement.

Pull Request: https://projects.blender.org/blender/blender/pulls/114200
2023-11-07 15:28:07 +01:00
Christoph Lendenfeld b2bdfe946e Fix: broken regression test fcurve_test.cc 2023-11-07 15:08:20 +01:00
Jeroen Bakker 73b15f341e Fix: Enable Vulkan Workarounds
Vulkan workarounds could not be enabled by using the
`--debug-gpu-force-workarounds` command line argument. This PR fixes
this.

Pull Request: https://projects.blender.org/blender/blender/pulls/114579
2023-11-07 14:59:28 +01:00
Jeroen Bakker adb2164191 Draw: Add Region Info Debug Group
Adding a deug group for draw manager region info so it is easier
to find inside tools like renderdoc.

Pull Request: https://projects.blender.org/blender/blender/pulls/114578
2023-11-07 14:53:48 +01:00
Christoph Lendenfeld 69a3c5c7fc Refactor: move code related to fcurve keyframe insertion
No functional changes.

Move the functions
`insert_vert_fcurve` and
`insert_bezt_fcurve`
from `ED_keyframing.hh` / `keyframing.cc`
to `ANIM_fcurve.hh` / `fcurve.cc`
in animrig

Pull Request: https://projects.blender.org/blender/blender/pulls/114570
2023-11-07 14:33:52 +01:00
Campbell Barton 160111c318 Merge branch 'blender-v4.0-release' 2023-11-07 23:59:24 +11:00
Alexander Wilms 93278b55d4 Linux: Improve metainfo file
- Add OARS info, <url/> tags and screenshot captions
- Change metainfo file extension from the deprecated ".appdata.xml" to.
- Update bugtracker and help URL tags in metainfo file.
- The metainfo file is now installed.
- The file now passes flatpak validation.

Ref !114115
2023-11-07 23:56:55 +11:00
Campbell Barton 9550fba6df Merge branch 'blender-v4.0-release' 2023-11-07 23:25:58 +11:00
Campbell Barton 5c6c71e6e8 Build: prevent OpenSSL using /etc/ssl on macOS & Linux
Using /etc/ssl only makes sense when the versions of SSL on the system
is compatible with the version Blender uses.

Failure to load the configuration for e.g. causes SSL to fail entirely
(causing downloading over HTTPS to fail).

Recently [0] de facto standard directory `/etc/ssl` was used however we
can't guarantee files in this path are compatible with Blender's SSL.

Use a known invalid path to resolve #114452.

Ref !114569

[0]: 60a8ae7830
2023-11-07 23:21:16 +11:00
Christoph Lendenfeld d08582c4d6 Cleanup: Remove unused declaration and include
No functional changes.
2023-11-07 13:20:46 +01:00
Christoph Lendenfeld 02b41a5d23 Refactor: Move code for actions into its own file
No functional changes.

Moving the following functions
`action_fcurve_ensure` and
`action_fcurve_find`
from
`ANIM_fcurve.hh`/`fcurve.cc`
to
`ANIM_action.hh`/`action.cc`

This is an effort to ensure that the fcurve files don't need to know
about the container they are stored in so we can swap out
the container more easily.

Pull Request: https://projects.blender.org/blender/blender/pulls/114575
2023-11-07 13:17:43 +01:00
Bastien Montagne 869372ffc3 Fix (studio-reported) VSE crash when deleting strips.
Caused by 3fccfe0bc6 again, no idea why these two VertorSet were defined
as static variables in the functions generating them... But this was for
sure calling for _lots_ of problem. There are almost never good cases
for a function to return a static variable, and if it's done, it has to
be done extremely carefully.
2023-11-07 12:49:09 +01:00
Bastien Montagne 67dda08dea VSE: Cleanup: Simplify code in iterator by de-duplicating logic.
No reason to do the same exact thing in two different functions.
2023-11-07 12:22:11 +01:00
Bastien Montagne 9ecd106307 Fix (unreported) VSE crash when duplicating 4 or more strips.
Regression caused by typo in 3fccfe0bc637...
2023-11-07 11:35:44 +01:00
Michael Jones 051ce95628 Cycles: Use Metal Program Scope Global Built-ins on macOS >= 14.0
This PR simplifies the kernel entrypoints by using [Metal Program Scope Global Built-ins](https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf) when available (macOS >= 14.0).

Pull Request: https://projects.blender.org/blender/blender/pulls/114535
2023-11-07 11:20:16 +01:00
Hans Goudey 17b875fccf Fix: Windows build error from missing template argument deduction 2023-11-07 11:19:43 +01:00
Bastien Montagne 2f8499415b Fix (studio-reported) VSE crash when Text strips use missing fonts.
BLF code is not threadsafe, yet font loading gets called over and over
by text strips when the font file is missing, including e.g. from
depsgraph evaluation code when duplicating the strip for evaluation.

WARNING: This is a quick fix for deblocking the Blender studio, proper
fix (and report) still needs to be worked on.
2023-11-07 11:06:13 +01:00
Julian Eisel ecbb77c558 UI: Support dragging over node panel headers to batch (un)collapse
Makes it possible to swipe over panel header to batch open/collapse all
panels the mouse draged over. Normal panels and sub-panels support this
too.

Two changes were needed:
- Support "drag toggle" feature for `UI_BTYPE_BUT_TOGGLE` - all toggle
  buttons should/can support this.
- Allow querying the pushed state from the button used for the
  collapsing. Multiple ways to do this, in this case simply using the
  pushed state query callback seemed simplest.

Pull Request: https://projects.blender.org/blender/blender/pulls/114560
2023-11-07 10:59:33 +01:00
Christoph Lendenfeld a338ecb9cb Refactor: fcurve.cc
No functional changes.

Improve the readability of the code by

* returning early where possible
* moving variables closer to where they are used
* renaming variables

Pull Request: https://projects.blender.org/blender/blender/pulls/114568
2023-11-07 10:53:43 +01:00
Philipp Oeser 1699163feb Merge branch 'blender-v4.0-release' 2023-11-07 10:12:07 +01:00
Philipp Oeser 0eb279de54 Fix #66286: DblClick to rename UIList items within a popover not working
Looks like most of `ui_apply_but_XXX` or `ui_do_but_XXX` functions rely
on `uiHandleButtonData` (and not necessarily context).

Now the problem from a popover in `ui_but_list_row_text_activate` was
that the label button to be set in BUTTON_ACTIVATE_TEXT_EDITING for
renaming could not be found because it was using the "wrong" region from
context (`CTX_wm_region` - which still seem to point to the region the
popover was spawned from). The correct region is available in
`uiHandleButtonData` though, so now use this instead.

Not totally sure if `CTX_wm_region` should actually be correct in all
cases - which would hint at an underlying problem of not setting it
right - but since other functions rely on `uiHandleButtonData` as well,
this fix seems to make sense.

Fix should go into LTS I think.

Pull Request: https://projects.blender.org/blender/blender/pulls/114363
2023-11-07 10:11:30 +01:00
Hans Goudey ae1b4a6a28 Cleanup: Consolidate draw attribute extraction
Use the same attribute conversion class for PBVH and regular
mesh attribute extraction. This makes the GPU formats we use
for each attribute type more explicit and centralizes the conversions
from the attribute types to the GPU types. It's also a bit more aligned
to how we could use implicit sharing for GPU vertex buffer data.

Unfortunately it isn't possible to use this same code for curves
and point clouds because they use textures for their evaluated data,
and 3-wide vectors (e.g. `float3`) aren't supported on GPUs with our
current texture abstraction. For generic attributes, the long term
approach will probably be to use an SSBO instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/114340
2023-11-07 10:05:13 +01:00
Hans Goudey 15f1fe5ddb Cleanup: Add missing includes to node anonymous attribute header 2023-11-07 09:50:51 +01:00
Jeroen Bakker b56382b38a Cleanup: Make format 2023-11-07 08:04:17 +01:00
Jason Fielder bbb71f0859 Metal: Ensure pending MTLSafeFreeList is released on shutdown
Ensure that on closing of the application, all pending
SafeFreeLists are released. A new change to ensure
release of SafeFreeLists was always deferred until
full completion of GPU buffers meant that a pending
MTLSafeFreeList container may not be released on
shutdown.

This change ensures that the container is fully
destructed on final shutdown.

Authored by Apple: Michael Parkin-White

Pull Request: https://projects.blender.org/blender/blender/pulls/114532
2023-11-07 07:53:20 +01:00
Alaska 967e36cf68 UI: Don't show HDR setting when using False Color view transform
False Color view transforms doesn't show HDR values.

Pull Request: https://projects.blender.org/blender/blender/pulls/114503
2023-11-07 07:48:54 +01:00
Alaska d6cafda3bb Fix #114491: Incorrect HDR tooltip
Mention that AgX also doesn't produce HDR information for the
HDR display feature on macOS.

Pull Request: https://projects.blender.org/blender/blender/pulls/114502
2023-11-07 07:45:36 +01:00
Campbell Barton 611930e5a8 Cleanup: use std::min/max instead of MIN2/MAX2 macros 2023-11-07 16:33:19 +11:00