blender.git
2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 6 Dec 2017 13:06:49 +0000 (14:06 +0100)]
Merge branch 'master' into blender2.8

2 years agoLibrary: Add flag top keep ID library pointer around
Sergey Sharybin [Wed, 6 Dec 2017 11:59:00 +0000 (12:59 +0100)]
Library: Add flag top keep ID library pointer around

This only applies to ID being copied outside of bmain. Handy for cases when it
is important to check if the copy corresponds to a data block coming from
library.

Example of that is proxy evaluation with copy on write.

Thanks Bastien for review!

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 6 Dec 2017 11:27:44 +0000 (12:27 +0100)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Cleanup, use less geenric data type
Sergey Sharybin [Wed, 6 Dec 2017 11:26:10 +0000 (12:26 +0100)]
Depsgraph: Cleanup, use less geenric data type

2 years agoDepsgraph: Proxy pose bones should be coming from CoW object
Sergey Sharybin [Wed, 6 Dec 2017 11:13:10 +0000 (12:13 +0100)]
Depsgraph: Proxy pose bones should be coming from CoW object

This should solve crash on files having proxies, but there will still be
assert failure because proxy_from is expected to come from library, which
is no longer truth for objects which got copied.

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 6 Dec 2017 10:58:13 +0000 (11:58 +0100)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Forgot this in previous commit
Sergey Sharybin [Wed, 6 Dec 2017 10:57:57 +0000 (11:57 +0100)]
Depsgraph: Forgot this in previous commit

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 6 Dec 2017 10:55:30 +0000 (11:55 +0100)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Ignore text datablocks from nodes
Sergey Sharybin [Wed, 6 Dec 2017 10:54:52 +0000 (11:54 +0100)]
Depsgraph: Ignore text datablocks from nodes

Those are not part of dependency graph, but still could be referenced from
the tree.

2 years agoDepsgraph: Owner ID must always be original ID
Sergey Sharybin [Wed, 6 Dec 2017 10:38:58 +0000 (11:38 +0100)]
Depsgraph: Owner ID must always be original ID

Missed that in the review.

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 6 Dec 2017 09:38:34 +0000 (10:38 +0100)]
Merge branch 'master' into blender2.8

2 years agoEevee: Fix sampling direction calculation.
Clément Foucault [Wed, 6 Dec 2017 09:45:12 +0000 (10:45 +0100)]
Eevee: Fix sampling direction calculation.

It was causing problems with the visibility filtering on Intel GPU.

2 years agoDepsgraph: Add missing bone properties to proxy rigs
Sergey Sharybin [Tue, 5 Dec 2017 16:34:11 +0000 (17:34 +0100)]
Depsgraph: Add missing bone properties to proxy rigs

2 years agoDepsgraph: Add missing NULL pointer check
Sergey Sharybin [Tue, 5 Dec 2017 16:14:17 +0000 (17:14 +0100)]
Depsgraph: Add missing NULL pointer check

2 years agoDepsgraph: Cleanup, remove unused function
Sergey Sharybin [Tue, 5 Dec 2017 15:51:21 +0000 (16:51 +0100)]
Depsgraph: Cleanup, remove unused function

2 years agoDepsgraph: Remove workaround of parameters animation in node tree
Sergey Sharybin [Tue, 5 Dec 2017 15:47:20 +0000 (16:47 +0100)]
Depsgraph: Remove workaround of parameters animation in node tree

2 years agoDepsgraph: Remove workaround of parameters animation in lamp
Sergey Sharybin [Tue, 5 Dec 2017 15:43:27 +0000 (16:43 +0100)]
Depsgraph: Remove workaround of parameters animation in lamp

2 years agoDepsgraph: Remove workaround of parameters animation in camera
Sergey Sharybin [Tue, 5 Dec 2017 15:35:58 +0000 (16:35 +0100)]
Depsgraph: Remove workaround of parameters animation in camera

This is something what should be done by build_animation().

