Commit Graph

59409 Commits

Author SHA1 Message Date
Brecht Van Lommel 4234cddda9 Objects: support for hiding all objects in a collection.
In the outliner there are now icons for it, Ctrl+Click isolates a
single collections.

In the 3D view, Ctrl+H key opens a menu that is more or less the
equivalent of the old layer buttons in the header. Regular Click isolates
the collection, Shift+Click toggle the collection visibility. Pressing
number keys and letters works in this menu, which can help for quickly
selecting a specific collection.

Shortcuts for quick switching by just pressing 1/2/3/.. keys are available
again. The order can be confusing with nested collections, but that seems
unavoidable. The first numbers control the top level collections, and then
sub collections if numbers are left.

Remaining design issues:

* The 3D view menu needs to be improved: support for sub collections,
  staying open on shift+click, access from the 3D view header somewhere,
  shortcut key display.
* Currently collection hiding just controls per-object hiding, we plan
  to separate this state still so alt+H doesn't affect collection hiding.
2018-06-20 13:04:51 +02:00
Brecht Van Lommel 5e968a996a Objects: restore per object restrict view/render/select.
Note this is now separate from H key hiding, and meant for more persistent
ways to define which objects are relevant to the viewport or render.

This avoids some cases where you'd have to create collection specifically
to hide objects for viewport/render.
2018-06-20 12:35:25 +02:00
Brecht Van Lommel 0619f960c2 Objects: restore H key per object hiding.
H hides selected objects, Shift+H hides unselected objects, and Alt+H
reveals hidden objects.

This hiding state is distinct from restrict viewport and render, and
meant for temporarily hiding objects without affecting more persistent
collection hiding.

Object hiding is per view-layer, same as selection. It affects the
viewport and any preview renders in there, but not final renders.

In the outliner, different icons are now used for temporary hiding, and
restrict viewport and render. Hidden objects are greyed out.

Remaining design issues:

* For lamps we probably still want to keep their effect on the scene,
  currently they are fully disabled by hiding. Arguably mesh lights or
  even objects being reflected or casting shadows are not that different
  but perhaps the special lamp exception from local view should remain.
* We need a feature still to disabled this hiding for specific viewports,
  for render or animation preview where you want to see the entire scene
  while working in another view.
* We need a new icon for restrict viewport, for now it uses a grid similar
  to the 2.4 icon.
* Hiding objects does not preserve selection state as it did in 2.7,
  it's probably convenient to support this again?
2018-06-20 12:35:25 +02:00
Jeroen Bakker c17ba4a903 T55550: Workbench Shadows are incorrect in first draw cycle
Shadows uses the old location for light_direction. Maybe a merge
conflict.
2018-06-20 12:29:09 +02:00
Bastien Montagne fd48e685c3 Cleanup: remove some G.main from BKE's node.c
Validate some cases using G_MAIN instead (I don't think we want to work
on any other Main than G.main one when registering/unregistering nodes
etc.).

And when freeing, all ID not in Main shall now be tagged accordingly, so
we *should* not need to do that stupi search over all ntrees in G.main
to check wether we have to free it ourself or not!
2018-06-20 12:27:26 +02:00
Pablo Vazquez 84c2ef0eaf UI: Use chevrons for number sliders, pulldowns and popovers
In the future popovers/pulldowns should have different indicators

Patch by William Reynish and Clement Foucault
2018-06-20 12:24:24 +02:00
Bastien Montagne 20788e1747 Cleanup: moar G.main removal.
Nice trick from blender2.8, we now can get active scene from active
window of windowmanager!
2018-06-20 11:53:30 +02:00
Campbell Barton edb80a801d Fix crash activating the HUD w/o an active region 2018-06-20 11:43:10 +02:00
Bastien Montagne 8b673fc75f Cleanup: get rid of last non-thread-safe BLI_frand random generator func. 2018-06-20 11:30:25 +02:00
Bastien Montagne d97ee0b06a Cleanup: get rid of last BLI_frand usage. 2018-06-20 11:30:25 +02:00
Bastien Montagne 1b2a2e0862 Cleanup: use new BKE_mesh_iterator foreach_mapped helpers in WPaint gradient code. 2018-06-20 11:30:25 +02:00
Campbell Barton f58fa57b83 UI: fix "Edit Source" operator 2018-06-20 11:13:07 +02:00
Campbell Barton 6d21450a61 Revert "UI: fix "Edit Source" operator"
This reverts commit 109dbab593.

