Commit Graph

2261 Commits

Author SHA1 Message Date
Campbell Barton
1f67db75f1 Cleanup: style 2018-10-21 16:23:15 +11:00
Campbell Barton
769b979abb Cleanup: trailing space 2018-10-21 16:23:15 +11:00
Campbell Barton
34f2ed7f71 Cleanup: compiler warnings 2018-10-21 16:23:15 +11:00
Antonioya
8c9f8d6cbb GP: Fix duplication when draw strokes in multiple windows
The stroke must be visible only in the current region and only visible when the stroke is completed.
2018-10-20 19:40:29 +02:00
Antonioya
541d07045b GP: Redesign drawing cache to support particles
Full redesign of the cache system used for drawing strokes and handle derived frame data.

Before, the cache was saved in bGPdata and a hash was used to manage several objects with the same datablock.

Old design made the use of particles very inefficient and prone to bugs and segment faults, and especially when this was mixed with onion skinning and multiple objects using same datablock. Also, there were some conflicts with the depsgrah logic (the old design was done before despgraph was in place) that made the use of hash not working.

The new design saves the data in the object runtime struct and avoid the use of any hash to find the right data. This improves the speed and reduce a lot the complexity of the code, memory allocation, hash overload and adds full support for particles and reused datablocks.

The particles can reuse the modifiers and shader effects of the original grease pencil object.
2018-10-20 09:08:34 +02:00
mano-wii
8e3a680ebe Fix Eevee Reflection CubeMap and Irradiance Volume on some Intel gpus
When you pass a struct as a parameter to a function, the qualifier "layout(column_major)" is lost.
2018-10-19 18:23:26 -03:00
Clément Foucault
e6fe207a52 Eevee: LightProbes: Fix negative padding 2018-10-19 18:13:22 +02:00
Clément Foucault
905921d2b5 Fix function using same local variable name as output variable
This may fix issues with certain compiler.
2018-10-19 18:13:22 +02:00
mano-wii
cdef1e911b Fix shadows of sun type lights on some Intel gpus
When you pass a struct as a parameter to a function, the qualifier "layout(column_major)" is lost.
2018-10-19 11:12:30 -03:00
Campbell Barton
9b5183769b Cleanup: compiler warnings 2018-10-19 14:51:55 +11:00
Campbell Barton
6add652c38 Fix T57294: Modifiers cage ignore face visibility 2018-10-19 13:57:00 +11:00
Clément Foucault
642b77e874 Edit Mesh: Decrease the depth bias on vertices 2018-10-18 20:42:32 +02:00
mano-wii
a2922f9840 Optimization: Edit Mesh Overlay
In tests with edit_cage: performance jumped from 9.37ms to 9.17ms.
2018-10-17 15:46:58 -03:00
Clément Foucault
c9faaa6ea7 DRW: Fix DRW_shgroup_create_sub returning source shgroup
instead of the actual sub group...
2018-10-17 19:01:56 +02:00
Clément Foucault
f666be6edf EditMesh: Fix uninitialized value causing red outline on edges 2018-10-17 18:49:27 +02:00
Clément Foucault
fd61b49d50 ObjectMode: Fix Outlines being drawn for BBox meshes 2018-10-17 18:09:37 +02:00
Clément Foucault
91e5e02aff ObjectMode: Fix instances with BoundBox drawtype not displaying 2018-10-17 18:09:37 +02:00
Clément Foucault
c6eb5651ba Eevee: Fix error when using texture coordinate on world shaders
Compilation errors were happening on OSX with errors of the type:
```ERROR: Input of fragment shader 'viewNormal' not written by vertex shader```
2018-10-17 12:18:06 +02:00
Campbell Barton
ae093e6a84 Cleanup: whitespace 2018-10-17 14:08:44 +11:00
Campbell Barton
96dc1ad308 Fix T56735: Autosmooth option corrupts UVs 2018-10-17 13:26:27 +11:00
mano-wii
41ad845531 Optimization: Edit Mesh Overlay: Avoid computing fixvec unnecessarily.
This brings a big difference to meshes with edit cage adjusted for modifiers.
In my tests, the suzanne with subdivision modifier level 3 went from 4.80ms to 3.05ms.
2018-10-16 20:42:50 -03:00
Dalai Felinto
540f37003c Fix armature bones spline ik lines offset 2018-10-16 18:28:35 -03:00
Dalai Felinto
f280f83f83 Fix armature bones ik lines offset 2018-10-16 18:22:17 -03:00
mano-wii
1f1da26840 Edit Mesh Overlay Geometry Shader: Ignore correction geometry for loops that are not part of an edge.
By the tests I could only observe a considerable difference in the peformanse when the vertex size is 30.
Vertice 3 showed no difference in a suzzane with subdivision modifier level 3 + show-on-cage.

Point Size 30: 7.29ms vs 2.55ms

