Commit Graph

75472 Commits

Author SHA1 Message Date
Dalai Felinto
d9abb0eaae Explicitly disable separator spacer in popover and pie menus
It is doable to get it to work, you just need to process it line
by line though, and get the right width of each one.

Disabling it for now since it is not implemented anyways.
2018-11-15 16:48:23 -02:00
Brecht Van Lommel
26ea8cd2d0 Fix tool error opening Sculpt template. 2018-11-15 18:48:29 +01:00
Brecht Van Lommel
d1ff122db6 Templates: set autosmooth threshold to 30°, matching default for new meshes. 2018-11-15 18:35:57 +01:00
Sergey Sharybin
113a70808c Fix T57854: Disable viewport visibility crash 2018-11-15 18:29:02 +01:00
Clément Foucault
c2164e579c Eevee: Add irradiance smoothing
This is a parameter that will make the interpolation between irradiance
cells of a same Irradiance Volume smoother, reducing the weight of the
light leaking correction factors.

It is usefull in some cases to avoid harsh lighting transition that can
happen when a sample point it near a surface.
2018-11-15 18:16:30 +01:00
Clément Foucault
11b3954346 Eevee: Irradiance Grid: Make the influence shape corners round
This makes it easier to add corrective light grids without having ugly
blending corners revealing the shape of the grid bounds.
2018-11-15 18:16:30 +01:00
Clément Foucault
21b0f74a6f Eevee: Lights: Reduce default cascade distance 2018-11-15 18:16:30 +01:00
Clément Foucault
7ced0d3cc0 Eevee: Cleanup & small optimization 2018-11-15 18:16:30 +01:00
Clément Foucault
516e000aa9 Eevee: Add Light Threshold value
This is an important change. Starting from now, all lights have a finite
influence radius (similar to the old sphere option for BI).

In order to avoid costly setup time, this distance is first computed
automatically based on a light threshold. The distance is computed
at the light origin and using the inverse square falloff. The setting
can be found inside the render settings panel > shadow tab.

This light threshold does not take the light shape into account an may not
suit every case. That's why we provide a per lamp override where you can
just set the cutt off distance (Light Properties Panel > Light >
Custom Distance).

The influence distance is also used as shadow far clip distance.

This influence distance does not concerns sun lights that still have a
far clip distance.

---

This change is important because it makes it possible to cull lights
an improve performance drastically in the future.
2018-11-15 18:16:30 +01:00
Clément Foucault
d082b18d87 Eevee: Optimisation: Bypass light power calculation when not needed
This makes quite a big improvement in my case 1.8ms vs 2.3ms for a single
area light.
This will make even more difference with light attenuation.
2018-11-15 18:16:30 +01:00
Clément Foucault
d0b0e7efed Eevee: Cleanup: Fix wrong sun area light power calculation 2018-11-15 18:16:30 +01:00
Clément Foucault
f3074b96d6 Eevee: Make sun power match cycles better.
I made an empirical test with a 100% diffuse sphere and manually tweak the
lighting power of a sun lamp trying to fit cycles and eevee the best I can.

Then I plotted the result and found a rough fit to the equation and that
seems to work pretty well.
2018-11-15 18:16:22 +01:00
Alexander Gavrilov
e6276e1748 RNA: always allow fallback from defaultarray to defaultvalue.
The python getters for the array already allowed that, but not the
actual C RNA access functions. This is inconsistent, so implement
the fallback in all cases. Now if by default the property should
contain the same value in all positions, it is not necessary to
actually use an array.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D3940
2018-11-15 19:42:03 +03:00
Jacques Lucke
4fbde56f51 Py API: Fix documentation/actual behavior missmatch in gpu.matrix 2018-11-15 17:10:32 +01:00
Jacques Lucke
4d04235d5f Py API Docs: Fix formatting 2018-11-15 16:54:29 +01:00
Sergey Sharybin
7291996f3b Fix T57825: Crash when assign material
We need to make sure that all the nested node trees are localized.

