11 months agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 27 Nov 2018 00:41:33 +0000 (11:41 +1100)]
Merge branch 'master' into blender2.8

11 months agoFix T56872: Edge slide gives invalid normals
Campbell Barton [Tue, 27 Nov 2018 00:39:51 +0000 (11:39 +1100)]
Fix T56872: Edge slide gives invalid normals

Add the ability to skip overwriting normals.

11 months agoSilence warning (potentially misused twidth)
Dalai Felinto [Mon, 26 Nov 2018 23:54:29 +0000 (21:54 -0200)]
Silence warning (potentially misused twidth)

11 months agoFont textbox overflow: Different methods
Dalai Felinto [Wed, 12 Sep 2018 16:00:30 +0000 (13:00 -0300)]
Font textbox overflow: Different methods

Sometimes the text doesn't fit. What to do in this case?

* Overflow: The default behaviour still is to overflow the text.
* Truncated: If any text box is defined we can also not draw the text
  that goes outside the text boxes.
* Scale to Fit: For single-text box texts we can scale down the text until
  it fits.

To support textboxes we are bisecting the scale until we find a good
match. Right now the hardcoded iteration limit is 20, and the threshold 0.0001f.

An alternative in the future would be to tackle this by integrating existing
layout engines such as HarfBuzz.

Note: Scale to fit won't work for multiple text-boxes if any of them has
either width or height as zero.

Reviewers: campbellbarton
Differential Revision:

Feature development sponsored by Viddyoze.

11 months agoFix crash iterating over empty view layer
Campbell Barton [Mon, 26 Nov 2018 23:25:29 +0000 (10:25 +1100)]
Fix crash iterating over empty view layer

11 months agofix: Collada exporter: take care of parent inverse for exports of Armatures with...
Gaia Clary [Mon, 26 Nov 2018 22:14:25 +0000 (23:14 +0100)]
fix: Collada exporter: take care of parent inverse for exports of Armatures with child objects

11 months agoFix: Collada Importer: Keep bindinfo option is not properly handled
Gaia Clary [Mon, 26 Nov 2018 22:11:29 +0000 (23:11 +0100)]
Fix: Collada Importer: Keep bindinfo option is not properly handled

Actually the option was not at all used and the importer always created the bindinfo custom properties.

11 months agofix: Collada: The limit precision option does nothing
Gaia Clary [Mon, 26 Nov 2018 22:05:55 +0000 (23:05 +0100)]
fix: Collada: The limit precision option does nothing

11 months agoGP: Correct Tonemapping for Blend Layers
Antonioya [Mon, 26 Nov 2018 21:52:28 +0000 (22:52 +0100)]
GP: Correct Tonemapping for Blend Layers

11 months agoGP: Make Multiply blend works with opacity
Antonioya [Mon, 26 Nov 2018 21:19:46 +0000 (22:19 +0100)]
GP: Make Multiply blend works with opacity

11 months agoCleanup: style, includes
Campbell Barton [Mon, 26 Nov 2018 21:00:49 +0000 (08:00 +1100)]
Cleanup: style, includes

11 months agoFix T57930 : Wrong hair shading in particle edit mode
Clément Foucault [Mon, 26 Nov 2018 19:34:04 +0000 (20:34 +0100)]
Fix T57930 : Wrong hair shading in particle edit mode

Implement strand selection visualisation but without any shading.

I think this is not the overlay job to draw the strands shaded.

We can already view the children strands shaded for now but we might add
an option to draw the shaded strand instead of (or in addition to) the
guide strand.

11 months agoDRW: Cleanup: Fix missing uniform warning in curve edit mode
Clément Foucault [Mon, 26 Nov 2018 14:34:39 +0000 (15:34 +0100)]
DRW: Cleanup: Fix missing uniform warning in curve edit mode

11 months agoDRW: Hair: Fix hairs not working properly with duplis
Clément Foucault [Mon, 26 Nov 2018 14:34:10 +0000 (15:34 +0100)]
DRW: Hair: Fix hairs not working properly with duplis

Fix T55355 Instanced hair not working well for EEVEE and workbench

11 months agoDRW: Add access to object dupli parent
Clément Foucault [Mon, 26 Nov 2018 14:23:16 +0000 (15:23 +0100)]
DRW: Add access to object dupli parent

11 months agoMOD_shrinkwrap: do not compute mesh when not needed.
Bastien Montagne [Mon, 26 Nov 2018 19:43:35 +0000 (20:43 +0100)]
MOD_shrinkwrap: do not compute mesh when not needed.

