3 years agoFix T49078: Cycles tries to render volume from another render layer when camera is...
Sergey Sharybin [Thu, 25 Aug 2016 08:55:16 +0000 (10:55 +0200)]
Fix T49078: Cycles tries to render volume from another render layer when camera is in volume

3 years agoFix T49112: Alembic unicode path issues on Windows.
Kévin Dietrich [Thu, 25 Aug 2016 03:19:41 +0000 (05:19 +0200)]
Fix T49112: Alembic unicode path issues on Windows.

Now we pass streams to Alembic instead of passing the filename string.
That way we can open the stream ourselves with the proper unicode

Note that this only applies to Ogawa archive, as HDF5 does not support

Differential Revision:

3 years agoWindows Packaging : Make package-name confirm to the windows[32/64] naming scheme...
lazydodo [Wed, 24 Aug 2016 15:37:42 +0000 (09:37 -0600)]
Windows Packaging : Make package-name confirm to the windows[32/64] naming scheme we use.

3 years agoCycles: Fix crash when empty mesh has subdivision
Mai Lavelle [Tue, 23 Aug 2016 18:49:10 +0000 (14:49 -0400)]
Cycles: Fix crash when empty mesh has subdivision

OpenSubdiv doesn't like empty meshes, so we need to be careful not to
subdivide when the mesh is empty.

3 years agoCycles Standalone: Fix support for subdivision meshes
Mai Lavelle [Tue, 23 Aug 2016 17:57:45 +0000 (13:57 -0400)]
Cycles Standalone: Fix support for subdivision meshes

Changes from microdisplacement work broke previous support for subdivision
meshes, sometimes leading to crashes; this makes things work again. Files
that contain "patch" nodes will need to be updated to use meshes instead, as
specifying patches was both inefficient and completely unsupported by the new
subdivision code.

3 years agoFix T49148: Blender Crash With B select on Skeleton Sketching
Sergey Sharybin [Wed, 24 Aug 2016 12:17:26 +0000 (14:17 +0200)]
Fix T49148: Blender Crash With B select on Skeleton Sketching

3 years agoCycles: Consolidate the various split CL kernel feature defines within the AMD platform
Edward O'Callaghan [Wed, 24 Aug 2016 10:30:05 +0000 (12:30 +0200)]
Cycles: Consolidate the various split CL kernel feature defines within the AMD platform

Reviewers: sergey

Differential Revision:

3 years agoFix T49128: Ghost of Previous Mask appears in Double Edge Mask
Sergey Sharybin [Wed, 24 Aug 2016 09:20:13 +0000 (11:20 +0200)]
Fix T49128: Ghost of Previous Mask appears in Double Edge Mask

Patch by Ted Schundler (tschundler), thanks!

Differential Revision:

3 years agoFix T49130: "Inner Edge" / "Buffer Edge" options in the Double Edge Mask are wired...
Sergey Sharybin [Wed, 24 Aug 2016 09:00:21 +0000 (11:00 +0200)]
Fix T49130: "Inner Edge" / "Buffer Edge" options in the Double Edge Mask are wired to the wrong settings

Patch by Ted Schundler (tschundler), thanks!

Differential Revision:

3 years agoFix T49121: VSE and border render incompatible
Sergey Sharybin [Wed, 24 Aug 2016 08:19:44 +0000 (10:19 +0200)]
Fix T49121: VSE and border render incompatible

For now just check for such incompatible configuration, real fix
requires quite some work to be done.

3 years agoCycles OpenCL: use AoS rather than SoA storage for ShaderData.
Brecht Van Lommel [Tue, 23 Aug 2016 23:44:48 +0000 (01:44 +0200)]
Cycles OpenCL: use AoS rather than SoA storage for ShaderData.

Fixes part of the performance regressions compared to 2.76b, see T49046, T48876.

3 years agoUsual i18n/UI messages fixes.
Bastien Montagne [Tue, 23 Aug 2016 20:03:18 +0000 (22:03 +0200)]
Usual i18n/UI messages fixes.

3 years agoFix T49150: make new 'operator categories' in search menu i18n-aware.
Bastien Montagne [Tue, 23 Aug 2016 19:48:16 +0000 (21:48 +0200)]
Fix T49150: make new 'operator categories' in search menu i18n-aware.

3 years agoD2078 Windows : add option to prevent find_package from picking up the wrong librarie...
lazydodo [Tue, 23 Aug 2016 14:47:23 +0000 (08:47 -0600)]
D2078 Windows : add option to prevent find_package from picking up the wrong libraries and use hardcoded paths instead.

