Commit Graph

3705 Commits

Author SHA1 Message Date
Dalai Felinto
dc5fa12bd3 Cleanup: Use BKE_object_is_visible elsewhere 2019-10-14 22:45:33 -03:00
Dalai Felinto
b8f769fee8 Fix T64901: Nesting collection instances could clutter object display 2019-10-10 17:49:46 -03:00
b50b91c25d Cleanup: Fix wrong assert introduced by rBd98ae27f02c7 2019-10-10 20:16:22 +02:00
dc2cd2d0dc Cleanup: clang-format, spelling 2019-10-10 10:29:50 +11:00
9bd62379d6 Fix T70659 Warning, Regression, slow vertex selection
This changes the fix for T70302 by reducing the number of things we discard.
2019-10-09 23:47:56 +02:00
4aabea8b87 Fix T70640 EEVEE: Alpha hashed material is darker when alpha is not 1.0
Predivide all radiance components as the alpha effect comes from the hashed
transparency (pixel rejection).
2019-10-09 14:56:21 +02:00
Dalai Felinto
0812949bbc Local Collections: Allow users to show hidden collections
Users now can turn on in a viewport collections that are temporarily
hidden (eye) in the view layer.

Design task: T61327

As for the implementation, I had to decouple the visibility in the
depsgraph from the visibility in the view layer.

Also there is a "bug" that in a way was there before which is some
operators (e.g., writing a text inside of a text object, tab into edit
mode) run regardless of the visibility of the active object. The bug was
present already (with object type visibility restriction) in 2.80 so if
we decide to tackle it, can be done separately (I have a patch for it
though P1132).

Reviewed by: brecht (thank you)

Differential Revision: D5992
2019-10-08 19:16:05 -03:00
d98ae27f02 Fix T68857 EditUV: Crash on Remesh modifier with 'Display in Edit Mode' 2019-10-08 18:42:26 +02:00
656228945e Fix T69363 EEVEE: Blender crash when using Edit mode for Ocean
Use same Mesh* as extraction. We always use the final mesh for shaded geom.
2019-10-08 18:37:38 +02:00
a856c5eccf Fix T67753 EEVEE: Crash using transparent shadows with default material 2019-10-07 22:16:53 +02:00
e5858cc5be Fix T70302 Crash on entering solid view after some specific steps 2019-10-07 19:22:41 +02:00
d7465c23c7 Fix T70564: sculpt mask display missing with shape keys or deforming modifiers 2019-10-07 17:38:07 +02:00
e00a00db52 Cleanup: rename some sculpt variables for clarity 2019-10-07 17:38:07 +02:00
Jeroen Bakker
0bdf4e2f2d Show Background Image Beneath Transparent Objects (Cycles only)
Camera background images were not shown under transparent objects.
This patch performs an alpha under for background images for cycles.

In order to see the difference the Film transparency needs to be turned on.

Note that workbench and EEVEE still needs to be adapted as they don't
write store alpha value in the viewport.

Side note. This implementation is already an improvement of the current behavior, what users are requesting. (Show background images underneath cycles viewport rendering.) It is clear that this patch still needs to be extended to workbench and eevee. For now that should be marked as a known limitation.

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D5437
2019-10-05 17:18:53 +02:00
56dd7feb06 GPU: Platform Support Level
Adds a check when starting blender if your platform is supported. We use a blacklist
as drivers are updated more regular then blender (stable releases).

The mechanism detects if the support level changed or has been validated by the user previously.
Changes can happen due to users updating their drivers, but also when we change the support
level in our code base.

When the user has seen the limited support level message it is saved in the user config.
It would be better to have a system specific config section, but currently not clear
what could benefit from that.

When the platform is unsupported or has limited support a dialog box will appear including a link
to our user manual describing what to do.

**Windows**
Windows uses the MessageBox that is provided by the windows kernel.

**X11**
We use a very lowlevel messagebox for X11. It is very limited in use and can be fine tuned when needed.

