Commit Graph

3096 Commits

Author SHA1 Message Date
6fed1525a1 3D View: Show the camera frame when Extra's is off 2019-04-11 14:01:18 +02:00
87f07af737 Fix T63464: Multi UV Maps limited to three with eevee
this was very similar to T60684 (and the UV case was actually reported
back then as well), so the fix goes hand in hand with rBbd8039399575

Reviewers: fclem

Maniphest Tasks: T63464

Differential Revision: https://developer.blender.org/D4672
2019-04-11 10:30:33 +02:00
a1a8578d5c Fix T62449: Subsurf+hidden faces
When using subsurf (and other modifiers) the edit flags are not
propagated correctly. Currently we assume to read the edit flags
from the original object which is kind off hinding the real issue.

Modifiers use `mesh_new_nomain_from_template_ex` to create a copy
from an existing mesh. this method is only used by modifiers. So
by placing this we will make sure that editmesh is propagated.

Reviewed By: fclem, sergey

Maniphest Tasks: T62449

Differential Revision: https://developer.blender.org/D4666
2019-04-10 12:44:31 +02:00
55c152164f Cleanup: order simple check before function call 2019-04-10 09:05:39 +02:00
cc74020b5a Fix T62114: Wireframe mode selection: selects backside objects when clicking frontside object in 3d-window
Now the depth order of objects when trying to select them is only used when not in X-ray mode.
Before, this was only the case in wireframe mode regardless of X-ray settings.

I've also unified the usage of V3D_XRAY and XRAY_FLAG as they were basically copies of each other.

Reviewed By: Clément

Differential Revision: http://developer.blender.org/D4504
2019-04-09 12:29:02 +02:00
f55026d468 Cleanup: BKE_gpencil naming
- The ambiguous term 'handle' was used where 'ensure'
  is typically used (get or add when missing).
- Rename `current` to `active`, all `current` functions which were
  also ensuring.
- Clarify what is being operated on, using `BKE_gpencil_object_*` for
  objects, `BKE_gpencil_brush_*` for brushes.
2019-04-09 10:09:13 +02:00
eb9237eb20 Cleanup: style 2019-04-09 08:44:06 +02:00
75f551faca GPencil: Fix wrong Brush texture for pinned materials
If the Brush had a pinned material with texture, but the material slot was in a different material, the texture was not working.

The material was not recovered from brush, but from object.
2019-04-07 17:02:13 +02:00
f12040e088 DRW: Opti: Fix hotspot in DRW_mesh_batch_cache_get_surface_shaded
The hotspot was generated by mesh_cd_layers_type_overlap who was testing
way more data than it should have.

Here we reduce the whole CD layer mask to a 32bit bitflag that is easily
or'ed and tested.

Bonus point: We use atomic operation to merge the mask in order to allow
future multi-threading. (this was a TODO)

In the scene attached to T58188 this removes 5% of CPU time.
2019-04-06 01:55:21 +02:00
fefc9c95e4 DRW: Opti: Replace bound tex/ubo tracking array by bitfields
release_texture_slots() and release_ubo_slots() were one hotspot when
drawing taking ~9% of total CPU counters for no reason.

This was because of the loops using GPU_max_textures that was overkill and
slow.

Replace those by a simple 64bit bitwise OR operation.
2019-04-05 21:15:25 +02:00
a6efbe95cf Fix T63292: Crash Workbench Texture Drawing 2019-04-05 11:28:04 +02:00
d40581a714 GPencil: Improve drawing feeling in big files
When drawing in big files, the first points of the stroke were not smooth because the system was doing a copy of the depsgraph datablock.

Now, the depsgraph is not updated at the beginning and the feeling is far better, especially for big files.

To avoid the copy, the original datablock is used while drawing, because it's faster the lookup of the original data, than a full datablock copy.

Also some cleanup of the code.
2019-04-05 11:26:04 +02:00
59d0582a75 Workbench: Support Transparency + Textures
When texture drawing was enabled the fallback materials were not transparent.
The reason was that the solid material was requested. This patch will requesting
in this case the material from the forward renderer.

Fix: T63077

Reviewed By: fclem

Maniphest Tasks: T63077

