20 months agoSmoke: Pass non-trivial arguments by const reference
Sergey Sharybin [Tue, 14 Nov 2017 16:11:25 +0000 (17:11 +0100)]
Smoke: Pass non-trivial arguments by const reference

20 months agoFix compilation error with clang-5
Sergey Sharybin [Tue, 14 Nov 2017 16:00:54 +0000 (17:00 +0100)]
Fix compilation error with clang-5

20 months agoAlembic: Fix mismatch in forward declaration with definition
Sergey Sharybin [Tue, 14 Nov 2017 15:50:19 +0000 (16:50 +0100)]
Alembic: Fix mismatch in forward declaration with definition

20 months agoFix missing SpinLock typedef on macOS
Arto Kitula [Tue, 14 Nov 2017 14:51:34 +0000 (16:51 +0200)]
Fix missing SpinLock typedef on macOS

20 months agoFix T53068: AMD Threadripper not working well with Blender
Sergey Sharybin [Tue, 14 Nov 2017 11:21:15 +0000 (12:21 +0100)]
Fix T53068: AMD Threadripper not working well with Blender

The issue was caused by SpinLock implementation in old pthreads we ar eusing on
Windows. Using newer one (2.10-rc) demonstrates same exact behavior. But likely
using own atomics and memory barrier based implementation solves the issue.

A bit annoying that we need to change such a core part of Blender just to make
specific CPU happy, but it's better to have artists happy on all computers.

There is no expected downsides of this change, but it is so called "works for
me" category. Let's see how it all goes.

20 months agoCleanup: order BLI before BKE headers
Campbell Barton [Tue, 14 Nov 2017 06:23:40 +0000 (17:23 +1100)]
Cleanup: order BLI before BKE headers

This was done nearly everywhere already

20 months agoBLI: sync changes from 2.8
Campbell Barton [Tue, 14 Nov 2017 05:10:48 +0000 (16:10 +1100)]
BLI: sync changes from 2.8

20 months agoCycles: Make per-object random value output also work for Lamps
Lukas Stockner [Sun, 5 Nov 2017 20:59:17 +0000 (21:59 +0100)]
Cycles: Make per-object random value output also work for Lamps

20 months agoCycles: Refactor closure roughness detection to fix a potential bug with Denoising...
Lukas Stockner [Sun, 5 Nov 2017 20:43:23 +0000 (21:43 +0100)]
Cycles: Refactor closure roughness detection to fix a potential bug with Denoising of specular shaders

20 months agoCleanup on depsgraph logic
Dalai Felinto [Mon, 13 Nov 2017 14:17:14 +0000 (12:17 -0200)]
Cleanup on depsgraph logic

20 months agoDepsgraph: Fix relations for metaballs
Sergey Sharybin [Mon, 13 Nov 2017 13:43:08 +0000 (14:43 +0100)]
Depsgraph: Fix relations for metaballs

Initially spotted and investigated by Dalai and Germano.

20 months agoCycles: Fix compilation error of standalone application
Sergey Sharybin [Mon, 13 Nov 2017 09:49:05 +0000 (10:49 +0100)]
Cycles: Fix compilation error of standalone application

20 months agoCycles: Fix compilation error with OIIO compiled against system PugiXML
Sergey Sharybin [Mon, 13 Nov 2017 09:40:19 +0000 (10:40 +0100)]
Cycles: Fix compilation error with OIIO compiled against system PugiXML

20 months agoFix T53289: CUDA missing textures not showing pink, after recent changes.
Brecht Van Lommel [Sun, 12 Nov 2017 19:43:40 +0000 (20:43 +0100)]
Fix T53289: CUDA missing textures not showing pink, after recent changes.

20 months agoFix T53273: render bake settings properties not showing correct Python path.
Brecht Van Lommel [Sun, 12 Nov 2017 19:04:56 +0000 (20:04 +0100)]
Fix T53273: render bake settings properties not showing correct Python path.

20 months agoFix T53294: crash
Campbell Barton [Sun, 12 Nov 2017 05:05:28 +0000 (16:05 +1100)]
Fix T53294: crash

20 months agoBMesh Py API: Expose color alpha
Campbell Barton [Sun, 12 Nov 2017 04:48:24 +0000 (15:48 +1100)]
BMesh Py API: Expose color alpha