**SDL/APPLE**
There is no implementation for SDL or APPLE at this moment as the platform support feature targets mostly Windows users.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5955
2019-10-04 16:23:39 +02:00
03bf290eae GPencil: Reduce VBO memory footprint when using modifiers
Before, the modifiers were evaluated in Draw Engine and this required to calculate a factor to increase the VBO size.

Now, the modifiers are evaluated in Depsgraph and the Draw Engine receives the evaluated stroke with the final number of vertices. As the number of vertices is the final value already, if Draw Manager increases the number with the modifiers only increases the memory with empty space because never would be used. This commit removes this double calculation, reducing the memory usage and removes a loop to calculate the size by modifier too.

Also, the function getDuplicationFactor() has been removed because is not required anymore.
2019-10-04 10:20:15 +02:00
79ca5ad368 Fix T70484: GPencil particles crash when original stroke is hidden
Due the internal design of the drawing engine and the special requirements for 2D inside 3D, it's required to keep the original stroke visible in order to display the particles. If the original stroke is hidden, the particles are hidden too.

This commit only fix the segmentation fault. Make visible the particles when the original is hidden would require a complete redesign and maybe would break some 2D features.
2019-10-03 19:03:40 +02:00
93e8c962fc Cleanup: unused structs, struct members 2019-10-03 07:39:45 +10:00
c07eaa3384 Cleanup: argument naming, redundant NULL checks 2019-10-03 07:32:28 +10:00
02ad256f9a Fix T70414 EEVEE: Crash with 2 viewports, UV edit and sync selection 2019-10-02 16:56:22 +02:00
Antonio Vazquez
ddd40985e7 Fix T70399: Grease Pencil Canvas Grid Overlay Broken after DRW refactor
Now the grid matrix is calculated when the shading group is created.

Also, the grid pass is only created when needed and reduce memory usage when the scene is not using grease pencil objects.

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D5966
2019-10-02 15:33:20 +02:00
574265f52f Fix T70206 Texture Paint: UV shadow doesnt show up 2019-10-01 16:02:14 +02:00
a6a0a09197 Cleanup: spelling 2019-09-30 17:07:05 +10:00
56fe8239ab Fix T70320: View clipping doesn't hide extra wireframe 2019-09-30 04:50:22 +10:00
9b0fd5ef2a Sculpt: only update draw buffers for visible nodes during paint stroke
Also applies to some other sculpt tools like filter and mask expand.

The full update happens after the paint stroke is finished, so it does not
happen on view navigation, which would cause a delay.

Ref T70295

Differential Revision: https://developer.blender.org/D5922
2019-09-29 16:22:09 +02:00
f6fc863acd Sculpt: multithread GPU draw buffer filling for workbench
This improves performance of some sculpt tools, particularly those that modify
many vertices like filter and mask tools, or use brushes with large radius.

For mask expand it can make updates up to 2x faster on heavy meshes, but for
most tools it's more on the order of 1-1.1x. There are bigger bottlenecks to
solve, like normal updates.

Ref T70295

Differential Revision: https://developer.blender.org/D5926
2019-09-29 15:28:15 +02:00
1ca105ebdc Sculpt: disable workbench anti-aliasing during stroke painting
This mostly happens automatically anyway since there is usually not enough
time left over for it. But when it does it happen it breaks partial redraw,
and may also have a negative impact on responsiveness.

Ref T70295
2019-09-29 15:27:37 +02:00
a2457dd7bb Debug: add 888 and 889 debug values for redraw and PBVH node visualizatons
More convenient to use the debug menu than having to modify code every time.
2019-09-28 01:35:53 +02:00
ad22d3111f Fix T70226 EEVEE: Crash/Assert entering edit mode with instanced meshes...
... and modifiers.