Because of this reason, we need to roll back to a bit older way
of dealing with materials.

Should be all safe now with the fixes from few moments ago.
2018-11-15 16:50:30 +01:00
Sergey Sharybin
637d5ab635 Depsgraph: Clear localization tag for CoW IDs
They are self-contained now, and should not cause any sync or
free happening when freeing them.
2018-11-15 16:38:20 +01:00
Sergey Sharybin
ba9bd979f1 Tag all localized ID types as such 2018-11-15 16:36:35 +01:00
Sergey Sharybin
9edff9ce9b Remove legacy node tree localization tag
Is stored on ID level now.
2018-11-15 16:35:28 +01:00
Sergey Sharybin
c5219abd74 Followup to the previous commit
Thought this is to be fixed in master first. Turns out, nope :)
2018-11-15 16:33:00 +01:00
Sergey Sharybin
d546269de8 Cleanup: Double semicolon at the end of line 2018-11-15 16:32:18 +01:00
Sergey Sharybin
9d52ff1ced Fix strict compiler warnings/errors 2018-11-15 16:31:26 +01:00
Sergey Sharybin
61ee2f0db8 Merge branch 'master' into blender2.8 2018-11-15 16:28:37 +01:00
Sergey Sharybin
74fdf68a41 Cleanup: Comments 2018-11-15 16:28:07 +01:00
Dalai Felinto
b85886f8d5 LayerCollection RNA API util functions
* has_objects()
* has_visible_objects(view_layer)
* has_selected_objects(view_layer)
2018-11-15 11:51:57 -02:00
Dalai Felinto
570e37261d Hide collections menu: ignore excluded collections
Note: I didn't change the shortcuts, I think this is a separate decision
to be made. I just want at the moment to have the H operator to mimic
the upcoming popover.

Personally if we are to keep the 1-10 shortcuts (and they do work) I
think we should skip the excluded collections altogether.

In fact we could have an option to hide them from the outliner too.
2018-11-15 11:51:57 -02:00
Jacques Lucke
bdca863956 Units: Identifiers in Python
I only specified the identifiers for the units that are actually accessible for now.
This way we can postpone some decisions for now. E.g. if it should be `METER_SQUARE`, `SQUARE_METER`, `METER_SQ`, ...

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3945
2018-11-15 14:40:22 +01:00
Sergey Sharybin
cdfc128267 Fix T57848: Transforming large linked instances freezes Blender 2018-11-15 13:55:15 +01:00
Brecht Van Lommel
71fd7e610a Keymaps: minor code refactor after adding tools to default preset. 2018-11-15 12:50:33 +01:00
Sergey Sharybin
9a9ca5e40b Depsgraph: Build all type of IDs for modifiers and constraints
It was missing handling of collections there, which caused collection
used for smoke colliders to not be in the dependency graph.
2018-11-15 12:48:55 +01:00
William Reynish
93b373060f Icons: add tilt tool 2018-11-15 22:31:42 +11:00
Bastien Montagne
d2c41293a0 Fix T57831: Crash with multi-select / delete of the same object in Collection outliner.
Tssst… that piece of code should have been removed when we got rid of
bases here, kind of obvious it would break if object pointer itself is
NULL! And since deleting an object clears its ID pointers in outliner
tree, this fixes for free the issue of deleting several time the same
object (being selected in several collections at once).
2018-11-15 12:26:55 +01:00
Alexander Gavrilov
e318da5350 Remove unused parameter. 2018-11-15 14:19:35 +03:00
Sergey Sharybin
90cf9bcc7d Depsgraph: Make drivers builder less noisy
Do early output when trying to add target relation with wrong rna_path.

We can't do anything reliably in that case anyway, so hopefully it is
a no-functional-change for artists, just avoids noisy error prints in
the terminal.
2018-11-15 12:13:28 +01:00
Alexander Gavrilov
a575c508fe Stretch To: fix initialization of the constraint with copy-on-write.
The constraint is supposed to automatically initialize the rest
length when it is first evaluated, so now that evaluation is done
on a separate copy it also has to copy the value to the master
instance - or newly created constraints will be broken.