This modifier only uses mesh to get vgroup, which is only needed in case
modified object is indeed a mesh! Building a mesh from curve here is not
only useless and time-consuming, it will also easily fail the assert
about same number of vertices!

Note that surface_project and subsurf option also need more work at some
point, but this is probably not that urgent for now.

Also, use MOD_get_vgroup() helper in modifier code itself and pass
resulting MDeformVert & index to BKE_shrinkwrap's `shrinkwrapModifier_deform()`,
this is simpler and avoids duplicating vgroup handling code.

Related to T57972.

11 months agoMOD_curve: do not compute mesh when not needed.
Bastien Montagne [Mon, 26 Nov 2018 10:46:20 +0000 (11:46 +0100)]
MOD_curve: do not compute mesh when not needed.

This modifier only uses mesh to get vgroup, which is only needed in case
modified object is indeed a mesh! Building a mesh from curve here is not
only useless and time-consuming, it will also easily fail the assert
about same number of vertices!

Also, use MOD_get_vgroup() helper in modifier code itself and pass
reluting MDeformVert & index to BKE_curve's curve_deform_verts(),
this is simpler and avoids duplicating vgroup handling code.

Also fixes crash when used on lattice.

Related to T57972.

11 months agoMOD_cast: do not compute mesh when not needed.
Bastien Montagne [Mon, 26 Nov 2018 10:30:46 +0000 (11:30 +0100)]
MOD_cast: do not compute mesh when not needed.

This modifier only uses mesh to get vgroup, which is only needed in case
modified object is indeed a mesh! Building a mesh from curve here is not
only useless and time-consuming, it will also easily fail the assert
about same number of vertices!

Also fixes crash when used on lattice.

Related to T57972.

11 months agoTimer: Generic BLI_timer with Python wrapper
Jacques Lucke [Mon, 26 Nov 2018 19:25:15 +0000 (20:25 +0100)]
Timer: Generic BLI_timer with Python wrapper

There is a new `` api.
For more details, look in the Python API documentation.

Reviewers: campbellbarton

Differential Revision:

11 months agoUI: rename "OpenGL" render engine to "Workbench".
Brecht Van Lommel [Mon, 26 Nov 2018 18:00:01 +0000 (19:00 +0100)]
UI: rename "OpenGL" render engine to "Workbench".

Neither is very descriptive for its task, but at least workbench is more
future proof and distinguishes it from Eevee.

11 months agoFix broken face select in paint modes with RMB select.
Brecht Van Lommel [Mon, 26 Nov 2018 17:35:56 +0000 (18:35 +0100)]
Fix broken face select in paint modes with RMB select.

11 months agoViewport: implement hiding faces in paint modes.
Alexander Gavrilov [Sun, 25 Nov 2018 15:34:28 +0000 (18:34 +0300)]
Viewport: implement hiding faces in paint modes.

In 2.79 hiding works in paint modes with selection enabled,
so it is a missing feature. This implements it in texture
paint overlays and in workbench base shading.

Reviewers: fclem

Differential Revision:

11 months agoGP: New Blend Layers functionality
Antonioya [Mon, 26 Nov 2018 17:12:39 +0000 (18:12 +0100)]
GP: New Blend Layers functionality

Now it's possible define the blend mode between layers including the option to clamp the layer using underlying layers.

Also a new Simplify option has been added to disable blend layers.

11 months agoWorkbench: Add Curvature overlay for better visibility of surface detail for e.g...
Lukas Stockner [Mon, 26 Nov 2018 15:49:56 +0000 (16:49 +0100)]
Workbench: Add Curvature overlay for better visibility of surface detail for e.g. sculpting

The approach is fairly simple, just apply an edge detection filter to the view normal and scale the brightness based on that.

The overlay is disabled at object boundaries to avoid dark lines around objects.

Generally, this implementation follows the proposal of @monio at
The changes are:
- Dynamic filter radius (on high-DPI displays, a radius of two is used)
- Options to reduce the strength of both ridges and valleys
- Tweaked function for the strength reduction (the original method actually had a local maximum, resulting in a brighter line inside valleys)
- Multiplication for blending instead of overlay, which doesn't work reliably with scene-referred intensities
- Renamed to point out the distinction between it and the SSAO-based cavity overlay

Reviewers: jbakker

Reviewed By: jbakker

Subscribers: billreynish, manitwo, linko, monio

Differential Revision:

