Commit Graph

100501 Commits

Author SHA1 Message Date
Jacques Lucke
1b9de4fa33 BLI: escape double quotes in dot export 2020-10-06 13:35:12 +02:00
Bastien Montagne
6e7617211b UI messages fixes... 2020-10-06 10:38:21 +02:00
Jeroen Bakker
7d0139f417 Fix T81459: Memory Leak Cycles Rendered Viewport
The external engine in the draw manager wasn't registered correctly.
This did not free the resources after the external engine was used.
2020-10-06 08:33:42 +02:00
Hans Goudey
3178dc25f6 Fix T81470: Buttons in closed panel visible during search
The buttons hide when the search finishes based on whether they are in
the "panel header" group. These buttons were not protected with a new
group. This adds a new group for operator button calls, and also makes
it so a new group is always created after the header buttons.
2020-10-05 16:23:21 -05:00
Aaron Carlisle
7951312d4b API Doc Gen: Do not ignore objects file
This is used by the Blender manual or other sphinx website that would 
like to link to Blender's API documentation.
2020-10-05 16:26:40 -04:00
Sriharsha Kotcharlakot
ff89d101e7 UI: Changes to Viewport Display UI of Volume Object and Fluid
- Density, interpolation and slicing options in Volume Object's
  Viewport Display are now not aligned to each other as they are not
  closely related.
- Changed the enum property for slicing ('Method') to a boolean
  property 'Slice' and added a sub-panel for slicing options under
  the 'Viewport Display' panel in Volume Object and Fluid for better
  clarity.
- Renamed `axis_slice_method` to `use_slice` in the python API for
  Volume Object and Fluid.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D9097
2020-10-05 23:12:48 +05:30
Pablo Dobarro
ffd4601447 Sculpt: Remove mask datalayer after extracting the object
When extracting a mask, the new object is going to have the same mask on
the same vertices, so it can't be sculpted without clearing the mask
first. It makes more sense to delete the mask datalayer from the new
object.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D9070
2020-10-05 19:38:08 +02:00
Pablo Dobarro
e1e061384b Fix T81343: Smooth shading normals not updating with line project tool
Just a missing update flag

Reviewed By: mont29

Maniphest Tasks: T81343

Differential Revision: https://developer.blender.org/D9077
2020-10-05 19:37:05 +02:00
Pablo Dobarro
a2b517cb11 Sculpt: Modify damping using the simulation factor of the cloth brush
This helps blending artifacts with dynamic simulation areas as the
damping increases when the vertex.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D9084
2020-10-05 19:36:14 +02:00
Pablo Dobarro
628dc91c48 Sculpt: Preview the active side of the line gestures
This adds a small gradient to the right side of the line to preview
which side of the mesh is going to be affected by the gesture operation.

Reviewed By: Severin

Differential Revision: https://developer.blender.org/D9106
2020-10-05 19:35:11 +02:00
Philipp Oeser
ca38bce46a Fix T81380: Playback set start/endframe operators can set negative
rendering range

The Allow Negative Frames option, introduced in rB21a2350248fd, allows
for negative frames, but this should only apply for playback and
animations, the rendering range should still be clamped to MINFRAME /
MAXFRAME, because rendering does not allow for negative frames. Preview
range should not be affected afaict (I am not aware of operators that
allow for rendering this range).

Maniphest Tasks: T81380

Differential Revision: https://developer.blender.org/D9112
2020-10-05 18:37:59 +02:00
Nathan Craddock
8bce181b71 Outliner: Move collection exclude button to restrict columns
Move the collection exclude checkbox to be with the other restrict
buttons. This makes the button consistent with the other restrict
buttons, and it makes the visual hierarchy more clear with the contents
of a collection properly indented under the collection name, rather than
the collection icon.

Differential Revision: https://developer.blender.org/D8928
2020-10-05 08:50:33 -06:00
Piotr Ostrowski
eedd7b27f9 Fix T81392: subdivision surface poor shading without limit surface
When the limit surface is disabled OpenSubdiv generates a set of linear
patches which are only C0 continuous, not C1. This makes it impossible to
evaluate derivatives at vertices which, in this mode, are by definition put
at boundaries of patches. Normals are calculated from those derivatives.

Solution is to disable normal calculation and let it be done downstream, as
for other modifiers. This limitation is also the reason that non feature
adaptive subdivision is badly suited for GPU evaluation.

Differential Revision: https://developer.blender.org/D9103
2020-10-05 16:41:43 +02:00
Hans Goudey
0a0e88b645 Cleanup: Use short for properties editor tab list
Because the active context is stored as a short in DNA it's better
to use short in the code surrounding it. Also adjusted a comment
that reflected an incorrect assumption.
2020-10-05 09:31:32 -05:00
Antonio Vazquez
7f3fe5b45c GPencil: Fix unreported Layer SOLO mode broken
During the refactor, this feature was removed by error.

When this option is enabled, only the frames with a keyframe are displayed in Draw mode. This is used when fill an animation to paint only in the frames with real drawing.
2020-10-05 16:02:32 +02:00
Germano Cavalcante
54f248fa87 Transform: Use orientation of active object with Auto Constraint
Fix T81429.

