Commit Graph

79670 Commits

Author SHA1 Message Date
Clément Foucault
f894db794f 3D Grid: Fix grid not showing in camera view 2018-08-23 13:56:39 +02:00
Clément Foucault
745123024d 3D Grid: Fix axes color blending 2018-08-23 13:56:39 +02:00
Clément Foucault
55f122264c 3D Grid: Fix grid passing through objects too much
For this we need to add a bias depending on the viewing angle.
But increasing the hardness of the test make float precision issues in
the mesh transformation more prominent (actual geometry is far below the
surface). So to solve this issue we use a more subdivided grid mesh
8x8 quads instead of 1 triangle.
2018-08-23 13:56:39 +02:00
Campbell Barton
0cbbcac23e Icons: clamp material color from 0..1
Warn about out of range colors too.
2018-08-23 21:40:30 +10:00
Campbell Barton
7f8014f918 Revert "Icons: avoid error with colors out of 0-255 range"
This reverts commit 6e7da7616b.
2018-08-23 21:36:51 +10:00
Campbell Barton
73f90b2505 Fix annotate tool in the 3D view
We can't share tools between space-types since they contain keymaps
that store the space type.
2018-08-23 20:25:25 +10:00
Campbell Barton
32f3ecf701 Cleanup: use staticmethod when class isn't used 2018-08-23 20:16:50 +10:00
Campbell Barton
48f7fe4829 UI: rename "Ruler" to "Measure" 2018-08-23 19:50:05 +10:00
Campbell Barton
a619ad3f30 Add Torus: default generate UV's to true 2018-08-23 19:50:05 +10:00
Jeroen Bakker
4de7c0c310 Compositor: Film-like curve
Film-like curves for the RGB Curve node (Compositor) and Curve Modifier
(Sequencer)

Film-like curves originated from Adobe.
"It’s an RGB curve where the tone curve is applied on the largest and smallest value, and then the middle value is adapted to keep a constant hue as defined by RGB-HSL/HSV. In terms of look and saturation increase it’s very similar to a pure RGB curve, more so than a HSL-L curve or HSV-V curve, but some color shift problems are avoided."

Other tools like Natron, Krita and RawTherapee have implemented this curve tone.

Reviewers: brecht, campbellbarton

Reviewed By: brecht

Tags: #compositing, #video_sequencer

Differential Revision: https://developer.blender.org/D3638
2018-08-23 11:39:11 +02:00
Bastien Montagne
01973290a9 Fix T56498: Segment fault when change parameter of one operator after undo.
You cannot store ID (or any other data) pointers accross undo’s/redo’s, those
are reading .blend file and hence invalidating all pointers!

Not that happy with this fix, code is rather convoluted and not elegant
at all, but cannot think of a better solution, so will do for now.

Also found and fixed another 'str ghash used for int keys' case...
2018-08-23 08:46:07 +02:00
Bastien Montagne
faafe6e6bc Add helper to BKE_library to generate unique string key for an ID.
Basically just concatenates ID's name (including its IDtype code) and
that library's name, if any. This must give unique string in a given
Main database, suitable for GHash keys e.g.
2018-08-23 08:46:07 +02:00
Campbell Barton
922ca68e17 Cleanup: trailing space 2018-08-23 16:22:32 +10:00
Campbell Barton
b35b10e1af Tool System: Popup toolbar keymap improvements
- Add support for key_modifiers, so grease pencil gets "D".

- Assign number keys for unmapped items

  This means all tools get keyboard access,
  use number/numpad to avoid confusion with other keymap items
  which directly activate the tool.
2018-08-23 16:18:09 +10:00
Campbell Barton
4e6a82d847 Cleanup: use static functions 2018-08-23 16:18:09 +10:00
Joshua Leung
36148f20ec Fix: Silence compiler warnings about size_t's in printf 2018-08-23 17:07:39 +12:00
Joshua Leung
0e09bfa059 Depsgraph: Added note that the filtering function should NOT be called on a filtered graph 2018-08-23 17:07:39 +12:00
Joshua Leung
3fa4e52657 Motion Path Calcs: Use filtered depsgraph by default
Use debug_value = -1 to disable the use of the filtered depsgraph.
It's still useful to have this for benchmarking + until we're
confident the filtering works safely.
2018-08-23 17:07:39 +12:00
Joshua Leung
4cbb75935b Code Cleanup 2018-08-23 17:07:38 +12:00
Joshua Leung
8ee06f50c0 Motion Path Calcs: Minor optimisation tweaks
* Don't print on every frame evaluated. This was only needed
  earlier to track the progress (and why things were taking so
  long - answer, it was the Scene COW issue). Saves 50-100 ms