20 months agoCycles: Set error if a split kernel fails to load
Mai Lavelle [Sat, 11 Nov 2017 05:57:59 +0000 (00:57 -0500)]
Cycles: Set error if a split kernel fails to load

To help catch cases where adding a new kernel is missed for one of the
device implementations.

20 months agomball_tessellate: Simplify face creation
Germano [Fri, 10 Nov 2017 14:58:34 +0000 (12:58 -0200)]
mball_tessellate: Simplify face creation

Faces that have the last two indices equal are considered triangles, and not those that the last index is 0
Improvement of 7% in performance of the `polygonize` function

20 months agoCycles: Fix compilation error with latest OIIO
Sergey Sharybin [Fri, 10 Nov 2017 09:04:33 +0000 (10:04 +0100)]
Cycles: Fix compilation error with latest OIIO

There was some changes about namespaces, which causes ambiguities.

Replaces using namespace with an explicit symbols we need. Is good idea to NOT
pull in the whole namespace anyway!

20 months agoCycles: better distance sampling for chromatic volume extinction.
Brecht Van Lommel [Thu, 9 Nov 2017 03:42:07 +0000 (04:42 +0100)]
Cycles: better distance sampling for chromatic volume extinction.

Previously we picked one of the RGB channels with equal probability, but this
works poorly in a dense volume after many bounces. Now we take into account
the throughput and single scattering albedo.

This makes it a little more practical to do brute force SSS with volumes, but
is still very inefficient because we do direct light sampling at every volume
bounce even when inside an opaque mesh. In theory there could be a light inside
the mesh so we can't automatically disable direct lighting.

20 months agoFix T53270: crash with multiscatter GGX after recent refactoring.
Brecht Van Lommel [Wed, 8 Nov 2017 20:58:17 +0000 (21:58 +0100)]
Fix T53270: crash with multiscatter GGX after recent refactoring.

In fact this was an existing issue when exceeding the number of available
closure, but it's more common now that we set the number to 0 for shadows
and emission

20 months agoFix (harmless) valgrind warning.
Brecht Van Lommel [Wed, 8 Nov 2017 20:58:09 +0000 (21:58 +0100)]
Fix (harmless) valgrind warning.

20 months agoCycles: avoid reallocating tile denoising memory many times during render.
Brecht Van Lommel [Wed, 8 Nov 2017 19:15:38 +0000 (20:15 +0100)]
Cycles: avoid reallocating tile denoising memory many times during render.

20 months agoMoved alignment attributes from my last commit to BLI_compiler_attrs.h for future...
Stefan Werner [Thu, 9 Nov 2017 13:59:31 +0000 (14:59 +0100)]
Moved alignment attributes from my last commit to BLI_compiler_attrs.h for future use.

20 months agoCompositor: Ensured 16 byte alignment for variables accessed by SSE instructions.
Stefan Werner [Thu, 9 Nov 2017 13:38:17 +0000 (14:38 +0100)]
Compositor: Ensured 16 byte alignment for variables accessed by SSE instructions.

Before this patch, the XBlur/YBlur compositor nodes would crash for me when run in a MSVC 2015 debug build (test scene: BMW27_cpu). I added the compiler instructions to explicitly align the local variables that the SSE instructions are accessing.

20 months agoCycles: Silence warning when building without OSL
Dalai Felinto [Thu, 9 Nov 2017 10:39:30 +0000 (08:39 -0200)]
Cycles: Silence warning when building without OSL

20 months agoFix: unselectable objects can be selected via the NLA editor
Dalai Felinto [Thu, 9 Nov 2017 10:27:37 +0000 (08:27 -0200)]
Fix: unselectable objects can be selected via the NLA editor

This is not reported anywhere, but it's easy to reproduce. I ran into this
while updating this code for the blender2.8 branch.

20 months agoFix logic for pinning textures users from context
Dalai Felinto [Thu, 9 Nov 2017 10:17:35 +0000 (08:17 -0200)]
Fix logic for pinning textures users from context

This was wrong since it's concenption in 28ee0f9218.
The if statement was returning true when pinid was NULL, and false otherwise.

However when scene is pinned we also want to run this code.
Code snippet by Brecht Van Lommel.

