blender.git
3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 14 Jun 2017 08:11:18 +0000 (10:11 +0200)]
Merge branch 'master' into blender2.8

3 years agoDepsgraph: Remove unused ID node removal
Sergey Sharybin [Wed, 14 Jun 2017 08:10:39 +0000 (10:10 +0200)]
Depsgraph: Remove unused ID node removal

3 years agoCycles: Fix typo in comment
Sergey Sharybin [Wed, 14 Jun 2017 07:54:07 +0000 (09:54 +0200)]
Cycles: Fix typo in comment

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Wed, 14 Jun 2017 07:17:00 +0000 (17:17 +1000)]
Merge branch 'master' into blender2.8

3 years agoFix buffer read error w/ 2 pass select queries
Campbell Barton [Wed, 14 Jun 2017 07:03:49 +0000 (17:03 +1000)]
Fix buffer read error w/ 2 pass select queries

Also don't do second pass when the first has no hits.

3 years agoFix possible heap use-after-free in workspace lib-linking
Julian Eisel [Tue, 13 Jun 2017 22:09:37 +0000 (00:09 +0200)]
Fix possible heap use-after-free in workspace lib-linking

Caused by one of the recent commits during workspace review.

3 years agoFix compiling blenderplayer (tm)
Julian Eisel [Tue, 13 Jun 2017 21:40:31 +0000 (23:40 +0200)]
Fix compiling blenderplayer (tm)

3 years agoFix T51794: Crash on hair file when opening with no UI
Julian Eisel [Tue, 13 Jun 2017 21:37:37 +0000 (23:37 +0200)]
Fix T51794: Crash on hair file when opening with no UI

Just a workaround for now.

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Tue, 13 Jun 2017 15:45:36 +0000 (17:45 +0200)]
Merge branch 'master' into blender2.8

3 years agoAdd utility function to get size of given ID type
Sergey Sharybin [Tue, 13 Jun 2017 15:42:31 +0000 (17:42 +0200)]
Add utility function to get size of given ID type

Optionally it'll also give name used for memory allocation.

3 years agoBetter Fix for T51777: Separating objects by selected vertices
Dalai Felinto [Tue, 13 Jun 2017 14:15:43 +0000 (16:15 +0200)]
Better Fix for T51777: Separating objects by selected vertices

This reverts commit 47b9d0d040300fcd56db20a8a898166d47520bcc. And
implement a fix that doesn't require Depsgraph refresh.

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Tue, 13 Jun 2017 13:11:58 +0000 (15:11 +0200)]
Merge branch 'master' into blender2.8

3 years agoDepsgraph: Pass function bindings by const reference
Sergey Sharybin [Tue, 13 Jun 2017 13:10:29 +0000 (15:10 +0200)]
Depsgraph: Pass function bindings by const reference

Avoids using copy-constructor invoked every time we pass function
to the builder functions.

Should lower number of CPU ticks spent during DEG construction.

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Tue, 13 Jun 2017 12:16:43 +0000 (14:16 +0200)]
Merge branch 'master' into blender2.8

3 years agoDepsgraph: Remove root node concept
Sergey Sharybin [Tue, 13 Jun 2017 12:12:54 +0000 (14:12 +0200)]
Depsgraph: Remove root node concept

Was rather weird and only used for time source. It is simpler to make depsgraph
to keep track of time source directly.

No need to introduce extra entitites without actual need.

3 years agoFix T51791: Point Density doesn't work on GPU
Hristo Gueorguiev [Tue, 13 Jun 2017 11:50:27 +0000 (13:50 +0200)]
Fix T51791: Point Density doesn't work on GPU

3 years agoDraw manager: Fix initialization of static struct
Sergey Sharybin [Tue, 13 Jun 2017 10:20:20 +0000 (12:20 +0200)]
Draw manager: Fix initialization of static struct

It's first member is a multi-dimensional array, so proper way to initialize that
is to use multiple levels of braces.

3 years agoDraw manager: Don't check matrix to be non-NULL
Sergey Sharybin [Tue, 13 Jun 2017 10:16:39 +0000 (12:16 +0200)]
Draw manager: Don't check matrix to be non-NULL

It isn't a pointer, so the check was confusing and totally redundant.

3 years agoWoarkspace: Remove residue of hidden type
Sergey Sharybin [Tue, 13 Jun 2017 10:02:08 +0000 (12:02 +0200)]
Woarkspace: Remove residue of hidden type