This was an intentional change in rBc75a665c442e as it maintains the
same behavior as the constraint with or without modifier.

But from the user's PoV, it is better to keep the old behavior.

This makes drawing and behavior more intuitive.
2020-10-05 10:05:06 -03:00
Patrick Mours
3df90de6c2 Cycles: Add NanoVDB support for rendering volumes
NanoVDB is a platform-independent sparse volume data structure that makes it possible to
use OpenVDB volumes on the GPU. This patch uses it for volume rendering in Cycles,
replacing the previous usage of dense 3D textures.

Since it has a big impact on memory usage and performance and changes the OpenVDB
branch used for the rest of Blender as well, this is not enabled by default yet, which will
happen only after 2.82 was branched off. To enable it, build both dependencies and Blender
itself with the "WITH_NANOVDB" CMake option.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D8794
2020-10-05 15:03:30 +02:00
Henrik Dick
72e741ee62 Fix T80897: Complex solidify crash when special ngons are merged
This has serious performance implications as the additional check makes
it O(N^2) when there are a lot of merged vertices.
The goal is to move the merging to the weld modifier where it would
be much easier to optimize.

Ref D8946
2020-10-05 23:57:55 +11:00
Henrik Dick
a9dc3fbef8 Fix T80893: Complex solidify special case with singularity
Ref D8929
2020-10-05 23:56:44 +11:00
Henrik Dick
ad16b2c515 Fix T80895: Complex solidify compare edges by content
Even if the index of the edge is not equal the content can be equal
if it has been merged. So compare the content.

Ref D8931
2020-10-05 23:56:12 +11:00
Henrik Dick
35708db5d2 Modifiers: Use vertex group options for complex solidify flat faces
Ref D8945
2020-10-05 23:56:08 +11:00
Henrik Dick
1454865ebb Fix T80269: Match material offset in solidify modes
This commit to complex solidify swaps the side of the geometry which
is affected by the material offset when the normal flip option is
enabled. This matches simple solidify and is considered correct/useful.

Ref D8948
2020-10-05 23:56:02 +11:00
Sybren A. Stüvel
8b72d9cc15 Insert keyframes while preserving shape of curve
Apply the De Casteljau algorithm to split the Bèzier curve at the X
coordinate where the new key is inserted, and uses the result to update
both the newly inserted and surrounding handles.

For curves that use Auto keyframes this has been largely addressed by
the new algorithm from D2884. This commit extends this to non-auto
handles.

This code is heavily based on D3172 by Alexander Gavrilov (@angavrilov).

Manifest Task: https://developer.blender.org/T81353
2020-10-05 14:26:51 +02:00
Sybren A. Stüvel
dfbf868298 Initialize CLOG to fix crashing unit tests
Initialize CLOG in the blendfile-loading unit test superclass. Since
rB8683d4e88f2e CLOG is used by more areas in Blender, and without
initialisation it crashes.
2020-10-05 14:25:46 +02:00
Matt McClellan
1d985159ad Fix Cycles OpenCL failing when extension string is long
This can happen for Intel OpenCL, now support arbitrary string length.

Differential Revision: https://developer.blender.org/D9020
2020-10-05 14:04:06 +02:00
Campbell Barton
2bbaa8df59 CMake: include DNA_modifier_defaults.h 2020-10-05 23:01:56 +11:00
Campbell Barton
c129d78039 Fix building without OPENVDB 2020-10-05 23:01:56 +11:00
Bastien Montagne
7e836bde11 Fix critical lens distortion bug in libmv after rB3a7d62cd1f5e.
Current libmv_modal_solver_test fails since rB3a7d62cd1f5e.

It appears that the issue is caused by the insertion of the new OFFSET_K4 parameter,
as, if camera intrinsics are not required to implement/use all of those deform
parameters, they absolutely have to keep order (values) matching those defined
in bundle.cc, otherwise `PackIntrinisicsIntoArray` and `UnpackIntrinsicsFromArray`
will mangle them around.
2020-10-05 11:47:32 +02:00
Brecht Van Lommel
0026ca09de Revert "Volumes: make Mesh to Volume modifier independent of object transforms"
This reverts commit 66cd82a8d. This was based on a misunderstanding. We do want
to take into account transforms similar to other modifiers like booleans, to
support taking into account animated transforms, combining multiple meshes into
one volume, etc.
2020-10-05 11:20:59 +02:00
Jacques Lucke
a4f8b2ad76 Volumes: more generic way to handle different openvdb types
Reviewers: brecht

Differential Revision: https://developer.blender.org/D9093
2020-10-05 10:29:34 +02:00
Campbell Barton
3e101759b1 Cleanup: remove arguments to ENDIF in CMake files
This is an old convention that hasn't been used
by Blender or CMake distributed Find* files for a long time.
2020-10-05 16:26:06 +11:00
Hans Goudey
6d630219ce Cleanup: Declare variables where initialized
Declaring variables where they are initialized and used makes their
scope much more explicit and it aids readility since types are visible.
This commit doesn't touch the ID template code since there is an
active patch in that area.
2020-10-04 22:44:19 -05:00
Richard Antalik
18d7aeacf2 Move sequencer sources from blenkernel
This is first step of refactoring task T77580.
Next step will be breaking up files into smaller ones.