11 months agoFix view layer set in the outliner of child window not syncing to parent window.
Brecht Van Lommel [Mon, 26 Nov 2018 15:57:59 +0000 (16:57 +0100)]
Fix view layer set in the outliner of child window not syncing to parent window.

11 months agoKeymaps: for LMB keymap, add ctrl+LMB to select bones in weight paint mode.
Brecht Van Lommel [Mon, 26 Nov 2018 15:25:11 +0000 (16:25 +0100)]
Keymaps: for LMB keymap, add ctrl+LMB to select bones in weight paint mode.

11 months agoKeymaps: don't do CLICK event when PRESS was already handled.
Brecht Van Lommel [Mon, 26 Nov 2018 13:50:09 +0000 (14:50 +0100)]
Keymaps: don't do CLICK event when PRESS was already handled.

This fixes conflicts where the tool and editor keymap use different event
types. Tools need to be able to mouse buttons on PRESS without triggering
CLICK events in the editor keymap.

11 months agoEnable OpenSubdiv modifier by default
Sergey Sharybin [Mon, 26 Nov 2018 14:39:08 +0000 (15:39 +0100)]
Enable OpenSubdiv modifier by default

This commit makes it so that subsurf/multires modifiers will respect
now gone.

For artists it mean that subsurf modifier will behave same as it is
planned for 2.80. Multires will now support sculpting, but it has some
known limitations. Those will be worked on before the final release.

If OpenSubdiv is disabled, no subsurf/multires functionality will

For the details see:

11 months agoInline function BKE_mesh_boundbox_calc inside BKE_mesh_texspace_calc to avoid confusion.
mano-wii [Mon, 26 Nov 2018 12:48:27 +0000 (10:48 -0200)]
Inline function BKE_mesh_boundbox_calc inside BKE_mesh_texspace_calc to avoid confusion.

11 months agoHide OpenSubdiv compute device
Sergey Sharybin [Mon, 26 Nov 2018 13:21:24 +0000 (14:21 +0100)]
Hide OpenSubdiv compute device

That is only used by GPU side of OpenSubdiv, which was not yet
brought back.

11 months agoKeymaps: keep Select Box as default tool.
Brecht Van Lommel [Mon, 26 Nov 2018 12:51:30 +0000 (13:51 +0100)]
Keymaps: keep Select Box as default tool.

11 months agoFix gizmos not using same tweak threshold as other places.
Brecht Van Lommel [Mon, 26 Nov 2018 12:46:20 +0000 (13:46 +0100)]
Fix gizmos not using same tweak threshold as other places.

The low hardcoded threshold made clicking on the navigation gizmo difficult
on tablets.

11 months agoUI: expand tooltips for left/right click select.
Brecht Van Lommel [Mon, 26 Nov 2018 11:18:28 +0000 (12:18 +0100)]
UI: expand tooltips for left/right click select.

11 months agoFix inverted texture paint overlay display icons.
Alexander Gavrilov [Mon, 26 Nov 2018 11:52:24 +0000 (14:52 +0300)]
Fix inverted texture paint overlay display icons.

11 months agoDefaults: set "release confirms", for transform tweak with single click and drag.
Brecht Van Lommel [Mon, 26 Nov 2018 11:18:28 +0000 (12:18 +0100)]
Defaults: set "release confirms", for transform tweak with single click and drag.

The old behavior with two clicks evolved out of a gesture system, and it can
have some advantages if you want to press more keys to constrain for example. But
this seems a better default.

11 months agoMerge branch 'master' into blender2.8
Sergey Sharybin [Mon, 26 Nov 2018 11:00:36 +0000 (12:00 +0100)]
Merge branch 'master' into blender2.8

11 months agoCMake: Remove Cycles specific OpenSubdiv options
Sergey Sharybin [Mon, 26 Nov 2018 10:41:38 +0000 (11:41 +0100)]
CMake: Remove Cycles specific OpenSubdiv options

Just use one flag which enables OpenSubdiv globally for all the
areas of Blender.

11 months agoFix texture space not updating in edit mode.
mano-wii [Sun, 25 Nov 2018 19:47:54 +0000 (17:47 -0200)]
Fix texture space not updating in edit mode.

11 months agotransform_snap_object: fix ray_start_correction in snap to edit_mesh.
mano-wii [Sun, 25 Nov 2018 19:15:05 +0000 (17:15 -0200)]
transform_snap_object: fix ray_start_correction in snap to edit_mesh.

11 months agoFix T56167: Crash when extruding + snap to face.
mano-wii [Sun, 25 Nov 2018 18:00:26 +0000 (16:00 -0200)]
Fix T56167: Crash when extruding + snap to face.