There is no reason to be special for workspace and go against other design
decision in Blender. If something like this is going to become a common
practice in Blender it should be well thought and well tested, including
tests of all supported compilers and configurations.

This feature was relying on type re-definition, which is not only confusing
but also available in C11 only.

3 years agoCycles: Cleanup, indentation
Sergey Sharybin [Tue, 13 Jun 2017 08:28:38 +0000 (10:28 +0200)]
Cycles: Cleanup, indentation

3 years agoCycles: Fix compilation error of OpenCL mega kernel
Sergey Sharybin [Tue, 13 Jun 2017 08:25:46 +0000 (10:25 +0200)]
Cycles: Fix compilation error of OpenCL mega kernel

Was some mismatch in address space. Seems to be caused by recent additions.

Additionally, moved decoupled ray marching functions under ifdef, so they
don't try to use malloc() functions.

Thanks Mai for testing the patch!

3 years agoCMake: add missing includes
Campbell Barton [Tue, 13 Jun 2017 04:50:47 +0000 (14:50 +1000)]
CMake: add missing includes

3 years agoFix T51777: Separating objects by selected vertices in Eevee causes crash
Dalai Felinto [Mon, 12 Jun 2017 16:10:37 +0000 (18:10 +0200)]
Fix T51777: Separating objects by selected vertices in Eevee causes crash

I considered just copying the evaluated data from the LayerCollection.
However we need to run the evaluation so Depsgraph can handle overrides.

I will double-check with Sergey Sharybin.

3 years agoRenaming: *_Iterator_begin/next > *_iterator_begin/next
Dalai Felinto [Mon, 12 Jun 2017 16:19:23 +0000 (18:19 +0200)]
Renaming: *_Iterator_begin/next > *_iterator_begin/next

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Mon, 12 Jun 2017 14:55:57 +0000 (16:55 +0200)]
Merge branch 'master' into blender2.8

3 years agoDepsgraph: Remove residue from partial updates support
Sergey Sharybin [Mon, 12 Jun 2017 14:55:04 +0000 (16:55 +0200)]
Depsgraph: Remove residue from partial updates support

3 years agoDraw Manager: Fix memory issues when copying scene
Dalai Felinto [Mon, 12 Jun 2017 14:12:33 +0000 (16:12 +0200)]
Draw Manager: Fix memory issues when copying scene

3 years agoDepsgraph: Traversing should be consistent for nodes and relationship
Dalai Felinto [Mon, 12 Jun 2017 14:06:24 +0000 (16:06 +0200)]
Depsgraph: Traversing should be consistent for nodes and relationship

We need to traverse the same exact objects for both nodes and relationship
builder. We were using FOREACH_SCENE_OBJECT for relationships, which
would lead to plenty of warnings in multiple situations.

In the future we will need to change this to build the depsgraph
relations and nodes to one single render_layer.

Fix T51780: If an object is in two collections and I do a full copy of
scene things go bad

3 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Mon, 12 Jun 2017 13:09:33 +0000 (15:09 +0200)]
Merge branch 'master' into blender2.8

3 years agoDepsgraph: Use depsgraph from handle rather than from scene
Sergey Sharybin [Mon, 12 Jun 2017 12:45:43 +0000 (14:45 +0200)]
Depsgraph: Use depsgraph from handle rather than from scene

This way the code is more decoupled from the way where depsgraph is stored.

3 years agoDepsgraph: Add utility function to get depsgraph from node handle
Sergey Sharybin [Mon, 12 Jun 2017 12:41:46 +0000 (14:41 +0200)]
Depsgraph: Add utility function to get depsgraph from node handle

The idea is to use this function for modifiers' updateDepsgraph functions
instead of doing direct scene->depsgraph access.

3 years agoDepsgraph: Remove outdated comment
Sergey Sharybin [Mon, 12 Jun 2017 12:25:05 +0000 (14:25 +0200)]
Depsgraph: Remove outdated comment

3 years agoRename probe to light-probe
Campbell Barton [Mon, 12 Jun 2017 10:59:54 +0000 (20:59 +1000)]
Rename probe to light-probe

Probe is a real general term, the new name is used often in docs online.

3 years agoFix crash drawing non-mesh geometry
Campbell Barton [Mon, 12 Jun 2017 04:43:19 +0000 (14:43 +1000)]
Fix crash drawing non-mesh geometry

3 years agoCleanup: indentation, long lines
Campbell Barton [Mon, 12 Jun 2017 03:35:00 +0000 (13:35 +1000)]
Cleanup: indentation, long lines