3 years agoCycles: Fix/workaround for missing AA on Pascal (GTX10x0) cards
Sergey Sharybin [Tue, 23 Aug 2016 14:32:09 +0000 (16:32 +0200)]
Cycles: Fix/workaround for missing AA on Pascal (GTX10x0) cards

3 years agoCleanup: Output argument name and const qualifier
Sergey Sharybin [Tue, 23 Aug 2016 13:56:10 +0000 (15:56 +0200)]
Cleanup: Output argument name and const qualifier

3 years agoFix T49140: Noise and jitter present at some areas when using ambient oclusion in...
Sergey Sharybin [Tue, 23 Aug 2016 13:54:36 +0000 (15:54 +0200)]
Fix T49140: Noise and jitter present at some areas when using ambient oclusion in Blender internal renderer

3 years agoOpenCL: Support multiple ABI libraries on Linux
Sergey Sharybin [Tue, 23 Aug 2016 10:23:37 +0000 (12:23 +0200)]
OpenCL: Support multiple ABI libraries on Linux

Solves issue reported in T49144.

3 years agoattempt to fix compilation error on windows
Sergey Sharybin [Tue, 23 Aug 2016 10:01:55 +0000 (12:01 +0200)]
attempt to fix compilation error on windows

3 years ago2D stabilization: Fix broken auto-scale all the recent work
Sergey Sharybin [Tue, 23 Aug 2016 09:48:29 +0000 (11:48 +0200)]
2D stabilization: Fix broken auto-scale all the recent work

Auto-scale is expected to work just fine now.

Only thing changed now is the pivot point for the scale: it is now
the same as rotation pivot, so scaling happens around weighted median
of the translation tracks. This seems to be what is actually required
for the VFX workflow.

3 years agoChange Request: use weight centre of location tracks as pivot
Ichthyostega [Mon, 22 Aug 2016 05:02:22 +0000 (07:02 +0200)]
Change Request: use weight centre of location tracks as pivot

Previously, this extension used the translation compensated image centre
as reference point for rotation measurement and compensation. During
user tests, it turned out that this setup tends to give poor results
with very simple track configurations.

This can be improved by useiing the weighted average of the location
tracks for each frame as pivot point. But there is a technical problem:
the existing public API functions do not allow to pass the pivot point
for each frame alongside with the stabilisation data. Thus this
change implements a trick to package a compensation shift into
the translation offset, so the rotation can be performed around
a fixed point (center of frame). The compensation shift will then shift
the image as if it had been rotated around the desired pivot point.

3 years ago2D stabilization: by default init anchor_frame to frame 1
Ichthyostega [Mon, 22 Aug 2016 15:29:19 +0000 (17:29 +0200)]
2D stabilization: by default init anchor_frame to frame 1

It is common in blender to use 1-based counting for
frame sequences (while 0-based is allowed). Thus
initializing to use frame 1 as reference for stabilization
is likely to produce smooth start values in most cases

3 years ago2D stabilization: change presentation of target_scale in UI
Ichthyostega [Fri, 19 Aug 2016 12:33:49 +0000 (14:33 +0200)]
2D stabilization: change presentation of target_scale in UI

Alongside with this change, we fix disabling of Autoscale,
because this feature works even when rotation/scale is disabled.

3 years ago2D stabilization: flip orientation of the scale parameter
Ichthyostega [Mon, 22 Aug 2016 15:22:06 +0000 (17:22 +0200)]
2D stabilization: flip orientation of the scale parameter

values > 1 will zoom in and values < 1 zoom out

Rationale: the changed orientation is more natural
from a user POV and doing it this way is also more
consistent with the calculation of the other
target_* parameters.

Compatibility: This will break *.blend files saved
with the previous version of this patch from the
last days (test period). It will *not* break any
old/migrated files: Previously, the DNA field "scale"
was only used to cache autoscale. Only with the
Stabilisator rework, "scale" becomes a first class
persistent DNA field. There is migration code to
init this field to 1.0

3 years agoFix inconsistency: expected scale not be subject to scale influence
Ichthyostega [Fri, 19 Aug 2016 13:12:52 +0000 (15:12 +0200)]
Fix inconsistency: expected scale not be subject to scale influence

We should treat all three "target" ("expected") parameters in a similar way:
The "influence" control should only work on the measurement part of stabilisation,
i.e. it should only control the automatic part of stabilisation, while
the target parameters are deliberately set by the user and thus should
even be in effect when the automatic stabilsation is turned down.

It used to be so for location and rotation, but for the scale part,
I re-used the existing code for autoscale, which also had the scale influence
work on the autoscale factor. This was sensible in the old version,
since scale_influence was the only way to control the result. But now,
the user has always total control trough the "target_*" parameters
and thus we should prefer to treat all similar.

