3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 9 Jun 2017 09:40:47 +0000 (19:40 +1000)]
Merge branch 'master' into blender2.8

3 years agoMath Lib: Add mat3_from_axis_conversion_single
Campbell Barton [Fri, 9 Jun 2017 09:31:27 +0000 (19:31 +1000)]
Math Lib: Add mat3_from_axis_conversion_single

Single axis version of mat3_from_axis_conversion,
when the second axis isn't important (orienting an arrow for eg).

3 years agoFix T51756: Fix crash when transforming vertices in edit mode
Sergey Sharybin [Fri, 9 Jun 2017 08:46:00 +0000 (10:46 +0200)]
Fix T51756: Fix crash when transforming vertices in edit mode

The issue was caused by under-allocation of UV islands calculation.

3 years agoFix T51750: Group selection broken
Sergey Sharybin [Fri, 9 Jun 2017 08:04:12 +0000 (10:04 +0200)]
Fix T51750: Group selection broken

Proper way, no base is involved.

3 years agoFix T51648: Inconsistent edge collapse point depending on orientation
Luca Rood [Fri, 9 Jun 2017 07:56:19 +0000 (09:56 +0200)]
Fix T51648: Inconsistent edge collapse point depending on orientation

Edge collapse was using bounding box center as the point to collapse to.
When collapsing multiple adjacent edges together, this caused
inconsistencies in placement of the collapsed point, depending on the
orientation of the edges in relation to the space axis.

This makes edge collapse use the mean point instead.

3 years agoinstall_depsh: update OpenCollada to 1.6.51, and OIIO to 1.7.15
Bastien Montagne [Fri, 9 Jun 2017 07:44:40 +0000 (09:44 +0200)]
install_depsh: update OpenCollada to 1.6.51, and OIIO to 1.7.15

3 years agoRevert "Fix T51750: Group selection broken"
Dalai Felinto [Fri, 9 Jun 2017 07:41:53 +0000 (09:41 +0200)]
Revert "Fix T51750: Group selection broken"

This reverts commit 484e3527d14823cdcdcc308cd65e30fadddde804.

3 years agoFix for fix for bplayer (c) :/
Bastien Montagne [Fri, 9 Jun 2017 07:23:54 +0000 (09:23 +0200)]
Fix for fix for bplayer (c) :/

3 years agoFix bplayer building (c)
Bastien Montagne [Fri, 9 Jun 2017 07:13:54 +0000 (09:13 +0200)]
Fix bplayer building (c)

3 years agoCycles Denoising: Merge outlier heuristic and confidence interval test
Lukas Stockner [Fri, 9 Jun 2017 00:30:06 +0000 (02:30 +0200)]
Cycles Denoising: Merge outlier heuristic and confidence interval test

The previous outlier heuristic only checked whether the pixel is more than
twice as bright compared to the 75% quantile of the 5x5 neighborhood.
While this detected fireflies robustly, it also incorrectly marked a lot of
legitimate small highlights as outliers and filtered them away.

This commit adds an additional condition for marking a pixel as a firefly:
In addition to being above the reference brightness, the lower end of the
3-sigma confidence interval has to be below it.
Since the lower end approximates how low the true value of the pixel might be,
this test separates pixels that are supposed to be very bright from pixels that
are very bright due to random fireflies.

Also, since there is now a reliable outlier filter as a preprocessing step,
the additional confidence interval test in the reconstruction kernel is no
longer needed.

3 years agoFix compilation issue
Clément Foucault [Thu, 8 Jun 2017 23:28:43 +0000 (01:28 +0200)]
Fix compilation issue

3 years agoProbe: Add influence display and rework UI.
Clément Foucault [Thu, 8 Jun 2017 23:14:39 +0000 (01:14 +0200)]
Probe: Add influence display and rework UI.

3 years agoProbes: Add more parameters.
Clément Foucault [Thu, 8 Jun 2017 21:10:28 +0000 (23:10 +0200)]
Probes: Add more parameters.

Add Min Max for box, and distance for sphere falloff.
Same for parallax.
Add clip distances.

3 years agoEevee: First commit of Probe support.
Clément Foucault [Thu, 8 Jun 2017 19:48:50 +0000 (21:48 +0200)]
Eevee: First commit of Probe support.

