Blender Git Commits

Blender Git "master" branch commits.

Page: 895 / 5574

February 21, 2020, 16:00 (GMT)
Cleanup: remove unused ScreenAnimData.refresh
February 21, 2020, 15:57 (GMT)
Fix T73593: Drivers on hide_viewport and hide_render are unreliable

This fixes a threading issue (T73593) between drivers that write to the
same memory address. Driver nodes in the depsgraph now get relations to
each other in order to ensure serialisation.

These relations are only added between drivers that target the same
struct in RNA, which is determined by removing everything after the last
period. For example, a driver with data path
`pose.bones["Arm_L"].rotation_euler[2]` will be grouped with all other
drivers on that datablock with a data path that starts with
`pose.bones["Arm_L"]` to form a 'driver group'.

To find a suitable relation within such a driver group, say the relation
(from ? to), a depth-first search is performed (turned out to be
marginally faster than a breadth-first in my test case) to see whether
this will create a cycle, and to see whether there already is such a
connection (direct or transitive). This is done by recursively
inspecting the incoming connections of the 'to' node and thereby walking
from it towards the 'from' node. This is an order of magnitde faster
than inspecting the outgoing connections of the 'from' node.

This approach generalises the special case for array properties, so the
code to support that special case has been removed from
`DepsgraphRelationBuilder::build_animdata_drivers()`.

A test on the Spring rig [1] shows that this process adds approximately
8% to the build time of the dependency graph. In my test case, it takes
28 ms for this process on a total 329 ms construction time. However,
since it also made some code obsolete, it only adds 24 ms (=8%) to the
construction time. I have experimented with a simple cache to keep track
of known-connected (from, to) node pairs, but this did not significantly
improve the timing.

Note that animation data and drivers are already connected by a
relation, which means that animating a field and also changing it with a
driver will not cause conflicts.

[1] https://cloud.blender.org/p/spring/5d30a1076249366fa1939cf1

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

Reviewed By: sergey, mont29
February 21, 2020, 15:43 (GMT)
Cleanup: un-indent ED_screen_set_active_region

Also remove redundant flag assignment from previous comment.
February 21, 2020, 15:20 (GMT)
Fix regression in the orientation of transform Redo operations

Caused by rBb3abd2e102df
February 21, 2020, 15:13 (GMT)
Cleanup: avoid looping over areas when refreshing the cursor

These values are already known, pass in as arguments.
February 21, 2020, 14:59 (GMT)
Fix T67805: Cursor doesn't update when switching tools via shortcuts
February 21, 2020, 14:32 (GMT)
Fluid: Fix typo in fluid RNA

Fix typo in fluid RNA.
February 21, 2020, 14:30 (GMT)
Fluid: Cleanup in cache delete function

Removed unneccessary calls to BLI_exists() as BLI_delete() does this implicitly.
February 21, 2020, 14:29 (GMT)
Fluid: Updated manta pp files

Updates include:
- A fix from Jacques that changed the loop order in the mesh creation function (the fix speeds up the function significantly due to fewer cache misses).
- Some of the grid copy helper functions are now multithreaded.
- A fix for Windows file IO. Now it possible to load files with non ASCII characters on Windows too.
February 21, 2020, 13:43 (GMT)
Cleanup: Move transform_mode_init to transform_mode API
February 21, 2020, 13:35 (GMT)
Fix T74006: Alt+ clicking (assign to all selected) doesn not work for
bone constraints settings

'UI_context_copy_to_selected_list()' was working fine for constraints on
objects (would properly get the path and list of selected objects) and
also for bone settings (would properly get the path and list of bones).

There was no special case for constraints on bones though, so code would
work on selected objects (not selected bones).

So we now get the right bones and resolve the path to the constraint
setting _from the bones_.

Maniphest Tasks: T74006

Differential Revision: https://developer.blender.org/D6897
February 21, 2020, 13:04 (GMT)
Fix T74044: Switching from Edge Slide to Move and Cancelling causes crash

`TFM_TRANSLATION` was removed in rBa33b261473e9 but is still needed.
February 21, 2020, 13:03 (GMT)
Transform: Fix reinitialization of custom data correction
Revision 94e180b by Sybren A. Stüvel
February 21, 2020, 10:16 (GMT)
Fix: Drivers on hide_viewport and hide_render throw warnings

This partially fixes T73593.

The `add_relation(driver_key, property_entry_key, ...);` call can fail
in the following situation:

- A collection is linked, and instanced into the scene by an Empty.
- The collection contains an object with a driver on its `hide_render` or
`hide_viewport` property.

As the object doesn't exist as a real object in the scene, it's added with
`base_index=-1` to the depsgraph (see `DepsgraphNodeBuilder::build_collection()`).
As a result the node for syncing the restrictflags back to the base
isn't present in the depsgraph, and the `add_relation()` call failed.

This commit fixes the warning, simply by not attempting to add the
offending relation.
February 21, 2020, 10:13 (GMT)
EEVEE: Render Passes

This patch adds new render passes to EEVEE. These passes include:

* Emission
* Diffuse Light
* Diffuse Color
* Glossy Light
* Glossy Color
* Environment
* Volume Scattering
* Volume Transmission
* Bloom
* Shadow

With these passes it will be possible to use EEVEE effectively for
compositing. During development we kept a close eye on how to get similar
results compared to cycles render passes there are some differences that
are related to how EEVEE works. For EEVEE we combined the passes to
`Diffuse` and `Specular`. There are no transmittance or sss passes anymore.
Cycles will be changed accordingly.

Cycles volume transmittance is added to multiple surface col passes. For
EEVEE we left the volume transmittance as a separate pass.

Known Limitations

* All materials that use alpha blending will not be rendered in the render
passes. Other transparency modes are supported.
* More GPU memory is required to store the render passes. When rendering
a HD image with all render passes enabled at max extra 570MB GPU memory is
required.

Implementation Details

An overview of render passes have been described in
https://wiki.blender.org/wiki/Source/Render/EEVEE/RenderPasses

Future Developments

* In this implementation the materials are re-rendered for Diffuse/Glossy
and Emission passes. We could use multi target rendering to improve the
render speed.
* Other passes can be added later
* Don't render material based passes when only requesting AO or Shadow.
* Add more passes to the system. These could include Cryptomatte, AOV's, Vector,
ObjectID, MaterialID, UV.

Reviewed By: Cl�ment Foucault

Differential Revision: https://developer.blender.org/D6331
February 21, 2020, 10:00 (GMT)
Codesign: Make file watcher robust for network errors
February 21, 2020, 09:49 (GMT)
Cleanup: Spelling in a comment
February 21, 2020, 08:31 (GMT)
Codesign: Remove archive with files after they were copied
February 21, 2020, 01:21 (GMT)
Fix transform 'center_override' not being flagged

Problem introduced by rBa33b261473e9
February 20, 2020, 21:50 (GMT)
Fix T73841: Pressing 3 doesn't go to Pose mode

Just changing the order in the keymap seems to fix this
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021