Reviewers: fclem

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D3805
2018-10-16 23:04:57 +02:00
Clément Foucault
2ab6272233 DRW: Fix assert with BoundBox object display mode 2018-10-16 22:53:32 +02:00
Antonioya
0b5786e96c GP: Fix Blur shift when add more samples
The image was moving in +X and +Y when added samples due round precission.
2018-10-16 10:23:13 +02:00
Campbell Barton
c1b8ce3170 Fix crash in loose edge check 2018-10-16 15:02:30 +11:00
Campbell Barton
8a94425e96 Cleanup: redundant check for hidden edge 2018-10-16 09:01:52 +11:00
Clément Foucault
9ecf68e8ae Eevee: Fix Missing alpha when rendering with DOF
NOTE: There is a float imprecision near the focus plane
due to the current technique used for DOF. This makes the alpha channel
transparent on nearly in focus objects even when they should not.
This artifact should be fixed when the DOF will use scatter as gather for
low brightness areas.

Fix T57042 : Eevee does not render alpha when DOF is turned on
2018-10-15 16:04:50 +02:00
Clément Foucault
478899dee7 Edit Mesh: Fix missing loop normal display 2018-10-15 16:04:50 +02:00
mano-wii
22814ca555 Fix related to T55961: Glitch in selecting loose edges on some AMD drives. 2018-10-15 09:54:24 -03:00
mano-wii
c2afa3ef46 Edit Mesh: Add comments explaining weirdness in the code. 2018-10-15 09:50:31 -03:00
Clément Foucault
0c39453071 Cleanup: Edit Mesh shader: Remove unecessary varying 2018-10-15 10:43:49 +02:00
Antonioya
918bb05799 GP: Cleanup style 2018-10-15 08:42:47 +02:00
Antonioya
4479813ae5 GP: Small tweak to improve speed 2018-10-15 08:42:46 +02:00
mano-wii
9a38a91f41 Fix T55961: Anomalous edges cage on some AMD buggy drivers.
Reviwed on irc by @fclem.
2018-10-14 14:07:45 -03:00
Antonioya
ac61eb3900 GP: Fix several issues in blur FX
There were some problems with the z-depth and especially when tries to blur a pixel outside the viewport.
2018-10-14 12:21:44 +02:00
Clément Foucault
55e3c17ccc Edit Mesh: Optimize the overlay triangle geometry shader
On my test it's 30% faster than before.

Test case : Suzanne, subsurf lvl3, 64K tris, Edge select mode for fair
comparison.

0.95ms before optimization
0.64ms after optimization

Note that this only optimize the "nicest" display of edit mesh overlays,
not the one when rotating the view where half of the border edges are
missing.
2018-10-13 23:55:30 +02:00
Clément Foucault
de76a809f9 Edit Mesh: Do not use barycentric coord in EDGE_FIX shader and ...
... display vertex even when occluded.

Add back the vertex display because occluded vertex are not visible when
the triangle is almost parallel to the view.

The problem with the barycentric coord is that they are hard to work with
and their derivatives not enough precise to compute the vertex positions.

So we need to pass the vertices scree positions down to the fragment shader.
2018-10-13 23:48:19 +02:00
Clément Foucault
4e168e0036 Edit Mesh: Fix and increase the depth bias on vertices 2018-10-13 23:48:19 +02:00
Antonioya
b11515332b GP: Improve qualitty in Wave when alpha is extreme 2018-10-13 18:28:33 +02:00
Antonioya
78673e5780 GP: Add more blur samples to some FX 2018-10-13 18:24:57 +02:00
Antonioya
7b9049f278 GP: Improve Blur FX quality in transparency. 2018-10-13 18:21:54 +02:00
Clément Foucault
77653d97fb Edit Mesh: Fix issue with Edit cage on some buggy drivers 2018-10-12 17:21:04 +02:00
Clément Foucault
03d0219d7a Edit Mesh: Refactor edit mesh drawing
This decouple the vertex display from the face+edges.

This is to reduce the number of triangles required to fix the edges
artifacts (aliasing) and increase viewport reactivity when not actively
navigating (ie. mouse scroll).

Also it makes all vertices visible (not cut-off) even when navigating.

However it makes the navigation drawing a bit slower because it has to
render twice.

Also add a depth bias to the wires to avoid depth fighting when previewing
final mesh (modifiers applied).
2018-10-12 16:43:40 +02:00
Clément Foucault
fe4840ed4d Wireframe Overlay: Use Barycentric coord to optimize shader
This also fix a driver bug I was having on Linux + Mesa + AMD Vega.
2018-10-12 16:38:55 +02:00
Clément Foucault
01745051de DRW: Add DRW_shgroup_create_sub to create children shgroup
This makes is easy to create nested drawcalls that will inherit all the
parents properties. This is usefull if only a few uniforms changes for that
drawcall.
2018-10-12 16:38:55 +02:00
Campbell Barton
5400d6a8fa DRW: correct loose edge hidden face check 2018-10-12 17:00:10 +11:00
Campbell Barton
db91414d7b Cleanup: minor mesh allocation changes 2018-10-12 16:47:43 +11:00
Campbell Barton
eef365a126 Cleanup: use const pointers 2018-10-12 16:42:11 +11:00