Differential Revision: https://developer.blender.org/D4641
2019-04-04 19:02:11 +02:00
b26164ded5 Fix T63108 Eevee: Wrong Reflection plane matrix if camera view is not centered
Invert X axis of the Window Matrix (AKA Projection matrix) instead of the
View matrix.
2019-04-04 18:08:42 +02:00
c2f3ba64ce Fix T63198 Eevee: Indirect lighting settings arent not updating in Lookdev
This was caused by a missing check for those option.
2019-04-04 17:59:57 +02:00
9fdc16e204 Fix T63278 Eevee: LookDev: Volumetric on even if Scene World is off 2019-04-04 17:59:57 +02:00
01d0903f1e EEVEE+Workbench: Show partsys in final rendering
In final rendering mode the display type was tested for
visibility flag. This should only occus when doing viewport
rendering

Reviewed By: fclem

Maniphest Tasks: T63056

Differential Revision: https://developer.blender.org/D4643
2019-04-04 16:44:10 +02:00
af3f4f29e4 DRW: Fix hair count being limited by recent refactor
This was making Autumn being half naked.

Issue was introduced by rBe72dc667c4d3
2019-04-04 14:44:19 +02:00
3464a53477 Fix T63255: Crash when circle select performs selection outside the viewport's bounds. 2019-04-03 20:05:59 -03:00
ef91df608a Fix T61870 Eevee: Object's go completely black if they have a normal map
The problem was that tangent layers (being computed on demand in the batch
cache generation) were generated but if MR_DATATYPE_LOOPTRI was not present
(in some cases) and the looptri_len was 0, leaving the CDATA layer cleared.
2019-04-04 00:51:03 +02:00
c6de149ee7 DRW: Mesh Batch Cache: Fix error in loop custom data layer checking 2019-04-03 23:51:00 +02:00
d0c418b10a Cleanup: redundant casts 2019-04-04 08:15:26 +11:00
22bc9fb4a9 Cleanup: style 2019-04-04 08:13:13 +11:00
aa0bb47576 Fix T63257: Grease Pencil renders incorrectly when in edit-mode 2019-04-03 19:58:49 +02:00
07b91c62cb Reset background alpha for probe rendering.
Possibly fixes T63005.

Reviewers: fclem

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D4637
2019-04-03 15:57:38 +02:00
62811c3ba1 Fix T63211: Can't move camera in viewport while realtime render mode on
The issue is that Eevee directly evaluates animation on a datablock which
is a part of active dependency graph.

This is a broken logic by design and requires a complete revamp to support
more real life cases when camera is parented to a camera rig, but it is
beyond of what i can do with a simple bugfix.
2019-04-02 11:38:55 +02:00
6470056a0d Cleanup: empty expression statement warning 2019-04-02 17:54:04 +11:00
de0dab66ff Fix T63086: Navigation problem with Background/Reference Images
The issue was the manipulated depth for images would be used when doing distance depth checks.
Now we will use the actual depth of the image object when doing such tests.

Reviewed By: Clément Foucault

Differential Revision: http://developer.blender.org/D4616
2019-03-30 08:22:43 +01:00
18d06e8d21 Cleanup: style 2019-03-30 07:14:28 +11:00
d6747f310f Eevee: Material: Decouple transparent shadows from blend mode
This makes it easier to exclude a surface from casting shadows and can be
used to manipulate the shadows even for opaque surfaces.

Versionning ensure that old behavior is transfered to new rendering logic.
2019-03-29 19:18:19 +01:00
f0a20ae1c9 Fix T61129 Eevee: alpha texture shadow bug
This was due to some shading resources not being bound for the shadow
shader. This commit completely remove the shading part when in a shadow
shader. Thus making it a bit more lightweight and removing the needed
sources.
2019-03-29 19:18:19 +01:00
7cbd1b0c98 Eevee: Render: Reduce debug print amount to not decrease perf
This is to fix the slowdown issue experienced on windows when rendering
from command line.

Fix T59649 Eevee in command-line batch mode is slow with particles/duplis
2019-03-28 23:24:25 +01:00
4d71b655ec GPU: Fix color difference when rendering to gpu_py_offscreen
Now we do the color management inside the Draw manager and output CM byte
buffer.
2019-03-28 22:38:55 +01:00
42dd888b98 Fix T62178 Eevee: Texture Box mapping not matching Cycles if object is scaled
The wrong transformation was used. Add a new matrix specially for this case.