2 years agoDepsgraph: Remove workaround for animated geometry component
Sergey Sharybin [Tue, 5 Dec 2017 15:21:28 +0000 (16:21 +0100)]
Depsgraph: Remove workaround for animated geometry component

2 years agoDepsgraph: Remove workaround for animated modifiers
Sergey Sharybin [Tue, 5 Dec 2017 15:19:00 +0000 (16:19 +0100)]
Depsgraph: Remove workaround for animated modifiers

2 years agoDepsgraph: Leave armature animation relation to build_animation()
Sergey Sharybin [Tue, 5 Dec 2017 15:09:03 +0000 (16:09 +0100)]
Depsgraph: Leave armature animation relation to build_animation()

Needs some optimization trick to hook pose init function to animation
instead of a bone. This is how flush will work anyway.

2 years agoDepsgraph: Use default argument value for relations builder
Sergey Sharybin [Tue, 5 Dec 2017 14:59:48 +0000 (15:59 +0100)]
Depsgraph: Use default argument value for relations builder

Follows other function definitions.

2 years agoDepsgraph: Cleanup, line wrapping
Sergey Sharybin [Tue, 5 Dec 2017 12:02:36 +0000 (13:02 +0100)]
Depsgraph: Cleanup, line wrapping

2 years agoDepsgraph: Use build_animation() to build relations to animated properties
Sergey Sharybin [Tue, 5 Dec 2017 11:57:01 +0000 (12:57 +0100)]
Depsgraph: Use build_animation() to build relations to animated properties

Before that it was up to lots of other places to keep track on whether
something is to be dependent on time or not. Was annoying, and unreliable,
and fragile.

This commit avoids hacks in object builder. Other areas will be adopted
soon.

2 years agoDepsgraph: Add ability to check whether relation exists before adding it
Sergey Sharybin [Tue, 5 Dec 2017 11:52:17 +0000 (12:52 +0100)]
Depsgraph: Add ability to check whether relation exists before adding it

Currently not used, but this is aimed to be used when adding relations from
FCurve to property which is being animated.

2 years agoDepsgraph: Cleanup, line wrapping
Sergey Sharybin [Tue, 5 Dec 2017 10:37:27 +0000 (11:37 +0100)]
Depsgraph: Cleanup, line wrapping

2 years agoDepsgraph: Move implementation part of relations header to own file
Sergey Sharybin [Tue, 5 Dec 2017 10:35:28 +0000 (11:35 +0100)]
Depsgraph: Move implementation part of relations header to own file

2 years agoFix T53408: Updating Cycles Nodes via Drivers in Material View
Sergey Sharybin [Tue, 5 Dec 2017 09:14:12 +0000 (10:14 +0100)]
Fix T53408: Updating Cycles Nodes via Drivers in Material View

This is something what should be supported by the new dependency graph.

Fixed by making it so, build_animation() adds relation between Animation
component and whatever-is-being-animated. In fact, for now, only relations to
ID properties are added. Rest of the relations are kind of hacked in all over
the code and needs to be removed and verified with specific .blend files.

2 years agoDepsgraph: Cleanup, split build_animation
Sergey Sharybin [Mon, 4 Dec 2017 17:34:27 +0000 (18:34 +0100)]
Depsgraph: Cleanup, split build_animation

2 years agoDepsgraph: Correct fallback for the parameters calculation
Sergey Sharybin [Mon, 4 Dec 2017 17:24:38 +0000 (18:24 +0100)]
Depsgraph: Correct fallback for the parameters calculation

We can't use a single component here, sine it might consist of multiple
operations. So, for example, having driver operation will confuse targets
of another driver.

2 years agoDepsgraph: Cleanup, split driver builder function
Sergey Sharybin [Mon, 4 Dec 2017 17:11:43 +0000 (18:11 +0100)]
Depsgraph: Cleanup, split driver builder function

2 years agoDepsgraph: Cleanup, deduplicate as much as possible in build_driver
Sergey Sharybin [Mon, 4 Dec 2017 17:08:29 +0000 (18:08 +0100)]
Depsgraph: Cleanup, deduplicate as much as possible in build_driver

