Commit Graph

97469 Commits

Author SHA1 Message Date
Jacques Lucke c2ebf3edb4 Functions: provide dummy multi function
Sometimes it is convenient to be able to return a reference to some
dummy function.
2020-06-30 18:18:48 +02:00
Jacques Lucke 67da2bd23a Functions: add methods to multi-function network classes
Those are necessary to query and modify the network.
2020-06-30 18:18:48 +02:00
Jacques Lucke d67b7f3b52 Functions: use raw allocator for function signature
This allows multi-functions to have static storage duration.
2020-06-30 18:18:48 +02:00
Jacques Lucke 613f62d15c Functions: add two more customizable multi-functions 2020-06-30 18:18:48 +02:00
Jacques Lucke d92e5f8950 BLI: support constructing Color4f from float pointer 2020-06-30 18:18:48 +02:00
Jacques Lucke 5c9c3a3234 Nodes: add some utility methods to DerivedNodeTree 2020-06-30 18:18:47 +02:00
Brecht Van Lommel e60b6f586b Build: disable OpenXR in make deps for macOS, it's not supported 2020-06-30 18:12:08 +02:00
Brecht Van Lommel 95ee06d068 Fix T77825: autosave missed too often while sculpting
Previously if a modal operator is active, which might leave Blender in a state
where it's not safe to autosave, it would try again in 10s. Now try again in
10ms so it's much less likely to be missed, since overhead of such a timer is
negligble anyway.

Also remove the debug print that was added to investigate a bug at some point.
2020-06-30 18:12:08 +02:00
Brecht Van Lommel d4b9b2c020 Cycles: bump version to 1.13, matching Blender 2.90 release cycle 2020-06-30 18:12:08 +02:00
Miguel Porces 03b8173059 Python API: support setting properties in nested data in node add operator
Differential Revision: https://developer.blender.org/D8093
2020-06-30 18:04:25 +02:00
Bastien Montagne 6add0cc88a LibOverride: Fix lots of poll functions for Object operators.
Prevent operators that should not perform on override data to be
callable in those cases.
2020-06-30 17:52:36 +02:00
Pablo Dobarro 438bd82371 Sculpt: Pose Brush option to affect loose parts
This option allows posing meshes with different disconnected elements
using the Pose Brush.

This is achieved by doing the following:
- Creating an ID per vertex that stores the connected component of that vertex.
- By using those IDs, one fake topology connection is created per vertex to the nearest vertex in a different ID. The maximum distance to create that connection is determined by the "Max Element Distance" property. These fake connectivity neighbors are used in the Sculpt API functions iterators, so all the algorithms of the Pose Brush can run without modifications as if everything was part of the same mesh.

In order to make this work, the "Connected only" property of the Pose Brush needs to be disabled. This will add an extra performance cost to the Pose Brush and its preview. To achieve optimal results, max element distance should be as low as possible.

Reviewed By: sergey, campbellbarton

Differential Revision: https://developer.blender.org/D7282
2020-06-30 17:43:37 +02:00
Brecht Van Lommel 6ac235a6f7 Fix T78038: Cycles crash rendering with volume object and motion blur 2020-06-30 17:36:02 +02:00
Brecht Van Lommel 27783b4ac7 Fix T78358: random crash editing shader nodes with textures 2020-06-30 16:59:40 +02:00
Jacques Lucke 26cdab02a8 Cleanup: move tests into their corresponding namespace 2020-06-30 16:46:52 +02:00
Clément Foucault e0ef574c40 Fix T76337 Overlay: Wireframe: x-ray doesn't deactivate when set to 0
Also fix an issue with antialiasing when xray opacity is set to 0.
2020-06-30 16:12:12 +02:00
Bastien Montagne 49d05687be LibOverride: Add most of Object properties as overridable. 2020-06-30 16:06:32 +02:00
Jacques Lucke 37820651bb BLI: add Array constructor that does not initialize non-trivial types
This should rarely be necessary, but I have a use case coming up soon.
2020-06-30 15:58:29 +02:00
Demeter Dzadik 5b03f49302 Custom Properties: support default values for strings
Differential Revision: https://developer.blender.org/D8102
2020-06-30 15:06:33 +02:00
Vincent Blankfield e93663363e Fix T77734: random crash when rendering animation
Differential Revision: https://developer.blender.org/D7986
2020-06-30 14:58:50 +02:00
Brecht Van Lommel 4e9ed1dae9 Fix T78447: Cycles vertex color node not working with hair 2020-06-30 14:36:52 +02:00
Sybren A. Stüvel 8aaca88402 Fix missing relation in compositor depsgraph
This is a fix for c7694185c9. An object without base can still be in the
depsgraph, and then the `VIEW_LAYER_EVAL` node does not exist.