3 years agoFix T51737: Material properties error
Campbell Barton [Mon, 12 Jun 2017 02:55:47 +0000 (12:55 +1000)]
Fix T51737: Material properties error

D2706 by @knox

3 years agoCorrect gtest EXPECT use
Campbell Barton [Mon, 12 Jun 2017 00:25:18 +0000 (10:25 +1000)]
Correct gtest EXPECT use

3 years agoCycles: adjust supported driver version for AMD GPUs
Hristo Gueorguiev [Sun, 11 Jun 2017 21:04:27 +0000 (23:04 +0200)]
Cycles: adjust supported driver version for AMD GPUs

On Windows 17.Q1 and 17.Q2 return driver version 2236.10.

3 years agoUse two decimal places for UI scale User Preference option
Julian Eisel [Sun, 11 Jun 2017 20:58:14 +0000 (22:58 +0200)]
Use two decimal places for UI scale User Preference option

3 years agoGTest: initial kdopbvh test
Campbell Barton [Sun, 11 Jun 2017 09:07:18 +0000 (19:07 +1000)]
GTest: initial kdopbvh test

Currently only find-nearest, ray-casting needs to be added.

3 years agoBLI_kdopbvh: add ifdef's for debugging info
Campbell Barton [Sun, 11 Jun 2017 08:42:11 +0000 (18:42 +1000)]
BLI_kdopbvh: add ifdef's for debugging info

Allow to quickly enable print & tree verify.

3 years agoCycles Denoising: Add more failsafes for invalid pixels
Lukas Stockner [Sat, 10 Jun 2017 23:44:06 +0000 (01:44 +0200)]
Cycles Denoising: Add more failsafes for invalid pixels

Now, when there is no usable neighboring pixel for denoising, the noisy value
is preserved instead of producing a NaN.
Also, negative results are clamped to zero.

Note that there are just workarounds that don't fix the underlying problems,
but these issues are very rare and I'm not sure if it's even possible to fix
the underlying problems without introducing a significant slowdown or quality
decrease in other situations.
Because of that and since 2.79 is happening very soon, I just went for these
workarounds for now.

3 years agoUI: Replace placeholder icons in object-add menu
Julian Eisel [Sat, 10 Jun 2017 14:41:58 +0000 (16:41 +0200)]
UI: Replace placeholder icons in object-add menu

Replaces the placeholder 'emtpy' icons of "Force Field" and "Group
Instance" entries in object-add menu with proper new ones.

Icons by @zlsa, thanks a lot!

Maniphest task T51291.

3 years agoDraw Cache: fix probe vbo size
Clément Foucault [Sat, 10 Jun 2017 11:57:39 +0000 (13:57 +0200)]
Draw Cache: fix probe vbo size

3 years agoCycles: Selectively include denoising in kernel
Sergey Sharybin [Fri, 9 Jun 2017 07:11:54 +0000 (03:11 -0400)]
Cycles: Selectively include denoising in kernel

3 years agoCycles: Pass all buffers to each kernel call for OpenCL
Mai Lavelle [Thu, 11 May 2017 23:23:49 +0000 (19:23 -0400)]
Cycles: Pass all buffers to each kernel call for OpenCL

Technically not passing all buffers used by a kernel is undefined
behavior. We haven't had any issues with this so far on AMD or
Nvidia, but it's known to be a problem with Intel and we received
a report from AMD that this is a problem on newer hardware, so we
need to make this change at some point.

Unfortunately there a cost to being correct, about 5% for the
benchmark scenes. For low sample counts it's even worse, I've
seen up to 50% slowdown. For the latter case I think adjusting
tile updating logic can help, but not sure what that would look
like yet (it would be just a few lines change however).

3 years agoCycles: Faster split branched path tracing by sharing samples with inactive threads
Mai Lavelle [Tue, 30 May 2017 01:35:27 +0000 (21:35 -0400)]
Cycles: Faster split branched path tracing by sharing samples with inactive threads

Unlike regular path tracing, branched path tracing is usually used with lower
sample counts, at least for primary rays. This means that are less samples for
the GPU to work on in parallel and rendering is slower. As there is less work
overall there is also more inactive threads during rendering with BPT. This
patch makes use of those inactive rays to render branched samples in parallel
with other samples.

Each thread that is preparing for a branched sample will attempt to find an
inactive thread and if one is found the state for the sample is copied to that
thread. Potentially, if there are enough inactive threads, 100s of branched
samples could be generated from the same originating thread and ran in
parallel giving large speed ups.