This also fix the Node texture coordinate that was suffering the same issue.
2019-03-28 22:08:54 +01:00
a89780abb5 DRW: Fix Memory leak introduced by previous commit 2019-03-28 22:08:54 +01:00
ec0eeb918b DRW/Eevee: Add correct support for Orco
Until now, Orcos were computed by the gpu (GLSL) and were not taking into
account the modifier stack (breaking orco for deformed mesh).

Now Orco is now computed on CPU but only if a modifier stack is present.

Tagging that an ORCO layer is present is done via a 4th component, which is
a waste of memory/bandwidth. Best would be to do the same as auto attrib
color space and save a bool uniform somewhere but for now it's too
disruptive.
2019-03-28 22:08:54 +01:00
d5cb425b87 Possible fix for T62999: Crash when select in edit mode.
Apparently some drivers don't allow `glReadPixel` read out pixels of texture boundaries.
Intersect `rect` to avoid such cases.
2019-03-28 14:19:21 -03:00
aa0c864d48 Fix T62874: Crash Texture shading+Transparency
When texure shading is enabled, the transparency accum shaders were not set/updated.
This resulted into a crash when transparent objects were rendered when shading mode
was set to texture.

This patch will add the V3D_SHADING_TEXTURE_COLOR to the modes for OIT so the
shaders are set.

Reviewed By: fclem

Maniphest Tasks: T62874

Differential Revision: https://developer.blender.org/D4592
2019-03-28 14:59:00 +01:00
deb3b8301a DrawManager: Add Edge Detection To DisplayLists
Objects that internally uses DispList do not cast shadow in the workbench.
Their outline is also not visible in object mode. The reason for this is
that edge detection was not implemented for Display Lists. This patch will
implement the edge detection.

Reviewed By: fclem

Maniphest Tasks: T62479

Differential Revision: https://developer.blender.org/D4605
2019-03-28 14:52:25 +01:00
f916b43256 Fix T60421: Bone heads are hidden when non-connected parent is hidden
The root point of a bone is now always drawn unless it is connected to an other bone.

Reviewed By: Clément Foucault

Differential Revision: http://developer.blender.org/D4194
2019-03-28 13:09:16 +01:00
e80527ec4d DRW manager: Always assume that the GL_DITHER and GL_SCISSOR_TEST should be disabled if not used.
This may fix a glitch detected when you perform edited mesh selection.
See comment in rB00bdb5cdf08f
2019-03-27 19:36:12 -03:00
780219f868 Eevee: Fix reflection plane weird behavior when comming from lookdev mode
The reflection was set to use the 1x1px texture as rendering target and was
considered valid reflection texture.
2019-03-27 22:02:31 +01:00
f9a69a481e Fix T62566 Eevee: Cubemap doesn't bake from current frame of animation
This was technically a feature request but it was quite simple to implement
so I did it quickly. Also it is much more consistent now.
2019-03-27 20:47:15 +01:00
afaa832a85 Fix T62680 Mirrored objects have flipped binormal vectors in LookDev
Pass binormal sign via object info.
2019-03-27 20:21:10 +01:00
96d200775a Fix T62997 Eevee: visual artifacts during irradiance volume baking
Seems to be a problem with Nvidia drivers. glFlush does not work but
glFinish does ensure correct multithreading.
2019-03-27 19:15:32 +01:00
6d1921dd81 Fix T62862 Eevee: Glitchy reflections in ortographic view
This was caused by sign(cubevec.xy) returning 0.0 when one component was 0.
Thus making the resulting component component 0.0 instead of 0.0.
2019-03-27 19:15:32 +01:00
00bdb5cdf0 Edit Mesh Selection: make sure that GL_SCISSOR_TEST is disabled.
Possible solution for T62999.
2019-03-27 11:35:32 -03:00
73b55a5508 Cleanup: style, use braces for draw 2019-03-28 01:14:03 +11:00
34c2185af4 Fix debug error on recent commit. 2019-03-27 11:06:15 -03:00
27b73f0c5b GPencil: Remove legacy ED_gpencil_draw_view3d code.
Differential Revision: https://developer.blender.org/D4598
2019-03-27 10:53:15 -03:00