This popped up while @Sergey was looking into T78264.
2020-06-30 14:26:12 +02:00
Jacques Lucke 2a1af5fa48 Cleanup: add missing extern "C" 2020-06-30 14:01:46 +02:00
Germano Cavalcante bdbfdce766 Transform: Reduce the alpha in the Edge Slide drawing
It was very intense and could be confused with the `Even` option.
2020-06-30 09:00:22 -03:00
Germano Cavalcante 602cfdeac7 Transform: Add constraint intersection support
Snap to faces and edges is now enhanced in the Edge Slide.

It works in the same way that it already works in the Vert Slide.

Basically it now snaps to the intersection of the slid edge with the
face plane or the edge line.
2020-06-30 08:58:47 -03:00
Jacques Lucke 84901f2eda Nodes: store nodes by bNodeType instead of idname
This is more efficient in most cases.
2020-06-30 13:35:45 +02:00
Sybren A. Stüvel a6775efb4f Alembic exporter: Fix Windows build errors
Some Windows-specific code needed adjustment after 2917df21ad.
2020-06-30 13:09:44 +02:00
Campbell Barton b838a51803 Cleanup: spelling 2020-06-30 20:54:31 +10:00
Campbell Barton 84f8b47c4c Cleanup: clang-format 2020-06-30 20:50:37 +10:00
Bastien Montagne 0291039079 LibOverride: Add minimal support of liboverrides to shapekeys. 2020-06-30 12:19:11 +02:00
Bastien Montagne 4c3d51326e LibOverride: Refactor 'make override' 3DView operator.
This one now uses a generic 'dependency detection' process to decide
which IDs should be overridden.

This will e.g. allow to override mesh and shapekeys when those have some
values controlled by drivers using an armature bone...
2020-06-30 12:19:11 +02:00
Bastien Montagne f6394e66ed LibOverride: Fix handling of owned ID pointers in diffing process. 2020-06-30 12:19:11 +02:00
Bastien Montagne a94a05ec19 LibOverride: Add proper handling of shapekeys to core override code itself. 2020-06-30 12:19:11 +02:00
Bastien Montagne 24c4d3f1f7 LibOverride: Add necessary bits in RNA to deal with embedded IDs paths.
Note that this code is rather rough and slightly hacky, a proper
solution needs to be designed at some point probably, but for now this
should work fine.

As usual, master collections and root node trees remain TODO for now.
2020-06-30 12:19:11 +02:00
Bastien Montagne 7556530bac LibOverride: properly tag owner ID for override refresh, when embedded one is affected.
Note that this is partially WIP code, we only take care of shapekeys
here for now.

Also, move this tagging for liboverride refresh into same chack as the
one for tagging editors, sounds more logical that way.
2020-06-30 12:19:11 +02:00
Bastien Montagne deb01eb199 LibOverride: Add concept of 'embedded'/'virtual' override.
IDs like embedded ones (master collections, root node trees) cannot be
linked, and thus cannot be real override themselves.

Since they are managed by their owner ID, that one will also have the
overrides for their locally edited properties.

We still need a way to mark them as overridden though, for various UI
and override-internal purposes, this is done using a new ID flag.

