Commit Graph

859 Commits

Author SHA1 Message Date
Jesse Yurkovich
7dae89d276 USD: Add test to cover import of mesh attributes
Adds a test to validate the import of Mesh attributes for USD.

It reuses the recently added export attribute test file to generate the
USD file to load.

The test validates the current behavior in `main`. Missing data and bugs
are noted in comments and can be addressed afterwards.

Pull Request: https://projects.blender.org/blender/blender/pulls/121327
2024-05-02 03:57:25 +02:00
Clément Foucault
303f91a09c EEVEE-Next: Add slab thickness and thickness from shadow options
Implement the design discussed in #120384.

This adds two parameters. One for changing the approximation
method, and another to use the thickness from shadow map.

We pack the former in the gbuffer by dividing the 16bits
used for thickness by two and use one bit to store the
method.

The thickness from shadow map is now decoupled from the
light evaluation shader. This makes it more performant and
compatible with ray-tracing. This commit also uses the
same biases as shadow mapping to avoid aliasing artifacts
(fix #119339).

This refactors the light evaluation quite a bit to
remove unused bits bits and make the whole transmission
light evaluation without too much complexity.

Pull Request: https://projects.blender.org/blender/blender/pulls/121171
2024-04-30 20:32:46 +02:00
Sybren A. Stüvel
10c00b6390 Anim: Add RNA enum for animation bindings + operator to un-assign
Add an RNA enum property `AnimData.animation_binding` that lists all the
bindings available in `AnimData.animation`.

The list of bindings is filtered to only contain the bindings suitable
for the animated ID. This prevents assigning a 'camera' binding to a
mesh.

Un-assigning is done via an operator, represented as an 'X' button in
the interface.

The enum property contains up to two special items:
- "New" to create a new binding for the ID.
- "(none/legacy)" to indicate that this ID doesn't have a binding
  assigned. This one is conditional, and only appears when it is
  necessary.

These two special items are experimental, and mostly exist because we're
still evaluating things and building a better UI. It is intended that
the binding selector will become as close to the ID selector as
possible.

-----------

Note that this PR also contains #121268 as it builds up from that one, and I didn't want to wait with testing on the buildbot until that one lands.

The new Baklava panel:

![image](/attachments/ac357f32-d50a-481b-8b3c-9c0be07424b6)

Pull Request: https://projects.blender.org/blender/blender/pulls/121269
2024-04-30 17:37:16 +02:00
Sybren A. Stüvel
c41f1be5b7 Anim: RNA, refuse to set AnimData.binding_handle when there is no animation
Refuse to set the RNA property `AnimData.animation_binding_handle` when
`AnimData.animation` is nil.

When in a hypothetical future `AnimData.animation` would be set, the
binding handle would be ignored anyway, as it's only meaningful within
the context of a known animation. Refusing to set the binding handle in
cases where it is known to be meaningless may help to find bugs in
Python scripts.

Pull Request: https://projects.blender.org/blender/blender/pulls/121268
2024-04-30 16:24:31 +02:00
Jesse Yurkovich
16a29a7a75 USD: Add test to cover export of mesh attributes
Adds a test to validate the export of Mesh attributes for USD.

It tests that all domains and types for a Mesh object are written to the
USD file correctly.

Pull Request: https://projects.blender.org/blender/blender/pulls/121180
2024-04-28 03:53:20 +02:00
Christoph Lendenfeld
8a8921e7a8 Anim: Add unit tests for keying custom properties
This PR adds unit tests for the "Custom Properties" option in the User Preferences.
It checks that the correct properties are keyed but not others.

Pull Request: https://projects.blender.org/blender/blender/pulls/120422
2024-04-23 09:36:38 +02:00
Campbell Barton
06adfcaf38 Cleanup: unused imports 2024-04-19 16:09:30 +10:00
Clément Foucault
addb02f239 EEVEE-Next: Bump surfel density for tests
This was really under sampling and some of the
differences between platforms might have come
from this.
2024-04-15 19:55:02 +02:00
Sybren A. Stüvel
1315991ecb Anim: add keytype argument to keyframe_insert() RNA function
Add an optional keyword argument `keytype` to the
`rna_struct.keyframe_insert()` function.

This makes it possible to set the new key's type. The code for this was
almost all in place, the only thing that was missing was the RNA
wrapper, which is what this commit adds.

Example: `bpy.context.object.keyframe_insert("location",
keytype='JITTER')`

There is no backward compatibility issue here, because the argument is
optional and defaults to the previously hardcoded value of `KEYFRAME`.

Pull Request: https://projects.blender.org/blender/blender/pulls/120578
2024-04-15 11:36:38 +02:00
Campbell Barton
d5f837a8ee Cleanup: remove redundant string formatting 2024-04-12 10:04:07 +10:00
Sybren A. Stüvel
13f3a81842 Anim: allow assigning Animation data-blocks
Expand the `AnimData` struct with an `Animation *` + an
`binding_stable_index` field, and properly handle those relations.

This also adds functionality for actually pointing animated IDs to
`Animation` data-blocks, and automatically hooking up the relevant
`Binding`.

The Depsgraph code is extended to take these new relations into account,
but doesn't trigger any animation evaluation yet.

For more info, see #113594.

Pull Request: https://projects.blender.org/blender/blender/pulls/118677
2024-04-08 12:53:32 +02:00
Sybren A. Stüvel
38878b4ac2 Anim: add Animation data-block management functions
Add code (including RNA wrappers) for:

- Creating, removing, and accessing `Animation` data-blocks.
- Creating and removing layers, strips, and bindings on those `Animation`
  data-blocks.
- Accessing those via RNA.

Note that this does not include assignment to any animated data-block,
so it is of limited practical use.

For more info, see #113594.

Pull Request: https://projects.blender.org/blender/blender/pulls/118677
2024-04-08 12:53:32 +02:00
Hans Goudey
03cc78de31 Tests: Add modifier tests for shrinkwrap target normal project
This code didn't have regression tests yet. Add tests for #120051,
with meshes with and without boundary edges.
2024-03-29 10:11:22 -04:00
Brecht Van Lommel
2fb4efc905 Fix: GPU test errors importing gpu module
Pull Request: https://projects.blender.org/blender/blender/pulls/119721
2024-03-26 20:16:02 +01:00
Jesse Yurkovich
9ae24fee48 USD: Add tests to cover curve, light, and point instancer import
The curve variations were used during development of the GeometrySet
changes.

The lights and point instancer coverage would have helped uncover bugs
earlier. Bugs that eventually had to be fixed in 4.1. Better late than
never.

The one downside is that the light tests is actually a round-trip test,
which is normally fine to do, except it technically does an export
during the import test.

Pull Request: https://projects.blender.org/blender/blender/pulls/119858
2024-03-26 18:58:46 +01:00
Campbell Barton
6a937d646b Cleanup: remove unused variables 2024-03-21 10:11:54 +11:00
Habib Gahbiche
f9cb2eb988 Cleanup: Tests: update message to refer to git instead of svn
Pull Request: https://projects.blender.org/blender/blender/pulls/119577
2024-03-17 09:47:40 +01:00
Brecht Van Lommel
daf3512a51 Merge branch 'blender-v4.1-release' 2024-03-07 20:16:51 +01:00
Brecht Van Lommel
e0c6db81ea Tests: Blacklist microfacet hair test on GPU, due to different curve shape 2024-03-07 19:37:38 +01:00
Bastien Montagne
8178bffd64 Merge branch 'blender-v4.1-release' 2024-03-06 11:16:00 +01:00
Bastien Montagne
9bfa17e030 Cleanup: make format. 2024-03-06 11:15:27 +01:00
Bastien Montagne
7daedd3e02 Merge branch 'blender-v4.1-release' 2024-03-06 11:02:42 +01:00
Bastien Montagne
253a6e36de Core: Library Linking: Add basic tests that linked animation works.
The new test merely ensures basic Object animation (both through action
and driver) still works as expected with linked data.
2024-03-06 10:59:10 +01:00
Campbell Barton
4f8db2ee67 Cleanup: use static sets for contains checks, remove f-string use 2024-02-28 11:02:49 +11:00
Bastien Montagne
bef276ab0b LibOverride: Cleanup unused&missing data after resync.
Often when the reference linked data is significantly modified, a lot of
'ghost' linked data remain referenced by liboverrides, even after
resync. This is due to the fact that missing data is ignored (skipped)
during resync process, to avoid potential destruction of data in case
the linked data is actually missing.

However, after all resync has been done, we can consider that missing
linked references and their liboverrides can be safely deleted, if the
later are not user-edited or hierarchy roots.
2024-02-27 16:43:31 +01:00
Lukas Tönne
b1636bc781 Fix #118769: Remove parent parameter from new_panel function
Nested panels are not supported currently, and this parameter serves no
actual purposes. Only the root panel supports adding child panels and it
is not user-accessible (adding the root panel is done using a nullptr
for the parent).

Pull Request: https://projects.blender.org/blender/blender/pulls/118792
2024-02-27 13:30:13 +01:00
Sergey Sharybin
3aa6c16171 Merge branch 'blender-v4.1-release' 2024-02-22 16:52:32 +01:00
Sergey Sharybin
ffd68db5f4 Fix file name being stored in the view layers CMakeLists 2024-02-22 16:51:46 +01:00
Brecht Van Lommel
056becae8a Merge branch 'blender-v4.1-release' into main 2024-02-22 14:36:13 +01:00
Brecht Van Lommel
8dfb87d1af Fix: Update tests data path to new directory 2024-02-22 14:25:54 +01:00
Sergey Sharybin
396348eea9 Merge branch 'blender-v4.1-release' 2024-02-22 13:51:48 +01:00
Sergey Sharybin
3dc832a904 Switch SVN to Git submodules using Git-LFS
This change makes it so build system and update utilities for Blender builds
are using pre-compiled libraries and other resources attached as Git modules
instead of using checkout of SVN repositories in the parent folder.

The directory layout:
```
  * release/datafiles/
    * assets/        -> blender-assets.git
      * publish/
      * ...
      * README.txt
  * lib/
    * darwin_x64/    -> lib-darwin_x64.git
    * darwin_arm64/  -> lib-darwin_arm64.git
    * linux_x64/     -> lib-linux_x64.git
    * windows_x64/   -> lib-windows_x64.git
  * tests/
    * data/         -> blender-test-data.git
```

The changes about configuring the actual Git sub-modules are not included
into this patch, as those require repository to actually exist before it
can be used.

The assets submodule is enabled by default, and the rest of them are
disabled. This means that if someone runs `git submodule update --init`
they will not get heavy libraries. The platform-specific and tests
related submodules are enabled when using `make update` or `make test`.

All the submodules are tracked: this means that when new commits are
done to the submodule, the blender.git repository is to be updated to
point them to the new hash. This causes some extra manual work, but it
allows to more easily update Blender and its dependencies to known good
state when performing operations like bisect.

Ref #108978

Pull Request: https://projects.blender.org/blender/blender/pulls/117946
2024-02-22 13:50:55 +01:00
Brecht Van Lommel
c28038d970 Merge branch 'blender-v4.1-release' into main 2024-02-20 19:19:00 +01:00
Brecht Van Lommel
a3ffb51da6 Tests: Silence unnecessary oiiotool warning messages 2024-02-20 19:18:22 +01:00
Brecht Van Lommel
0f2064bc3b Revert changes from main commits that were merged into blender-v4.1-release
The last good commit was 4bf6a2e564.
2024-02-19 15:59:59 +01:00
Harley Acheson
7d1747819f Merge branch 'blender-v4.1-release' 2024-02-16 08:40:51 -08:00
Brecht Van Lommel
66c6cbb598 Tests: Silence warning about missing alpha channel in render tests
Having this repeated many times makes it hard to spot actual issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/118355
2024-02-16 16:36:21 +01:00
Clément Foucault
0c279526eb EEVEE-Next: Render Tests: Bake world in volume probes
Improves quality. Doesn't impact performance
2024-02-14 16:24:02 +01:00
Clément Foucault
b647bed2d5 EEVEE-Next: Render Tests: Cosmetic changes 2024-02-14 15:55:36 +01:00
Clément Foucault
90dc66885f Fix: EEVEE-Next: Render Tests: Change probe visibility before bake 2024-02-14 15:55:36 +01:00
Omar Emara
da238bdb2f Fix: Realtime Compositor tests use CPU compositor
The Realtime Compositor uses the CPU compositor. That's because the enum
identifier of the Realtime Compositor changed to GPU, so update the test
script accordingly.
2024-02-14 15:35:35 +02:00
Clément Foucault
7cc4339ce2 EEVEE-Next: Improve tests appearance
This improves the volume probe resolution and
dimensions to envelope most test scenes.
This doesn't increase the baking time
that much as most of the baking time is
spent compiling shaders.
2024-02-14 13:02:01 +01:00
Campbell Barton
0b9ec567c8 Cleanup: format 2024-02-14 15:31:31 +11:00
Clément Foucault
3f5310cc59 EEVEE-Next: Use hair strip in render tests
This makes many render tests match cycles reference
much better.
2024-02-13 20:29:29 +01:00
Clément Foucault
db2f15f01f Fix: EEVEE-Next: Use raytracing again in render tests 2024-02-13 20:26:32 +01:00
Clément Foucault
83c3da2e55 EEVEE-Next: Improve render test script
- Avoid using `except: pass` so broken script don't go
undetected.
- Increase resolution of volumes
- Increase motion blur step resolution
- Fix setting on all scenes
2024-02-13 19:10:02 +01:00
Clément Foucault
9c84da1280 Fix: EEVEE-Next: Broken grid bake in test script 2024-02-13 16:29:06 +01:00
Hans Goudey
ef7d2a2dd9 Cleanup: Make format 2024-02-13 08:49:08 -05:00
Campbell Barton
2119d271e0 Cleanup: remove "-noaudio" argument in background mode
This is no longer needed as background mode implies -noaudio.
2024-02-14 00:13:38 +11:00
Aras Pranckevicius
aa37aa5fe1 Tests: Add sequencer effect render tests
Pull Request: https://projects.blender.org/blender/blender/pulls/118200
2024-02-13 13:20:24 +01:00