3 years agoBuild Packaging : Set proper package name on Windows.
lazydodo [Mon, 22 Aug 2016 14:15:03 +0000 (08:15 -0600)]
Build Packaging : Set proper package name on Windows.

3 years agoFix T49136: full constant Curves with zero Fac input crashes in assert.
Alexander Gavrilov [Mon, 22 Aug 2016 08:11:45 +0000 (11:11 +0300)]
Fix T49136: full constant Curves with zero Fac input crashes in assert.

The if branches were reordered when the original patch was
committed, which broke the implicit non-NULL guarantee on link.

To prevent re-occurrence, add a couple of unit tests.

3 years agoNDOF: fix crash on Mac with old drivers
Mike Erwin [Mon, 22 Aug 2016 03:09:19 +0000 (23:09 -0400)]
NDOF: fix crash on Mac with old drivers

For best results use the latest 3Dconnexion driver. But latest is only
supported on Mac OS 10.9+. We go all the way back to Mac OS 10.6 so
have to deal with older driver versions.

See the original dlclose line for my faulty assumption. Waiting to
unload the driver later fixes the crash. Newer drivers don’t seem to
have this issue.

Also removed WITH_INPUT_NDOF guards as NDOFManager.h takes care of
this. Follow-up to b10d005 a few days ago.

3 years agoSculpting: Avoid calculating and chaching viewport matrices
Julian Eisel [Sun, 21 Aug 2016 21:59:18 +0000 (23:59 +0200)]
Sculpting: Avoid calculating and chaching viewport matrices

Really couldn't find where this was used.

3 years agoUpdate .gitignore to some more generated/non-git-stored files.
Bastien Montagne [Sun, 21 Aug 2016 20:40:57 +0000 (22:40 +0200)]
Update .gitignore to some more generated/non-git-stored files.

3 years agoUpdate to work with recent changes (GPv2).
Bastien Montagne [Sun, 21 Aug 2016 20:38:06 +0000 (22:38 +0200)]
Update to work with recent changes (GPv2).

3 years agoIcons: Fix small alignment and shadow issue in prvicons. Add missing copyright notice.
Ines Almeida [Sun, 21 Aug 2016 17:10:02 +0000 (19:10 +0200)]
Icons: Fix small alignment and shadow issue in prvicons. Add missing copyright notice.

3 years agoCleanup: let's try to avoid too much indirect header imports, makes things harder...
Bastien Montagne [Sun, 21 Aug 2016 11:20:49 +0000 (13:20 +0200)]
Cleanup: let's try to avoid too much indirect header imports, makes things harder when some cope changes...

3 years agoFix T49060: crashes during render with no apparent reason...
Bastien Montagne [Sat, 20 Aug 2016 14:03:33 +0000 (16:03 +0200)]
Fix T49060: crashes during render with no apparent reason...

Was a concurrent access of pointcache from both particle system and UI (time space).

Pointcache not being threadsafe is really an issue to be addressed for its next version,
for now simply locking spacetime (like we already do with 3DView), not ideal fix
but it's working and safe for release.

3 years agoFix T49119: Batch-Generate Previews operator fails.
Bastien Montagne [Sat, 20 Aug 2016 12:48:33 +0000 (14:48 +0200)]
Fix T49119: Batch-Generate Previews operator fails.

previews render utils needed to be updated slightly against new behavior of maindata.remove.

3 years agoFix OpenSubdiv driver crash due to recently added uninitialized field.
Alexander Gavrilov [Sat, 20 Aug 2016 10:48:29 +0000 (13:48 +0300)]
Fix OpenSubdiv driver crash due to recently added uninitialized field.

For some reason my NVidia linux driver crashes in
glDeleteTextures when the ID is total garbage.

3 years agoFix crash in OpenVDB highres smoke cache when seeking to frame 0.
Alexander Gavrilov [Sat, 20 Aug 2016 09:03:40 +0000 (12:03 +0300)]
Fix crash in OpenVDB highres smoke cache when seeking to frame 0.

This code obviously should also use the cache_fields flag variable,
like the code for reading the lowres data in the same function.
This is because fluid_fields actually represents the old state before
smoke was reallocated to match cache_fields read from the file, and if
it has some fields enabled that aren't allocated any more, it crashes.

This also fixes a reverse glitch: when a file was loaded with
the current frame in the middle of a baked smoke+fire simulation,
smoke appeared immediately, but the fire didn't until the frame
was changed. The reason is the same: after file load no fields
are initially allocated and thus fluid_fields is 0.

