Commit Graph

3147 Commits

Author SHA1 Message Date
Jeroen Bakker
4d78f5a4a7 DrawManager: External Engines + Overlays
Do not iterate over degsgraph when overlays are turned off and
rendering via an external engine. External engines sync data
from Blender differently. The external engine
draws the depth buffer, but that is only needed for overlays.

Reviewers: fclem, brecht

Differential Revision: https://developer.blender.org/D4791
2019-05-07 09:26:44 +02:00
Clément Foucault
ddb71e8c20 DRW: Remove is_negative_m4 per draw call
This had some cost in perf and is not needed most of the time. If the
drawcall really needs it, it should use a correct ob pointer.
2019-05-06 22:33:05 +02:00
Clément Foucault
ff90589966 Cleanup: Eevee/Workbench: Remove non-needed matrix inversion
Theses are garanteed by the depsgraph now.
2019-05-06 22:33:05 +02:00
Clément Foucault
55bf2adbea DRW: Attempt to fix slowdown caused by gizmo drawing 2019-05-06 22:33:05 +02:00
Clément Foucault
8b6afcb67b Cleanup: Eevee: Remove comment about vcol support in sculpt mode 2019-05-06 22:33:05 +02:00
George Vogiatzis
b8d806caf7 UI: Add Look Developer Balls Size option
Note: Some adjustments were made compared to the diff mainly for code
readability and made the default ball size 150px.

Reviewed By: fclem

Differential Revision: http://developer.blender.org/D4793
2019-05-04 14:11:04 +02:00
Clément Foucault
f302224e16 Cleanup: Eevee: Remove Flat normal shader variation
Was use by sculpt mode but that's not used anymore.
2019-05-04 14:11:04 +02:00
Clément Foucault
fb3b2ab709 Cleanup: Remove unused code in sculpt_mode, workbench and draw manager 2019-05-04 14:11:04 +02:00
Clément Foucault
b2f1a65874 Sculpt: Refactor draw manager sculpt drawing mechanism
Workbench/Eevee now displays multiple multi-materials correctly.

Iterate over pbvh nodes when doing object iteration. This makes the
rendering process more streamlined and allow for using different materials.

This change will make possible to:
- Add culling pass of each pbvh leaf node. (speedup if zoomed on a small
area)
- Reduce number of lead node iteration.
- Reduce code complexity
2019-05-04 14:11:04 +02:00
Clément Foucault
95e052f830 Fix T63997 Weird z-fight during weight paint
PBVH drawing was used even in weightpaint/vertexpaint because both uses
the sculpt session.
2019-05-02 16:51:45 +02:00
Clément Foucault
102daed1f2 Cleanup: Draw Manager: remove DRW_state_invert_facing 2019-05-02 16:51:45 +02:00
Jeroen Bakker
b52a0c78af Workbench,EEVEE: Viewport Render Samples
- Add `render_aa` and `viewport_aa` sampling setting for workbench. 0
   samples means no AA, 1 sample uses FXAA and more samples will use
   TAA.
   The viewport `gpu_viewport_quality` can still limit viewport anti-aliasing
   method.
 - Use TAA when rendering images. (this used to be CPU based FSAA)
 - Removed `R_OSA` related settings.

Reviewers: fclem, brecht

Maniphest Tasks: T60847

Differential Revision: https://developer.blender.org/D4773
2019-05-02 16:19:12 +02:00
Jeroen Bakker
5ec7987949 DrawManager: External Engine Depth Buffer
Only draw the depth buffer when overlays are enabled and scene
or view has changed.

When using Cycles in the viewport for every viewport draw call
the depth buffer was renewed. Draw calls happened when a sample
was finished or the status report was updated.

This could waist some CPU/GPU cycles. This change will check when
the depth buffer needs to be updated or when the last known depth
buffer could be reused.

Reviewers: brecht, fclem

Maniphest Tasks: T63525