20 months agoDepsgraph: Add missing handlers of node IDs
Sergey Sharybin [Thu, 9 Nov 2017 08:46:50 +0000 (09:46 +0100)]
Depsgraph: Add missing handlers of node IDs

Worst thing was that point density did not pull object into dependency graph,
which could lead to wrong render results.

20 months agoDepsgraph: Remove chains of scene being passed all over in relations builder
Sergey Sharybin [Thu, 9 Nov 2017 08:17:47 +0000 (09:17 +0100)]
Depsgraph: Remove chains of scene being passed all over in relations builder

20 months agoDepsgraph: Cleanup, remove scene being passed all over
Sergey Sharybin [Wed, 8 Nov 2017 17:06:51 +0000 (18:06 +0100)]
Depsgraph: Cleanup, remove scene being passed all over

Use the state one instead.

20 months agoDepsgraph: Remove bmain from internal builder API
Sergey Sharybin [Wed, 8 Nov 2017 16:47:00 +0000 (17:47 +0100)]
Depsgraph: Remove bmain from internal builder API

Use the one from state.

20 months agoDepsgraph: Make bmain part of builder state and remove bmain from public API
Sergey Sharybin [Wed, 8 Nov 2017 16:43:53 +0000 (17:43 +0100)]
Depsgraph: Make bmain part of builder state and remove bmain from public API

20 months agoDepsgraph: Cleanup, use google style for private members
Sergey Sharybin [Wed, 8 Nov 2017 16:38:42 +0000 (17:38 +0100)]
Depsgraph: Cleanup, use google style for private members

20 months agoDepsgraph: Synchronize nodes and relations builders
Sergey Sharybin [Wed, 8 Nov 2017 16:34:19 +0000 (17:34 +0100)]
Depsgraph: Synchronize nodes and relations builders

20 months agoDepsgraph: Fix wrong ID type being compared
Sergey Sharybin [Wed, 8 Nov 2017 16:33:46 +0000 (17:33 +0100)]
Depsgraph: Fix wrong ID type being compared

20 months agoDepsgraph: Cleanup, reduce indentation level
Sergey Sharybin [Wed, 8 Nov 2017 16:32:03 +0000 (17:32 +0100)]
Depsgraph: Cleanup, reduce indentation level

20 months agoDepsgraph: Assert when node uses unhandled ID type
Sergey Sharybin [Wed, 8 Nov 2017 16:30:28 +0000 (17:30 +0100)]
Depsgraph: Assert when node uses unhandled ID type

20 months agoCycles: Replace __MAX_CLOSURE__ build option with runtime integrator variable
Mai Lavelle [Thu, 9 Nov 2017 05:49:15 +0000 (00:49 -0500)]
Cycles: Replace __MAX_CLOSURE__ build option with runtime integrator variable

Goal is to reduce OpenCL kernel recompilations.

Currently viewport renders are still set to use 64 closures as this seems to
be faster and we don't want to cause a performance regression there. Needs
to be investigated.

Reviewed By: brecht

Differential Revision:

20 months agoSilence warning from Collada
Dalai Felinto [Wed, 8 Nov 2017 20:33:17 +0000 (18:33 -0200)]
Silence warning from Collada

20 months agoI18n: add Hausa languages, since we now have a few messages translated. ;)
Bastien Montagne [Wed, 8 Nov 2017 09:10:42 +0000 (10:10 +0100)]
I18n: add Hausa languages, since we now have a few messages translated. ;)

20 months agoFix blender player build.
Brecht Van Lommel [Wed, 8 Nov 2017 00:10:49 +0000 (01:10 +0100)]
Fix blender player build.

20 months agoFix incorrect bevel shader in GLSL (should work as if there is no bevel node).
Brecht Van Lommel [Tue, 7 Nov 2017 23:19:24 +0000 (00:19 +0100)]
Fix incorrect bevel shader in GLSL (should work as if there is no bevel node).

20 months agoFix T53092: errors reading EXR files with different data/display window.
Brecht Van Lommel [Thu, 19 Oct 2017 01:55:11 +0000 (03:55 +0200)]
Fix T53092: errors reading EXR files with different data/display window.

Multilayer/multiview OpenEXRs did not read the full data window like single
layer, now it should be consistent.