3 years agoAlembic export UI: avoid displaying empty box.
Kévin Dietrich [Sat, 20 Aug 2016 07:30:38 +0000 (09:30 +0200)]
Alembic export UI: avoid displaying empty box.

3 years agoFix T49090: color picking draws wrong when using subsurf in material draw mode.
Brecht Van Lommel [Fri, 19 Aug 2016 21:04:43 +0000 (23:04 +0200)]
Fix T49090: color picking draws wrong when using subsurf in material draw mode.

ccgDM_drawMappedFacesMat was missig a smooth shade model restore, some other
functions were redundantly setting it since we can assume it to be the default
state already.

3 years agoFix T49105: Array modifier displayed in Edit mode crashes on selection, with End...
Bastien Montagne [Fri, 19 Aug 2016 15:00:34 +0000 (17:00 +0200)]
Fix T49105: Array modifier displayed in Edit mode crashes on selection, with End Cap enabled.

Origindex can be invalid, code was not fully protected against it...

3 years agoFix broken keymap loading with disabled ndof - revert part of recent rBb10d0058d72da30
Bastien Montagne [Fri, 19 Aug 2016 13:51:44 +0000 (15:51 +0200)]
Fix broken keymap loading with disabled ndof - revert part of recent rBb10d0058d72da30

ifdef’ing out defines in DNA/RNA is not a good idea, was breaking alternative keymaps loading
from splash screen e.g. (reported by Sergey over IRC, thanks).

3 years ago2D stabilization: Make interface more compact
Sergey Sharybin [Fri, 19 Aug 2016 10:21:13 +0000 (12:21 +0200)]
2D stabilization: Make interface more compact

Joins some things to the same row and uses aligned columns to get
minimum use of vertical space.

Probably still some tweaks required, but getting there :)

3 years agoAlembic: fix crash accessing invalid objects.
Kévin Dietrich [Fri, 19 Aug 2016 03:22:35 +0000 (05:22 +0200)]
Alembic: fix crash accessing invalid objects.

3 years agoFix T49111: Automatically add file path suffix for Alembic and Collada
Kévin Dietrich [Fri, 19 Aug 2016 02:42:12 +0000 (04:42 +0200)]
Fix T49111: Automatically add file path suffix for Alembic and Collada

This aligns the behaviour of the file selection with the other
exporters. The Alembic case would fail if the filepath did not have an
extension set.

Also set a default file name for the Alembic export operator in case the
Blender file was not saved before exporting.

3 years agoCleanup: Remove redundant comment
Julian Eisel [Thu, 18 Aug 2016 23:20:35 +0000 (01:20 +0200)]
Cleanup: Remove redundant comment

3 years agoCycles: Fix wrong allocator used for spatial builder
Sergey Sharybin [Thu, 18 Aug 2016 18:47:14 +0000 (20:47 +0200)]
Cycles: Fix wrong allocator used for spatial builder

3 years agoCleanup: some bad sizeof() usages.
Bastien Montagne [Thu, 18 Aug 2016 14:18:58 +0000 (16:18 +0200)]
Cleanup: some bad sizeof() usages.

3 years agoCleanup/security fix: do not use strcpy (at least in new code).
Bastien Montagne [Thu, 18 Aug 2016 13:45:20 +0000 (15:45 +0200)]
Cleanup/security fix: do not use strcpy (at least in new code).

This function is only really secure in a very limited amount of cases,
and can especially bite you later if you change some buffer sizes...
So not worth bothering with it, just always use BLI_strncpy instead.

3 years agoCleanup for previous commit (nasty IDE replacing tads with spaces, tsst)
Bastien Montagne [Thu, 18 Aug 2016 13:21:53 +0000 (15:21 +0200)]
Cleanup for previous commit (nasty IDE replacing tads with spaces, tsst)

Sorry for the noise :|

3 years agoTwo fixes for optional ndof & fix bplayer for that...
Bastien Montagne [Thu, 18 Aug 2016 13:13:58 +0000 (15:13 +0200)]
Two fixes for optional ndof & fix bplayer for that...

Seriuosly, guys... Please always check that kind of changes with and without affected option, and in full build case.

3 years agoFreestyle: fix wrong arg order, and cleanup confusing loop (both reported by coverity).
Bastien Montagne [Thu, 18 Aug 2016 10:53:33 +0000 (12:53 +0200)]
Freestyle: fix wrong arg order, and cleanup confusing loop (both reported by coverity).

Error: `origin` and `edge` args were swapped in final `FindOccludee()` call of `ViewMapBuilder::ComputeRayCastingVisibility()`

