Commit Graph

8949 Commits

Author SHA1 Message Date
Sergey Sharybin
ca003d0f5c Fix missing relations update after allocating compositor
Compositor has own node in the dependency graph, so need to make
sure relations are up to date.

This fixes wrong user counter when creating compositor nodes for
a new scene.
2018-10-23 15:38:09 +02:00
Jacques Lucke
767b49e492 Fix: missing sequencer update
This should be fixed differently in the future. Read D3821 for more details.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3821
2018-10-23 14:03:57 +02:00
Antonioya
bc480c4989 GP: Rename modifier Time to Time Offset 2018-10-23 13:16:15 +02:00
Campbell Barton
5891f81f25 Cleanup: style, warning 2018-10-23 11:01:25 +11:00
William Reynish
43c6aba670 Fix various icon related issues:
* Used correct icons for Tracking.
* Flip Copy/Paste icons so they are correct.
* Add correct icon for softbody modifier.
* Replace speaker icons for enabling F-Curves with checkboxes.
2018-10-22 19:28:24 +02: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
Sergey Sharybin
0628fe7a6c Followup to previous change, reduce number of relations updates
Only tag relations update when new f-curve was allocated. This solves
possible too slow keyframe insertion when doing character animation,
but still does proper relation update when new ID component became
animated.
2018-10-22 17:13:19 +02:00
Sergey Sharybin
b4ebb9d8ef Fix T56636: Custom property cannot be animated
No need to tag object for time update, with new dependency graph
this forces animation to be re-evaluated, which is not something
we want in this instance.

Same patch/solution Philipp Oeser came to as well.
2018-10-22 16:43:49 +02:00
Campbell Barton
769b979abb Cleanup: trailing space 2018-10-21 16:23:15 +11: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
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
Alexander Gavrilov
eaa527f694 Dope Sheet: remove many hard-coded color and alpha constants.
Add the necessary colors and/or alpha components to the theme instead.
Also switch the background for ordinary channels to use the likely
intended theme option, instead of the window background color.

The general rule is that the channel color is drawn full strength in the
channel list on the left, and with alpha in the actual key frame area on
the right. This alpha is also reused with bone group colors.

Reviewers: brecht, billreynish

Differential Revision: https://developer.blender.org/D3813
2018-10-19 18:30:24 +03:00
Charlie Jolly
891078b3bc UI: reorder and group blend modes in menus, similar to other apps.
Differential Revision: https://developer.blender.org/D3815
2018-10-19 17:21:01 +02:00
Campbell Barton
16882ca535 Image Space: make 'UV Edit' a separate mode
This is needed for splitting UV into its own editor, see: T54744
2018-10-19 20:15:18 +11:00
Campbell Barton
56fd821e97 RNA: add widget property access 2018-10-19 19:33:29 +11:00
Campbell Barton
678c200309 Gizmo: remove 'Click Anywhere' option
Having an invisible gizmo caused event handling problems (see: T56603).

This is hard to avoid since gizmos are similar to buttons in the way
they have priority over the regular keymap.

Transform events use tweak so events to fall though to the general
view 3d keymap (for cursor placement for eg).
2018-10-18 12:36:39 +11:00
Alexander Gavrilov
e5b18390fa Shrinkwrap: implement the use of smooth normals in constraint & modifier.
- Use smooth normals to displace in Above Surface mode.
- Add an option to align an axis to the normal in the constraint.

I've seen people request the alignment feature, and it seems useful.
For the actual aligning I use the damped track logic.

In order to conveniently keep mesh data needed for normal
computation together, a new data structure is introduced.

Reviewers: mont29

Differential Revision: https://developer.blender.org/D3762
2018-10-17 17:55:34 +03:00
Campbell Barton
7ce387b1cd RNA: disable notifiers from property updates
This was re-enabled because it made copy-on-write bugs hard to
track down.