3 years agoDraw Manager: Add request redraw method.
Clément Foucault [Thu, 8 Jun 2017 18:25:20 +0000 (20:25 +0200)]
Draw Manager: Add request redraw method.

This is extremly hacky and against notifier design. This must be revisited later.
We might want to mimic external renderer way of requesting redraw.

3 years agoDraw Manager: Add support for temporary matrix override.
Clément Foucault [Thu, 8 Jun 2017 18:19:42 +0000 (20:19 +0200)]
Draw Manager: Add support for temporary matrix override.

This allow to specify custom matrices for certain specific passes.

3 years agoDraw Manager, GPUTexture: Add support for binding individual cubeface to framebuffer.
Clément Foucault [Thu, 8 Jun 2017 18:12:58 +0000 (20:12 +0200)]
Draw Manager, GPUTexture: Add support for binding individual cubeface to framebuffer.

3 years agoProbe: Add panel and "Add-menu" items.
Clément Foucault [Wed, 7 Jun 2017 16:32:27 +0000 (18:32 +0200)]
Probe: Add panel and "Add-menu" items.

Also revisits defaults.

3 years agoProbe: Add initial visualisation
Clément Foucault [Wed, 7 Jun 2017 14:00:10 +0000 (16:00 +0200)]
Probe: Add initial visualisation

3 years agoProbe: fix some missing bits / errors in RNA ...
Clément Foucault [Wed, 7 Jun 2017 13:23:58 +0000 (15:23 +0200)]
Probe: fix some missing bits / errors in RNA ...

3 years agoEevee: Fix normal orientation on default shader.
Clément Foucault [Wed, 7 Jun 2017 09:13:56 +0000 (11:13 +0200)]
Eevee: Fix normal orientation on default shader.

3 years agoDNA_ID Fix comment
Clément Foucault [Tue, 6 Jun 2017 20:48:05 +0000 (22:48 +0200)]
DNA_ID Fix comment

3 years agoProbe: Add new object datablock
Clément Foucault [Tue, 6 Jun 2017 20:47:41 +0000 (22:47 +0200)]
Probe: Add new object datablock

We went for a new datablock because blending probe functionality with empties was going to be messy.

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 8 Jun 2017 21:21:38 +0000 (07:21 +1000)]
Merge branch 'master' into blender2.8

3 years agoRNA: remove static strings from registration
Campbell Barton [Thu, 8 Jun 2017 21:13:35 +0000 (07:13 +1000)]
RNA: remove static strings from registration

* Static strings aren't needed anymore, use stack memory.
* Fix obscure leak on failed macro registration.
* Use prefix for wrappers exported from bpy module.

3 years agoCleanup: cmake indentation, missing include
Campbell Barton [Thu, 8 Jun 2017 20:45:21 +0000 (06:45 +1000)]
Cleanup: cmake indentation, missing include

3 years agoRemove unused lay value from Dupli object evaluation context
Dalai Felinto [Thu, 8 Jun 2017 17:28:54 +0000 (19:28 +0200)]
Remove unused lay value from Dupli object evaluation context

3 years agoRevert "Fix some groups not showing in the viewport"
Dalai Felinto [Thu, 8 Jun 2017 17:03:42 +0000 (19:03 +0200)]
Revert "Fix some groups not showing in the viewport"

This reverts commit c19fedf636ec3de503f5929432003702801ebcf3.

3 years agoFix some groups not showing in the viewport
Dalai Felinto [Thu, 8 Jun 2017 17:03:38 +0000 (19:03 +0200)]
Fix some groups not showing in the viewport

If the group was freshly created in 2.8 from a new object, this will prevent the object to be shown.

3 years agoFix T51750: Group selection broken
Dalai Felinto [Thu, 8 Jun 2017 16:58:10 +0000 (18:58 +0200)]
Fix T51750: Group selection broken

This was introduced in 23c93873f40.

This could be moved to deg_flush_base_flags_and_settings but since we
only need this for duplis I think it's fine to be handled separately.

3 years agoDepsgraph: Avoid over-documentation
Sergey Sharybin [Thu, 8 Jun 2017 14:12:04 +0000 (16:12 +0200)]
Depsgraph: Avoid over-documentation