Cleanup: main for loop in `Strip::createStrip()` was really confusing (though correct),
generated a false positive in coverity scan, now should be cleaner how it loops over its vprev/v/v2
triplet of consecutive items.

3 years agoFinal UI messages fixes (for this session...).
Bastien Montagne [Wed, 17 Aug 2016 19:46:38 +0000 (21:46 +0200)]
Final UI messages fixes (for this session...).

3 years agoFix bplayer (c) after NDOF changes from merwin
Thomas Beck [Thu, 18 Aug 2016 09:28:41 +0000 (11:28 +0200)]
Fix bplayer (c) after NDOF changes from merwin

3 years agoCleanup: ifdef function which is only used from ifdef-ed code
Sergey Sharybin [Thu, 18 Aug 2016 08:36:06 +0000 (10:36 +0200)]
Cleanup: ifdef function which is only used from ifdef-ed code

3 years agoNDOF: compile 3D mouse code only if WITH_INPUT_NDOF
Mike Erwin [Thu, 18 Aug 2016 04:21:55 +0000 (00:21 -0400)]
NDOF: compile 3D mouse code only if WITH_INPUT_NDOF

When WITH_INPUT_NDOF is disabled, 3D mouse handling code is removed

- GHOST (was mostly done, finished the job)
- window manager
- various editors
- keymaps

The input tab of user prefs does not show 3D mouse settings. Key map
editor does not show NDOF mappings.

DNA does not change.

On my Mac the compiled binary is 42KB smaller after this change. It
runs fine WITH_INPUT_NDOF on or off.

3 years agoNDOF: suppress buttons debug log
Mike Erwin [Wed, 17 Aug 2016 04:12:28 +0000 (00:12 -0400)]
NDOF: suppress buttons debug log

Accidentally left this in the 3D mouse code. Mac only.

3 years agoFix compiler warning after fix for T48913.
Brecht Van Lommel [Thu, 18 Aug 2016 00:18:39 +0000 (02:18 +0200)]
Fix compiler warning after fix for T48913.

3 years agoCode cleanup to use rather than &array[0]
Brecht Van Lommel [Wed, 17 Aug 2016 21:49:55 +0000 (23:49 +0200)]
Code cleanup to use rather than &array[0]

(Now without the build errors)

3 years agoRevert "Code cleanup to use rather than &array[0]."
Mai Lavelle [Wed, 17 Aug 2016 22:49:18 +0000 (18:49 -0400)]
Revert "Code cleanup to use rather than &array[0]."

This reverts commit 40b367479c6fe23d6f2b6d822f2d5266485619f3.

Didn't build or solve any known issue. Please don't push changes without
testing them first.

3 years agoCode cleanup to use rather than &array[0].
Brecht Van Lommel [Wed, 17 Aug 2016 21:49:55 +0000 (23:49 +0200)]
Code cleanup to use rather than &array[0].

These latter can cause MSVC debug asserts if the array is empty. With C++11
we'll be able to do this for std::vector later. This hopefully fixes an assert
in the Cycles subdivision code.

3 years agoFix T48913: cycles viewport render stuck in loop due to non-unique dupli ID.
Brecht Van Lommel [Sun, 14 Aug 2016 13:33:21 +0000 (15:33 +0200)]
Fix T48913: cycles viewport render stuck in loop due to non-unique dupli ID.

3 years agoFix T49104: normal problem in imported Alembic objects
Kévin Dietrich [Wed, 17 Aug 2016 21:03:34 +0000 (23:03 +0200)]
Fix T49104: normal problem in imported Alembic objects

Recompute the normals if the normals are supposed to be varying (e.g. in
the ISchema).

3 years agoAlembic import: fix scene min/max time computation to take objects with
Kévin Dietrich [Wed, 17 Aug 2016 20:20:15 +0000 (22:20 +0200)]
Alembic import: fix scene min/max time computation to take objects with
transform animations into account.

3 years agoFix T49081: Alembic sampling times are not taking start frame into
Kévin Dietrich [Wed, 17 Aug 2016 20:06:05 +0000 (22:06 +0200)]
Fix T49081: Alembic sampling times are not taking start frame into

This resulted in animations always starting at frame 0.

3 years agoFix/add some tooltips to 'Object Align' operator options.
Aaron Carlisle [Wed, 17 Aug 2016 19:24:13 +0000 (21:24 +0200)]
Fix/add some tooltips to 'Object Align' operator options.

3 years agoFix Bevel crashes T49088 and T48858.
Howard Trickey [Wed, 17 Aug 2016 15:23:11 +0000 (11:23 -0400)]
Fix Bevel crashes T49088 and T48858.