Gives 70% faster render for pavillion midday scene. 20-60% faster on BMW
with car paint replaced with SSS/volumes.

3 years agoCycles: Modify path_radiance_accum_sample to use atomics for split kernel
Mai Lavelle [Tue, 30 May 2017 01:34:05 +0000 (21:34 -0400)]
Cycles: Modify path_radiance_accum_sample to use atomics for split kernel

Samples ran in parallel need a safe way to accumulate their results
with the results of other threads.

3 years agoCycles: Add function to dequeue a ray
Mai Lavelle [Tue, 30 May 2017 01:33:27 +0000 (21:33 -0400)]
Cycles: Add function to dequeue a ray

3 years agoCycles: Add atomic decrement functions to util_atomic.h
Mai Lavelle [Tue, 30 May 2017 01:28:21 +0000 (21:28 -0400)]
Cycles: Add atomic decrement functions to util_atomic.h

3 years agoCycles: Add kernel to enqueue inactive rays
Mai Lavelle [Tue, 30 May 2017 00:40:26 +0000 (20:40 -0400)]
Cycles: Add kernel to enqueue inactive rays

The queue will be used to make reuse of inactive threads to keep
the GPU more busy.

3 years agoCycles: Blacklist unsupported OpenCL devices
Hristo Gueorguiev [Thu, 8 Jun 2017 09:08:52 +0000 (05:08 -0400)]
Cycles: Blacklist unsupported OpenCL devices

Due to various driver issues with AMD GCN 1 cards we can no longer support
these GPUs. This patch makes them unavailable to select for Cycles rendering.

GCN cards 2 and higher are still supported. Please use the most recent
drivers available to ensure proper functionality.

See here for a list to check which GPUs are supported:
https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units

3 years agoRename node_widgets -> node_manipulators
Campbell Barton [Sat, 10 Jun 2017 00:55:54 +0000 (10:55 +1000)]
Rename node_widgets -> node_manipulators

3 years agoMissed last commit
Campbell Barton [Sat, 10 Jun 2017 00:56:42 +0000 (10:56 +1000)]
Missed last commit

3 years agoManipulator Update/Refactor
Campbell Barton [Sat, 10 Jun 2017 00:42:35 +0000 (10:42 +1000)]
Manipulator Update/Refactor

Sync with custom-manipulators branch

