Age | Commit message (Collapse) | Author |
|
This enables a union boolean mode for the trimming gestures tools which
adds geometry to the mesh instead of cutting it.
It also adds a Join mode, which adds the geometry directly without
using a boolean operation.
Depending if you plan to use dyntopo or not, it is useful to have both
options available.
This is using the full depth of the object from the camera view for the
depth of the geometry, but options for controlling the trimming depth in
all modes are going to be added in later patches
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D9066
|
|
The example file in T81218 has a driver that maps a bone's X-location to
the number of BBone segments. This caused a dependency cycle, which
resulted in bad thread serialisation, which caused the crash.
This patch breaks the dependency cycle `BONE_LOCAL` →
`DRIVER(bones["Bone"].bbone_segments)` → `BONE_LOCAL`. The 'Driver Data'
relation now points to `BONE_SEGMENTS` when the driven property starts
with `bbone_`.
Differential Revision: https://developer.blender.org/D9122
|
|
Force multi-threading of preview renders by setting appropriate tile
sizes (by default it would typically render on one or two threads only).
|
|
When sequencer was moved from kernel, the DEFINES based on audaspace
were not moved along.
That means users had no way of creating new audio strips since
BKE_sequencer_add_sound_strip was ifdef'out
|
|
Reduce nesting of `DepsgraphRelationBuilder::build_driver_data()` by
flipping conditions and `return`/`continue` early.
No functional changes.
|
|
|
|
|
|
The external engine in the draw manager wasn't registered correctly.
This did not free the resources after the external engine was used.
|
|
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.
|
|
This is used by the Blender manual or other sphinx website that would
like to link to Blender's API documentation.
|
|
- 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
|
|
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
|
|
Just a missing update flag
Reviewed By: mont29
Maniphest Tasks: T81343
Differential Revision: https://developer.blender.org/D9077
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
Ref D8929
|
|
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
|
|
Ref D8945
|
|
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
|
|
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
|
|
Initialize CLOG in the blendfile-loading unit test superclass. Since
rB8683d4e88f2e CLOG is used by more areas in Blender, and without
initialisation it crashes.
|
|
This can happen for Intel OpenCL, now support arbitrary string length.
Differential Revision: https://developer.blender.org/D9020
|
|
|
|
|
|
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.
|
|
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.
|
|
Reviewers: brecht
Differential Revision: https://developer.blender.org/D9093
|
|
This is an old convention that hasn't been used
by Blender or CMake distributed Find* files for a long time.
|
|
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.
|
|
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
|
|
Test for side on which strip is was incorrect.
|
|
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
|
|
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
|
|
Remove the need for a temporary allocated path.
|
|
Changes didn't account the case when mkdtemp failed.
Previously the copying the string wasn't needed in this case.
|
|
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.
|
|
Should have been removed in b36a05bb7e794335e3415594c41d3986cdc815e8,
when Python was started after reading the preferences.
|
|
This choice was made when preferences were not read in background mode,
so the temp dir needed to be initialized with something.
See bc9848f7e67c3e695403179f8bcdb78b0e5764a3.
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.
|
|
Avoid multiple static variables with odd names,
instead keep them all in one struct, expand their names for clarity.
|
|
While this works with GCC, printing NULL strings is undefined behavior.
|
|
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
|
|
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.
|