2 years agoDepsgraph: Remove old comments which are likely outdated
Sergey Sharybin [Mon, 4 Dec 2017 17:06:52 +0000 (18:06 +0100)]
Depsgraph: Remove old comments which are likely outdated

2 years agoDepsgraph: Replace last obvious part of driver builder with generic RNA code
Sergey Sharybin [Mon, 4 Dec 2017 17:06:13 +0000 (18:06 +0100)]
Depsgraph: Replace last obvious part of driver builder with generic RNA code

2 years agoDepsgraph: Add criteria for RNA_Key
Sergey Sharybin [Mon, 4 Dec 2017 17:06:02 +0000 (18:06 +0100)]
Depsgraph: Add criteria for RNA_Key

2 years agoDepsgraph: Remove confusing ID node criteria
Sergey Sharybin [Mon, 4 Dec 2017 17:00:24 +0000 (18:00 +0100)]
Depsgraph: Remove confusing ID node criteria

it sometimes overrides all possible other criteria, even tho we might want to
be very specific about what component we are looking for here.

2 years agoDepsgraph: Use generic function for shape key driver target
Sergey Sharybin [Mon, 4 Dec 2017 16:39:58 +0000 (17:39 +0100)]
Depsgraph: Use generic function for shape key driver target

There was a second place for shape keys.

2 years agoDepsgraph: Fix wrong relations built for drivers
Sergey Sharybin [Mon, 4 Dec 2017 16:37:21 +0000 (17:37 +0100)]
Depsgraph: Fix wrong relations built for drivers

When target was changed from bone to regular object, new dependency graph was
still trying to build relations as if driver was using bone.

2 years agoDepsgraph: Use generic function for shape key driver target
Sergey Sharybin [Mon, 4 Dec 2017 13:08:53 +0000 (14:08 +0100)]
Depsgraph: Use generic function for shape key driver target

2 years agoDepsgraph: Use generic function for modifiers driver target
Sergey Sharybin [Mon, 4 Dec 2017 12:59:17 +0000 (13:59 +0100)]
Depsgraph: Use generic function for modifiers driver target

2 years agoDepsgraph: Use existing utility function to get driver target node
Sergey Sharybin [Mon, 4 Dec 2017 12:49:13 +0000 (13:49 +0100)]
Depsgraph: Use existing utility function to get driver target node

Only done for pose bone for now, but the idea is to go case bu case in
build_driver and move all custom logic from there to find_node_from_pointer().

2 years agoDepsgraph: Cleanup, split build_driver function up
Sergey Sharybin [Mon, 4 Dec 2017 16:01:02 +0000 (17:01 +0100)]
Depsgraph: Cleanup, split build_driver function up

2 years agoDepsgraph: Don't see reason to have special case for bone's RNA path
Sergey Sharybin [Mon, 4 Dec 2017 15:58:02 +0000 (16:58 +0100)]
Depsgraph: Don't see reason to have special case for bone's RNA path

2 years agoDepsgraph: SImplify chjecks in directly address bone
Sergey Sharybin [Mon, 4 Dec 2017 15:51:29 +0000 (16:51 +0100)]
Depsgraph: SImplify chjecks in directly address bone

2 years agoDepsgraph: begin use of RNAPathKey instead of re-implemented checks in driver variables
Sergey Sharybin [Mon, 4 Dec 2017 15:44:07 +0000 (16:44 +0100)]
Depsgraph: begin use of RNAPathKey instead of re-implemented checks in driver variables

2 years agoDepsgraph: Cleanup, don't use static qualifier inside of anonymous namespace
Sergey Sharybin [Mon, 4 Dec 2017 15:27:32 +0000 (16:27 +0100)]
Depsgraph: Cleanup, don't use static qualifier inside of anonymous namespace

2 years agoAdd utility function to compare PointerRNA with NULL
Sergey Sharybin [Mon, 4 Dec 2017 15:23:14 +0000 (16:23 +0100)]
Add utility function to compare PointerRNA with NULL