Was calling the fast path for finding edge order in cases
where it should not have been called.

3 years agoCycles: Fix regression where smoke wouldn't show in renders
Mai Lavelle [Wed, 17 Aug 2016 14:33:28 +0000 (10:33 -0400)]
Cycles: Fix regression where smoke wouldn't show in renders

3 years agoFix T49102: Angle option of new GP brush settings is too restricted in value
Antonioya [Wed, 17 Aug 2016 14:23:05 +0000 (16:23 +0200)]
Fix T49102: Angle option of new GP brush settings is too restricted in value

Now the range is between -90 to 90 degrees to give more customization

3 years agoFix T49086: UV Along Stroke can be set as vector input for environment texture
Sergey Sharybin [Wed, 17 Aug 2016 12:51:25 +0000 (14:51 +0200)]
Fix T49086: UV Along Stroke can be set as vector input for environment texture

3 years agoCMake: Move main platform checks to separate files
Sergey Sharybin [Tue, 9 Aug 2016 13:19:11 +0000 (15:19 +0200)]
CMake: Move main platform checks to separate files

Basically title says it all.

The goal is to make platform maintenance easier, so you don't have
to constantly scroll back and forth looking for if() branches to
check which exact platform you're currently working on.

Ideally we also would move option defaults to a platform files,
but that i'm not sure how to implement in a nice way yet.

Reviewers: mont29

Reviewed By: mont29

Differential Revision:

3 years agoMore UI messages fixes and cleanup.
Bastien Montagne [Wed, 17 Aug 2016 10:53:03 +0000 (12:53 +0200)]
More UI messages fixes and cleanup.

3 years ago2D stabilizer: Cover rotation tracks label with enabled flag
Sergey Sharybin [Wed, 17 Aug 2016 08:55:41 +0000 (10:55 +0200)]
2D stabilizer: Cover rotation tracks label with enabled flag

3 years ago2D stabilizer: Use exact getter instead of regular one followed with frame check
Sergey Sharybin [Wed, 17 Aug 2016 08:49:42 +0000 (10:49 +0200)]
2D stabilizer: Use exact getter instead of regular one followed with frame check

3 years ago2D stabilizer: Remove check for markers count in the track
Sergey Sharybin [Wed, 17 Aug 2016 08:47:05 +0000 (10:47 +0200)]
2D stabilizer: Remove check for markers count in the track

This would be a real disaster if track has no markers, which we should
not masquerade and detect such weird cases as soon as possible.

3 years ago2D stabilizer: Remove redundant rows from the interface
Sergey Sharybin [Wed, 17 Aug 2016 08:45:52 +0000 (10:45 +0200)]
2D stabilizer: Remove redundant rows from the interface

3 years ago2D stabilizer: One more occurrence of len() in the drawing code
Sergey Sharybin [Wed, 17 Aug 2016 08:40:34 +0000 (10:40 +0200)]
2D stabilizer: One more occurrence of len() in the drawing code

3 years ago2D Stabilizer: Use more consistent RNA naming for properties
Sergey Sharybin [Wed, 17 Aug 2016 08:36:38 +0000 (10:36 +0200)]
2D Stabilizer: Use more consistent RNA naming for properties

Annoying i did not notice this originally, but for RNA we need to keep
things as much consistent as possible.

3 years ago2D Stabilzier: Don't use len() for checking whether something is enabled or not
Sergey Sharybin [Wed, 17 Aug 2016 08:33:54 +0000 (10:33 +0200)]
2D Stabilzier: Don't use len() for checking whether something is enabled or not

This code runs on every redraw and iterates the whole tracks list, which
is something we should avoid.

3 years agoFix T49100: Replace old tooltip for GPencil brush iterations
Antonioya [Wed, 17 Aug 2016 07:11:58 +0000 (09:11 +0200)]
Fix T49100: Replace old tooltip for GPencil brush iterations

3 years agoGPencil: Change ruler line thickness to make it thicker
Antonioya [Wed, 17 Aug 2016 07:04:50 +0000 (09:04 +0200)]
GPencil: Change ruler line thickness to make it thicker

3 years agoFirst set of UI/i18n messages fixes (mostly new GP code).
Bastien Montagne [Tue, 16 Aug 2016 20:36:26 +0000 (22:36 +0200)]
First set of UI/i18n messages fixes (mostly new GP code).

3 years agoFix T49097: GP ruler data reinstances GP_Palette Color
Antonioya [Tue, 16 Aug 2016 20:28:34 +0000 (22:28 +0200)]
Fix T49097: GP ruler data reinstances GP_Palette Color