The comment adds zero information.

3 years agoAvoid allocation of evaluation context for iterator
Sergey Sharybin [Thu, 8 Jun 2017 14:11:14 +0000 (16:11 +0200)]
Avoid allocation of evaluation context for iterator

Use stack-allocated context when possible.

3 years agoFix T51733: 3d print toolbox checks report false positives.
Bastien Montagne [Thu, 8 Jun 2017 12:02:49 +0000 (14:02 +0200)]
Fix T51733: 3d print toolbox checks report false positives.

Colinear vertices in a same face would not be handled correctly.

3 years agoCycles: Don't leave multiple spaces in the device name
Sergey Sharybin [Thu, 8 Jun 2017 10:15:24 +0000 (12:15 +0200)]
Cycles: Don't leave multiple spaces in the device name

3 years agoCycles: Display optional board name in system info
Sergey Sharybin [Thu, 8 Jun 2017 10:10:15 +0000 (12:10 +0200)]
Cycles: Display optional board name in system info

3 years agoCycles: Cleanup, indentation
Sergey Sharybin [Thu, 8 Jun 2017 10:03:08 +0000 (12:03 +0200)]
Cycles: Cleanup, indentation

3 years agoFix compilation error after recent depsgraph cleanup
Sergey Sharybin [Thu, 8 Jun 2017 08:59:33 +0000 (10:59 +0200)]
Fix compilation error after recent depsgraph cleanup

3 years agoRemove selection color from the base
Sergey Sharybin [Wed, 7 Jun 2017 15:35:23 +0000 (17:35 +0200)]
Remove selection color from the base

Use indirect access to it via object.

It was already flushing from base to object, now we can avoid such flushing.

Still weird to have selection color filled in by dependency graph, but now
there is no synchronization going on at least.

3 years agoReplace all old DAG calls with direct calls to new DEG and remove BKE_depsgraph.h
Luca Rood [Thu, 8 Jun 2017 08:14:53 +0000 (10:14 +0200)]
Replace all old DAG calls with direct calls to new DEG and remove BKE_depsgraph.h

This removes BKE_depsgraph.h and depsgraph.c

3 years agoSimplify Array modifier 'relative offset' handling.
Bastien Montagne [Thu, 8 Jun 2017 07:17:08 +0000 (09:17 +0200)]
Simplify Array modifier 'relative offset' handling.

Was looping three times over the source mesh's vertices to get min/max
along all three axes... Nothing critical, but still!

3 years agoWM: move manipulator library into editors
Campbell Barton [Wed, 7 Jun 2017 21:16:47 +0000 (07:16 +1000)]
WM: move manipulator library into editors

As with operators, the window-manager has the API for defining,
the editor can implement and register its own manipulators.

This exposes wmManipulator, keeping it opaque isn't
practical if editors and Python are to implement their own.

3 years agoFix MSVC compile (T51740)
Mike Erwin [Wed, 7 Jun 2017 20:28:24 +0000 (16:28 -0400)]
Fix MSVC compile (T51740)

Gawain doesn't include Blender's cross-platform "inline" definition. This change slipped in as part of D2697.

3 years agoGawain: stricter lookup of builtin uniforms
Mike Erwin [Mon, 5 Jun 2017 02:09:39 +0000 (22:09 -0400)]
Gawain: stricter lookup of builtin uniforms

UNIFORM_NONE should never match a valid uniform (builtin or custom).

The logic for UNIFORM_CUSTOM was just wrong, since it returned the first custom uniform. This function should only accept builtin (non-custom) uniforms.

3 years agoGawain: faster lookup shader attribs by name
Mike Erwin [Mon, 5 Jun 2017 02:02:30 +0000 (22:02 -0400)]
Gawain: faster lookup shader attribs by name

Quick hash rejection instead of string comparison. Uniform lookups already work this way. I don't expect a major overall speedup since attributes are looked up less frequently than uniforms.

3 years agocleanup floating point literals
Mike Erwin [Thu, 1 Jun 2017 18:43:45 +0000 (14:43 -0400)]
cleanup floating point literals