20 months agoFix various issues with (multiview) OpenEXR file save/load.
Brecht Van Lommel [Fri, 20 Oct 2017 13:18:26 +0000 (15:18 +0200)]
Fix various issues with (multiview) OpenEXR file save/load.

* Fix saving a multiview render from the image editor giving invalid files.
* Fix failure to load multiview images with a single view per part.
* Fix loss of multiview metadata when saving/loading a single view.
* Fix Z-Buffer writing option for single layer EXR not being respected.

Multiview EXRs are now always handled as multilayer internally, significantly
reducing the amount of code.

Reviewed By: dfelinto

Differential Revision:

20 months agoFix EXR multilayer compositing result saving issues.
Brecht Van Lommel [Thu, 26 Oct 2017 12:23:18 +0000 (14:23 +0200)]
Fix EXR multilayer compositing result saving issues.

* It was saved as Combined.Combined instead of Composite.Combined.
* It was written even if no compositing was enabled.

20 months agoFix image editor showing pass name when there is only a combined pass.
Brecht Van Lommel [Thu, 26 Oct 2017 12:17:58 +0000 (14:17 +0200)]
Fix image editor showing pass name when there is only a combined pass.

20 months agoFix incorrect color management when saving JPG previews for EXR.
Brecht Van Lommel [Thu, 26 Oct 2017 12:14:12 +0000 (14:14 +0200)]
Fix incorrect color management when saving JPG previews for EXR.

20 months agoCycles: add bevel shader, for raytrace based rounded edges.
Brecht Van Lommel [Fri, 18 Aug 2017 16:37:05 +0000 (18:37 +0200)]
Cycles: add bevel shader, for raytrace based rounded edges.

The algorithm averages normals from nearby surfaces. It uses the same
sampling strategy as BSSRDFs, casting rays along the normal and two
orthogonal axes, and combining the samples with MIS.

The main concern here is that we are introducing raytracing inside
shader evaluation, which could be quite bad for GPU performance and
stack memory usage. In practice it doesn't seem so bad though.

Note that using this feature can easily slow down renders 20%, and
that if you care about performance then it's better to use a bevel
modifier. Mainly this is useful for baking, and for cases where the
mesh topology makes it difficult for the bevel modifier to work well.

Differential Revision:

20 months agoCode refactor: rename subsurface to local traversal, for reuse.
Brecht Van Lommel [Mon, 30 Oct 2017 19:25:08 +0000 (20:25 +0100)]
Code refactor: rename subsurface to local traversal, for reuse.

20 months agoCycles: antialias normal baking if the mesh has a bump map.
Brecht Van Lommel [Mon, 30 Oct 2017 16:19:37 +0000 (17:19 +0100)]
Cycles: antialias normal baking if the mesh has a bump map.

20 months agoCycles: add an extra CUDA synchronize before rendering.
Brecht Van Lommel [Tue, 7 Nov 2017 02:38:49 +0000 (03:38 +0100)]
Cycles: add an extra CUDA synchronize before rendering.

It should not be needed as far as I know, but just in case it fixes any
of the recent issues like T52572.

20 months agoFix incorrect MIS weights in Cycles with multiple lights.
Brecht Van Lommel [Tue, 7 Nov 2017 02:28:10 +0000 (03:28 +0100)]
Fix incorrect MIS weights in Cycles with multiple lights.

This causes some difference in the classroom scene, where ray visibility
tricks are used and break the MIS balance. Otherwise there doesn't seem
to be much effect, but better to use the right formulas. Problem originally
identified by Lukas.

20 months agoWindows: Add additional crash diagnostic information.
Ray Molenkamp [Tue, 7 Nov 2017 14:57:59 +0000 (07:57 -0700)]
Windows: Add additional crash diagnostic information.

To help diagnose issues like T53259, it is useful to know the module causing the issue (is it us, or some opengl icd, or python module?) and while we cannot do stackdumps on release builds on windows, it is possible to display the faulting module. This commit changes the exception handler to output the following information:

Error   : EXCEPTION_ACCESS_VIOLATION (Type of exception , this we had before)
Address : 0x0000000140193726 (Address of the exception, new)
Module  : k:\BlenderGit\build_windows_Full_noge_x64_vc15_Release\bin\Release\blender.exe (module of the exception, new)