Since copy-on-write implementation has been simplified
this isn't a problem anymore.
2018-10-17 16:17:00 +11:00
Campbell Barton
ae093e6a84 Cleanup: whitespace 2018-10-17 14:08:44 +11:00
Brecht Van Lommel
5134ed60d6 UI: icon set updates Andrzej Ambroz.
This adds and changes various icons, in particular modifier and force field
icons are now included.
2018-10-16 20:23:43 +02:00
William Reynish
dacc539f57 Fix incorrect icon for UV selection sync. 2018-10-16 14:58:11 +02:00
Campbell Barton
5b86899f21 Mesh: remove DerivedMesh for face-map drawing 2018-10-15 15:12:36 +11:00
Alexander Gavrilov
cd48d4576b Depsgraph: Add proper API functions for CustomDataMask dependencies.
There were a few copies of the same few lines in depsgraph build code,
so it seems to be logical to introduce a function for it, and make it
accessible from C code for completeness.

As an example, register the mask needs of the Data Transfer modifier.
2018-10-14 20:48:39 +03:00
Antonioya
b8327ee129 GP: Remove Layer order userprefs parameter
After a lot of discussion about this option (see 18f1175940) we have decided set always the order of GP layers in 2D mode (Top->Down) and remove the parameter from User Preferences screen.

Internally all works equal, but in the UI the list is inverted.

The filter buttons to reverse the list or sort alphabetically have been removed because these buttons are not logic in this context.
2018-10-13 20:34:36 +02:00
Antonioya
5eeb6c00be GP: Disable reverse list order when uncheck userprefs option
Before, the list kept the reverse order enabled in the filter. Now the filter is reset when the option is disabled and don't need any user change or restart.
2018-10-12 09:55:43 +02:00
Antonioya
18f1175940 GP: Add new Userprefs parameter to reverse layer list
This allows to configure the system as any other 2D software with the layers in a Top/Down order.
2018-10-11 18:30:10 +02:00
Antonioya
d12b3767f8 Add new parameter to reverse UIList items
Now, it was possible to invert the order of the UIlist using the filter, but it was impossible to know if the list was inverted or not.

The problem with this is that any other element depending of this value could not be adjusted.

See https://devtalk.blender.org/t/how-to-access-uilist-properties/2268

The new parameter allows to set the reverse order by default. When the list is set as reverse, it cannot be inverted again, so the invert button is removed of the filter.

This change is needed to fix a requested feature for Grease Pencil (T56985) and because a lot of 2D softwares use the drawing layers in the inverse order used in Blender.
2018-10-11 18:30:09 +02:00
Campbell Barton
fd2ffb0b9e RNA: remove redundant new_from_object/to_mesh arg
If the caller wants loop-tris, there is a function to calculate them.
2018-10-11 12:24:38 +11:00
Campbell Barton
66738d4aa0 Merge branch 'master' into blender2.8 2018-10-11 09:08:30 +11:00
Campbell Barton
2083a7e274 Cleanup: style (pointers) 2018-10-11 09:03:39 +11:00
Campbell Barton
95f2604ea7 Cleanup: indentation 2018-10-11 08:20:35 +11:00
Antonioya
c2519d8521 GP: New Glow Shader FX (wip)
New shader to simulate a glow of the color.

The glow can be generated by luminance threshold or using a selection color.
2018-10-10 23:00:56 +02:00
Brecht Van Lommel
e65784a051 Python API: add loop triangles access, remove tessfaces.
Loop triangles are tessellated triangles create from polygons, for renderers
or exporters that need to match Blender's polygon tesselation exactly. These
are a read-only runtime cache.

Tessfaces are a legacy data structure from before Blender supported n-gons,
and were already mostly removed from the C code.

Details on porting code to loop triangles is in the release notes.

