Commit Graph

15552 Commits

Author SHA1 Message Date
Sergey Sharybin
d6d5c436e3 Subdiv: Cleanup, better naming yet again 2018-11-01 15:45:57 +01:00
Sergey Sharybin
623574ffa2 Subdiv: Cleanup, de-duplicate some code 2018-11-01 15:20:50 +01:00
Sergey Sharybin
d710cb91b9 Subdiv: Cleanup, de-duplicate tangent matrix calculation 2018-11-01 15:20:50 +01:00
Sergey Sharybin
c2aa8d03f2 Subdiv: Cleanup. better naming 2018-11-01 15:20:50 +01:00
Sergey Sharybin
34ec716352 Subdiv: Cleanup, deduplicate some code 2018-11-01 15:20:50 +01:00
Dalai Felinto
ae87adc73a Font cleanup: use ELEM 2018-10-31 21:45:27 -03:00
Campbell Barton
798cd8a723 Cleanup: style 2018-11-01 07:32:13 +11:00
Clément Foucault
f14315bac4 Eevee: Fix wrong default overscan value 2018-10-31 19:40:08 +01:00
Clément Foucault
cde64619ca Eevee: Implement Overscan option
This option make the internal render size larger than the output size in
order to minimize screenspace effects disapearing at the render edges.

The overscan size added around the render is the maximum dimension
multiplied by the overscan percentage.
2018-10-31 18:32:54 +01:00
Alexander Gavrilov
748b89f124 Allow changing B-Bone custom handle references from Pose Mode.
@jpbouza was rather upset these were made read-only, and unlike
parents, it's not that hard to allow changing these Bone fields:
all is needed is to carefully refresh the matching fields in the
relevant bPoseChannel objects and properly tag update.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3870
2018-10-31 20:04:01 +03:00
Sergey Sharybin
a2a8e71210 OpenSubdiv: API, expose vertex boundary interpolation option
Only affects internal API, bout could be exposed as an option for
the compatibility reasons with other software.

Is a part of some ongoing development of multires, but might or
might not be used.
2018-10-31 17:47:40 +01:00
Jacques Lucke
a3802f66e2 Image Empties: More visibility settings
Support for showing images in background/foreground and only in perspective/orthographic view.

Internally the depth of the image is modified in the fragment shader by setting `gl_FragDepth` explicitly.

The UI still needs some work to improve usability, see D3863 for details.
Currently there is one duplicated function, not sure how to best deduplicate it yet. (`is_image_empty_visible`)

Reviewer: fclem, brecht, campbellbarton

Differential Revision: https://developer.blender.org/D3863
2018-10-31 13:42:33 +01:00
Bastien Montagne
08a92d8578 UI/Unique ID name: add library ID name if present.
Also reshuffle a bit that whole code, did some renaming,
`BKE_id_to_unique_string_key()` is now using same base code (instead of
using whole library filepath...), etc.
2018-10-31 13:34:06 +01:00
Antonioya
14e1dfda4e GP: New Autolock Inactive Layer
This option locks any layer no active to avoid any accidental change.
2018-10-31 11:00:28 +01:00
Alexander Gavrilov
7bc84559aa Add an option to do keyframe insertion in a cycle-aware fashion.
When enabled, inserting keyframes into F-Curves with simple cyclic
extrapolation (the same conditions as required for cycle-aware auto
handle smoothing to activate) will take the cycle into account:

- Keyframes that are being inserted outside of the cycle bounds
  are remapped to be inside the cycle. Thus it is not necessary
  to be within the main iteration of the cycle when tweaking.

  This becomes especially useful in the final animation tweaking
  phase when the channel keys may be staggered for overlap, so
  the actual master period is different for different channels.

- Modifying one of the end points of a cycle also changes the
  other end point when appropriate, to preserve smooth transition.

This feature applies to both manual keyframe insertion using
'I', and auto-keyframing.

Differential Revision: https://developer.blender.org/D3140
2018-10-31 11:50:57 +03:00
Bastien Montagne
c760285ae0 Add 'O' for Overrides to our key-coded ID UI-names generator. 2018-10-30 11:00:25 +01:00
Julian Eisel
a0d40c6a8c UI: Move Properties editor context path into header
This will probably be a temporary solution to fill empty space, for until we
have a search button there. Hence, I made this optional using a compile flag.
2018-10-29 22:59:57 +01:00
Julian Eisel
ab6c7ff2ab UI: Vertical Properties Editor Tabs
Moves the Properties editor context switching to a vertical tabs region.

Design Task: T54951
Differential Revison: D3840