If the ruler is saved, a new color was created for each ruler. With the
change, a color is created for the first instance, and it reused in the
following instances. The default color is the current default color for

3 years agoCleanup unused return value (was making coverity sad).
Bastien Montagne [Tue, 16 Aug 2016 16:22:03 +0000 (18:22 +0200)]
Cleanup unused return value (was making coverity sad).

3 years agoMore fixes from coverity report.
Bastien Montagne [Tue, 16 Aug 2016 16:19:52 +0000 (18:19 +0200)]
More fixes from coverity report.

3 years agoFix two memleaks found by coverity.
Bastien Montagne [Tue, 16 Aug 2016 14:15:55 +0000 (16:15 +0200)]
Fix two memleaks found by coverity.

3 years agoFix release build after recent fix for debug one
Sergey Sharybin [Tue, 16 Aug 2016 12:57:56 +0000 (14:57 +0200)]
Fix release build after recent fix for debug one

It's becoming annoying to have public API dependent on build type
and everything. Let's just always have API defined and do stubs
in the function implementation instead.

3 years agoFix depsgraph to compute more accurate links for collision & force.
Alexander Gavrilov [Fri, 12 Aug 2016 15:23:29 +0000 (18:23 +0300)]
Fix depsgraph to compute more accurate links for collision & force.

Current implementation more or less indiscriminately links physics
objects to colliders and forces, ignoring precise details of layer
checks and collider groups. The new depsgraph seemed to lack some
such links at all. The relevant code in modifiers suffers from a
lot of duplication.

Different physics simulations use independent implementations of
collision and similar things, which results in a lot of variance:

* Cloth collides with objects on same or visible layer with dupli.
* Softbody collides with objects on same layer without dupli.
* Non-hair particles collide on same layer with dupli.
* Smoke uses same code as cloth, but needs different modifier.
* Dynamic paint "collides" with brushes on any layer without dupli.

Force fields with absorption also imply dependency on colliders:

* For most systems, colliders are selected from same layer as field.
* For non-hair particles, it uses the same exact set as the particles.

As a special quirk, smoke ignores smoke flow force fields; on the other
hand dependency on such field implies dependency on the smoke domain.

This introduces two utility functions each for old and new depsgraph
that are flexible enough to handle all these variations, and uses them
to handle particles, cloth, smoke, softbody and dynpaint.

One thing to watch out for is that depsgraph code shouldn't rely on
any properties that don't cause a graph rebuild when changed. This
was violated in the original code that was building force field links,
while taking zero field weights into account.

This change may cause new dependency cycles in cases where necessary
dependencies were missing, but may also remove cycles in situations
where unnecessary links were previously created. It's also now possible
to solve some cycles by switching to explicit groups, since they are
now properly taken into account for dependencies.

Differential Revision:

3 years agoFix redundant declarations after recent changes in GPU debug
Sergey Sharybin [Tue, 16 Aug 2016 12:40:23 +0000 (14:40 +0200)]
Fix redundant declarations after recent changes in GPU debug

3 years ago2D stabilizer: Revert majority of UI change
Sergey Sharybin [Tue, 16 Aug 2016 12:25:55 +0000 (14:25 +0200)]
2D stabilizer: Revert majority of UI change

For now simply reshuffle option so they keep proper dependency flow.


- Has an ability to hide tracks lists to work with other sliders around.
  Could be really handy to quickly get rid of lenghty lists.

- From a feedback seems to be fitting workflow better.

Things to doublecheck on:

- Feels a bit misordered: first you define whether one want to have
  rotation stabilized, then have tracks, then scale options.

  While this follows dependency flow (which is really good and which
  we should not violate) it has weird feeling on whether things are
  really where they have to be.

- Autoscale controls visibility of max-scale, can we just make it
  active/inactive instead?