Thanks Campbell for review!

2 years agoDepsgraph: Correct RNA pointer criteria to deal with bone custom properties
Sergey Sharybin [Mon, 4 Dec 2017 15:02:09 +0000 (16:02 +0100)]
Depsgraph: Correct RNA pointer criteria to deal with bone custom properties

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Wed, 6 Dec 2017 05:51:37 +0000 (16:51 +1100)]
Merge branch 'master' into blender2.8

2 years agoFix T53441: Inset doesn't start at zero
Campbell Barton [Wed, 6 Dec 2017 05:45:51 +0000 (16:45 +1100)]
Fix T53441: Inset doesn't start at zero

2 years agoCleanup: line length
Campbell Barton [Wed, 6 Dec 2017 05:42:34 +0000 (16:42 +1100)]
Cleanup: line length

2 years agoCMake: remove git found message
Campbell Barton [Wed, 6 Dec 2017 05:37:50 +0000 (16:37 +1100)]
CMake: remove git found message

2 years agoCycles: Fix constness for load_kernels in device_cpu.cpp
Lukas Stockner [Tue, 5 Dec 2017 23:00:18 +0000 (00:00 +0100)]
Cycles: Fix constness for load_kernels in device_cpu.cpp

2 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Tue, 5 Dec 2017 21:38:13 +0000 (22:38 +0100)]
Merge branch 'master' into blender2.8

2 years agoFix T53476: File Browser: Selection Issue with 'fill' option.
Bastien Montagne [Tue, 5 Dec 2017 21:34:49 +0000 (22:34 +0100)]
Fix T53476: File Browser: Selection Issue with 'fill' option.

Fill-selection would only go upward in list of items to find an already
selected one and fill-select all items in-between. Now, in case upward
search fails, it will also intent to go downward, effectiviely allowing
to 'fill-select' from bottom to top.

Note that top-to-bottom keeps priority (i.e. if a top-to-bottom
fill-selection is possible, it will always happen, even if a
bottom-to-top one is also possible).

2 years agoMerge branch 'master' into blender2.8
Antonio Vazquez [Tue, 5 Dec 2017 18:04:34 +0000 (19:04 +0100)]
Merge branch 'master' into blender2.8

2 years agoFix T53430: Cut at the strip end fails w/ endstill
Campbell Barton [Tue, 5 Dec 2017 17:52:38 +0000 (04:52 +1100)]
Fix T53430: Cut at the strip end fails w/ endstill

2 years agoCMake: avoid checking each MSVC minor revision
Campbell Barton [Tue, 5 Dec 2017 16:38:44 +0000 (03:38 +1100)]
CMake: avoid checking each MSVC minor revision

2 years agoFix MSVS2017 compiler version
Antonioya [Tue, 5 Dec 2017 16:15:30 +0000 (17:15 +0100)]
Fix MSVS2017 compiler version

After last update to Visual Studio 2017 15.5.0 the compiler version changed

2 years agoTypes are to have explicit forward declaration
Sergey Sharybin [Tue, 5 Dec 2017 15:54:39 +0000 (16:54 +0100)]
Types are to have explicit forward declaration

2 years agoCleanup: build warning
Campbell Barton [Tue, 5 Dec 2017 15:25:10 +0000 (02:25 +1100)]
Cleanup: build warning

2 years agoMerge branch 'master' into blender2.8
Germano [Tue, 5 Dec 2017 13:19:47 +0000 (11:19 -0200)]
Merge branch 'master' into blender2.8

# Conflicts:
# source/blender/editors/mesh/editmesh_select.c

2 years agoFix T53469: Make sure that edges are drawn in the backbuff whenever you are looking...
Germano [Tue, 5 Dec 2017 13:13:53 +0000 (11:13 -0200)]
Fix T53469: Make sure that edges are drawn in the backbuff whenever you are looking for the nearest edge

Caused by rB9f5bf19