The tabs are regular widgets, unlike the 'old' toolshelf tabs. This means they
give mouse hover feedback, have tooltips, support the right-click menu, etc.
Also, when vertical screen space gets tight, the tabs can be scrolled, they
don't shrink like the toolshelf ones.
The tab region is slightly larger than the header. The tabs are scaled up
accordingly. This makes them nicely readable.

The header is quite empty now. As shown in T54951, we wanted to have a search
button there. This should be added next.

Implementation Notes:

* Added a new region type, RGN_TYPE_NAVIGATION.
* Having the tabs in a separate region allows scrolling of the tab-bar, unlike
  the toolshelf tabs. We might want to remove the scrollbars though.
* Added a new region flag RGN_FLAG_PREFSIZE_OR_HIDDEN, to ensure the tab region
  is either hidden or has a fixed size.
* Added some additional flags to support fine-tuning the layout in panel and
  layout code.
* Bumps subversion.
2018-10-29 21:44:01 +01:00
Alexander Gavrilov
a0dfa320cd Dope Sheet: new option to display keyframe interpolation mode and extremes.
With the new automatic handle algorithm, it is possible to do a lot
of the animation via keyframes without touching the curves. It is
however necessary to change the keyframe interpolation and handle
types in certain cases. Currently the dopesheet/action editor
allows changing the types, but does not show them in any way.

To fix, add a new menu option to display this information. For handle
type, it is represented using the shape of the key icons: diamond for
Free, clipped diamond for Aligned, square for Vector, circle for Auto
Clamp, and cirle with dot for Automatic.

Non-bezier interpolation is a property of intervals between keys,
so it is marked by drawing lines, similar to holds. In this initial
version, only the fact of non-bezier interpolation is displayed,
without distinguishing types. For summaries, the line is drawn at
half alpha if not all curves in the group are non-bezier.

In addition, it is sometimes helpful to know the general direction
of change of the curve, and which keys are extremes. This commit
also adds an option to highlight extremes, based on comparing the
keyed values with adjacent keys. Half-intensity display is used
for overshot bezier extremes, or non-uniform summaries.

Reviewers: brecht, aligorith, billreynish

Differential Revision: https://developer.blender.org/D3788
2018-10-29 22:04:19 +03:00
Alexander Gavrilov
62e2bbd068 Fix T57488: crash in Shrinkwrap constraint due to unsafe multi-threading.
- Constraints must not use mesh_get_eval_final as it isn't thread-safe.
- Depsgraph should keep lastDataMask when re-running COW.
2018-10-29 20:33:15 +03:00
Antonioya
11f9018ec6 GP: Cleanup typo 2018-10-29 16:43:11 +01:00
Bastien Montagne
29428859d9 Depsgraph cleanup: use proper DEG_debug_print_eval call... 2018-10-29 16:37:27 +01:00
Bastien Montagne
363a196ed6 BBox accessor: switch to switch, add missing gpencil case. 2018-10-29 16:37:27 +01:00
Sergey Sharybin
b2411fe269 Fix unneeded/unwanted user counter when freeing CoW NLA 2018-10-29 11:48:37 +01:00
Sergey Sharybin
61d49d3448 Fix T57360: Crash when Play Animation in this scene
Was caused by a code which was putting animation value back to
original datablock.

The tricky part here is that we don't always know ID, so can not
put those values. Would be nice to have a solution for this, but
for until then we should be relatively good.
2018-10-29 11:48:37 +01:00
Bastien Montagne
f887dc1f5c Fix T57372: Second full scene copy crashes on deletion.
Hope this time we are done for good (root of the issue was that master
collections are not in bmain...).
2018-10-29 11:42:38 +01:00
Bastien Montagne
c2791777bd Fix stupid multiple-call of same function in Collections remapping code.
Related to T57372: Second full scene copy crashes on deletion (fixes
deleting second copy, but now it crashes on deleting the first copy...).
2018-10-29 10:53:10 +01:00
Antonioya
39bc44ffc5 GP: Refactor Instance modifier and rename to Array
The old name Instance was logic when the modifier created new object instances, but now works equal to mesh Array modifier, so the old name was not logic and must be Array.

