Age | Commit message (Collapse) | Author |
|
|
|
If there was a dependency cycle involved, it was possible that pchan
array will be freed before all bones are evaluated. Now clear is
done in a dedicated node, which is never a part of dependency cycle.
|
|
|
|
|
|
|
|
|
|
This is a variation of older hach which was setting is_rendering
to truth to tell window manager to not do dependency graph update.
In the nowadays reality window manager is supposed to do dependency
graph update during rendering, that was the whole purpose of CoW
project. This works fine for rendering, since render engines has
their own dependency graphs.
Physics, on the other hand, is using same dependency graph as used
for the viewport, and what's worse: it modifies objects from it.
For example, in a single threaded evaluation ASAN instantly catches
case when cached BVH constructed by smoke is referencing looptri
layer which is freed by viewport's update.
Now we are locking interface, allowing only a subset of navigation
operators to run. This seems to be safest way of dealing with the
problem. There are following variations which we can consider
doing:
- Allow viewport navigation, which will require making it so draw
manager does not write to the objects.
A bit dangerous, since smoke simulation might in theory modify
data which is also used by a draw manager.
- Make physics simulation to have own dedicated dependency graph,
solving all threading conflicts all together.
This fixes crash when baking smoke. Steps to reproduce:
- Call "Quick Smoke"
- In smoke panel, click "Bake".
|
|
|
|
This is a variation of legacy dependency graph update check based on
G.is_rendering. Now it is ensured, that locked interface does not
tempter around with the dependency graph.
|
|
|
|
|
|
|
|
Was missing a return of OPERATOR_RUNNING_MODAL for that subcommand.
|
|
This makes previewing thick smoke a bit more plausible with better shadows.
The shadowing is clamped so that nothing is completely black. That said the
lower bound is pretty low.
This is not an option but could become one if users do not like it in
all situations.
|
|
The option is per domain and only affects the solid / xray / wireframe view.
Eevee is not yet supported.
|
|
|
|
Note that this is turned off by default and must be enabled at build time with the CMake WITH_CYCLES_EMBREE flag.
Embree must be built as a static library with ray masking turned on, the `make deps` scripts have been updated accordingly.
There, Embree is off by default too and must be enabled with the WITH_EMBREE flag.
Using Embree allows for much faster rendering of deformation motion blur while reducing the memory footprint.
TODO: GPU implementation, deduplication of data, leveraging more of Embrees features (e.g. tessellation cache).
Differential Revision: https://developer.blender.org/D3682
|
|
|
|
|
|
After some thinking, since the tree itself does always use floating
point numbers, it is better to use the threshold - but correctly.
|
|
|
|
|
|
Cursor motion was often causing redraws.
Distance to scrollbars that don't exist in hidden regions
caused redraws (for alpha fading).
Check if scrollbars are used before calculating fade.
|
|
While this shouldn't ever happen there have been reports
of tooltip creation failure - keep this until the issue is resolved.
|
|
|
|
From D3846 by @kostex
|
|
Compared to previous implementation, the following has been changed:
* Threshold: is now an absolute value. This allows a comparison with e.g. radii
that are much larger than selected radius. This is also consistent with
`CURVE_OT_select_similar`
* Radius in world space is the average of the radius scaled in x, y and z
directions
* Since MetaBalls are symmetrical, rotation is only considered from 0 to π/2.
So for example rotations of 90° and -90° are considered equal.
This is also consistent with the way `CURVE_OT_select_similar` works.
Fix/changes from committer (Dalai Felinto):
* Drawing not updating after changes. (see original patch for details).
Reviewers: dfelinto
Differential Revision: https://developer.blender.org/D3895
|
|
|
|
Also update names to match enum.
|
|
|
|
Based on D3893 by Habib Gahbiche.
|
|
|
|
|
|
This can be done via WM_OT_context_set_enum
|
|
|
|
Implemented the following methods:
* SIMCURHAND_TYPE
* SIMCURHAND_RADIUS
* SIMCURHAND_WEIGHT
* SIMCURHAND_DIRECTION
Limits:
* DIRECTION does not support surfaces, because `BKE_nurb_bpoint_calc_normal`
does not work with Nurbs of type `CU_CARDINAL`. This also didn't work prior
to this patch, so we wait until surfaces are properly supported in EditMode.
* Also DIRECTION should take scaling into consideration. We need our own
versions of BKE_nurb_bpoint_calc_normal/bezt.
* Threshold default is too large. Not sure if it's better to change the default
or scale the threshold in code.
Differential Revision: https://developer.blender.org/D3846
Changes from committer (Dalai Felinto):
* Moved nurb_bpoint_direction_worldspace_get/bezt to functions.
* Comments hinting at the mode (direction) that require scaling to be
taken into account - to be addressed by patch creator in a future
patch.
|
|
Matches ePaintTexture2D, less verbose.
|
|
Replace grease pencil specific brush select operator.
|
|
|
|
And unify colors with the Dope Sheet.
|
|
This parameter is only used for Box projection type.
|
|
|
|
Use simpler premultiplied blending.
|
|
|
|
Take the full derivative and compute its length instead of using fwidth.
|
|
Before it was triggering shader recompilation. Include small cleanup/opti.
|
|
This was causing bad behavior of the node Normal.
|
|
Although the normal was normalized when evaluating the lighting, the normal
is often used for other purpose. In this case using the non normalized
normal maybe the source of errors.
|
|
|
|
This only affect renders and static viewport accumulation.
It reduces helps reduce noise when lots of half transparent surfaces
overlaps.
|