20 months agoCycles: Cleanup, style
Sergey Sharybin [Tue, 7 Nov 2017 12:55:58 +0000 (13:55 +0100)]
Cycles: Cleanup, style

20 months agoFix T53129: Cycles missing update when changing image auto refresh.
Brecht Van Lommel [Tue, 7 Nov 2017 01:27:27 +0000 (02:27 +0100)]
Fix T53129: Cycles missing update when changing image auto refresh.

Previously auto refresh worked, but only if it was already enabled before
starting the viewport render.

20 months agomacOS: remove old OpenMP lib stuff from cmake
Arto Kitula [Mon, 6 Nov 2017 21:54:35 +0000 (23:54 +0200)]
macOS: remove old OpenMP lib stuff from cmake

Bastien Montagne [Mon, 6 Nov 2017 16:17:10 +0000 (17:17 +0100)]

This makes code closer to id_override/assent-engine ones, which
introduce a new type of linked data, and hence reserve
ID_IS_LINKED_DATABLOCK to real linked datablocks.

20 months agoFix T53250: Crash when linking/appending a scene to a blend when another linked scene...
Bastien Montagne [Mon, 6 Nov 2017 14:16:40 +0000 (15:16 +0100)]
Fix T53250: Crash when linking/appending a scene to a blend when another linked scene in this blend is currently open/active.

Inner DAG code would not check against NULL pointer, and in case of an
active linked scene, scene pointer will be NULL here, so we have to
check it ourself. ;)

20 months agoCycles: reduce closure memory usage for emission/shadow shader data.
Brecht Van Lommel [Wed, 1 Nov 2017 20:02:28 +0000 (21:02 +0100)]
Cycles: reduce closure memory usage for emission/shadow shader data.

With a Titan Xp, reduces path trace local memory from 1092MB to 840MB.
Benchmark performance was within 1% with both RX 480 and Titan Xp.

Original patch was implemented by Sergey.

Differential Revision:

20 months agoCode refactor: sum transparent and absorption weights outside closures.
Brecht Van Lommel [Wed, 1 Nov 2017 20:07:15 +0000 (21:07 +0100)]
Code refactor: sum transparent and absorption weights outside closures.

20 months agoCode refactor: remove emission and background closures, sum directly.
Brecht Van Lommel [Wed, 1 Nov 2017 18:00:42 +0000 (19:00 +0100)]
Code refactor: remove emission and background closures, sum directly.

20 months agoCycles: fix inefficient attribute map storage, saves 615MB in victor scene.
Brecht Van Lommel [Sun, 5 Nov 2017 16:40:36 +0000 (17:40 +0100)]
Cycles: fix inefficient attribute map storage, saves 615MB in victor scene.

20 months agoCode refactor: device memory cleanups, preparing for mapped host memory.
Brecht Van Lommel [Sat, 4 Nov 2017 23:34:30 +0000 (00:34 +0100)]
Code refactor: device memory cleanups, preparing for mapped host memory.

20 months agoCycles: reserve CUDA local memory ahead of time.
Brecht Van Lommel [Sat, 4 Nov 2017 17:06:48 +0000 (18:06 +0100)]
Cycles: reserve CUDA local memory ahead of time.

This way we can log the amount of memory used, and it will be important
for host mapped memory support.

20 months agoCleanup: order buffer length after the buffer
Campbell Barton [Sun, 5 Nov 2017 13:04:46 +0000 (00:04 +1100)]
Cleanup: order buffer length after the buffer

20 months agoCleanup: remove paranoid NULL check
Campbell Barton [Sun, 5 Nov 2017 12:34:40 +0000 (23:34 +1100)]
Cleanup: remove paranoid NULL check

20 months agoCleanup: indentation, line wrapping
Campbell Barton [Sun, 5 Nov 2017 03:50:15 +0000 (14:50 +1100)]
Cleanup: indentation, line wrapping

20 months agoCleanup: spelling
Campbell Barton [Sun, 5 Nov 2017 03:33:18 +0000 (14:33 +1100)]
Cleanup: spelling

20 months agoUI: tool-tip refactor, don't hard code field types
Campbell Barton [Sat, 4 Nov 2017 08:24:43 +0000 (19:24 +1100)]
UI: tool-tip refactor, don't hard code field types