Reviewed By: sergey, brecht

Differential Revision: https://developer.blender.org/D8492
2020-10-05 02:58:56 +02:00
Richard Antalik
c514357358 Fix T80397: Select Side not working correctly
Test for side on which strip is was incorrect.
2020-10-05 02:29:47 +02:00
Richard Antalik
d12ff69320 Rename eSpaceSeq_Proxy_RenderSize members
Remove word proxy from eSpaceSeq_Proxy_RenderSize members if proxy is
not used with that item. Otherwise this can be a bit confusing.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D8861
2020-10-05 02:24:51 +02:00
Richard Antalik
f375ec4986 Fix T80282: Playback start delayed with AV sync
If current frame is set to before start frame, with AV sync there is
delay when playback is started.

Tag scene with ID_RECALC_AUDIO_SEEK, so audio playback starts from
correct position.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D8809
2020-10-05 02:17:19 +02:00
Campbell Barton
f4f6fdc268 Cleanup: simplify tempdir_session_create
Remove the need for a temporary allocated path.
2020-10-05 10:07:59 +11:00
Campbell Barton
659f81f1cb Correct last commit (where_is_temp refactor)
Changes didn't account the case when mkdtemp failed.
Previously the copying the string wasn't needed in this case.
2020-10-05 09:43:57 +11:00
Campbell Barton
ffa7152626 Cleanup: refactor where_is_temp
Functionality was hard to follow as the meaning of fullname
depended on basename being NULL or not.

- where_is_temp is now only responsible for finding the temp directory.
- Split out tempdir_session_create into it's own function
  that wraps mkdtemp.
- Rename basename to tempdir, fullname to tempdir_session.
2020-10-05 03:04:43 +11:00
Campbell Barton
1fa6881037 Cleanup: remove outdated comment
Should have been removed in b36a05bb7e,
when Python was started after reading the preferences.
2020-10-05 01:56:29 +11:00
Campbell Barton
270fb4d82b Preferences: use the users temp directory in background mode
This choice was made when preferences were not read in background mode,
so the temp dir needed to be initialized with something.
See bc9848f7e6.

Now preferences are always read there is no reason to ignore this
particular preference in background mode.

Anyone wanting to do background renders that ignore their preferences
can run with factory startup.
2020-10-05 01:29:08 +11:00
Campbell Barton
af76063949 Cleanup: BKE_appdir store static values in a struct, clarify names
Avoid multiple static variables with odd names,
instead keep them all in one struct, expand their names for clarity.
2020-10-05 00:55:39 +11:00
Campbell Barton
16c4db122f Fix error in last commit printing NULL strings
While this works with GCC, printing NULL strings is undefined behavior.
2020-10-04 22:23:48 +11:00
Campbell Barton
8683d4e88f BKE_appdir: log details about path lookups
These were printf's, disabled by a define that could be uncommented.

Use logging since this can be useful when investigating any issue
with paths not being found at the expected location.

Without this any problem finding app-templates, Python's installation,
icons ... etc are quite difficult to troubleshoot especially on systems
without access to system-call tracing.

To use this run:
  blender --log "bke.appdir" --log-level 3
2020-10-04 22:15:18 +11:00
Campbell Barton
9d30fade3e Fix color-management ignoring the data-path command line value
Initialize ImBuf (and color-management) after passing arguments
that set environment variables such as `--env-system-datapath`

This also fixes a bug where BKE_appdir logging failed since it was
called before the `--log` argument was passed.

Add asserts so this doesn't happen again.
2020-10-04 22:15:07 +11:00
Campbell Barton
7456ac6e4b Cleanup: clarify names in appdir
- ver -> version.
- env -> env_path.
2020-10-04 22:12:26 +11:00
Campbell Barton
6f3a9031f7 Cleanup: BKE_appdir left paths set even when not found
Internally appdir functions would test if a path exists,
returning false if it doesn't, leaving the string set instead
of clearing it.

This is error prone as invalid paths could be used accidentally.

Since BKE_appdir_folder_id_user_notest & BKE_appdir_folder_id_version
depend on this, add a 'check_is_dir' argument so the path can be used
even when the directory can't be found.
2020-10-04 09:33:14 +11:00
Julian Eisel
d8c3ad6f98 Cleanup: Remove duplicated View2D pan polling logic
Same as 21fc4ae206, but for view panning this time. Also had to set the poll
callbacks still in this case.
2020-10-03 22:15:15 +02:00
Julian Eisel
806edf11ba Revert part of previous commit
The change to the `poll()` callback was actually incorrect. But also
reduandant, since the function is actually already executed in the operator.
2020-10-03 21:51:50 +02:00
Julian Eisel
9668fc582c Fix compile error when compiling with WITH_INPUT_NDOF after View2D changes
Actually, fixes compile error and an incorrect poll.

Caused by 21fc4ae206 and 3a1cf838ca.
The poll has to perfrom the `view_zoom_poll()` logic to ensure correct context.
2020-10-03 21:30:38 +02:00