This is a local fix.
The problem with duplicate looptris still remains.
That is, it can still be released in one place but not upgraded in the other.

(note: setting the looptris to NULL in the evaluated mesh and assert whether it is still NULL when the mesh is freed could indicate where those cases are).

11 months agoFix T57985: Out of the edit mode, the texture space is affected by the modifiers...
Bastien Montagne [Mon, 26 Nov 2018 09:29:13 +0000 (10:29 +0100)]
Fix T57985: Out of the edit mode, the texture space is affected by the modifiers of a mesh.

Go for the simple solution for now (disable auto-texspace in evaluated mesh).
Proper fix would be part of known TODO redesign of bbox handling.

Solution suggested by @sergey, thanks!

11 months agoFix T58032: particle children 'Use Clump Curve' crash
Philipp Oeser [Sun, 25 Nov 2018 13:21:02 +0000 (14:21 +0100)]
Fix T58032: particle children 'Use Clump Curve' crash

Maniphest Tasks: T58032

Differential Revision:

11 months agoUI: collapse redo panel by default
Campbell Barton [Mon, 26 Nov 2018 06:43:58 +0000 (17:43 +1100)]
UI: collapse redo panel by default

For some operators this fills a lot of vertical space,
users can expand it if they need.

Also remove workaround for T56752 (now fixed).

11 months agoCorrect last commit
Campbell Barton [Mon, 26 Nov 2018 06:43:23 +0000 (17:43 +1100)]
Correct last commit

Initial display was fixed, broke refreshing.

11 months agoUI: fix glitch showing redo panel
Campbell Barton [Mon, 26 Nov 2018 06:29:02 +0000 (17:29 +1100)]
UI: fix glitch showing redo panel

There were still cases it would show for the first time w/o content.

11 months agoFix crash accessing mesh.point_normals default
Campbell Barton [Mon, 26 Nov 2018 05:26:47 +0000 (16:26 +1100)]
Fix crash accessing mesh.point_normals default

This memory needs to be static,
in this case the argument isn't needed so remove it.

11 months agoKeymap: use 'W' key for select toolbar shortcut
Campbell Barton [Mon, 26 Nov 2018 05:10:00 +0000 (16:10 +1100)]
Keymap: use 'W' key for select toolbar shortcut

11 months agoCleanup: remove unused code & add comments
Campbell Barton [Mon, 26 Nov 2018 05:07:03 +0000 (16:07 +1100)]
Cleanup: remove unused code & add comments

11 months agoFix T58027: Scene.ray_cast crash
Campbell Barton [Mon, 26 Nov 2018 04:50:59 +0000 (15:50 +1100)]
Fix T58027: Scene.ray_cast crash


D3987 by @Soundwave

11 months agoFix object selection in edit-mode
Campbell Barton [Mon, 26 Nov 2018 04:28:59 +0000 (15:28 +1100)]
Fix object selection in edit-mode

Ctrl-RMB in edit-mode is needed for setting vertex parent.

11 months agoFix proportional edit-mode w/ multi-object editing
Campbell Barton [Mon, 26 Nov 2018 03:20:51 +0000 (14:20 +1100)]
Fix proportional edit-mode w/ multi-object editing

D3992 by @Al

11 months ago3D View: remove 3D cursor
Campbell Barton [Mon, 26 Nov 2018 02:49:17 +0000 (13:49 +1100)]
3D View: remove 3D cursor

Use 3D cursor from the scene (was previously used for local-view).

11 months agoFix extended shading pie menu not having same order as before.
Brecht Van Lommel [Mon, 26 Nov 2018 00:00:05 +0000 (01:00 +0100)]
Fix extended shading pie menu not having same order as before.

11 months agoCleanup: unused vars, imports
Campbell Barton [Sun, 25 Nov 2018 22:27:25 +0000 (09:27 +1100)]
Cleanup: unused vars, imports

11 months agoCleanup: unused vars
Campbell Barton [Sun, 25 Nov 2018 22:26:38 +0000 (09:26 +1100)]
Cleanup: unused vars

11 months agoCleanup: unused vars, imports
Campbell Barton [Sun, 25 Nov 2018 22:26:15 +0000 (09:26 +1100)]
Cleanup: unused vars, imports

11 months agoFix some errors in the Blender Light theme.
Brecht Van Lommel [Sun, 25 Nov 2018 19:36:47 +0000 (20:36 +0100)]
Fix some errors in the Blender Light theme.