* Remove the extra calculation of the scene after evaluating
  motion paths. This shouldn't be needed now with COW.
  Saves about 20-30 ms
2018-08-23 17:07:38 +12:00
Joshua Leung
dcefce5eae Fix memory leak - the temporary depsgraph instance was not getting freed after use 2018-08-23 17:07:38 +12:00
Joshua Leung
18c7dfa8dc Cleanup: Remove the conditional ID node removal stuff, copied from clear_id_nodes()
This was just randomly leaving all the Particle datablocks in the
filtered graph (and causing and extra/excess pass over the ID's
to get run). Unless we actually need those specially kept for
some reason later, it's better to leave those out for now.
2018-08-23 17:07:38 +12:00
Joshua Leung
bd801e7a68 Faster Motion Path calculations using Depsgraph Filtering
This commit makes the motion path calculations use the
new Depsgraph Filtering API to obtain a more streamlined
copy of the full scene dependency graph, allowing for
faster calculations (as less data needs to be evaluated
for each frame being baked).

For example, in 01_020_A.anim.blend from the Spring production
files, the time needed to calculate paths on several bones
on Autumn went from  39.84 seconds (!) down to 9.90 seconds!

Currently, this works by just replacing the depsgraph instance
passed to the motion path calculation function. This filtered
instance contains just the ID's needed to evaluate the graph
to evaluate a specified target (i.e. the Object owning the pose).

Notes:
* By default, the filtering is not performed unless debug mode 555
  is activated. Having a debug switch here allows comparing
  performance and disabling it should thing it start crashing.

* It is necessary to pass in the original Scene instance (not the
  COW one owned by the filtered depsgraph), otherwise changing the
  current frame had no effect, due to the COW flushing from original
  Scene to the new Scene overwriting the CFRA changes we make.

* The code here still needs cleaning up to debugging instrumentation, etc.
  and also to optimise further (e.g. caching the filtered depsgraph
  for faster updates when animating on existing paths, or fine-tuning
  the exact set of nodes needed).  I'm just committing this first,
  since this was the quickly hacked-together test code I've been using
  to check that this is all working.

* Further improvements could also be made to the time needed to
  build the full graph instance (about 3.3 sec), by allowing partial
  builds (e.g. by making a filtering proxy/wrapper around existing builders)
2018-08-23 17:07:38 +12:00
Joshua Leung
0e44cf5d78 Cleanup: Disable some of the extra debug prints that were slowing things down 2018-08-23 17:07:38 +12:00
Joshua Leung
e01a9c5eee Motion Path Calculations: Don't pass scene into motionpaths_calc_bake_targets()
It's not needed, and actually precludes us from considering parallel
evaluation in future.
2018-08-23 17:07:38 +12:00
Joshua Leung
2f2ab13b5f Depsgraph Filtering: Fix ID node filtering problems
* COW data hasn't been expanded yet when we try to filter the graph
  (you need to have tagged + evaluated it for this data to exist),
  so all the offending nodes would just get left in

* Added more debug prints to verify whether the id_nodes vector is
  getting cleared correctly
2018-08-23 17:07:38 +12:00
Joshua Leung
e5e42b7782 Depsgraph Filtering: WIP more debugging prints 2018-08-23 17:07:38 +12:00
Joshua Leung
6bbf6712bb Depsgraph Filtering: Remove opnodes from entry tags too 2018-08-23 17:07:38 +12:00
Joshua Leung
6ec933886c Depsgraph: Fix filtering-related crashes
* Simplified operation-relation deletion. Now we collect the relations
  to delete into a vector, then iterate through that, thus solving issues
  with iterator invalidation (+ aborts arising from that)

* DEG_foreach_ancestor_ID() was assuming that all dependencies were
  OperationDepsNodes, when in fact, some could be TimeSource nodes