3 years agoWM: add wmManipulatorType, from wmManipulator
Campbell Barton [Wed, 7 Jun 2017 19:27:14 +0000 (05:27 +1000)]
WM: add wmManipulatorType, from wmManipulator

Having the type in mixed in with each instance
made it hard to expose types to RNA/Python.

3 years agoFix: GP Clone brush was not correcting color references for pasted strokes either
Joshua Leung [Wed, 7 Jun 2017 15:07:57 +0000 (03:07 +1200)]
Fix: GP Clone brush was not correcting color references for pasted strokes either

3 years agoFix: Pasting GP strokes files between files (or when the original colors were deleted...
Joshua Leung [Wed, 7 Jun 2017 14:42:04 +0000 (02:42 +1200)]
Fix: Pasting GP strokes files between files (or when the original colors were deleted) would crash

The problem was that the strokes in the copy-paste buffer could be keeping
dangling pointers to colors that were already freed. Therefore, this commit
makes it so that when copying the strokes, we now make copies of the colors
and put them in a hashtable beside the stroke buffer. This is convenient,
as it saves us having to look up what colours need to be copied over each
time when pasting.

3 years agoGP Copy/Paste Fix: Paste button doesn't update after copying strokes using Ctrl-C
Joshua Leung [Wed, 7 Jun 2017 07:07:57 +0000 (19:07 +1200)]
GP Copy/Paste Fix: Paste button doesn't update after copying strokes using Ctrl-C

3 years agoGPencil Copy/Paste Fix: Copying/Pasting strokes between datablocks would crash
Joshua Leung [Wed, 7 Jun 2017 07:07:21 +0000 (19:07 +1200)]
GPencil Copy/Paste Fix: Copying/Pasting strokes between datablocks would crash

The problem was that newly pasted strokes were still using colours from
the original datablock. As a result, you'd either get an immediate crash,
or if you managed to save the file before it crashed, each stroke would get
reloaded with a dummy colour.

This commit fixes makes it possible to copy/paste strokes between datablocks
again. However, there are still problems when trying to paste across file
boundaries (i.e. copy strokes in one file, paste in another), which the next
commit will address.

3 years agoManipulators: lamp, camera & force-field
Campbell Barton [Wed, 7 Jun 2017 13:50:34 +0000 (23:50 +1000)]
Manipulators: lamp, camera & force-field

From custom-manipulators branch.
These may be improved they work on a basic level.

3 years agoBevel Op (internal and API) now returns new edges and verts as well as
Howard Trickey [Wed, 7 Jun 2017 12:53:10 +0000 (08:53 -0400)]
Bevel Op (internal and API) now returns new edges and verts as well as

This was requested by script writers. Especially needed if beveling
wire edges with vertex_only.
Should be backward compatible as just adds two new keys to returned
dict in python ('edges' and 'verts').

3 years agoMinor manipulator API changes
Campbell Barton [Wed, 7 Jun 2017 12:12:32 +0000 (22:12 +1000)]
Minor manipulator API changes

Sync up with custom-manipulator branch

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 7 Jun 2017 12:09:53 +0000 (14:09 +0200)]
Merge branch 'master' into blender2.8

3 years agoDepsgraph: Remove modifiers operation code
Sergey Sharybin [Wed, 7 Jun 2017 12:08:11 +0000 (14:08 +0200)]
Depsgraph: Remove modifiers operation code

Was internally a no-op operation, which only caused extra work
to be done during depsgrpah traversal and evaluation, without
making any measurable improvement.

3 years agoDepsgraph: Remove unused operation codes
Sergey Sharybin [Wed, 7 Jun 2017 10:53:38 +0000 (12:53 +0200)]
Depsgraph: Remove unused operation codes

3 years agoDepsgraph: Remove dead/unused operation codes
Sergey Sharybin [Wed, 7 Jun 2017 10:47:19 +0000 (12:47 +0200)]
Depsgraph: Remove dead/unused operation codes

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 7 Jun 2017 10:18:07 +0000 (12:18 +0200)]
Merge branch 'master' into blender2.8

3 years agoReport OpenSubdiv version Blender is compiled against
Sergey Sharybin [Wed, 7 Jun 2017 10:16:48 +0000 (12:16 +0200)]
Report OpenSubdiv version Blender is compiled against