Also added a Object to use as offset similar to mesh Array modifier.
2018-10-28 18:20:50 +01:00
Dalai Felinto
b6a795f285 Small cleanup: Remove uneeded/wrong check
If ob was NULL it would crash in the else part of the if statement.
If we really think we may run into that (which we should not) we can just assert
or add a if (ob == NULL) return; in the top of the function.
2018-10-26 13:48:14 -03:00
Dalai Felinto
f1974bb340 Fix unreported: Crash when adding lattice vertex group 2018-10-26 13:48:14 -03:00
Dalai Felinto
6d4e776711 Fix unreported: Crash when removing lattice vertex group 2018-10-26 13:39:51 -03:00
Dalai Felinto
4af280ac90 Refactor cleanup: BKE_object_is_in_editmode
Using switch and keep it concise.
2018-10-26 13:39:51 -03:00
Antonioya
9b7dd0a93f GP: Assign new materials to brushes
When create a new material, this must be set to the brushes automatically.
2018-10-26 09:02:28 +02:00
Bastien Montagne
e66084268c Fix T56172 Accessing COW data from RNA - Dimension
Also fixes T55769 Dimension Not properly work
and T56064 Blender crashes on selecting text-object

We decided to go to the easy way in the end, simply enforcing computing
BBox of all objects when using 'active' depsgraph, and copying back to
orig object (same as transform matrix, etc.).
2018-10-24 17:21:56 +02:00
Sergey Sharybin
91c6beb28a Cleanup: Remove unused modifiers callback
Was only used by subsurf in the past years, it is unlikely
other modifiers will every need this any time soon.
2018-10-24 14:04:29 +02:00
Brecht Van Lommel
727d6644da Cleanup: fix compiler warnings. 2018-10-24 11:14:49 +02:00
Antonioya
5af716620a GP: Add new modes to Time Offset modifier 2018-10-24 10:32:03 +02:00
Bastien Montagne
8ccb27fc0a Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/scene.c
2018-10-24 09:00:13 +02:00
Bastien Montagne
65d4314b8e Fix (unreported) bad halding of ID usercounts when fully copying a scene. 2018-10-24 08:43:20 +02:00
Campbell Barton
901ccfab52 Fix T57366: Mesh.from_pydata invalid loose-edge state 2018-10-24 11:37:44 +11:00
Antonioya
7cb0e1499d Fix compiler error in Windows 2018-10-23 13:13:04 +02:00
Bastien Montagne
f927f388f6 Fix T57288: Assert when deleting duplicated collection (id->us == 0).
Copying an ID also add a default user to new one (just like creating an
ID), by default...
2018-10-23 12:00:46 +02:00
Campbell Barton
756ac74f81 Cleanup: rename 'dm' -> 'me' for 'Mesh' types 2018-10-23 15:00:40 +11:00
Campbell Barton
5891f81f25 Cleanup: style, warning 2018-10-23 11:01:25 +11:00
Antonioya
e010d5e3b1 GP: New Time modifier
This modifier allows to offset the keyframe animated to get more variations in the animation when reuse the same datablock.
2018-10-22 18:30:26 +02:00
Bastien Montagne
7756973b0c Fix T57320: Crash when adding a linked scene, then deleting it.
You want to check collections (for NULL children) first, before you
actually go into those children collections checking for NULL objects...
2018-10-21 17:22:09 +02:00
Bastien Montagne
c989c5d37d Fix non-sense overloaded code in remapping post-process of objects and collections.
In one case, code was calling the same func on bmain for all objects or
collections inside that bmain... seriously...
2018-10-21 17:20:17 +02:00
Bastien Montagne
4e36ebf593 Optimize meta-ball basis check.
`BKE_mball_is_basis_for()` was processing whole name, when we can
actually rule out most of cases by just checking third char of the ID
names first, which is much, much cheaper.

Even though MBalls are not much used nowadays, that's a nice
optimization when this is called over a whole Main database full of
meta-balls objects...
2018-10-21 17:17:34 +02:00
Antonioya
541d07045b GP: Redesign drawing cache to support particles
Full redesign of the cache system used for drawing strokes and handle derived frame data.

Before, the cache was saved in bGPdata and a hash was used to manage several objects with the same datablock.

Old design made the use of particles very inefficient and prone to bugs and segment faults, and especially when this was mixed with onion skinning and multiple objects using same datablock. Also, there were some conflicts with the depsgrah logic (the old design was done before despgraph was in place) that made the use of hash not working.

The new design saves the data in the object runtime struct and avoid the use of any hash to find the right data. This improves the speed and reduce a lot the complexity of the code, memory allocation, hash overload and adds full support for particles and reused datablocks.

The particles can reuse the modifiers and shader effects of the original grease pencil object.
2018-10-20 09:08:34 +02:00
Dalai Felinto
f10bc11061 Remove defunct NLA_OT_bake
It's been 9 years too long.
And don't get this one confused with nla.bake (why would you even?).

The·BakeAction operator will be renamed to NLA_TO_bake next.
2018-10-19 16:14:42 -03:00