Differential Revision: https://developer.blender.org/D3539
2018-10-10 17:43:44 +02:00
mano-wii
7e6a8678c6 RNA: Always keep at least one element in snap_mode. 2018-10-09 22:30:00 -03:00
Campbell Barton
626def1ac2 Cleanup: naming
lockaxis -> lock_axis
2018-10-10 11:18:09 +11:00
Antonioya
2c0f02dd0a GP: Add Shift+F to change Drawing Brush strength 2018-10-09 19:07:20 +02:00
Antonioya
d2eb7e8dfa GP: Add RNA path function for gp brush settings 2018-10-09 17:45:52 +02:00
Antonioya
11877e5bec GP: New Canvas offset parameters
Now the canvas can me moved in X/Y axis.
2018-10-08 23:21:44 +02:00
Brecht Van Lommel
cf8e71db61 UI: add icon color coding for different data types in the outliner.
For now we have categories collection, object, object data, modifiers &
constraints, and shading. The icons can be categorized by adding e.g.
DEF_ICON_OBJECT() in UI_icons.h.

Light themes will need to be updated to use darker colors to keep icons
visible in the outliner.
2018-10-08 19:46:00 +02:00
Brecht Van Lommel
2ac65f6153 UI: new icon set by Andrzej Ambroz.
This is a monochrome icon set, with a more modern look and icons for
various features that did not have a proper icon before.
2018-10-08 19:46:00 +02:00
Antonioya
b8a0434bc5 GP: New automatic adaptative UVs parameter
Now by default the UVs are calculated with a fixed size and this makes easier to add patterns for drawings like Manga. Before, the texture changed depending of the stroke size.
2018-10-08 18:33:26 +02:00
Alexander Gavrilov
ba3ef44a6b Implement display of weight isoline contours in the fragment shader.
Add an option to display contour lines tracing through points with the
same interpolated weight value in weight paint mode. This can be useful
for working on gentle gradients over a relatively high resolution mesh,
where the difference in color between adjacent vertices is very small.

The contour grid has 3 levels of detail going down to step 0.001,
which automatically fade in or out based on the weight gradient.

Fade out works by capping both screen space and weight space line
width, and reducing alpha when the screen space width becomes too
small for moire and noise-less rendering.

Reviewers: fclem

Differential Revision: https://developer.blender.org/D3749
2018-10-08 14:15:47 +03:00
Campbell Barton
ee2e30683c Cleanup: style 2018-10-07 17:49:22 +11:00
Brecht Van Lommel
db1a04313c Fix crash unregistering parent panel before children.
This caused crashes with addon enabling/disabling and template loading.
2018-10-06 20:56:31 +02:00
Brecht Van Lommel
8044743741 Texture Paint: reorganize texture slots UI panel. 2018-10-05 20:09:59 +02:00
Bastien Montagne
975af239ed Fix wrong RNA handling of some internal pchan pointers.
There were two issues here:
* cutsom_shape_transform was not properly tagged as not-owned pointer.
* custom_shape_transform and bbone_start/_end could be set to a pchan from
  another data-block (not from UI, but RNA access code itself allowed it).

Those two issues were specificaly breaking complex rigs in static
override case.

EDIT: since yesterday, bbone_start/_end are mere accessors to edit_bone
data in RNA, so most of fix related to those was ditched (they still needed
to be 'deactivated' from RNA diffing with PROPOVERRIDE_NO_COMPARISON).
2018-10-05 20:07:51 +02:00
Alexander Gavrilov
25bd9feadb Add a new B-Bone Custom Handle type that uses the handle bone direction.
Both original handle types are based on location, and Absolute uses it
in a weird way: the Start handle uses the head, while End uses the tail.

This makes controlling the shape of the B-Bone via control bone rotation
really non-intuitive, especially if trying to add a single control for
the tangent in the middle of a B-Bone chain.

To remedy this, add a new custom handle type that uses the orientation
of the control bone, while completely ignoring location. It is even
possible to control both ends of one B-Bone with the same handle bone,
resulting in an S shape.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3769
2018-10-05 20:19:58 +03:00
Dalai Felinto
149e912b1f Special enum item when no sound is found
This happens when you build without sound libraries and such.
Without that the console is spammed with tons of RNA messages because
the enum is empty.
2018-10-05 12:37:07 -03:00
Antonioya
e8f135c2cf GP: Cleanup grid RNA settings moving to separated struct 2018-10-05 10:23:31 +02:00
Antonioya
8b05d38305 GP: Cleanup names and code 2018-10-05 08:59:33 +02:00