- Use identifiers for properties.
- Property array index access.
- Remove operator from manipulators
  (wasn't used and will likely add in a different way).

3 years agoProbe: Small UI improvments
Clément Foucault [Fri, 9 Jun 2017 22:36:33 +0000 (00:36 +0200)]
Probe: Small UI improvments

-Better falloff default.
-Add clip distance visualisation.
-Reformat UI and add a display panel.

3 years agoEevee:Uuse compressed format for probes.
Clément Foucault [Fri, 9 Jun 2017 21:51:48 +0000 (23:51 +0200)]
Eevee:Uuse compressed format for probes.

One 1024px² octahedral probe (according to the GPU mem stats):
- RGBA16F = 17Mb
- RGB_11_11_10 = 4Mb
For the time being I prefer to maximize the number of probe possible in the scene for users to test.
This is obviously a temporary solution and the final choice of cubemap format should be exposed to the user.

3 years agoEevee: Probe: fix roughness bug and optimize probe evaluation.
Clément Foucault [Fri, 9 Jun 2017 21:24:51 +0000 (23:24 +0200)]
Eevee: Probe: fix roughness bug and optimize probe evaluation.

3 years agoProbe: Add object mode volume visualisation
Clément Foucault [Fri, 9 Jun 2017 21:21:55 +0000 (23:21 +0200)]
Probe: Add object mode volume visualisation

3 years agoProbe: Remove Bounding Box parameter.
Clément Foucault [Fri, 9 Jun 2017 21:21:23 +0000 (23:21 +0200)]
Probe: Remove Bounding Box parameter.

After using it for like 30 sec, the min max bound box is absolutely not practical. Reverting into using a unit cube with object transform.
This also simplify the code.
In the future of center probes will be implemented using another object matrix (via an object pointer).

3 years agoCycles: Fix denoising passes being written when they're not actually generated
Lukas Stockner [Fri, 9 Jun 2017 21:02:56 +0000 (23:02 +0200)]
Cycles: Fix denoising passes being written when they're not actually generated

3 years agoCleanup Cycles Denoising platform-specific defines
Lukas Stockner [Fri, 9 Jun 2017 20:31:26 +0000 (22:31 +0200)]
Cleanup Cycles Denoising platform-specific defines

3 years agoCycles Denoising: Speedup reconstruction by skipping near-zero weights
Lukas Stockner [Fri, 9 Jun 2017 20:27:49 +0000 (22:27 +0200)]
Cycles Denoising: Speedup reconstruction by skipping near-zero weights

3 years agoEevee: Add parallax correction to probe reflections
Clément Foucault [Fri, 9 Jun 2017 20:30:49 +0000 (22:30 +0200)]
Eevee: Add parallax correction to probe reflections

3 years agoUI: Fix some small ui inconsistencies
Aaron Carlisle [Fri, 9 Jun 2017 19:23:44 +0000 (15:23 -0400)]
UI: Fix some small ui inconsistencies

- Use "..." to indicate non immediate action.
- First letter of words in labels should be capitalized.

3 years agoFix failing render-layer tests after workpsace commit
Julian Eisel [Fri, 9 Jun 2017 17:25:06 +0000 (19:25 +0200)]
Fix failing render-layer tests after workpsace commit

3 years agoFix missing updates when changing probe's clipping
Sergey Sharybin [Fri, 9 Jun 2017 16:04:05 +0000 (18:04 +0200)]
Fix missing updates when changing probe's clipping

Probes were completely out of depsgraph, so tagging them could not work at all.

For now using some placeholder operations just to ensure order of updates.

3 years agoFix crash when using sculpt dynamic smooth
Dalai Felinto [Fri, 9 Jun 2017 15:32:35 +0000 (17:32 +0200)]
Fix crash when using sculpt dynamic smooth

3 years agoFix crash when deleting active workspace render-layer
Julian Eisel [Fri, 9 Jun 2017 15:16:39 +0000 (17:16 +0200)]
Fix crash when deleting active workspace render-layer

Also fixes some failing unit-tests for render-layers.

3 years agoDraw Manager: stop using stack memory!
Dalai Felinto [Fri, 9 Jun 2017 13:19:48 +0000 (15:19 +0200)]
Draw Manager: stop using stack memory!

We still do it a few times, but that helps already. Related to T51718.

Note that it also reinforces the idea that any geometry datablock will
have a generated copy-on-write Mesh provided by Depsgraph.

3 years agoImplement a new util function to get reference of mesh tex space
Dalai Felinto [Fri, 9 Jun 2017 13:19:02 +0000 (15:19 +0200)]
Implement a new util function to get reference of mesh tex space

3 years agoCleanup: get rid of some now unused animdata ID management custom functions.
Bastien Montagne [Fri, 9 Jun 2017 14:29:20 +0000 (16:29 +0200)]
Cleanup: get rid of some now unused animdata ID management custom functions.

That's the kind of commit that are nice to do - getting rid of
half-working custom pieces of code, now that we have generic tools
to do same thing. ;)

3 years agoFix crash when making local object+obdata with linked armature.
Bastien Montagne [Fri, 9 Jun 2017 13:58:32 +0000 (15:58 +0200)]
Fix crash when making local object+obdata with linked armature.

Reported by Andy Goralczyk (@eyecandy) over IRC, thanks!

Simply nuke all that poor broken custom one-by-one handling in
object_relations.c code, and use highly complex but powerful and
well-tested BKE_library_make_local() in all cases of MakeLocal!

ID management, especially related to linking, is very hairy matters,
better to have as few as possible core functions managing all the dirty
details. ;)

3 years agoEevee: Fix crash when saving file / opengl render.
Clément Foucault [Fri, 9 Jun 2017 13:01:16 +0000 (15:01 +0200)]
Eevee: Fix crash when saving file / opengl render.

3 years agoEevee DoF: Use more reasonable UI range for anamorphic bokeh
Dalai Felinto [Fri, 9 Jun 2017 09:56:40 +0000 (11:56 +0200)]
Eevee DoF: Use more reasonable UI range for anamorphic bokeh

Regular camera lens have a ratio of 1.0. The anamorphic bokeh can be
used freely as an artistic decision, but it's nice to clamp it to 2.0,
to match real cameras.

That end up giving a reference for artistis playing with the
parameters unaware of the more realistic limits.

3 years agoFix T51720: Depth of Field Bug - Black Screen
Dalai Felinto [Fri, 9 Jun 2017 09:56:22 +0000 (11:56 +0200)]
Fix T51720: Depth of Field Bug - Black Screen

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