3 years agoCollada: Add search path which is used default by it's SCons build system
Sergey Sharybin [Wed, 7 Jun 2017 09:38:12 +0000 (11:38 +0200)]
Collada: Add search path which is used default by it's SCons build system

3 years agoMerge remote-tracking branch 'origin/master' into blender2.8
Dalai Felinto [Wed, 7 Jun 2017 09:38:03 +0000 (11:38 +0200)]
Merge remote-tracking branch 'origin/master' into blender2.8

3 years agogcc5 has issues with Wconversion
Dalai Felinto [Wed, 7 Jun 2017 09:37:28 +0000 (11:37 +0200)]
gcc5 has issues with Wconversion

This leads to a crash in 2.8, but commiting here.
Patch by Campbell Barton.

3 years agoOptimization of tangent calculation
Sergey Sharybin [Wed, 7 Jun 2017 09:23:59 +0000 (11:23 +0200)]
Optimization of tangent calculation

Avoid doing string comparison when we already know layer is
to be added to bitfield.

3 years agoWM: remove unused return values
Campbell Barton [Tue, 6 Jun 2017 13:04:46 +0000 (23:04 +1000)]
WM: remove unused return values

3 years agoSmall cleanup: Use ELEM and wrong identation
Dalai Felinto [Tue, 6 Jun 2017 15:01:20 +0000 (17:01 +0200)]
Small cleanup: Use ELEM and wrong identation

3 years agoCMake: Update clay engine message
Dalai Felinto [Tue, 6 Jun 2017 15:00:19 +0000 (17:00 +0200)]
CMake: Update clay engine message

3 years agoEevee: Fix shader compilation issue.
Clément Foucault [Tue, 6 Jun 2017 16:19:38 +0000 (18:19 +0200)]
Eevee: Fix shader compilation issue.

3 years agoCycles: Fix infinite update when using duplis
Sergey Sharybin [Tue, 6 Jun 2017 14:27:02 +0000 (16:27 +0200)]
Cycles: Fix infinite update when using duplis

The issue was caused by usage of address of dupli-object (which will vary
from iteration process to iteration process) as something denoting whether
we've got the data synchronized to Cycles or not.

For now solved by using address of original object (the one DupliObject
points to) as a pointer for the map.

Need to do more thoughts about this.

3 years agoDraw Manager: Prevent misuse of static draw context
Dalai Felinto [Tue, 6 Jun 2017 14:19:07 +0000 (16:19 +0200)]
Draw Manager: Prevent misuse of static draw context

This is supposed to help catch bugs if referrencing stack data out of
the draw loop context.

No change is suppose to happen for users (specially because the changes
here happens mostly on debug).

It includes a change in the logic for render loop, to make sure DST is
not accessed before we enter it - contribution by Campbell Barton.

3 years agoDepsgraph: Cleanup, unused includes
Sergey Sharybin [Tue, 6 Jun 2017 12:19:25 +0000 (14:19 +0200)]
Depsgraph: Cleanup, unused includes

3 years agoCycles: Support rendering objects from dupli-list
Sergey Sharybin [Tue, 6 Jun 2017 11:58:40 +0000 (13:58 +0200)]
Cycles: Support rendering objects from dupli-list

This commit extends the work from Dalai made around scene iterators to
support iterating into objects from dupli-lists.

Changes can be summarized as:

- Depsgraph iterator will hold pointer to an object which created current
  duplilist. It is available via `dupli_parent` field of the iterator.
  It is only set when duplilist is not NULL and guaranteed to be NULL
  for all other cases.

- Introduced new depsgraph.duplis collection which gives a more extended
  information about depsgraph iterator.  It is basically a collection on top
  of DEGObjectsIteratorData.

  It is used to provide access to such data as persistent ID, generated space
  and so on.

Things which still needs to be done/finished/clarified:

- Need to introduce some sort of `is_instance` boolean property which will
  indicate Python and C++ RNA that we are inside of dupli-list.

- Introduce a way to skip dupli-list for particular objects.

  So, for example, if we are culling object due to distance we can skip all
  objects it was duplicating.