Since this is supposed to happen once at constraint creation,
implementing as a search for now instead of adding new fields.
2018-11-15 14:10:24 +03:00
Sergey Sharybin
773110f848 Depsgraph: Save memory by ignoring invisible objects
This finished old standing TODO which was attempting to
ignore objects of all invisible collections.

The difference here is that we remove invisible bases from
view layers. This guarantees that the evaluated state is
consistent and does not reference original objects.
2018-11-15 11:43:12 +01:00
Sergey Sharybin
156fe74f91 Depsgraph: Fix/workaround crash after recent point cache changes
For some reason relations can not always be found. This is to be
investigated, but doesn't hurt to be safe here. Also allows to
unlock production.
2018-11-15 11:43:12 +01:00
Sergey Sharybin
4a3a4eef14 Depsgraph: Use more human readable relation keys identifier 2018-11-15 11:43:12 +01:00
Campbell Barton
b8d21f9b9b Cleanup: typo, whitespace 2018-11-15 18:50:18 +11:00
Campbell Barton
49cd13768f UI: 'Add Object' rename dimensions
D3943 by @Zachman w/ edits
2018-11-15 17:44:50 +11:00
Campbell Barton
02a21420e8 Fix gizmos in the node editor 2018-11-15 15:43:50 +11:00
Campbell Barton
8c7727946c Gizmo: tweak navigation drawing for axis views
Axis aligned views now show both small/large handles,
this makes it possible to well if the view is in front or behind.
2018-11-15 14:11:08 +11:00
Campbell Barton
3ecc79fa1a Gizmo: use color fading to show depth for navigate
Previously the positive axis was always brighter,
now use bright colors which face towards the view.
2018-11-15 09:44:03 +11:00
Campbell Barton
28e7c94de2 Gizmo: minor fix for navigation axis color
When view aligned, the near axis was hidden,
making it seem as if the opposite axis was at the front.
2018-11-15 08:17:16 +11:00
Campbell Barton
d04947b422 Gizmo: skip text drawing w/ select for navigate
Also use struct for storing extra args.
2018-11-15 07:59:03 +11:00
Brecht Van Lommel
6f08124fbd Fix assert in bevel modifier with certain geometry.
This happened in in the barbershop_interior.blend benchmark file, seems
duplicate hash entries are ok for this algorithm.
2018-11-14 18:21:28 +01:00
Bastien Montagne
844c7440fc Fix (unreported) bpy.ops.wm.read_factory_settings(use_empty=True) crash.
`BKE_blendfile_read_make_empty()` was not preserving workspaces...
2018-11-14 18:21:06 +01:00
Alexander Gavrilov
e20557046b Depsgraph: suppress logs from add_relation on invalid driver variables.
Rig generators (e.g. rigify) use dummy drivers to attach extra
ID references to rigs for Append/Link. These references use
Single Property variables with empty path, which is intentionally
invalid and shouldn't produce low-level error logs from depsgraph.

The removed code would always print an error because RNAPathKey
requires a valid path to produce a non-NULL reference.
2018-11-14 20:18:48 +03:00
Alexander Gavrilov
10bab568d3 Fix assertion failure evaluating depsgraph on an empty armature.
If there are no bones, chan_array may not be allocated.
2018-11-14 19:15:41 +03:00
Bastien Montagne
b44e6f2b3d Fix T57760: Depsgraph 'object_instances' showing incorrect list of objects.
It appears that Python gets next item before using current one, which
would break our Depsgraph instance iterator (since only current item is
valid there, we use the same memory at each iteration).

Working around that with an ugly ping-pong game between two sets of
iterator data, so that previous one (C RNA-iterator-wise) remains valid
memory for Python to access to.
2018-11-14 17:07:02 +01:00