Accidental changes applied
2018-06-20 11:12:18 +02:00
Campbell Barton 109dbab593 UI: fix "Edit Source" operator 2018-06-20 11:10:08 +02:00
Campbell Barton b661a4d663 Merge branch 'master' into blender2.8 2018-06-20 11:09:07 +02:00
Sergey Sharybin 8763a8fd4b Particle edit: Fix missing hair in edit mode for new particle systems
Need to get away from thosae update flags in original datablocks.
2018-06-20 11:05:52 +02:00
Campbell Barton d4519f54b3 UI: only show "Edit Translations" when addon used 2018-06-20 10:45:03 +02:00
Campbell Barton 570f3e6719 Object Mode: enable mode locking by default
This is meant to be default behavior for 2.8, see T55246
2018-06-20 10:18:53 +02:00
Campbell Barton df2d05b203 Outliner: add object mode switching to RMB menu 2018-06-20 10:14:04 +02:00
Campbell Barton 9f9756ec35 Cleanup: strip space 2018-06-20 10:14:04 +02:00
Sybren A. Stüvel 8b9712faeb Fix T55540 Add foreachMappedXXX equivalent API for evaluated meshes 2018-06-20 10:03:50 +02:00
Jeroen Bakker e3052ecb0d Studiolight: removed raise condition
Happened when deleting many studiolights at the same time when the
previews were still beging calculated in the background.

Added a free function callback that is filled when the preview is being
generated. This free function will then kill the preview job

This patch also removes icons that are not valid anymore so the user
cannot accidentally render an icon where the studiolight is invalid.

In the end we should use a add/remove function in the studiolight as
currently icons are recalculated too much.
2018-06-20 09:29:40 +02:00
Campbell Barton 91c0f17a47 Missed last commit 2018-06-20 07:27:35 +02:00
Campbell Barton dc13e0d7dc Cleanup: default emboss=off for outliner buttons
Also use use braces for code blocks and reduce right-shift.
2018-06-20 07:14:19 +02:00
Bastien Montagne d44c40d91c Cleanup: some more valid G.main usages moved to G_MAIN. 2018-06-19 19:30:47 +02:00
Bastien Montagne 9c20de8998 Merge branch 'master' into blender2.8 2018-06-19 19:25:44 +02:00
Bastien Montagne 0a8af46707 Final cleanup of G.mains in render area. 2018-06-19 19:25:06 +02:00
Campbell Barton 29d7358ff6 UI: fix ctrl wheel while over the opposite side 2018-06-19 19:22:23 +02:00
Bastien Montagne 63f31e466a Cleanup: names of WPaint gradient data structs.
Those actually never had anything to do with DM... Just used WP prefix
instead!
2018-06-19 19:15:11 +02:00
Bastien Montagne cc3c91c27f Cleanup: remove DerivedMesh from WPaint Gradient tool code.
Name cleanup to follow.
2018-06-19 19:15:11 +02:00
Bastien Montagne db0563e995 Fix re-entrant calls in some cases of mesh_evaluated generation.
`mesh_get_eval_final` and friends could call `mesh_build_data`, which in
paint/sculpt mode would call `BKE_sculpt_update_mesh_elements` which
would call `mesh_get_eval_final`... ugly!
2018-06-19 19:15:11 +02:00
Campbell Barton 44611ab860 UI: fix Ctrl-Wheel to change button values 2018-06-19 18:36:30 +02:00
Bastien Montagne 1292aae5c0 Correction to previous commit.
There is no guarantee that given ob pointer is not also an evaluated one
here...
2018-06-19 18:29:40 +02:00
Bastien Montagne 5372da0121 ModStack: Fix broken object_get_datamask helper.
Would compare evaluated ob pointer to original one...