2 years agoFix for typo in previous commit
Joshua Leung [Tue, 5 Dec 2017 12:14:20 +0000 (01:14 +1300)]
Fix for typo in previous commit

2 years agoSimplify UI-names for B-Bone Ease In/Out settings
Joshua Leung [Tue, 5 Dec 2017 11:58:10 +0000 (00:58 +1300)]
Simplify UI-names for B-Bone Ease In/Out settings

For more consistency with the other settings, and increased readability
when the UI is cramped (and it isn't possible to see the whole names).

2 years agoVersion patching fixes for F-Curves (as required for fixes for T48988 and T52009)
Joshua Leung [Tue, 5 Dec 2017 11:54:39 +0000 (00:54 +1300)]
Version patching fixes for F-Curves (as required for fixes for T48988 and T52009)

* For the T48988 fix (i.e. separate Ease In/Out properties for Bendy Bones
  in Edit vs Pose modes), old animation data needed to be patched to use
  the new property names. This is needed to partially fix some of the
  issues in T53356 (though the Rigify code itself still needs to be patched).

* For the T52009 fix, old files needed to have the frame_start and frame_end
  properties on the FModifier (base-class) updated to match that of the
  FMod_Stepped type-specific class. This wasn't done in the earlier commit
  since it wasn't worth going through all animation data just for the sake
  of updating these relatively-rare settings, but since we're doing it anyway
  now, it makes sense to include this here.

2 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Tue, 5 Dec 2017 10:48:37 +0000 (11:48 +0100)]
Merge branch 'master' into blender2.8

2 years agoAdded BKE_fcurves_main_cb(), a wrapper around BKE_animdata_main_cb to make it easier...
Joshua Leung [Tue, 5 Dec 2017 04:16:05 +0000 (17:16 +1300)]
Added BKE_fcurves_main_cb(), a wrapper around BKE_animdata_main_cb to make it easier to apply fixes to all F-Curves in a file

2 years agoCleanup/Style Tweaks to fit rest of code
Joshua Leung [Tue, 5 Dec 2017 04:14:55 +0000 (17:14 +1300)]
Cleanup/Style Tweaks to fit rest of code

2 years agodrawobject: use float instead of int in glLineWidth
Germano [Mon, 4 Dec 2017 18:00:21 +0000 (16:00 -0200)]
drawobject: use float instead of int in glLineWidth

2 years agoFix T53463: Rotation numerical input shows instable behaviour.
Bastien Montagne [Mon, 4 Dec 2017 17:40:33 +0000 (18:40 +0100)]
Fix T53463: Rotation numerical input shows instable behaviour.

Inverting a number in radians when user is in degrees gives rather
unexpected results. ;)

2 years agoEdit Mesh Selection: Make sure that the line width is 1 pixel
Germano [Mon, 4 Dec 2017 17:30:56 +0000 (15:30 -0200)]
Edit Mesh Selection: Make sure that the line width is 1 pixel

2 years agoEevee: CodeStyle: Separate Shader initialization.
Clément Foucault [Mon, 4 Dec 2017 16:21:17 +0000 (17:21 +0100)]
Eevee: CodeStyle: Separate Shader initialization.

2 years agoEevee: Irradiance Grid: Allocate needed resources instead of a static chunck.
Clément Foucault [Mon, 4 Dec 2017 16:20:20 +0000 (17:20 +0100)]
Eevee: Irradiance Grid: Allocate needed resources instead of a static chunck.

This commit makes the irradiance pool and render target sizes depend on the number of irradiance sample in the whole ViewLayer.

2 years agoResolve MSVC C2229
Campbell Barton [Mon, 4 Dec 2017 16:03:50 +0000 (03:03 +1100)]
Resolve MSVC C2229

Code works as expected, but MSVC disallows

2 years agoDepsgraph: Cleanup, indentation
Sergey Sharybin [Mon, 4 Dec 2017 14:50:06 +0000 (15:50 +0100)]
Depsgraph: Cleanup, indentation