- Autoscale replaces slider with label. Can it be disabled slider
  instead to reduce visual jumping (disabled slider prevents user

Hopefully we'll still want to have collapsable box after re-iterating
over this points, so we don't waste bits in DNA.

3 years ago2D stabilizer: Fix compilation error in debug mode
Sergey Sharybin [Tue, 16 Aug 2016 12:24:06 +0000 (14:24 +0200)]
2D stabilizer: Fix compilation error in debug mode

3 years agoCorrect previous commit, need to indent verisoning code
Sergey Sharybin [Tue, 16 Aug 2016 11:53:29 +0000 (13:53 +0200)]
Correct previous commit, need to indent verisoning code

3 years ago2D stabilization: Modify interface so dependency goes strictly from top to bottom
Sergey Sharybin [Tue, 16 Aug 2016 11:30:47 +0000 (13:30 +0200)]
2D stabilization: Modify interface so dependency goes strictly from top to bottom

3 years agoRework 2D stabilizator
Ichthyostega [Tue, 16 Aug 2016 08:32:55 +0000 (10:32 +0200)]
Rework 2D stabilizator

See this page for motivation and description of concepts:

See this video for UI explanation and demonstration of usage

This proposal attempts to improve usability of Blender's image stabilization
feature for real-world footage esp. with moving and panning camera. It builds
upon the feature tracking to get a measurement of 2D image movement.

  - Use a weighted average of movement contributions (instead of a median).
  - Allow for rotation compensation and zoom (image scale) compensation.
  - Allow to pick a different set of tracks for translation and for
  - Treat translation / rotation / zoom contributions systematically in a
    similar way.
  - Improve handling of partial tracking data with gaps and varying
    start / end points.
  - Have a user definable anchor frame and interpolate / extrapolate data to
    avoid jumping back to "neutral" position when no tracking data is available.
  - Support for travelling and panning shots by including an //intended//
    position/rotation/zoom ("target position"). The idea is for these parameters
    to be //animated// by the user, in order to supply an smooth, intended
    camera movement. This way, we can keep the image content roughly in frame
    even when moving completely away from the initial view.

A known shortcoming is that the pivot point for rotation compensation is set to
the translation compensated image center. This can produce spurious rotation on
travelling shots, which needs to be compensated manually (by animating the
target rotation parameter). There are several possible ways to address that
problem, yet all of them are considered beyond the scope of this improvement
proposal for now.

Own modifications:

- Restrict line length, it's really handy for split-view editing
- In motion tracking we prefer fully human-readable comments, meaning we
  don't use doxygen with it's weird markup and comments are supposed to
  start with capital and end with a full stop,
- Add explicit comparison of pointer to NULL.

Reviewers: sergey

Subscribers: kusi, kdawg, forest-house, mardy, Samoth, plasmasolutions, willolis, sebastian_k, hype, enetheru, sunboy, jta, leon_cheung

Maniphest Tasks: T49036

Differential Revision:

3 years agoOpenGL: ignore deprecated API warnings
Mike Erwin [Mon, 15 Aug 2016 18:55:09 +0000 (14:55 -0400)]
OpenGL: ignore deprecated API warnings

Reduces noise from --debug-gpu so we can spot serious errors.

Blender 2.7x uses OpenGL 2.1, we don't care if features are deprecated.

I'll re-enable these warnings for blender2.8 after next merge.

3 years agoCycles microdisplacement: Allow kernels to be built without patch evaluation
Mai Lavelle [Mon, 15 Aug 2016 13:08:38 +0000 (09:08 -0400)]
Cycles microdisplacement: Allow kernels to be built without patch evaluation

Kernels can now be built without patch evaluation when not needed by the
scene (Catmull-Clark subdivision not in use), giving a performance boost
for some devices.

3 years agoFix Cycles OpenCL textures after recent CUDA fix.
Brecht Van Lommel [Mon, 15 Aug 2016 14:17:47 +0000 (16:17 +0200)]
Fix Cycles OpenCL textures after recent CUDA fix.

kernel_textures.h is included in device_opencl.cpp, so we can't check
__KERNEL_OPENCL__ there.

3 years agoFix OpenGL backtrace build errors, without disabling warnings.
Brecht Van Lommel [Mon, 15 Aug 2016 13:34:41 +0000 (15:34 +0200)]
Fix OpenGL backtrace build errors, without disabling warnings.

3 years agoTentative compile fix after recent gpu debug changes
Jens Verwiebe [Mon, 15 Aug 2016 11:46:38 +0000 (13:46 +0200)]
Tentative compile fix after recent gpu debug changes

3 years agoOpenGL: debug context on Windows
Mike Erwin [Mon, 15 Aug 2016 08:49:07 +0000 (04:49 -0400)]
OpenGL: debug context on Windows

Enable based on --debug-gpu at the command line. Linux already works
this way.

This commit in master (2.78 timeframe) is the smallest change that gets
the desired result. I did a similar commit in blender2.8. Most ongoing
GL debug work will go into 2.8, not 2.7x.

In support of T49089

3 years agoOpenGL: backtrace on errors (--debug-gpu)
Mike Erwin [Mon, 15 Aug 2016 08:00:59 +0000 (04:00 -0400)]
OpenGL: backtrace on errors (--debug-gpu)

Backtrace so we can pinpoint where the GL error came from. Then fflush
on severe errors in case it's severe enough to crash Blender.