Found while investigating some errors in incomming cleanup, but this was
probably generating lost of other issues in some cases...
2018-06-19 18:25:30 +02:00
Campbell Barton 5b227c420b Fix animation player drawing wrong size 2018-06-19 18:03:08 +02:00
Bastien Montagne 61af6b83e6 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/sculpt_paint/paint_image_proj.c
2018-06-19 16:49:54 +02:00
Campbell Barton 750a78be9c 3D View: improve selection locking
Locked selection would still occlude with objects which could not be
selected.
2018-06-19 16:43:01 +02:00
Jeroen Bakker 0116c95d4c Studiolight: Temp Mutex issue
This is a temp fix for a better system.
Currently the studiolights can be referenced by a WM_job and being freed
via the API. This can happen when removing a studiolight via the
interface.

As the studiolight has no relation with the job, it is hard to detect if
it is still being used. I tried with a Mutex and a Thread Queue but they
were failing.

So the current temp fix is to keep the studiolights in memory until you
close blender. This Must be fixed ASAP! I added this fix so normal cases
can workish.
2018-06-19 16:37:23 +02:00
Bastien Montagne b5893b1ba3 Fix (unreported) passing CDLayer 'ID' instead of bitflag to a cdlayer mask!
Probably harmless, since I bet CD_ORIGINDEX is nearly always generated,
but still...
2018-06-19 16:25:24 +02:00
Brecht Van Lommel 86c1cad1cf Fix missing render slots bugs after recent changes. 2018-06-19 16:19:49 +02:00
Campbell Barton 7c3ecbf040 Correct rigidbody stub 2018-06-19 16:18:23 +02:00
Campbell Barton 1c6ca9dc90 Fix animation player 2018-06-19 16:13:23 +02:00
Bastien Montagne fbae373db5 Cleanup: remove ref to dm in names in projpaint struct. 2018-06-19 15:55:45 +02:00
Bastien Montagne 650bc17c1e Remove derivedmesh from 3DView texture/projection paint.
Pretty straightforward changes. Name cleanup to follow in a separated
commit.
2018-06-19 15:55:45 +02:00
Sybren A. Stüvel 96e6fd3b60 Remove rigid body from rbw->group when deleting
I moved some code from ED_rigidbody_object_remove() to
BKE_rigidbody_remove_object(), so that calling the latter doesn't leave
the object in rbw->group (causing a crash later on when rebuilding the
depsgraph).
2018-06-19 15:40:25 +02:00
Sergey Sharybin d8f9ec1547 Particles: Support changing modifiers during particle edit mode
The idea is to only use pointers to particles in original object when
creating an edit structure. The derived mesh we get from evaluated
object.

The rest of the commit is just keeping pointers in sync.
2018-06-19 15:28:33 +02:00
Sergey Sharybin 95306a4d19 Particles: Use utility function to copy particles 2018-06-19 15:28:33 +02:00
Sergey Sharybin aa3f0b0998 Particles: Add utility function to copy particles from one system to another 2018-06-19 15:28:33 +02:00
Campbell Barton 92c519ff17 Blender Version Bump
Without this, render slots aren't added.
2018-06-19 14:50:39 +02:00
Jeroen Bakker ce0a87a208 Revert: EditMode Inactive edge drawing
Did it manually as there was some refactoring done that has value
2018-06-19 14:32:52 +02:00
Sybren A. Stüvel 92823275af Fixed rigid body simulation randomly stopping
This was caused by a floating point comparison using ==, instead of using
compare_ff_relative().
2018-06-19 14:22:48 +02:00
Jeroen Bakker 4b5f3690bb Missed warning in previous commit 2018-06-19 14:07:21 +02:00
Jeroen Bakker 1b972a38fe Lookdev: Renamed RNA
studiolight_background => studiolight_background_alpha
Removed "Show" from the label
2018-06-19 14:04:51 +02:00
Jeroen Bakker de748bbedf Studiolight: Background Generation of icons 2018-06-19 14:04:51 +02:00
Sybren A. Stüvel c564d847ef Show cached frames in timeline at correct height
The line was covered by the horizontal scrollbar instead of drawn above
it.
2018-06-19 11:49:56 +02:00
Sybren A. Stüvel 8f922b30b0 RigidBodyWorld: copy ptcache from evaluated scene back to original scene
This makes it possible to perform re-evaluation of the scene without
having to re-run the simulation.

The CoW → Orig copy is only performed when the depsgraph is active, so
as to not influence the current scene while rendering in the background.