This was caused by wrong mesh being taken into account when in edit mode.
2019-09-28 00:44:16 +02:00
e51b93473a Fix T70247 Crash on enter edit mode with UV editor opened 2019-09-27 19:45:27 +02:00
7bbdc6996a Fix T69941 Assert selecting UVs
Was caused by DRW_mesh_batch_cache_get_edituv_faces_stretch_area called
after DRW_mesh_batch_cache_create_requested. So it was created on the wrong
object/mesh.
2019-09-27 17:19:00 +02:00
df3891ed81 Fix T69377 Texture flickering when selecting in solid viewport (AMD Pro driver)
Workaround that does not fix the real issue.

The bug is caused by glBufferData inside
DRW_instance_buffer_finish > GPU_vertbuf_use
but only after the selection code which resets the number of items in
idatalist->pool_buffers.

I don't understand why this is happening as the vbo ids are all valid and
no error is reported. What is even more strange, is that it affects another
vbo which has no connection with the ones in DRW_instance_buffer_finish.
2019-09-27 15:31:18 +02:00
c601839176 Fix T70106 Objects with multiple materials are not displaying correctly
Seems to be an issue with OSX and loading objects matrices from uniform
buffers.

Using legacy path for that reason.
2019-09-27 15:31:18 +02:00
770e91703d Fix part of T70295: sculpt drawing not clipping PBVH behind the camera
Use all 6 clipping planes for drawing.
2019-09-27 14:59:41 +02:00
d3a98b2c3b Fix part of T70295: sculpt drawing not clipping PBVH nodes outside of viewport
As before in 2.7, this only works for optimized drawing in workbench mode.
2019-09-27 14:29:40 +02:00
92686c667e Cleanup: structs, cmake file lists 2019-09-27 12:45:54 +10:00
c43018cdc0 Fix T69814: Grease Pencil Onion Skin Loop doesn't work as expected
The first element of the loop was not calculated for all onion modes. For select mode the first selected is used, for other modes the first frame in the layer is used.
2019-09-26 18:04:36 +02:00
c525d0e3ae Object Mode: Fix missing ubo assert with irradiance grid 2019-09-26 15:48:29 +02:00
cbf2d23ff2 CleanUp
Removed unused define in `edit_mesh_mode.c`
2019-09-26 13:32:55 +02:00
24afa26a50 Clean up
Unused framebuffers in `edit_mesh_mode.c`
2019-09-26 12:56:20 +02:00
bb74bd243f Code Cleanup
Removed unused shading groups in `edit_mesh_mode.c`
2019-09-26 12:37:39 +02:00
f9ef0e1bde Fix T67342 EEVEE: Uninitialized buffer when changing screen size
Was caused by some drawcall not being done if the volumetric resolve pass
was drawn (using dual source blending seems to be the cause).
Not sure why this is needed since it is still reset before the next
drawcall.
2019-09-25 15:37:42 +02:00
c6995b3095 Fix T70004 EEVEE: Texture Coordinate Node in world shader render artifacts 2019-09-24 18:21:39 +02:00
561dfd12be Fix T70124: Motion path not drawn for Armature in Object Mode 2019-09-24 15:33:32 +02:00
69ad44d5b4 Cleanup: remove unimplemented texture space rotation variables 2019-09-23 16:27:23 +02:00
9208146199 Cleanup: remove Mesh.bb and Curve.bb, no reason for these to be persistent
These were only strictly valid for texture space calculation, don't store them
since they should not be used after that. Only store a flag to indicate if the
auto texture space has been evaluated.

In the future it might make sense to store bounding boxes at the mesh level to
speed up bounding box computation for multiple objects using the same mesh, but
then it will need to be implemented differently.
2019-09-23 16:27:23 +02:00
5c89c689db Fix selection and snapping misusing texture space as boundbox
This fixes the regression from T70103 introduced by the fix for T70103.
2019-09-23 16:27:03 +02:00
8634c4646e GPencil: Use correct comparison for non-bit values 2019-09-23 12:55:16 +02:00
1d1ef2e797 Revert part of "GPencil: Invert Paste operator and make Paste to Active default"
This commit accidentally undid a bunch of previous commits. Only the intended
changes are left now.
2019-09-23 11:09:00 +02:00
381a274909 Cleanup: use braces 2019-09-23 09:36:12 +10:00