Commit Graph

14556 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
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
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
Bastien Montagne
fbf4c11960 Make Static Override optional/hidden by default.
That feature will not be ready (or at least, not tested enough) to be
officially part of 2.80 beta. So we disable it by default, hidding it
behind a startup option (`--enable-static-override`), and a python
app var (`bpy.app.use_static_override`).

That way, people who really want to play with it can do it easily, while
not exposing/enabling non-production-ready feature by default.

Note that underlying override code remains active, i.e. files we do have
overridden data-blocks will be loaded correctly according to static override.
2018-10-19 18:38:19 +02:00
Jacques Lucke
c17f2c2eb6 Outliner: Open empty collection when something is dragged into it
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3814
2018-10-19 14:30:39 +02:00
Dalai Felinto
d01e0d1ef1 CTX_DATA_BEGIN for active object only (..._from_active_object)
For now only `selected_pose_bones_from_active_object`, more options can
be added on demand.

Discussed this with Campbell Barton. We may need this only for selected
pose bones, time will tell.
2018-10-19 08:31:58 -03:00