2 years agoBetter bevel profile at extreme values of profile.
Howard Trickey [Mon, 4 Dec 2017 14:30:40 +0000 (09:30 -0500)]
Better bevel profile at extreme values of profile.

Patch from Richard Erhardt, with some additions & modifications.
Changes bevel profile shape parameter so that can get arbitrarily
near square profile as parameter -> 1.
Adds code to make profile=0 case work, at least for cube corners,
so changed hard min of profile parameter to 0 from 0.15.

2 years agoEdit Mesh Selection: Fix wrong glPointSize position
Germano [Mon, 4 Dec 2017 14:32:45 +0000 (12:32 -0200)]
Edit Mesh Selection: Fix wrong glPointSize position

2 years agoRNA: Use const qualifier for an utility function
Sergey Sharybin [Mon, 4 Dec 2017 14:26:43 +0000 (15:26 +0100)]
RNA: Use const qualifier for an utility function

2 years agoFollowup to previous merge conflict resolution
Sergey Sharybin [Mon, 4 Dec 2017 14:26:06 +0000 (15:26 +0100)]
Followup to previous merge conflict resolution

2 years agoWM: disable property update messages for fcurves
Campbell Barton [Mon, 4 Dec 2017 14:28:03 +0000 (01:28 +1100)]
WM: disable property update messages for fcurves

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Mon, 4 Dec 2017 14:14:47 +0000 (15:14 +0100)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Add parameters nodes for bone custom properties
Sergey Sharybin [Mon, 4 Dec 2017 13:50:14 +0000 (14:50 +0100)]
Depsgraph: Add parameters nodes for bone custom properties

Currently shouldn't make any difference, but this is something what needs to be
done to sanitize drivers relations )with the idea to re-use some generic code
to get operations for driver variables.

2 years agoEdit Mesh Selection: Draw the backbuff of edge selection only when requested
Germano [Mon, 4 Dec 2017 14:05:06 +0000 (12:05 -0200)]
Edit Mesh Selection: Draw the backbuff of edge selection only when requested

And make sure the width is 1

2 years agoDepsgraph: Cleanup, move RNA key constructor to it's file
Sergey Sharybin [Mon, 4 Dec 2017 11:59:44 +0000 (12:59 +0100)]
Depsgraph: Cleanup, move RNA key constructor to it's file

2 years agoDepsgraph: Cleanup, don't use bracers in relations names
Sergey Sharybin [Mon, 4 Dec 2017 11:48:16 +0000 (12:48 +0100)]
Depsgraph: Cleanup, don't use bracers in relations names

Those don't bring any information.

2 years agoDepsgraph: Cleanup, node from RNA pointer search
Sergey Sharybin [Mon, 4 Dec 2017 11:45:42 +0000 (12:45 +0100)]
Depsgraph: Cleanup, node from RNA pointer search

2 years agoDepsgraph: Remove unused property based update tags
Sergey Sharybin [Mon, 4 Dec 2017 11:34:25 +0000 (12:34 +0100)]
Depsgraph: Remove unused property based update tags

Those are unused, and not clear whether we will ever support this.

Seems to be better having more like "component" tags, would be less magic
involved to guess what exactly is to be tagged.

2 years agoFix bplayer (c).
Bastien Montagne [Mon, 4 Dec 2017 13:14:42 +0000 (14:14 +0100)]
Fix bplayer (c).

2 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Mon, 4 Dec 2017 12:57:26 +0000 (13:57 +0100)]
Merge branch 'master' into blender2.8

Conflicts:
source/blender/blenloader/BLO_readfile.h
source/blender/blenloader/intern/readfile.c
source/blender/windowmanager/intern/wm_files_link.c

2 years agoCleanup: link/append: get rid of booleans in func parameters.
Bastien Montagne [Mon, 4 Dec 2017 12:09:13 +0000 (13:09 +0100)]
Cleanup: link/append: get rid of booleans in func parameters.

