Commit Graph

71443 Commits

Author SHA1 Message Date
c8d31807d2 Cleanup: reduce CDDM use, remove unused function calls 2020-02-26 15:22:46 +11:00
00a3d99f93 Cleanup: format, unused var 2020-02-26 15:22:46 +11:00
f4411b58ad Fix T72721: Add visibility flags updates to the PBVH
Currently, there its a function that sets manually the fully_hidden flag
of the nodes from the visibility operators in paint_hide.c. The undo
code was not updating the flag, so the visibility state of the nodes was
incorrect after preforming undo operations. This sometimes was drawing
fully hidden nodes with empty buffers, causing artifacts in the
geometry.

I added a function to mark nodes which visibility state changed (similar
as we are updating the mask flags and the nodes bounding boxes). This
way, the tools, operators and undo code don't have to update the
visibility flags, making everything much simpler to understand and
maintain.

I did not remove the flag update code from the current visibility
operators in this patch, but after reimplementing them (and all the new
ones) in the new visibility system, all visibility updates should be
done using this method and the BKE_pbvh_node_fully_hidden_set function
should be removed.

Reviewed By: jbakker

Maniphest Tasks: T72721

Differential Revision: https://developer.blender.org/D6767
2020-02-25 19:07:44 +01:00
9cc5af64c6 Cleanup: Constraints, simplified ChildOf evaluation function
This un-indents the `childof_evaluate()` function by one level, making it
easier to add new functionality in an upcoming commit.

No functional changes.
2020-02-25 18:16:25 +01:00
b4b47e6ba2 Cleanup: Reduced indentation in objectsolver_evaluate()
This will make an upcoming change cleaner to implement.

No functional changes.
2020-02-25 17:22:23 +01:00
4f48179437 Constraints: fixed Object Solver 'Clear Inverse' operator
The 'Clear Inverse' operator didn't properly update the constraint, so
it didn't do anything until the entire depsgraph was updated. It's now
properly tagged for update.
2020-02-25 17:22:23 +01:00
280d2a9a17 Cleanup: Silence compilation warnings (unused variables) 2020-02-25 17:21:01 +01:00
e75059e3b6 Cleanup: removed runtime error
The render passes checked all bits of an integer, that can lead to
runtime errors. Added the max bit in the DNA and used this.
2020-02-25 16:16:31 +01:00
5943e7d02e EEVEE: First Buffer Drawn Incorrectly
SSS buffers are lazy initialized when needed. When shaders recompile the
SSS buffers could be incorrectly drawn. During the render passes project
we tried to fix this, but that resulted in incorrect result of the first
sample after a shader was compiled.

We revert this change knowing that we know the issue, but haven't found
a proper solution for it.
2020-02-25 15:39:25 +01:00
Michael Soluyanov
a4a1074f3d UI: Add theme option for time markers line
This patch adds the ability to set colors and alpha of dashed line of
Time Markers. That way themes can avoid contrast issues and communicate
selection better. See screenshots in D6877.

Bumps subversion.

Reviewed By: William Reynish, Julian Eisel

Differential Revision: https://developer.blender.org/D6877
2020-02-25 15:19:19 +01:00
4e9fffc289 GPU: Add Image property to allow high bitdepth support on a per image basis
This adds the `Half Float Precision` option in the image property panel.
This option is only available on float textures and is enabled by default.

Adding a flag inside the imbuf (IB_halffloat) on load is done for EXR and PSD formats that can store half floating point (16bits/channels).
The option is then not displayed in this case and forced.

Related task T73086

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6891
2020-02-25 15:14:32 +01:00
1bbc1eed62 Cleanup: clang-format 2020-02-25 15:13:25 +01:00
Yevgeny Makarov
fe3264fafd UI: fix wrong button padding on high DPI displays in a few places
Differential Revision: https://developer.blender.org/D6928
2020-02-25 15:13:25 +01:00
Phil Stopford
b0786d069c Ocean modifier: fix changes to resolution complete changing the shape
This takes the idea from the aaOcean library to link the RNG seed to the
surface point, so that changing resolution only adds/remove surface detail.

Differential Revision: https://developer.blender.org/D6871
2020-02-25 15:13:25 +01:00
2ffd530217 EEVEE: Lookdev: Fix lookdev spheres positioning in viewport render 2020-02-25 14:24:31 +01:00
19de81afe5 EEVEE: Lookdev: Fix cubemap resolution change not refreshing lightcache 2020-02-25 14:08:10 +01:00
190fd795a9 Overlay: Fix overlays being washed out by render colors
Clamping here might be a bit too much if output is expected to be HDR.
But we don't support HDR atm so clamping is fine.
2020-02-25 13:58:28 +01:00
4f92367bde Cleanup: fixed copy-paste error in Object Solver constraint message
The message was clearly copied from the Child Of constraint, and never
changed to Object Solver.