Alternatively, we could have the CoW copy share the cache with the
original to prevent too much copying of cache data. This will be faster,
but I'm not sure whether we can reliably check the DEG_is_active()
status at CoW copy creation time.
2018-06-19 11:49:56 +02:00
Bastien Montagne caaf4e5a37 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/sculpt_paint/paint_image_proj.c
2018-06-19 10:52:01 +02:00
Bastien Montagne b09a8203e9 Cleanup DM generation code for ProjPaint.
Two branches were actually doing essentially the same thing here, no
need to artificially complicate things. ;)
2018-06-19 10:48:37 +02:00
Bastien Montagne 64a2f98062 Fix (unreported) unauthorized relesing of derived_final DM in paint projection code.
NEVER free yourself DM returned by mesh_get_derived_final(), it's always
to one assigned to ob->derived_final!
2018-06-19 10:43:54 +02:00
Campbell Barton 2d2db18f0b UI: move object-mode lock out of the 3D header
Avoid obscure options here.
Move to the edit menu, although this may be temporary.
2018-06-19 09:14:31 +02:00
Jeroen Bakker 65b3c7b72c Studiolight: Add SH2 cache
- the result of the SH2-coeffiecients are stored in a bin file (3*9
floats). As the file is a local file we do not care about the
architecture.
- solved issue that also for internal lights the irradiance file were
stored. We don't want that as it could be in a not accessible location
2018-06-19 09:06:35 +02:00
Campbell Barton 7a3e037dc0 Merge branch 'master' into blender2.8 2018-06-19 08:56:45 +02:00
Campbell Barton 751189e9d6 Vertex Paint: set sculpt object mode immediately
SculptSession.mode_type wasn't initialized until painting,
making it unreliable for checks in other parts of the code.

Also remove unnecessary initialization,
matching sculpt mode more closely.
2018-06-19 08:50:35 +02:00
Campbell Barton 643370b10f Cleanup: code-style 2018-06-18 20:58:08 +02:00
Campbell Barton 0d8b92267d Object Mode: make mode locking optional
Design from T55246 is kept while allowing 2.7x behavior.
2018-06-18 20:43:26 +02:00
Bastien Montagne 9fb5924446 Fix a very nasty and sneaky bug in lib remap / static override code.
Not sure why remap call for static override reference ID pointer was put
there, probably a mistake during some merge back in the days...

But this ended up with self_id of libquery data struct still being set
to previous ID pointer, which could randomly generate crap like falsly
reporting indirect data and such, leading to lost reference datablock at
writefile time...
2018-06-18 20:20:55 +02:00
Bastien Montagne 594bcf934e Cleanup: use DEG tag flags, instead of old OB ones.
Having those two in parallel is ratehr confusing... :/
2018-06-18 18:43:21 +02:00
Bastien Montagne 4efe8fc806 Fix crash when making static override of an object from a collection.
Since we free collection caches when we remap one of their objects, we
also need to tell depsgraph to flush this into the COWs of that
collection, otherwise things like draw code can access freed memory...
2018-06-18 18:43:21 +02:00
Campbell Barton e92d61797b 3D View: don't show manipulators when overlay is disabled 2018-06-18 18:33:02 +02:00
Campbell Barton f828355cd6 Avoid assert on startup 2018-06-18 17:39:51 +02:00
Campbell Barton d7122825ec Cleanup: redundant greater than 2018-06-18 17:39:50 +02:00
Sergey Sharybin bea779fd78 Particle: Add missing field initializaiton 2018-06-18 16:01:29 +02:00
Campbell Barton 762dec21f6 UI: decorators hid non-array buttons
Error in last commit.
2018-06-18 15:50:21 +02:00
Jeroen Bakker 7356cec0c6 Studiolights: Radiance icons were inverted. 2018-06-18 15:45:55 +02:00
Jeroen Bakker 7747d4cecf Workbench: increased Quality of the diffuse lighting model
- implemented Spherical Harmonics L2 for diffuse shading.