Differential Revision: https://developer.blender.org/D4775
2019-05-02 15:10:43 +02:00
Clément Foucault
7f366c048a Fix T63435 Incorrect fresnel and normals for hair strands on EEVEE 2019-05-02 14:32:41 +02:00
Campbell Barton
1bea76dd6a Cleanup: style 2019-05-02 11:45:46 +10:00
George Vogiatzis
a8bdb357b4 UI: move object origin size preference to themes
Differential Revision: https://developer.blender.org/D4657
2019-05-01 18:05:48 +02:00
Clément Foucault
a72a831570 Eevee: Fix crash when rendering due to recent lookdev refactor 2019-05-01 15:45:54 +02:00
Clément Foucault
e66629c128 Eevee: Lookdev: Cleanup implementation & support for Bloom and TAA
Make Lookdev works with bloom and TAA by rendering it before TAA and fixing
the motion vectors of the lookdev balls.

Rework Lookdev to remove much of its complexity. Use simpler matrices with
more understandable setup code.
2019-05-01 12:09:18 +02:00
Clément Foucault
b581f19292 Eevee: Add support for alpha background in viewport
Viewport now displays alpha checkerboard pattern like Cycles does when
film alpha is set to "Transparent".

Some small workarounds were necessary for Depth of Field and correct TAA
support.
2019-05-01 12:09:18 +02:00
Clément Foucault
47717060af DRW: Draw checkerboard alpha pattern for Cycles
Add checkerboard alpha pattern like it was in 2.79
2019-05-01 12:09:18 +02:00
Clément Foucault
e6705fad33 DRW: Add DRW_STATE_BLEND_PREMUL_UNDER
Just basic alpha under operation with premultiplied source.
2019-05-01 12:09:18 +02:00
Campbell Barton
63f0e150ed Cleanup: comments (long lines) in draw 2019-05-01 10:51:10 +10:00
Dalai Felinto
ae7db030da Stop using deprecated ob->flag & SELECT
We still have base->flag_legacy & BA_WAS_SEL for the few cases we really
need to have a per-object selection check (used in the transform code).
2019-04-30 16:48:07 -03:00
Antonioya
2fd6e855a5 GPencil: Small tweak to Dot minimum thickness
This was changed in a previous commit to 1.0, but a value of 0.5 works better.
2019-04-30 17:49:28 +02:00
Clément Foucault
2445d5abc2 Fix T63393 Eevee: Specular Shader's Clear Coat does not function 2019-04-30 14:07:22 +02:00
Jeroen Bakker
d1f6ea2793 Sequencer: Scene Strip Performance
- Merged SEQ_OFSDRAW with V3D_OFSDRAW and define in the
       DNA_view3d_types: Due to this FSAA always kicked in making the
       rendering slow.
     - Removed `Texture Solid` and `DOF`.
     - Now when chosing Solid rendering the settings
       of the original scene is used.
     - Added a global override to use scene specific shading. In the
       Future we will need to enhanced this so user can change the
       settings.
     - Added support for LookDev. LookDev crashed as it needed the
       `evil_C` what was not set
     - LookDev mode will always show the scene + world lights.

Reviewed By: brecht, fclem

Maniphest Tasks: T62517

Differential Revision: https://developer.blender.org/D4738
2019-04-30 14:01:22 +02:00
Clément Foucault
e8daa61570 DRW: Add debug utility for batch cache requests 2019-04-30 12:55:03 +02:00
Clément Foucault
782917648f Fix T64009 Normal Maps not working on EEVEE
Was missing a flag from recent refactor.
2019-04-30 12:55:03 +02:00
Antonioya
56fd032393 T63854: Grease Pencil strokes appear too thick in the viewport when using texture mode
There was an arbitrary size limit of 4 pixels.
2019-04-30 11:59:48 +02:00
Antonioya
4d889897ba Fix T63592 issue with control points.
This is a missing fix in previous commit of this task.
2019-04-30 11:27:33 +02:00
Clément Foucault
413ffd4606 DRW: Batch Cache: Add Loop normals calculation flag and cleanup style
Improve selection time since it bypass BM_loops_calc_normal_vcos when mesh
uses auto-smooth.
2019-04-29 18:51:07 +02:00
Clément Foucault
c7767f1bcf DRW: Improve edit mode selection time when using auto-smooth
Unfortunately it does not concern paint mode.