Note that since Shae Keys are not linkable, and their pointers are not
editable in RNA, they are also considered as embedded from override
point of view.
2020-06-30 12:19:11 +02:00
Bastien Montagne 34027506f8 Cleanup: ID macros: cast to `const ID *` instead of `ID *`.
Allows to pass const pointers without getting complains from the
compiler.
2020-06-30 12:19:11 +02:00
Bastien Montagne 737b0fd762 Cleanup: Use unsigned int when for enum values, instead of signed int. 2020-06-30 12:19:11 +02:00
Bastien Montagne 906d93110e Cleanup: LibOverride: Naming. 2020-06-30 12:19:11 +02:00
Bastien Montagne fa7d990f10 LibOverride: Fix improper update of depsgraph relations. 2020-06-30 12:19:11 +02:00
Bastien Montagne 0b3313e532 Cleanup: LibOverride: Replace raw pointers checks by proper macros.
This is cleaner, but also crucial to avoid weird issues when behaviors
of those checks are modified...
2020-06-30 12:19:11 +02:00
Bastien Montagne 4783520bfa Cleanup (from clang format)... 2020-06-30 12:19:11 +02:00
Brecht Van Lommel 2d8c59ccb9 Fix T77095: fix Cycles performance regression with AMD RX cards
Apply the workaround only for known problematic drivers. The latest pro driver
appears to work correctly, hopefully the regular driver will as well once it
is updated to the same OpenCL driver version (3075.13).
2020-06-30 12:01:40 +02:00
Brecht Van Lommel 9dbe0f9c04 Fix T78367: triangulate modifier does not preserve sculpt vertex colors 2020-06-30 12:00:44 +02:00
Sybren A. Stüvel 2917df21ad Alembic: new exporter based on the USD exporter structure
The Alembic exporter has been restructured by leverages the
`AbstractHierarchyIterator` introduced by the USD exporter. The produced
Alembic files have not changed much (details below), as the Alembic
writing code has simply been moved from the old exporter to the new. How
the export hierarchy is handled changed a lot, though, and also the way
in which transforms are computed. As a result, T71395 is fixed.

Differences between the old and new exporter, in terms of the produced
Alembic file:
- Duplicated objects now have a unique numerical suffix.
- Matrices are computed differently, namely by simply computing the
  evaluated transform of the object relative to the evaluated transform
  of its export-parent. This fixes {T71395}, but otherwise should
  produce the same result as before (but with simpler code).

Compared to the old Alembic exporter, Subdivision modifiers are now
disabled in a cleaner, more efficient way (they are disabled when
exporting with the "Apply Subdivisions" option is unchecked). Previously
the exporter would move to a new frame, disable the modifier, evaluate
the object, and enable the modifier again. This is now done before
exporting starts, and modifiers are only restored when exporting ends.

Some issues with the old Alembic exporter that have NOT been fixed in
this patch:
- Exporting NURBS patches and curves (see T49114 for example).
- Exporting flattened hierarchy in combination with dupli-objects. This
  seems to be broken in the old Alembic exporter as well, but nobody
  reported this yet.

Differential Revision: https://developer.blender.org/D7664

Reviewed By: Sergey
2020-06-30 11:38:46 +02:00
Campbell Barton a2b7c84ae8 Cleanup: unused arguments 2020-06-30 19:35:32 +10:00
Sergey Sharybin 7860fc9539 Codesign: Wait for unsigned directory to appear
Solves problem with different order of codesign server startup and
mount of network shares: avoids exception happening when server is
started prior to the mounts are ready.
2020-06-30 11:21:00 +02:00
Sergey Sharybin 53799d3ed2 Codesign: CLeanup, redundant semicolon 2020-06-30 11:20:37 +02:00
Julian Eisel 4176adaf96 Fix T78455: Failed assert when opening a viewport panel
Mistake from 1fa40c9f8a.
2020-06-30 10:47:49 +02:00
Jacques Lucke 55ae55af66 Cleanup: remove unnecessary namespace specifiers 2020-06-30 10:35:50 +02:00