11 months agoFix missing versioning code for user preferences navigation bar.
Brecht Van Lommel [Sun, 25 Nov 2018 19:13:09 +0000 (20:13 +0100)]
Fix missing versioning code for user preferences navigation bar.

11 months agoTools: add Select tool, with transform tweak on drag and no click delay.
Brecht Van Lommel [Thu, 22 Nov 2018 15:05:28 +0000 (16:05 +0100)]
Tools: add Select tool, with transform tweak on drag and no click delay.

For users that want the 2.7 LMB keymap behavior, this provides a way of
working without tools interfering. For RMB select this operator is quite
redundant with the Cursor tool, we may have to find a solution for that.

Note that we also might later add transform tweak to the transform tools,
when nothing is selected. But this is important for existing users who
preferred the existing workflow.

11 months agoKeymaps: add 3D view click empty space to deselect all.
Brecht Van Lommel [Sun, 25 Nov 2018 17:59:58 +0000 (18:59 +0100)]
Keymaps: add 3D view click empty space to deselect all.

The implementation of this operator was modified to be more efficient and
ensure the undo history has the exact operator used.

11 months agoCleanup: Silent compiler warning
Antonioya [Sun, 25 Nov 2018 19:00:18 +0000 (20:00 +0100)]
Cleanup: Silent compiler warning

A void function cannot return a value.

11 months agoUI: Disable font shadow in tooltip
Julian Eisel [Sun, 25 Nov 2018 17:48:52 +0000 (18:48 +0100)]
UI: Disable font shadow in tooltip

When I added this a few years ago, it was meant to create a fake bold effect.
With the new text shadow drawing code, that doesn't work well though.

11 months agoFix mesh_build_data() calling mesh_finalize_eval() before copying texspace.
Bastien Montagne [Sun, 25 Nov 2018 17:39:57 +0000 (18:39 +0100)]
Fix mesh_build_data() calling mesh_finalize_eval() before copying texspace.

mesh_finalize_eval() may set ob->data to evaluated mesh, needs to be
done *after* call to BKE_mesh_texspace_copy_from_object(), else that one
is meaningless.