TODO: caching the precalculated harmonics so it won't take soo long to
open the popover
2018-06-18 15:32:53 +02:00
Brecht Van Lommel fec97ec949 Objects: when active object gets hidden, make it inactive. 2018-06-18 15:20:06 +02:00
Brecht Van Lommel 7c836ac30a Cleanup: simplify some view layer code. 2018-06-18 15:20:06 +02:00
Sergey Sharybin 0365079676 Particles: Remove obsolete code for child particles in edit mode 2018-06-18 15:14:03 +02:00
Campbell Barton 55623368b4 UI: decorators weren't showing icon-only buttons 2018-06-18 15:11:10 +02:00
Campbell Barton de4c81c153 Fix merge error in bpy_driver.c 2018-06-18 15:09:55 +02:00
Bastien Montagne 324e10e76a Merge branch 'master' into blender2.8
Conflicts:
	source/blender/makesrna/intern/rna_space.c
2018-06-18 12:32:12 +02:00
Bastien Montagne 579631819f Fix T55503: File browser filter not working correctly.
There were two issues here, introduced by rB66aa4af836:
* Forgot to change length of some filter_glob var deep in filebrowser code.
* Truncating filter_glob in general can be dangerous, generating
unexpected patterns.

Last point was the root of the issue here, truncating to 63 chars string
left last group as 'match everything' `*` pattern.

To fix that to some extent, added a new BLI_path_extension_glob_validate
helper to BLI_path_util, which ensures we do not have last
wildcards-only group in our pattern, when there are more than one group.
2018-06-18 12:26:47 +02:00
Sergey Sharybin d5ec62a0c3 Multires: Remove unused function
It uses derived mesh, and relies on scene stored in modifier data.
So port is needed anyway.
2018-06-18 11:14:00 +02:00
Sergey Sharybin 4330027895 Depsgraph: Cleamup, reduce indentation level 2018-06-18 10:23:03 +02:00
Campbell Barton 35c02c08b8 3D View: support outline overlay option 2018-06-18 09:23:25 +02:00
Jeroen Bakker 04e2a5cef4 Refactor: Put ViewportAA as UserPref
By default users want AA in the viewport. For slower systems you want to
be able to turn it off. As in the future we would also like to support
TAA in the viewport we introduced it as a Max Viewport AA settings.

Also removed the drawoption to enable/disable AA per viewport
When rendering the AA is always turned on.
2018-06-18 08:54:08 +02:00
Campbell Barton b2f0803b5b Fix T55511: Decorator drag makes many undo steps
Each keyframe made a separate undo step.
2018-06-18 08:25:05 +02:00
Campbell Barton af51ec3214 Cleanup: indentation 2018-06-18 08:10:23 +02:00
Campbell Barton 0d45074768 Cleanup: whitespace 2018-06-18 08:08:08 +02:00
Campbell Barton a794da5200 Fix T55517: Property-split fails w/ expanded enum 2018-06-18 08:05:46 +02:00
Campbell Barton 9d57b5aa44 Merge branch 'master' into blender2.8 2018-06-18 07:34:31 +02:00
Campbell Barton b66ae8259e RNA: disable animation for file output options 2018-06-18 07:31:21 +02:00
Campbell Barton 05dc109553 Merge branch 'master' into blender2.8 2018-06-17 20:37:10 +02:00
Clément Foucault 195879a50d Edit Mesh: Fix buggy occlusion when in xray mode.
This mimics the behaviour of the old wireframe mode. When in Xray mode,
don't use the limit selection to visible option.

Also hide the option if Xray is enabled.
2018-06-17 20:11:37 +02:00
Campbell Barton 2ceff8bd63 Python: Allow untrusted py-drivers to run limited expressions
Limit to a restricted set of built-ins, as well as the math module.
Also restrict of op-codes, disallowing imports and attribute access.

This allows most math expressions to run
without any performance cost once the initial check is done.

See: D1862 for details.
2018-06-17 20:01:05 +02:00
Campbell Barton 06a1a66a9b Merge branch 'master' into blender2.8 2018-06-17 17:10:19 +02:00
Campbell Barton a24b4e6090 Cleanup: trailing space for remaining source/ 2018-06-17 17:06:28 +02:00
Campbell Barton 76c2203f9c Cleanup: trailing space for blenloader 2018-06-17 17:06:07 +02:00
Campbell Barton 6fc8a74886 Cleanup: trailing space for blenkernel 2018-06-17 17:05:51 +02:00
Campbell Barton a262ea8c47 Cleanup: trailing space for compositor 2018-06-17 17:05:29 +02:00