No functional changes.
2020-02-25 13:30:42 +01:00
Clément Foucault
6e23433c1a EEVEE: Lookdev: Add support for partially blurred background
This is using the GGX probe as background. This has the drawback of
having the resolution choosed in the indirect lighting setting.
The blurring is not really high-quality.

The pros is that it has a simple implementation and is fast to evaluate.

This patch also fades the background alpha to make overlay engine draw the
default background color in the correct color space. Removing one colorspace
hack.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D6895
2020-02-25 13:26:01 +01:00
7e7c927602 Cleanup: EEVEE: Use log2_floor_u 2020-02-25 13:18:22 +01:00
8885fb5929 EEVEE: Fix seams in reflection cubemap on low roughness
This was caused by the texture size not being power of 2. Thus the
padding applied to the base LOD did not match the highest mipmaps.
2020-02-25 13:18:22 +01:00
e0085bfd24 Cycles: move sss and diffuse transmission into diffuse pass
This simplifies compositors setups and will be consistent with Eevee render
passes from D6331. There's a continuum between these passes and it's not clear
there is much advantage to having them available separately.

Differential Revision: https://developer.blender.org/D6848
2020-02-25 11:44:47 +01:00
e6be2af061 Cleanup: remove cddm_from_bmesh
Use BKE_mesh_from_bmesh_for_eval_nomain instead.
2020-02-25 21:30:23 +11:00
bd03fe1ab0 Cleanup: avoid Operator.customdata cast which could lead to errors
Both save and save-as share utility functions which
cast from customdata in an error prone way.