- Introduce a way to skip particular duplicators.

  So we can skip iterating into particle system.

- Introduce some cleaner API for C side of operators to access all data such as
  persistent ID and friends.

  This way we wouldn't need de-reference iterator and could keep access to such
  data really abstract. Who knows how we'll be storing internal state of the
  operator in the future.

While there is still stuff to do, current state works and moves us in the proper

3 years agoWM: manipulator callback arg order
Campbell Barton [Tue, 6 Jun 2017 12:14:21 +0000 (22:14 +1000)]
WM: manipulator callback arg order

Use same arg order for C & RNA

3 years agoForce crash on depsgraph iterator wrong access.
Dalai Felinto [Tue, 6 Jun 2017 10:47:47 +0000 (12:47 +0200)]
Force crash on depsgraph iterator wrong access.

Related to T51718, so it crashes even when no fancy ASAN flags are used.
Patch suggestion by Campbell Barton.

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Tue, 6 Jun 2017 10:17:07 +0000 (12:17 +0200)]
Merge branch 'master' into blender2.8

3 years agoDepsgraph: Only use extern "C" when really needed
Sergey Sharybin [Tue, 6 Jun 2017 10:14:39 +0000 (12:14 +0200)]
Depsgraph: Only use extern "C" when really needed

3 years agoBLI: Use C++ guards for stack header
Sergey Sharybin [Tue, 6 Jun 2017 10:13:45 +0000 (12:13 +0200)]
BLI: Use C++ guards for stack header

This is handy to have C++ guards for BLI functions so they
can be easily re-used in C++ code. This matches other headers
from this library as well.

3 years agoDraw manager: visibility of objects centers to mimic old 2.7x behaviour
Dalai Felinto [Tue, 6 Jun 2017 09:45:29 +0000 (11:45 +0200)]
Draw manager: visibility of objects centers to mimic old 2.7x behaviour

We only show object center if object is selected, active or if viewport
has the "All Object Origins" options.

The viewport display options can migrate to renderlayer options.
However, we can mimic 2.7x as a compromise while the final design is

3 years agoScene object iterator: Replace recursion with loop
Sergey Sharybin [Tue, 6 Jun 2017 09:22:13 +0000 (11:22 +0200)]
Scene object iterator: Replace recursion with loop

This way we are not afraid of recursion being too deep.

That could have happened when having two collections which
are sharing same list of 1000s of objects.

3 years agoMake particle size follow world space instead of screen space
Luca Rood [Tue, 6 Jun 2017 07:56:27 +0000 (09:56 +0200)]
Make particle size follow world space instead of screen space

3 years agoWM: functions for assigning all manipulator callbacks
Campbell Barton [Tue, 6 Jun 2017 07:07:26 +0000 (17:07 +1000)]
WM: functions for assigning all manipulator callbacks

- Move callbacks into type struct.
- Rename render_3d_intersection -> draw_select.
- Add header for function signatures (needed for types and api headers).
- Add WM_manipulatormaptype_find

3 years agoEevee: Optimize scene with a large number of objects.
Clément Foucault [Mon, 5 Jun 2017 20:05:21 +0000 (22:05 +0200)]
Eevee: Optimize scene with a large number of objects.

Using a GHash to store the shgroup of every Material. This way we do not duplicates the DRWShadingGroups allocations on every object.

3 years agoWM: pass manipulator-map when creating wmManipulatorGroup
Campbell Barton [Mon, 5 Jun 2017 17:34:09 +0000 (03:34 +1000)]
WM: pass manipulator-map when creating wmManipulatorGroup

Also store parent-pointer in wmManipulatorGroup's,
since its not always possible to access the parent pointer.

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Mon, 5 Jun 2017 08:11:59 +0000 (18:11 +1000)]
Merge branch 'master' into blender2.8

3 years agoWM: add WM_manipulatorgrouptype_append_ptr
Campbell Barton [Mon, 5 Jun 2017 08:10:52 +0000 (18:10 +1000)]
WM: add WM_manipulatorgrouptype_append_ptr

Needed for PyAPI registration.

3 years agoWM: de-duplicate operator append code
Campbell Barton [Mon, 5 Jun 2017 07:57:57 +0000 (17:57 +1000)]
WM: de-duplicate operator append code