Related to investigations on T57985, but does not solve it at all. :(

11 months agoCleanup: remove useless redundant NULL check.
Bastien Montagne [Sun, 25 Nov 2018 17:36:43 +0000 (18:36 +0100)]
Cleanup: remove useless redundant NULL check.

11 months agoFix T57070, T57389, and other bbox-related issues with meshes.
Bastien Montagne [Sun, 25 Nov 2018 16:16:11 +0000 (17:16 +0100)]
Fix T57070, T57389, and other bbox-related issues with meshes.

Thinks whole bbox code needs a complete rewrite, one can see a lot of
old history in it, it has way too many functions doing
nearly-the-same-thing(c), it spreads in very inconsistent ways across a
lot of files, ... But have no time for this right now, and would not be
a good idea with Beta comming up close anyway.

So for now going the simple and (hopefully) sane & safe way: forbid
object-level functions to affect data-level bbox. Mesh and curve ones
would generate bbox in obdata instead of object, for some reason (all
other obdata types only use object's bbox ever). That may have been
working in old ages, but with CoW and threaded depsgraph this is just
calling for piles of issues.

11 months agoUI: Disable font shadow in tabs
Julian Eisel [Sun, 25 Nov 2018 17:34:07 +0000 (18:34 +0100)]
UI: Disable font shadow in tabs

This was used to fake a 3D look, however that doesn't work well with the new,
flat style. It just made text appear blurry.

11 months agoUI: Initial User-Preferences redesign
Julian Eisel [Sun, 25 Nov 2018 15:21:35 +0000 (16:21 +0100)]
UI: Initial User-Preferences redesign

Implements the first changes for T54115:

* Rename "User Preferences" window to "Settings" in the UI.
  We'll likely put workspace settings in there, separate from the global
  user settings. System settings should become separate from user
  settings in future to allow settings for specific hardware.
* Add sidebar region for navigation (scrolls independently).
  Addresses space problems, so we can add more categories as needed now.
* Increase size of Settings window to compensate new navigation bar.
* Group sections into User Preferences and System.
  Icons for section groups by Andrzej Ambroz. Thanks!
* Bumps subversion for file compatibility.


I also added categories for future work, but commented them out.
We may also want to redesign contents of each section now.

Reviewers: brecht, campbellbarton
Differential Revision:
Design Task:

11 months agoTexture Paint: prevent normal angle masking duplicating backface culling.
Alexander Gavrilov [Sun, 25 Nov 2018 15:50:21 +0000 (18:50 +0300)]
Texture Paint: prevent normal angle masking duplicating backface culling.

If backface culling is off, the user obviously wants to paint on
back faces, so the normal angle cutoff designed to prevent painting
at glancing angles shouldn't do the culling as a side effect.

11 months agoLocal View
Dalai Felinto [Sun, 25 Nov 2018 11:50:34 +0000 (09:50 -0200)]
Local View

Bring back per-viewport localview. This is based on Blender 2.79.
We have a limit of 16 different local view viewports.

We are using both the numpad /, as well as the regular /.

Missing features:
* Hack to make sure lights are always visible.
* Make rendered mode with external engines to support this as well
  (probably just need to support this in the RNA iterators).
* Support over 16 viewports by taking existing viewports out of local view.

The code can use a cleanup pass in the future to unify the test to see
if an object is visible (or we can use TESTBASE in more places).

11 months agoUse orig_pchan when searching for the original copy of a constraint.
Alexander Gavrilov [Sun, 25 Nov 2018 07:58:30 +0000 (10:58 +0300)]
Use orig_pchan when searching for the original copy of a constraint.

11 months agoFix box select of edges not working when box does not fully contain edge.
Brecht Van Lommel [Sun, 25 Nov 2018 01:12:48 +0000 (02:12 +0100)]
Fix box select of edges not working when box does not fully contain edge.

11 months agoAddons: enable GLTF 2.0 addon by default.
Brecht Van Lommel [Sat, 24 Nov 2018 22:46:40 +0000 (23:46 +0100)]
Addons: enable GLTF 2.0 addon by default.

11 months agoMerge branch 'master' into blender2.8
Brecht Van Lommel [Sat, 24 Nov 2018 22:44:17 +0000 (23:44 +0100)]
Merge branch 'master' into blender2.8

11 months agoFix T58006: smart UV project island margin should not use length units.
Brecht Van Lommel [Sat, 24 Nov 2018 22:01:50 +0000 (23:01 +0100)]
Fix T58006: smart UV project island margin should not use length units.

This distance is in UV space, not world space.

11 months agoSequencer: remove unnecessary limit on transform rotation.
Brecht Van Lommel [Fri, 9 Nov 2018 09:05:06 +0000 (10:05 +0100)]
Sequencer: remove unnecessary limit on transform rotation.

11 months agoFix X11 tablet pen and eraser distinction being wrong in some cases.
Brecht Van Lommel [Sat, 24 Nov 2018 22:21:13 +0000 (23:21 +0100)]
Fix X11 tablet pen and eraser distinction being wrong in some cases.

This extends the earlier fix to use the latest logic from Wine's wintab.c,
to better handle eraser detection.

11 months agoMerge branch 'master' into blender2.8
Campbell Barton [Sat, 24 Nov 2018 21:06:22 +0000 (08:06 +1100)]
Merge branch 'master' into blender2.8

11 months agoCleanup: remove unused file
Campbell Barton [Sat, 24 Nov 2018 21:05:42 +0000 (08:05 +1100)]
Cleanup: remove unused file

11 months agoMerge branch 'master' into blender2.8
Campbell Barton [Sat, 24 Nov 2018 21:01:30 +0000 (08:01 +1100)]
Merge branch 'master' into blender2.8

11 months agoCleanup: trailing space
Campbell Barton [Sat, 24 Nov 2018 21:01:14 +0000 (08:01 +1100)]
Cleanup: trailing space

11 months agoFix T56374, T57066, T58037: crash on startup on macOS when using translation.
Brecht Van Lommel [Sat, 24 Nov 2018 18:21:35 +0000 (19:21 +0100)]
Fix T56374, T57066, T58037: crash on startup on macOS when using translation.

11 months agoFix random color drawing having similar colors for similar names.
Brecht Van Lommel [Sat, 24 Nov 2018 17:37:21 +0000 (18:37 +0100)]
Fix random color drawing having similar colors for similar names.

11 months agoFix T58022: Changing workspace may change layout of User Pref window
Julian Eisel [Sat, 24 Nov 2018 18:20:31 +0000 (19:20 +0100)]
Fix T58022: Changing workspace may change layout of User Pref window

Logic to update child windows on workspace changes should simply ignore
temporary child windows. Users opened those for a specific purpose (i.e. edit
user preferences or show render result). Blender should not come in and
repurpose it.

11 months agoFix penpressure for tablets that use libinput on linux
Jens Verwiebe [Sat, 24 Nov 2018 17:23:57 +0000 (18:23 +0100)]
Fix penpressure for tablets that use libinput on linux

11 months agorefactor: Collada reorganize class constructors
Gaia Clary [Sat, 24 Nov 2018 13:24:36 +0000 (14:24 +0100)]
refactor: Collada reorganize class constructors

- Class constructors without body (only attribute initialisations)
  can safely be kept in the class header files

- Constructor variables should be initialized in the order of their
  definition in the header files

This change is also aimed to remove a couple of
build warnings from the linux builds.

11 months agoKeymap: preference for extended shading menu
Campbell Barton [Sat, 24 Nov 2018 00:24:34 +0000 (11:24 +1100)]
Keymap: preference for extended shading menu

This brings back the option to have x-ray & overlay toggle.

11 months agoDepsgraph: add a new operation node for computing B-Bone segments.
Alexander Gavrilov [Thu, 22 Nov 2018 10:38:03 +0000 (13:38 +0300)]
Depsgraph: add a new operation node for computing B-Bone segments.

Computing the shape of a B-Bone is a quite expensive operation, and
there are multiple constraints that can access this information in
a variety of useful ways. This means computing the shape once per
bone and saving it is good for performance.

Since the shape may depend on the position of up to two other bones,
often in a "cyclic" manner, this computation has to be a separate
node with its own dependencies.

Reviewers: sergey

Differential Revision:

11 months agofix: Collada: used wrong Enumeration type for comparison
Gaia Clary [Fri, 23 Nov 2018 18:23:55 +0000 (19:23 +0100)]
fix: Collada: used wrong Enumeration type for comparison

11 months agofix: collada: must use case sensitive filename in include
Gaia Clary [Fri, 23 Nov 2018 18:23:16 +0000 (19:23 +0100)]
fix: collada: must use case sensitive filename in include

11 months agofix: Collada: use reference to BezTriple instead of copy
Gaia Clary [Fri, 23 Nov 2018 18:21:29 +0000 (19:21 +0100)]
fix: Collada: use reference to BezTriple instead of copy

11 months agofix: compiler errors on mac_x86_64_10_9
Gaia Clary [Fri, 23 Nov 2018 17:38:07 +0000 (18:38 +0100)]
fix: compiler errors on mac_x86_64_10_9

11 months agocleanup: Collada: remove unused variables
Gaia Clary [Fri, 23 Nov 2018 17:36:52 +0000 (18:36 +0100)]
cleanup: Collada: remove unused variables

11 months agoPass viewport to BASE_ related tests, for viewport view/select restrictions
Dalai Felinto [Fri, 23 Nov 2018 16:41:38 +0000 (14:41 -0200)]
Pass viewport to BASE_ related tests, for viewport view/select restrictions

Note: functions like select all are still not respecting that.
I will fix this as part of the local view commit though.

11 months agoDRW: Make non Mesh object wire show in edit mode
Clément Foucault [Fri, 23 Nov 2018 17:03:08 +0000 (18:03 +0100)]
DRW: Make non Mesh object wire show in edit mode

11 months agoDRW: Support Wireframe for metaball objects
Clément Foucault [Fri, 23 Nov 2018 17:02:34 +0000 (18:02 +0100)]
DRW: Support Wireframe for metaball objects

11 months agoGP: Avoid crash when adding new layer
Antonioya [Fri, 23 Nov 2018 16:34:27 +0000 (17:34 +0100)]
GP: Avoid crash when adding new layer

11 months agoIcons: add Select tool icon.
Brecht Van Lommel [Fri, 23 Nov 2018 15:21:44 +0000 (16:21 +0100)]
Icons: add Select tool icon.

11 months agoKeymaps: fix broken LMB select and transform tweak in 2D editors.
Brecht Van Lommel [Fri, 23 Nov 2018 14:52:10 +0000 (15:52 +0100)]
Keymaps: fix broken LMB select and transform tweak in 2D editors.

11 months agoPartial rewrite of the Collada Module for Blender 2.8
Gaia Clary [Fri, 23 Nov 2018 14:57:45 +0000 (15:57 +0100)]
Partial rewrite of the Collada Module for Blender 2.8

Most important changes are in the Animation exporter and Animation Importer.
There is still some cleaning up to be done. But the Exporter/Importer basically
work within Blender 2.8

Some details:

User Interface:
The interface has been reorganized to look more like the FBX interface.

New options in user interface:

* keep_keyframes:
  When sampling the distance between 2 keyframes is defined by
  the sampling rate. Furthermore the keyframes defined in the
  FCurves are not exported. However when this option is enabled
  then also the defined keyframes will be added to the exported fcurves

* keep_smooth_curves:
  When sampling we do not use FCurves. So we also have no Curve handles
  for smooth exporting. However when this option is enabled, Blender
  does its best to recreate the handles for export. This is a very
  experimental feature and it is know to break when:

  - the exported animated objects have parent inverse matrices
    different from the unit matrix
  - The exported objects have negative scaling

  There may be many other situations when this feature breaks.
  This needs to be further tested. It may be removed later or replaced
  by something less wonky.

is a new class that contains the bridge to Blender. It contains
pointers to the current export/import context plus derived values
of Depsgraph, Scene, Main

I reorganized the output on the Blender Console to become more
informative and more readable

Preservation of Item names:
name attributes are now encoded with XML entities. This makes
sure that i can export/import names exactly defined in the tool.
This affects material names, bone names and object names.

Hierarchy export:
* Object and Bone Hierarchies are now exported correctly
  by taking the Blender parent/child hierarchy into account
* Export also not selected intermediate objects

  When we export an Object Hierarchy, then we must export
  all elements of the hierarchy to maintain the transforms. This
  is especially important when exporting animated objects, because the
  animation curves are exported as relative curves based on the
  parent-child hierarchy. If an intermediate animated object is missing
  then the exported animation breaks.

  If the "Selected" Optioon is enabled, then take care
  to also export all objects which are not selected and hidden,
  but which are parents of selected objects.

Node Based Material Importer (wip):
Added basic support for Materials with diffuse color and
diffuse textures. More properties (opacity, emission) need
changes in the used shader.
Note: Materials are all constructed by using the principled BSDF shader.

Animation Exporter:
* Massive optimization of the Animation Bake tool (Animation Sampler).
  Instead of sampling each fcurve separately, i now sample all
  exported fcurves simultaneously. So i avoid many (many!)
  scene updates during animation export.
* Add support for Continuous Acceleration (Fcurve handles)
  This allows us to create smoother FCurves during importing Collada
  Animation curves. Possibly this should become an option ionstead of
  a fixed import feature.
* Add support for sampling curves (to bake animations)
* The animation sampler now can be used for any animation curve.
  Before the sampler only looked at curves which are supported by
  Standard Collada 1.4. However the Collada exporter currently
  ignores all animation curves which are not covered by the 1.4.1
  Collada Standards. There is still some room for improvements
  here (work in progres)

  Known issues:

    * Some exports do currently not work reliably, among those
      are the camera animations, material animations and light animations
      those animations will be added back next (work in progres)

    * Exporting animation curves with keyframes (and tangents)
      sometimes results in odd curves (when parent inverse matrix is involved)
      This needs to be checked in more depth (probably it can not be solved).

    * Export of "all animations in scene" is disabled because the
      Collada Importer can not handle this reliably at the
      moment (work in progres).

* Support for Animation Clip export
  Added one extra level to the exported animations
  such that now all scene animations are enclosed:

  <Animation name="id_name(ob)_Action">

Animation Importer:
* Import of animations for objects with multiple materials
  When importing multiple materials for one object,
  the imported material animation curves have all been
  assigned to the first material in the object.

Error handling (wip):
The Importer was a bit confused as it sometimes ignored fatal
parsing errors and continued to import. I did my best to
unconfuse it, but i believe that this needs to be tested more.


update : move generation of effect id names into own function
update : adjust importer/exporter for no longer supported HEMI lights
cleanup: Removed no lopnger existing attribute from the exporter presets
cleanup: Removed not needed Context attribute from DocumentExporter
fix    : Avoid duplicate deletion of temporary items
cleanup: fixed indentation and white space issues
update : Make BCAnimation class more self contained
cleanup: Renamed classes, updated comments for better reading
cleanup: Moved static class functions to collada_utils
cleanup: Moved typedefs to more intuitive locations
cleanup: indentation and class method declarations
cleanup: Removed no longer needed methods
update : Moved Classes into separate files
cleanup: Added comments
cleanup: take care of name conventions
...    : many more small changes, not helpful to list them all

11 months agoFix T57996: Crash - delete node with a driven parameter
Sergey Sharybin [Fri, 23 Nov 2018 16:02:55 +0000 (17:02 +0100)]
Fix T57996: Crash - delete node with a driven parameter