Avoid this by passing image format data directly.
2020-02-25 20:32:20 +11:00
d94a3996a4 Fix memory leak saving images 2020-02-25 18:29:31 +11:00
ae3263e525 DrawEngine: Clean up
Put DefaultFramebufferList and DefaultTextureList into an own header
file. These structs were private, but also used by the window manager
and gpu package. The previous implementation we needed to keep these
structs in sync.
2020-02-25 07:47:35 +01:00
9e45468835 Image: support saving images in non-image spaces
Alternate fix for T74182, making changes to the save-as operator.
2020-02-25 17:19:32 +11:00
096936fe1d Fix T74182: Crash saving images from non-image spaces 2020-02-25 17:02:41 +11:00
727d430811 Cleanup: move deprecated enum into versioning code 2020-02-25 16:50:06 +11:00
a322b43e3d Cleanup: remove unused wmWindow.monitor 2020-02-25 09:25:14 +11:00
44862110de WM: move cursor refresh tag to the window
Avoids having to check the current area is NULL.
2020-02-25 09:19:31 +11:00
f9b1e8f000 Fix T74169: Vector Rotate Node - Euler modes not working as intended
Remove additional Euler modes for the time being, not working as intended, will add back if there is a need.
2020-02-24 18:17:19 +00:00
14856e149f Fix T74099: Can`t apply modifier, if mesh have fake user.
Also cleaned up code there, making a proper poll function for the apply
modifier operator, that way button is properly disabled in UI itself in
most invalid situations.
2020-02-24 15:02:52 +01:00
Julian Eisel
f01617bb15 Fix unused variable warning on Linux 2020-02-24 14:46:45 +01:00
8955b8b992 Cleanup: Workbench: Remove checkerboard depth
This is not needed anymore with the new overlay xray fading.
2020-02-24 13:48:38 +01:00
ed21506f26 Overlay: Remove Xray dithering noise
We now use a better smoother technique that uses correct alpha blending.
This is possible now that we render overlays in a separate buffer.
2020-02-24 13:48:38 +01:00
Julian Eisel
fc81eb74e7 Mantaflow: Address precompiler warning and related cleanup
* Address warning because of undefined OPENVDB usage
* Remove unused WITH_FLUID definitions

Differential Revision: https://developer.blender.org/D6919
2020-02-24 13:01:13 +01:00
69c587888b Fix T74003: Autocomplete bug with mesh.loop_triangles. in Blender Python Console.
The collection property `loop_triangles` was given the RNA type
`MeshLoopTriangle` (the type of the collection's items), instead
of `MeshLoopTriangles` (the actual expected RNA collection/array type).

The cutest, tiniest typo mistake in RNA code, leading to some complete
non-sense... It's fairly amazing that this did not cause more severe
issues actually.
2020-02-24 12:46:40 +01:00
001f7c92d1 BLF: Optimize text rendering and caching
The current code allocates and transfers a lot of memory to the GPU,
but only a small portion of this memory is actually used.
In addition, the code calls many costly gl operations during the
caching process.

This commit significantly reduce the amount of memory by allocating
and transferring a flat array without pads to the GPU.
It also calls as little as possible the gl operations during the cache.

This code also simulate a billinear filter `GL_LINEAR` using a 1D texture.

**Average drawing time:**
|before:|0.00003184 sec
|now:|0.00001943 sec
|fac:|1.6385156675048407

**5 worst times:**
|before:|[0.001075, 0.001433, 0.002143, 0.002915, 0.003242]
|now:|[0.00094, 0.000993, 0.001502, 0.002284, 0.002328]

Differential Revision: https://developer.blender.org/D6886
2020-02-24 08:01:22 -03:00
abb7364912 Overlay: Edit Mode: Fix wireframes being brighter because of linear blend 2020-02-24 00:00:35 +01:00
39d0bf9044 Overlay: Fix wireframes being brighter because of color management
Also change the blending factors to make wireframe a bit darker in
unselected cases.
2020-02-23 14:32:34 +01:00
c26f470cfe EEVEE: Fix memleak when G.is_break is set from another thread 2020-02-22 17:08:44 +01:00
189a6c783d Cleanup: EEVEE: Use interpf instead of custom lerp 2020-02-22 17:08:44 +01:00
fb47c131df Fix crash when open default template
As soon you select the default template, Blender crash on Winodws.

This was introduced in commit {0b626703}
2020-02-22 16:20:08 +01:00
0b626703f9 Cleanup: internal changes to cursor resetting
- Move gizmo cursor check into ED_region_cursor_set so the result of
  calling this function is the same as flagging for cursor update.

- Use tagging in ui_popup_block_remove which avoids adding a
  mouse-move event in case the cursor needs to be changed again.
2020-02-22 10:50:25 +11:00
1fb62d1272 UI: Windows File Attributes and Hidden Items
File Browser using Windows file attributes for decorating and hiding items.

Differential Revision: https://developer.blender.org/D6816

Reviewed by Campbell Barton
2020-02-21 08:20:58 -08:00
b1b020806e Cleanup: remove unused ScreenAnimData.refresh 2020-02-22 03:00:47 +11:00
4c30dc3431 Fix T73593: Drivers on hide_viewport and hide_render are unreliable
This fixes a threading issue (T73593) between drivers that write to the
same memory address. Driver nodes in the depsgraph now get relations to
each other in order to ensure serialisation.

These relations are only added between drivers that target the same
struct in RNA, which is determined by removing everything after the last
period. For example, a driver with data path
`pose.bones["Arm_L"].rotation_euler[2]` will be grouped with all other
drivers on that datablock with a data path that starts with
`pose.bones["Arm_L"]` to form a 'driver group'.

To find a suitable relation within such a driver group, say the relation
(from → to), a depth-first search is performed (turned out to be
marginally faster than a breadth-first in my test case) to see whether
this will create a cycle, and to see whether there already is such a
connection (direct or transitive). This is done by recursively
inspecting the incoming connections of the 'to' node and thereby walking
from it towards the 'from' node. This is an order of magnitde faster
than inspecting the outgoing connections of the 'from' node.

This approach generalises the special case for array properties, so the
code to support that special case has been removed from
`DepsgraphRelationBuilder::build_animdata_drivers()`.

A test on the Spring rig [1] shows that this process adds approximately
8% to the build time of the dependency graph. In my test case, it takes
28 ms for this process on a total 329 ms construction time. However,
since it also made some code obsolete, it only adds 24 ms (=8%) to the
construction time. I have experimented with a simple cache to keep track
of known-connected (from, to) node pairs, but this did not significantly
improve the timing.

Note that animation data and drivers are already connected by a
relation, which means that animating a field and also changing it with a
driver will not cause conflicts.

[1] https://cloud.blender.org/p/spring/5d30a1076249366fa1939cf1

Differential Revision: https://developer.blender.org/D6905

Reviewed By: sergey, mont29
2020-02-21 16:57:13 +01:00
b8c7ff564c Cleanup: un-indent ED_screen_set_active_region
Also remove redundant flag assignment from previous comment.
2020-02-22 02:43:37 +11:00
d0578a94ee Fix regression in the orientation of transform Redo operations
Caused by rBb3abd2e102df
2020-02-21 12:20:03 -03:00