Allow other kinds of tips be created w/o exceeding hard limits.

20 months agoUI: correct flag re-use
Campbell Barton [Sat, 4 Nov 2017 03:10:04 +0000 (14:10 +1100)]
UI: correct flag re-use

Adding ability to show a button as pressed w/o UI_SELECT set caused
other flags to be cleared that shouldn't have been.

20 months agoCode refactor: replace CUDA array with linear memory for 1D and 2D textures.
Brecht Van Lommel [Fri, 3 Nov 2017 20:28:13 +0000 (21:28 +0100)]
Code refactor: replace CUDA array with linear memory for 1D and 2D textures.

This is a prequisite for getting host memory allocation to work. There appears
to be no support for 3D textures using host memory. The original version of
this code was written by Stefan Werner for D2056.

20 months agoFix T53247: mixed CPU + GPU render wrong texture limits.
Brecht Van Lommel [Fri, 3 Nov 2017 19:21:19 +0000 (20:21 +0100)]
Fix T53247: mixed CPU + GPU render wrong texture limits.

20 months agoScene RNA API: More global mains goes away
Sergey Sharybin [Fri, 3 Nov 2017 15:28:37 +0000 (16:28 +0100)]
Scene RNA API: More global mains goes away

20 months agoScene RNA API: Main from globals goes away
Sergey Sharybin [Fri, 3 Nov 2017 15:15:49 +0000 (16:15 +0100)]
Scene RNA API: Main from globals goes away

Bye bye..

20 months agoCleanup: split interface_regions.c
Campbell Barton [Fri, 3 Nov 2017 09:26:35 +0000 (20:26 +1100)]
Cleanup: split interface_regions.c

Each region type is quite separate and file was getting too big.

20 months agoFix incorrect allocation size
Campbell Barton [Fri, 3 Nov 2017 08:23:47 +0000 (19:23 +1100)]
Fix incorrect allocation size

20 months agoFix Blenderplayer (tm)
Jens Verwiebe [Thu, 2 Nov 2017 23:39:50 +0000 (00:39 +0100)]
Fix Blenderplayer (tm)

20 months agoFix Cycles showing empty tiles while they are being denoised.
Brecht Van Lommel [Thu, 2 Nov 2017 14:05:57 +0000 (15:05 +0100)]
Fix Cycles showing empty tiles while they are being denoised.

20 months agoCleanup: minor comment correction
Campbell Barton [Thu, 2 Nov 2017 14:10:03 +0000 (01:10 +1100)]
Cleanup: minor comment correction

20 months agoUI: add UI_SELECT_DRAW flag
Campbell Barton [Thu, 2 Nov 2017 13:45:30 +0000 (00:45 +1100)]

Allow to draw as pressed w/o interfering with behavior.

Resolves issue where buttons raised on mouse-over.

20 months agoAlembic: not using global in unit test.
Sybren A. Stüvel [Thu, 2 Nov 2017 13:33:13 +0000 (14:33 +0100)]
Alembic: not using global in unit test.

Thanks @sergey for pointing out this fix.

20 months agoFix T53182: cancelling save buffers + denoising render clears image.
Brecht Van Lommel [Thu, 2 Nov 2017 13:29:42 +0000 (14:29 +0100)]
Fix T53182: cancelling save buffers + denoising render clears image.

20 months agoUI: free up bit in uiBut.flag
Campbell Barton [Thu, 2 Nov 2017 13:22:59 +0000 (00:22 +1100)]
UI: free up bit in uiBut.flag

20 months agoCycles: Add another limit to OpenCL memory usage
Mai Lavelle [Thu, 2 Nov 2017 12:10:24 +0000 (08:10 -0400)]
Cycles: Add another limit to OpenCL memory usage

Some drivers may report very large allocation sizes, which could cause
unnecessary memory usage. This is now limited to 2gb which should
still be enough to get the needed performance benefits without waste.

20 months agoSpace clip: Make it more clear that filter track does not use any settings from tool...
Sergey Sharybin [Thu, 2 Nov 2017 11:33:39 +0000 (12:33 +0100)]
Space clip: Make it more clear that filter track does not use any settings from tool shelf