Related to T63946
2019-04-29 18:51:07 +02:00
Clément Foucault
88e20c663c DRW: Speedup: Improve time to validate batch cache
This is a small improvment but is does scale up with the number of objects.
This improvement *does not* speedup geometry update.
2019-04-29 18:51:07 +02:00
Antonioya
a494be2f2e Fix T63979: GPencil control points hidden in orthographic mode 2019-04-29 17:20:54 +02:00
Antonioya
6cb90d180f Fix T63937: unconfirmed grease pencil strokes not visible in ortho suface
The value of the z-depth was too high. Now the value is valid for perspective and orthographic view.
2019-04-27 19:27:20 +02:00
Antonioya
19ebee657e GPencil: Cleanup derived frame code
This is a previous step to move away the derived frame logic to be used in edit modes.
2019-04-27 12:02:26 +02:00
Campbell Barton
fd1dd1134b Cleanup: unused vars 2019-04-27 10:00:43 +10:00
Clément Foucault
8192bcd7c1 Fix T63886 Crash in UV Editing after faces display turn off / on
This patch also improve cache locality of the IBO filling. I did not benchmark if it made
any difference.
2019-04-26 17:03:25 +02:00
Clément Foucault
fe7605b710 Cleanup: Armature 2019-04-26 16:47:26 +02:00
Clément Foucault
7a48e25003 Armature: Speedup by removing unecessary check
drw_batch_cache_generate_requested() is only needed when the geom needs to be
created.

Went from 37fps to 47fps with artificial testcase (lots of bones with one custom shape). Baseline 2.79 is 24fps.

Also fix the drw_shgroup_bone_custom_wire.
2019-04-26 16:37:15 +02:00
Clément Foucault
d4827cfa81 Fix T58966 Sculpted changes dissapear visually when selecting a second object
Display sculpt mesh if there is a sculpt session.
2019-04-26 16:17:35 +02:00
Clément Foucault
50d75cd528 Fix T62880 Severe FPS drop with multiple bone shapes
Fix instancing batches not being reused by custom bone shapes.

Drawing thoses is now faster than 2.79 (40fps instead of  30fps)
2019-04-26 15:33:49 +02:00
Campbell Barton
20c5f677d7 Cleanup: clang-format 2019-04-26 13:04:23 +10:00
Clément Foucault
16639c6f1a Fix T63784 Eevee : Black Diffuse with Principled BSDF and Mix Shader
This was cause by the SSS energy being lost when using SSRefraction. Also the mix
shader did not merge the discarded SSS light into the radiance.
2019-04-26 00:14:28 +02:00
Clément Foucault
905f2d84af DRW: Use culling when selecting
The culing still seems to be off but at least it is enabled now.
2019-04-25 17:27:21 +02:00
Clément Foucault
21aa4d73bf DRW: Cleanup: use iter_flag const for readability 2019-04-25 17:27:21 +02:00
Antonioya
c04dcde0ba Fix T63846: In Orthographic View, unconfirmed Grease Pencil strokes do not appear in front of Reference Images
In orthographic, the z-depth was wrong.
2019-04-25 17:11:58 +02:00
Jeroen Bakker
38a0896f15 Overlay: Mesh Analysis
Enabling the drawing of the mesh analysis overlay.
Currently the settings are part of the scene toolsettings. What makes sense,
for 3d printing, but does not fit well with the per viewport blender 2.80
overlays.

Reviewers: brecht, fclem

Differential Revision: https://developer.blender.org/D4707
2019-04-25 11:25:22 +02:00
Clément Foucault
a14735d11d Fix T61184 linked curves with curve modifiers arent drawn correctly
Force Displist to Mesh conversion if there is any modifier.

This is until we find a better way to store the batches per objects.

Also fix draw cache functions that were not returning final mesh edges.
2019-04-24 19:11:36 +02:00
mano-wii
c265e25bb1 Correct switched values in the previous commit. 2019-04-24 13:31:35 -03:00