This is because even if the glStencilMask is 0x00 the GL_DECR_WRAP and
GL_INCR_WRAP states still works and will modify the stencil.
Fix T73046 Overlapping parts of wireframes don't render at all in workench
with shadows turned on.
When in sculptmode the wireframe coloring should always be disabled.
When an object was sculpted but had modifiers this was not detected and
the colors were still shown.
This fix will disable wireframe coloring for any object that is in
sculptmode.
Edge Index display were not showing up after performing
"Select Boundary Loops" when in face selection mode. The operation
tagged the mesh that the selection was changed, but in the end this
didn't do anything within the depsgraph.
The fix changes this to recalc the geometry of the object. What also
syncs the selectmode flags. A better solution would be to update the
select flags only. But that could be done as future work when we have a
performance problems.
Studiolights that were just created didn't had the
`STUDIOLIGHT_SPECULAR_HIGHLIGHT_PASS` flag. Without this flag the
studiolight the viewport didn't show the specular highlights and it
wasn't possible to switch the highlights on/off in the popover. After
reloading the studio lights this was possible.
This patch will always set the flag for any newly created, or being
edited studiolight, so the workbench render engine is fed with the right
data.
An optimisation in the collision system for cloth (static collisions),
broke the particle collisions, as they take motion into account. This
restores the moving BVH required for the particle collisions, while
keeping the optimisation for the cloth collisions.
Reviewed By: mano-wii
Maniphest Tasks: T71620
Differential Revision: https://developer.blender.org/D6560
Commit rB7e61e597253f3ca75f2fb86a57212ca750ffbbe8 broke viewport rendering when not displaying as halfs.
This fixes that by actually using the `scale` parameter that is passed into `film_map` and also de-duplicates code around it.
Differential Revision: https://developer.blender.org/D6557
OptiX always uses record-all behavior for transparent shadow rays, but did not check
whether the maximum number of hits exceeded the shadow hit stack. This fixes that.
- "Only Export Selected Objects" → "Selection Only", as this is the
standard used in other exporters.
- "Evaluation Mode" → "Use Settings for", as this is clearer for users
who aren't as familiar with the technical details of the depsgraph.
- "Use Instancing" → "Instancing", and moved the checkbox to the end of
the option list into its own box "Experimental". This looks a bit
cleaner than just plonking "EXPERIMENTAL" in the checkbox label.
When text drawing is disabled in the viewport the color of the sculpt
brh is set to the last used one. In th Light theme this is black what
makes it totally not visible.
This change will render the brush text using `TEXT_HI` as this is the
last one set when the text overlay is on.
Logic to convert double-click events into press events wasn't running
in the case an operator had a modal keymap, causing bevel for e.g.
to ignore keys pressed quickly.
Change event handling logic so modal handlers never
receive double click events, so checks for press/release are reliable.
While this is an old issue for mouse events in practice it wasn't
a problem since the first event typically executed/canceled.
Support for keyboard double-click exposed the problem
for all modal operators that take numeric input.
The exporter constructs an export hierarchy, and then traverses that
hierarchy from the root to the children. When an object is to be exported,
but its parent is not, it meant that this traversal from (great)parent to
children would skip these objects. This commit fixes that by inserting the
missing parents as 'transform only' into the hierarchy.
The way the USD exporter currently works, it is not possible to export
invisible objects. As such, the 'Visible Objects Only' option was
confusing.
Exporting invisible objects means obtaining invisible evaluated objects
from the depsgraph, which is not something that's currently implemented.
Once that's done, we can reintroduce this option.
This is in response to @brecht's remark in rBec62413f803e, where he
states that the approach was problematically interpreting the holdout
setting in a different way than what it was designed to do.
If we later want to add back a different "never include this in exports"
criterion, it can be easily done in
`AbstractHierarchyIterator::mark_as_weak_export()`. If such a criterion
should be file-format-specific, it can be done by overriding that
function in the file-format-specific subclass.
The original geometry referenced in `vtable` was deleted by the
`extrude_face_region` operator.
It is read soon after, so don't delete the original geometry
(param `use_keep_orig`).
This may have a small impact on performance.
transform_direction() can't handle parameters in constant address space.
Creating a local copy of the parameter satisfies the OpenCL compiler.
CUDA and CPU compilers should be able to optimize this away I hope.
As per T71295, the "duplicate+move" macro fails to store TRANSFORM_OT_translate properties once it's been used with rotation. I believe this is due to it being re-initialized with incorrect properties, reading bogus values from stored TRANSFORM_OT_rotate properties.
Force storing of actual operator id name instead of one defined in the macro, which in turn forces a name mismatch on initialization.
Reviewed By: #modeling, campbellbarton
Maniphest Tasks: T71295
Differential Revision: https://developer.blender.org/D6413
There are deeper issues than just updating the regression test .blend file
and the solution is dragging for far too long.
Considering this a known broken feature, which will either be fixed next week
or completely removed from the interface for the coming release.
Move redraw tagging to the gesture modal operator
to make sure this only runs when it's needed.
Caused by d591c8a350, which tagged the region to redraw when the
gizmos were tagged to refresh, however they wont redraw when hidden.
Thanks to @jbakker for finding the root cause.
In transform_motion_decompose, successive quaternion pairs are checked to be
aligned such that their interpolation is rotation through the shortest angle
between them. If not, the first in the pair was flipped. This can cause
problems for sequences of more than 2 quarternions, since flipping the first
in a pair might misalign the previously pair, if unlucky.
Instead, this change flips the second in the pair, which is safe when
iterating forwards.
Differential Revision: https://developer.blender.org/D6537
This patch adds support for the OptiX denoiser as an alternative to the existing NLM denoiser in Cycles. It's re-using the same denoising architecture based on tiles and therefore implicitly also works with multiple GPUs.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D6395
E.g. "Cube" would be placed after "Cube.001", which is not what you'd
expect. 2.80 handled this correctly.
Loosely based on D6525 by @radcapricorn, but found a bug in that and
prefered to do some further adjustments.
Also activates test for this case.
Adds tests covering a good amount of common cases and corner cases for
`BLI_strcasecmp_natural()`.
Could of course always add more tests for more cases, but don't want to
spend too much time on this.
This commit restores old metaball workaround which was forcing their
update from a single thread.
The root of the issue comes to the fact that metaball evaluation needs
to access metaballs from duplilists, so they are properly polygonized
with corresponding motherball which is outside of duplilist.
In a more ideal world this will be implemented in a way that will not
require iterating over all duplilists, but only through the ones which
actually contain metaballs for the given motherball. In practice this
ends up in a huge refactor in both relations builder (which meeds to
see whether there are metaballs in duplilists without actually
creating duplilist as it can not be done prior scene is evaluated)
and in metaballs area which need to use new relations information.
Additionally, metaball evaluation must become thread-safe, which is
currently not a case with dupli-object matrices. There might be issues
deeper in polygonization code which I am not aware of.
Having this forced single-thread evaluation is same as Blender 2.79
was doing.
Think it's better to have slower but simpler solution than to invest
time in refactoring area which requires deeper design changes.
Reviewed By: dfelinto
Differential Revision: https://developer.blender.org/D6539
Caused by own rBe02ecd599bdc.
Can happen with e.g. cloth.
Also fixes T59583
Maniphest Tasks: T72235, T59583
Differential Revision: https://developer.blender.org/D6547