WM_operatortype_append(_ptr) functions had diverged.

3 years agoPyAPI: is_staticmethod used for classmethods's too
Campbell Barton [Mon, 5 Jun 2017 06:05:36 +0000 (16:05 +1000)]
PyAPI: is_staticmethod used for classmethods's too

Add note to investigate this, don't change so close to release.

3 years agoPyAPI: correct exception, expect 'staticmethod'
Campbell Barton [Mon, 5 Jun 2017 05:31:05 +0000 (15:31 +1000)]
PyAPI: correct exception, expect 'staticmethod'

3 years agoDwM: skip background-set objects w/ selection
Campbell Barton [Mon, 5 Jun 2017 05:02:47 +0000 (15:02 +1000)]
DwM: skip background-set objects w/ selection

3 years agoFix alembic tests not running with debug build on windows
Ray Molenkamp [Sun, 4 Jun 2017 23:05:59 +0000 (17:05 -0600)]
Fix alembic tests not running with debug build on windows

3 years agoClay Engine: Improve sampling of SSAO
Clément Foucault [Sun, 4 Jun 2017 21:11:48 +0000 (23:11 +0200)]
Clay Engine: Improve sampling of SSAO

Replace completly random noise by Blue noisen, giving a better aspect.
Also randomize the distance in the sample direction to cover the whole distance even with 1 sample. Using another blue noise for this.
Replace spiral samples (that had tendency to align if the number of samples was near the chosen constant) with Hammersley samples that have good coverage even for low number of samples.
Use a UBO instead of Texture (a bit less latency) making things a tiny bit faster.
Move the noise data to the SceneLayerData, because each render layer can have a different sample count.

3 years agoEevee: Modify Blue Noise.
Clément Foucault [Sun, 4 Jun 2017 19:45:41 +0000 (21:45 +0200)]
Eevee: Modify Blue Noise.

3 years agoEevee: Move Spherical Harmonics to a new Probe UBO.
Clément Foucault [Sun, 4 Jun 2017 14:50:22 +0000 (16:50 +0200)]
Eevee: Move Spherical Harmonics to a new Probe UBO.

Keep data packing tight to prevent use of padding floats

3 years agoEevee: Material code refactor.
Clément Foucault [Sun, 4 Jun 2017 10:12:58 +0000 (12:12 +0200)]
Eevee: Material code refactor.

Separate material handling inside another file.
Make use of enums to identify shader variations.
Group all 64*64 LUTs into one array texture.
Only update world probe if world changes.

3 years agoWorld: Add temporary update flag.
Clément Foucault [Sun, 4 Jun 2017 10:08:34 +0000 (12:08 +0200)]
World: Add temporary update flag.

3 years agoFix T51587: Blender fails to interpret a specific layer in OpenEXR multilayer file
Lukas Stockner [Sat, 3 Jun 2017 22:58:38 +0000 (00:58 +0200)]
Fix T51587: Blender fails to interpret a specific layer in OpenEXR multilayer file

3 years agoEevee: Fix compilation error
Clément Foucault [Fri, 2 Jun 2017 23:43:25 +0000 (01:43 +0200)]
Eevee: Fix compilation error

3 years agoEevee: Cleanup. Group data functions into one file.
Clément Foucault [Fri, 2 Jun 2017 22:53:47 +0000 (00:53 +0200)]
Eevee: Cleanup. Group data functions into one file.

3 years agoEevee: fix bad eye vector and get rid of two uniform
Clément Foucault [Fri, 2 Jun 2017 19:52:40 +0000 (21:52 +0200)]
Eevee: fix bad eye vector and get rid of two uniform

3 years agoEevee: Reduce shadow map precision.
Clément Foucault [Fri, 2 Jun 2017 19:00:10 +0000 (21:00 +0200)]
Eevee: Reduce shadow map precision.

Since we only store linear distance now we don't need so much bytes per pixels.

3 years agoEevee: fix shadows artifact by clearing to max depth
Clément Foucault [Fri, 2 Jun 2017 18:52:44 +0000 (20:52 +0200)]
Eevee: fix shadows artifact by clearing to max depth