One or two are OK, but more make it rather unreadable, and future work
is likely to require more toggle specific behavior here. So switched to
bitflags, switching from short to int and using 16 upper bits for
'internal' ones defined in BLO_readfile.h, combined with 'public' ones
from user interaction, defined in DNA_space_types.h

2 years agoSmall cleanup from previous commit by Danrae Pray (@spockTheGray)
Danrae Pray [Mon, 4 Dec 2017 09:49:44 +0000 (07:49 -0200)]
Small cleanup from previous commit by Danrae Pray (@spockTheGray)

I (Dalai) messed up the git author from previous commit (68fdcf07a17).
So this is a follow up on that, properly credited.

2 years agoFix T53415: Outliner: Crash when deleting collections
Dalai Felinto [Mon, 4 Dec 2017 09:40:23 +0000 (07:40 -0200)]
Fix T53415: Outliner: Crash when deleting collections

Updated collection_delete_exec() so we don't try to delete elements as we search
the outliner tree anymore.

Now we search the whole tree first for the selected nodes that need to be
deleted and delete them afterward.

Reviewers: dfelinto

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D2936
Differential Revision: https://developer.blender.org/D2940

2 years agoWM: message bus replacement for property notifiers
Campbell Barton [Mon, 13 Nov 2017 08:43:34 +0000 (19:43 +1100)]
WM: message bus replacement for property notifiers

Use dynamically generated message publish/subscribe
so buttons and manipulators update properly.

This resolves common glitches where manipulators weren't updating
as well as the UI when add-ons exposed properties which
hard coded listeners weren't checking for.

Python can also publish/scribe changes via `bpy.msgbus`.

See D2917

2 years agoEevee: Irradiance Visibility: Initial Implementation
Clément Foucault [Sat, 2 Dec 2017 13:28:29 +0000 (14:28 +0100)]
Eevee: Irradiance Visibility: Initial Implementation

This augment the existing irradiance grid with a new visibility precomputation.
We store a small shadowmap for each grid sample so that light does not leak through walls and such.

The visibility parameter are similar to the one used by the Variance Shadow Map for point lights.

Technical details:

We store the visibility in the same texture (array) as the irradiance itself (in order to reduce the number of sampler).
But the irradiance and the visibility are not the same data so we must encode them in order to use the same texture format.
We use RGBA8 normalized texture and encode irradiance as RGBE (shared exponent).
Using RGBE encoding instead of R11_G11_B10 may lead to some lighting changes, but quality seems to be nearly the same in my test cases.
Using full RGBA16/32F maybe a future option but that will require much more memory and reduce the perf significantly.

Visibility moments (VSM) are encoded as 16bits fixed point precision using a special range. This seems to retain enough precision for the needs.
Also interpolation does not seems to be big problem (even though it's incorrect).

2 years agoEevee: Irradiance Visibility: Add RNA / Engine properties
Clément Foucault [Sat, 2 Dec 2017 12:01:40 +0000 (13:01 +0100)]
Eevee: Irradiance Visibility: Add RNA / Engine properties

2 years agoEevee: Irradiance Grid: Fix problem with bounce update.
Clément Foucault [Fri, 1 Dec 2017 23:59:58 +0000 (00:59 +0100)]
Eevee: Irradiance Grid: Fix problem with bounce update.

Before this patch, if one of the grid was updated (moved) only the subsequents evaluated grids had their level reset and had all their bounces recomputed.

2 years agoEevee: Irradiance Grid: Fix Multibounce baking.
Clément Foucault [Fri, 1 Dec 2017 23:47:42 +0000 (00:47 +0100)]
Eevee: Irradiance Grid: Fix Multibounce baking.

The baking was only recording one bounce because the double buffer setup was buggy.

2 years agoCleanup: whitespace
Campbell Barton [Mon, 4 Dec 2017 06:19:34 +0000 (17:19 +1100)]
Cleanup: whitespace

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Mon, 4 Dec 2017 05:51:07 +0000 (16:51 +1100)]
Merge branch 'master' into blender2.8