Commit Graph

125146 Commits

Author SHA1 Message Date
Miguel Pozo
4cf644939a EEVEE Next: Subsurface Scattering
Port of subsurface scattering from the eevee-rewrite branch to EEVEE Next.
https://projects.blender.org/fclem/blender/src/branch/eevee-rewrite

Other changes:
* Fix gbuffer normal and ior packing.
* Write the material eClosureBits to the gbuffer stencil.

Known Issues:
* Transmittance profile pre-computation is wrong.

Pull Request: https://projects.blender.org/blender/blender/pulls/107407
2023-06-15 15:49:05 +02:00
Nate Rupsis
01726de71f Merge branch 'blender-v3.6-release' 2023-06-15 09:36:59 -04:00
Nate Rupsis
f78aa6c034 Fix #108527: Fixing Vertex Group operators to default back to Active Vertex Group
Reverting changes made in [D14961](https://archive.blender.org/developer/D14961) to default to `Deform Bone` for objects with armatures. Instead explicitly update RNA enum to set default subset for just the normalize all operator.

Pull Request: https://projects.blender.org/blender/blender/pulls/108902
2023-06-15 15:36:00 +02:00
Miguel Pozo
524e320327 EEVEE Next: Improved sampler indices
Reserve the first sampler indices for the engine,
and remap image node indices so they go in reverse order
starting from the last one (usually 31).

Pull Request: https://projects.blender.org/blender/blender/pulls/108984
2023-06-15 15:15:05 +02:00
Sergey Sharybin
fb25ba2378 Merge branch 'blender-v3.6-release' 2023-06-15 14:45:25 +02:00
Sergey Sharybin
7fca0ee76a Cycles: Increase the compute model for the PTX kernel
Keep the PTX compute capability at the same level as the latest
architecture-optimized CUDA kernel.

Should help performance of the future cards when running older
Blender, and maybe will allow to perform JIT optimization faster.

Pull Request: https://projects.blender.org/blender/blender/pulls/109007
2023-06-15 14:44:57 +02:00
Guillermo Venegas
dd648b5942 Cleanup: Move space nla files to C++
See #103343

Pull Request: https://projects.blender.org/blender/blender/pulls/108998
2023-06-15 14:10:43 +02:00
Kévin Dietrich
973562ec0c Merge remote-tracking branch 'origin/blender-v3.6-release' into main 2023-06-15 14:01:29 +02:00
Kévin Dietrich
61efaec173 Fix Alembic crash when importing a SubD mesh
The counters for polygons count and face corners count were inverted,
leading to various out of bounds accesses due to wrong data size
allocation.

Not sure where the bug comes from, whether it's original, or a typo from
some refactor.
2023-06-15 14:00:24 +02:00
Sergey Sharybin
4f9a9abcf1 Merge branch 'blender-v3.6-release' 2023-06-15 13:40:38 +02:00
Sergey Sharybin
2d3c9bcee8 Benchmark: Pack python expression into a single line
There should be no functional changes for the typical usecase,
but it allows to have more tricky setups like pointing to a
BAT script to override some configuration.

The issue is that BAT scripts do not support new lines in the
command line arguments. That's where single-line python expression
helps.

For example, it is possible to point benchmark script to a blender.bat
which contains

    blender.exe --python-expr "import bpy; bpy.context.preferences.addons['cycles'].preferences.use_oneapirt = False" %*

to have side-by-side numbers of oneAPI with and without HW RT.

Without this change the %* is which did not work: the BAT
script did not "see" part of the command line past the new line.

Pull Request: https://projects.blender.org/blender/blender/pulls/109006
2023-06-15 13:40:17 +02:00
Philipp Oeser
9efd2c9ab6 Merge branch 'blender-v3.6-release' 2023-06-15 11:18:38 +02:00
Philipp Oeser
da052ab9f6 Fix #105942: Wrong text in MeshSequenceCache and Transform Cache
The Alembic procedural was refrenced here even if USD was loaded.

Now check the CacheFile type and let the user know Render Procedurals
are only supported for Alembic atm.

Pull Request: https://projects.blender.org/blender/blender/pulls/108701
2023-06-15 11:16:03 +02:00
Jeroen Bakker
0809377789 Cleanup: Make format 2023-06-15 10:01:53 +02:00
Philipp Oeser
1097e33032 Merge branch 'blender-v3.6-release' 2023-06-15 09:46:27 +02:00
Philipp Oeser
d61d2e5f59 Fix #108911: Fcurve Proportional editing circle draws wrong
Since we scale the GPU matrix a certain way (in order to draw a round
circle even for different UI x/y scaling), we have to also compensate
with GPU matrix translation (instead of drawing the raw
frame/value as coords untranslated).

There might be ways to solve this differently (e.g. manipulating the passed
coords instead of the GPU matrix or having a version of imm_drawcircball
that can do this in a way that compensates UI view scaling), but this seems
to be the most straightforward.

Thx @mano-wii hinting at the way to do this with GPU matrix alone.

Should probably go into 3.3 LTS as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/108979
2023-06-15 09:45:22 +02:00
Campbell Barton
d1e63f89bb License checker: quiet false positive for blender_theme_as_c.py 2023-06-15 16:47:51 +10:00
Campbell Barton
1b508de749 License headers: use SPDX-FileCopyrightText in intern/opensubdiv 2023-06-15 16:47:51 +10:00
Campbell Barton
4a93de9cc9 License headers: move copyright statements into SPDX-FileCopyrightText 2023-06-15 16:47:51 +10:00
Jeroen Bakker
bc6027ebaf Vulkan: Initial/Final Renderpass Layout
Until now the initial renderpass layout wasn't set, resulting
in errors/warnings when using the renderpass. This PR sets the
initial and final renderpass to general so the code knows what
to expect.

In future this needs to be designed better as the layout will
change when used in as a framebuffer attachment, or presenting
on the screen.

Pull Request: https://projects.blender.org/blender/blender/pulls/109000
2023-06-15 08:39:35 +02:00
Jeroen Bakker
0c154b6c61 Cleanup: Make format 2023-06-15 08:25:49 +02:00
Jeroen Bakker
d84a64900f Vulkan: Device Context Resource Management
The current Vulkan resource management has some issues as context that
are not active can still use resources that are freed via another
context.

When this happens incorrect data can be read on the GPU and even crash
Blender. When trying to bind something that now contains other memory
pointers.

This change introduces that contexts are tracked via the device.
Context will be registered/unregistered with the device instance.
Unbinding of resources must pass the device and the device will check
all registered contexts. Binding of resources will happen via the active
context only.

On user perspective this now allowes:
- Opening/switching files
- Switching workspaces
- Switching render engines

Pull Request: https://projects.blender.org/blender/blender/pulls/108968
2023-06-15 08:14:37 +02:00
Kévin Dietrich
907e27df51 Merge remote-tracking branch 'origin/blender-v3.6-release' into main 2023-06-15 05:47:13 +02:00
Campbell Barton
fbc754131a Cleanup: quiet compiler warnings 2023-06-15 13:46:04 +10:00
Kévin Dietrich
f0cd966750 Fix #100485: Alembic export crash with names containing a forward slash
As Alembic stores hierarchies as paths separated by a forward slash, such
character cannot be used in a name. This resulted in an uncaught thrown
exception. To fix this, replace '/' with '_' like for other illegal
characters.
2023-06-15 05:44:09 +02:00
Campbell Barton
60d90de9a5 Cleanup: remove unused imports, quiet pylint warnings 2023-06-15 13:35:34 +10:00
Campbell Barton
9ddbbbfeae License checker: check for SPDX-FileCopyrightText: in the header 2023-06-15 13:35:34 +10:00
Campbell Barton
65f99397ec License headers: use SPDX-FileCopyrightText in all sources 2023-06-15 13:35:34 +10:00
Joseph Eagar
2c1a44d1f0 Sculpt: Fix #108267: Broken face set undo
BKE_sculpt_face_sets_ensure now takes an Object
as an argument and updates the internal PBVH's
face sets pointer.
2023-06-14 20:22:17 -07:00
Joseph Eagar
136fcec288 Sculpt: Fix #108267: Broken face set undo
BKE_sculpt_face_sets_ensure now takes an Object
as an argument and updates the internal PBVH's
face sets pointer.
2023-06-14 20:21:50 -07:00
Kévin Dietrich
f509c213d0 Merge remote-tracking branch 'origin/blender-v3.6-release' into main 2023-06-15 03:41:07 +02:00
Kévin Dietrich
d2b741bebe Fix #107877: Alembic procedural crashes with point clouds
Somehow the implementation for the main function to load point clouds
data was missing although everything else to support point clouds was
there. Compilers were more than happy to convert the IPointsSchema to
another schema type for the compilation to succeed, and the crash
occurs because the points schema does not contain the same data as the
compiler's chosen schema (in this case an ICurvesSchema).

Another crash was found due to the radius array not being properly
initialized and left with a size of 0, when Cycles expects a full array.
2023-06-15 03:40:15 +02:00
Kévin Dietrich
ae5fc2a7f8 Fix #105409: vertex interpolation corrupts Alembic mesh
The Alembic data streaming can optionally interpolate between vertex of
two adjacent frames in order to smooth out the transition between
frames.

However, the decision to interpolate is only based on the vertex count.
This is not too robust as topology/connectivity can still differ even if
the number of vertices is the same (for example physics simulations and
videogrammetry can be set to output the same vertex count, but optimize
the triangle placement). This lead to vertices of unrelated polygons
being interpolated across frames.

To fix this, we now also check if the connectivity across frames is the
same, instead of just checking the topology counters. Although the bug
is revealed by the vertex interpolation routine, a similar fix is applied
to the check on topology change used to decide if the modifier has to be
evaluated for orco evaluation.

Pull Request: #105867
2023-06-15 03:40:14 +02:00
Iliya Katueshenock
4be143193d Fix #108977: Propagate material from first point cloud by Join Geometry node
Until point clouds support multiple materials, just copy
the material from the first point cloud. This approach is the
same as for texture coordinate of meshes, active color attribute
of custom data, etc.

Pull Request: https://projects.blender.org/blender/blender/pulls/108990
2023-06-14 22:49:37 +02:00
Ray Molenkamp
3d6a99d2aa Merge remote-tracking branch 'origin/blender-v3.6-release' into main 2023-06-14 14:37:40 -06:00
Ray Molenkamp
977081d72b DepsBuilder: Update OIIO to include PSD fix
This fixes #108487 by applying upstream OIIO commit 8da473e254

This commit fixes the deps builder to include the patch, the actual
bug will not be fixed until the platform maintainers update the OIIO
library in SVN.
2023-06-14 14:36:22 -06:00
Anthony Roberts
ee1b2f53cc Deps_builder: Move Windows build from MinGW/GCC to msys2/MSVC
Currently on Windows some dependencies are built with MinGW/GCC 3.x
this commit removes that, in favor of building them with MSVC
via msys2. This will make it easier in the future to offer Win/Arm64
builds of blender.

Notable changes:

- This change drops support for the external libxvid library in favor
of ffmpegs built in support for this format. This has been done with
permission from the VFX module.

Pull Request: https://projects.blender.org/blender/blender/pulls/108983
              https://projects.blender.org/blender/blender/pulls/105502
2023-06-14 21:57:48 +02:00
Hans Goudey
41f5ed970d Fix: Fix two small link drag search issues, small cleanup
The named attribute node gave connections from the "Exists" socket
to the new rotation socket type, and the sample volume node set its
type to unsupported values, causing a crash.
2023-06-14 15:42:06 -04:00
Hans Goudey
87a6b98875 Cleanup: Fix debug build error, geometry nodes test failure 2023-06-14 15:40:31 -04:00
Hans Goudey
1f0e206da6 Cleanup: Use nullptr, clang format 2023-06-14 14:55:44 -04:00
Hans Goudey
e08ff54228 Cleanup: Move rna_space.c to C++
See #103343

Pull Request: https://projects.blender.org/blender/blender/pulls/108985
2023-06-14 20:52:51 +02:00
Hans Goudey
63dae2a105 Nodes: Add rotation socket type, support in many geometry nodes
Add a quaternion rotation socket type, and using the recently added
rotation attribute type, support the type in most of the multi-type
geometry nodes, and modifier attribute inputs and outputs.

The socket is still exposed with an XYZ Euler default value.
In the future we can add modes to this rotation value similar
to object rotations.

Rotation values have no implicit conversions to other types.
Nodes to convert to and from rotation values will be added
in a follow-up commit.

For now, the new socket type is hidden behind and experimental
option, because we haven't chosen the final color for it yet.

Pull Request: https://projects.blender.org/blender/blender/pulls/108903
2023-06-14 20:30:10 +02:00
Germano Cavalcante
9265fa1eed Cleanup: Split 'transform_snap_object.cc' into smaller files
This commit splits the `transform_snap_object.cc` file into 4 files:
- `transform_snap_object.hh`
- `transform_snap_object.cc`
- `transform_snap_object_editmesh.cc`
- `transform_snap_object_mesh.cc`

The `transform_snap_object.hh` header, in addition to sharing common
types, allows functions defined in each of these files to be shared
between them.

This makes the code easier to read and simplifies maintenance.

Pull Request: https://projects.blender.org/blender/blender/pulls/108949
2023-06-14 20:08:08 +02:00
Hans Goudey
f98e488311 Cleanup: Silence unused parameter warning 2023-06-14 14:03:23 -04:00
Hans Goudey
68c6402666 Cleanup: Use C++ accessor for mesh position attribute 2023-06-14 12:37:52 -04:00
Hans Goudey
a43c7997aa Cleanup: Remove unnecessary includes and declarations from mesh headers 2023-06-14 12:37:52 -04:00
Hans Goudey
af53207b43 Cleanup: Remove unnecessary C wrappers for mesh evaluation functions 2023-06-14 12:37:52 -04:00
Hans Goudey
7826aed105 Cleanup: Use C++ accessors for mesh data 2023-06-14 12:37:52 -04:00
Hans Goudey
f1d1caa44a Cleanup: Remove redundant copy of mesh fields
These are already copied by `BKE_mesh_nomain_to_mesh`.
2023-06-14 12:37:52 -04:00
Hans Goudey
a45f09decd Cleanup: Clarify comment about ownership in meah header
The ownership of the result mesh isn't "unkown", that doesn't
really make sense. Also use "true" instead of "truth".
2023-06-14 12:37:52 -04:00