2018-08-23 17:07:38 +12:00
Joshua Leung
9a0ef0933d Depsgraph: Print simple stats after filtering graph, to quickly verify if anything happened 2018-08-23 17:07:37 +12:00
Joshua Leung
be77eeae46 Depsgraph: First draft of graph filtering API implementation
When this works correctly, we should be able to feed in an existing
depsgraph instance, and get out a "filtered" copy of it that contains
only the subset of nodes needed to evaluate what we're interested in.

The current implementation only filters on ID blocks/nodes,
and starts by building a full new depsgraph instance first.
I'd originally intended to do it per operation instead, copying
over individual nodes as appropriate to have the smallest and least
memory intensive graph possible. However, I ended up running into
into problems with function binding + COW arguments, hence the
current slow solution.
2018-08-23 17:07:37 +12:00
Joshua Leung
9e47709089 Typo fixes 2018-08-23 17:07:37 +12:00
Campbell Barton
3fc755e938 Tool System: Sculpt border hide/mask tools 2018-08-23 12:56:02 +10:00
Campbell Barton
99e6c41373 Tool System: support non paint tools in paint mode
This is needed so non-paint-brush tools can be used in paint modes.
2018-08-23 12:47:32 +10:00
Campbell Barton
5203ebbaad Tool System: remove cursor tool from paint modes 2018-08-23 12:12:11 +10:00
Clément Foucault
890623f886 Object Mode: Add back spot cone display 2018-08-22 19:49:32 +02:00
Clément Foucault
477b4559ec Paint Overlay: Fix blending of the brush overlay 2018-08-22 19:49:32 +02:00
Pablo Vazquez
07d0f2eb01 UI: Minor label tweaks to operators context menu
* Add Shortcut -> Assign Shortcut

* Add to Favorites Menu -> Add to Quick Favorites
To match the menu name and be more general for when the Quick Favorites
are accessible in places other than just menus (like panels).

Add blank icon to Remove Shortcut so it aligns with Change Shortcut
which is usually the item on top of it in the menu.
2018-08-22 18:54:13 +02:00
Sergey Sharybin
e17164aca3 Cleanup, unused variable 2018-08-22 17:45:56 +02:00
Charlie Jolly
686480269b MSVS 2017 Bug - Subdiv Mesh
Apparently, struct initialization can not be empty,

Reviewers: sergey

Reviewed By: sergey

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D3636
2018-08-22 17:02:41 +02:00
Sergey Sharybin
cdaf5a1083 Multires: Bring back operator to reshape from object
Limited to mesh type of source, not sure it ever worked for non-meshes.
While it's possible to support reshape from any object, the actual brain
of operation would need to be recoded to go away from requirement of
vertex indices matching in source and destination.
2018-08-22 16:59:00 +02:00
Sergey Sharybin
564a378bd1 Multires: Remove another unused argument from reshape function 2018-08-22 16:59:00 +02:00
Pablo Vazquez
b28a74746b UI: Show development entries in context menu when Dev. Extras is enabled 2018-08-22 16:29:49 +02:00
Sergey Sharybin
6a681981e4 Multires: Fix reshape when active level is lower than the total one 2018-08-22 16:07:57 +02:00
Sergey Sharybin
9dd279cbdf Multires: Remove unused function argument 2018-08-22 16:07:57 +02:00
Andrew Hale
dade2b7548 Python: Cleanup Noise Module
Implements the changes detailed in T56281

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3590
2018-08-22 15:34:10 +02:00
Clément Foucault
644fe7c90c DRW: Fix wrong framebuffer bound after background pass 2018-08-22 15:23:03 +02:00
Clément Foucault
f4f97d1c7f Overlay: Fix wrong framebuffer bound. 2018-08-22 15:23:03 +02:00
Sergey Sharybin
fae127cd26 Multires: Fix reshape of corner vertices
Was only reshaping corner vertex of a single ptex face.
2018-08-22 15:21:19 +02:00
Dalai Felinto
dc00c330c5 Improvement to MESH_OT_shortest_path_pick behaviour
Select a vertex/edge/face if there was nothing previously selected
(if the click hit something, of course).
2018-08-22 09:59:56 -03:00