20 months agoUI: use button_operator in operator_menu_hold
Campbell Barton [Thu, 2 Nov 2017 07:19:11 +0000 (18:19 +1100)]
UI: use button_operator in operator_menu_hold

Move draw calls into UI_menutype_draw

20 months agoCleanup: code style
Campbell Barton [Thu, 2 Nov 2017 04:09:11 +0000 (15:09 +1100)]
Cleanup: code style

20 months agoImplement a new automatic handle algorithm to produce smooth F-Curves.
Alexander Gavrilov [Wed, 1 Nov 2017 18:34:30 +0000 (21:34 +0300)]
Implement a new automatic handle algorithm to produce smooth F-Curves.

The legacy algorithm only considers two adjacent points when computing
the bezier handles, which cannot produce satisfactory results. Animators
are often forced to manually adjust all curves.

The new approach instead solves a system of equations to trace a cubic spline
with continuous second derivative through the whole segment of auto points,
delimited at ends by keyframes with handles set by other requirements.

This algorithm also adjusts Vector handles that face ordinary bezier keyframes
to achieve zero acceleration at the Vector keyframe, instead of simply pointing
it at the adjacent point.

Original idea and implementation by Benoit Bolsee <>;
code mostly rewritten to improve code clarity and extensibility.

Reviewers: aligorith

Differential Revision:

20 months agoCleanup: use term shape-preset in widget code
Campbell Barton [Wed, 1 Nov 2017 18:48:14 +0000 (05:48 +1100)]
Cleanup: use term shape-preset in widget code

20 months agoUI: Option to draw button pressed
Campbell Barton [Wed, 1 Nov 2017 18:00:09 +0000 (05:00 +1100)]
UI: Option to draw button pressed

Needed to show the active tool

20 months agoUI: Add UILayout.operator_menu_hold
Campbell Barton [Wed, 1 Nov 2017 17:30:07 +0000 (04:30 +1100)]
UI: Add UILayout.operator_menu_hold

This is an operator button that opens a menu when the button is held.

20 months agoFix T53217: GLSL principled BSDF black with zero clearcoat roughness.
Brecht Van Lommel [Wed, 1 Nov 2017 16:12:36 +0000 (17:12 +0100)]
Fix T53217: GLSL principled BSDF black with zero clearcoat roughness.

20 months agoCycles: Add utility function to distinguish between scatter and absorption volume ID
Sergey Sharybin [Wed, 1 Nov 2017 10:10:51 +0000 (11:10 +0100)]
Cycles: Add utility function to distinguish between scatter and absorption volume ID

20 months agoCycles: Cleanup, make it more obvious what preprocessor belongs to
Sergey Sharybin [Wed, 1 Nov 2017 10:10:10 +0000 (11:10 +0100)]
Cycles: Cleanup, make it more obvious what preprocessor belongs to

20 months agoCycles: Cleanup, delete trailing whitespace
Sergey Sharybin [Wed, 1 Nov 2017 10:06:55 +0000 (11:06 +0100)]
Cycles: Cleanup, delete trailing whitespace

20 months agoFix for T48988 - Enabling bbone easing for posemode
Joshua Leung [Wed, 1 Nov 2017 00:38:51 +0000 (13:38 +1300)]
Fix for T48988 - Enabling bbone easing for posemode

This fix enables the usage of bbones easing parameters for edit and pose mode seperately. This allows animators to take advantage of the functionality and may eliminate confusion as the parameters now behave similar to other bbone parameters.

Note that splitting the parameters between the modes effectively creates a new parameter set. Blend files of previous versions do not contain this information and will have the values set to 0 on load. As it broke backwards compatibility for pose mode values anyway, I also took the liberty to rename the easing parameters in some places for consistency (which breaks edit mode values).

Reviewers: aligorith

Subscribers: aligorith

Tags: #animation

Differential Revision:

20 months agoCleanup: style
Campbell Barton [Wed, 1 Nov 2017 00:56:56 +0000 (11:56 +1100)]
Cleanup: style

20 months agoFix bplayer (c)
Bastien Montagne [Tue, 31 Oct 2017 16:15:16 +0000 (17:15 +0100)]
Fix bplayer (c)

Like seriously guys... twice within a few hours, compile full blender please
when you change APIs!