This matches behavior on macOS as well as the property description.
On Wayland, smooth scrolling doesn't use the touchpad API,
so disabling multi-touch gestures doesn't change the behavior as it
does on macOS.
Resolve by converting vertical touch scrolling to mouse-wheel events.
Adjust Last Operation dialog gets a title with a line underneath and
slight change to margins to better match other similar dialogs. A
change agreed to in our last UI meeting.
Pull Request: https://projects.blender.org/blender/blender/pulls/120625
Regular topology mapping does not care about deduplication of relations. And
this is correct for a lot of the case where we expect creating difference of this
relations in next operations. But this is not the case for users, since this should
be actually trivial info. Due to this reason, construct full topology map and count
number of unique connections. Performance side: difference linear check and
hash set for different sizes of connections set.
Pull Request: https://projects.blender.org/blender/blender/pulls/118848
This commit ensures that no legacy GP data is shared between GP objects
and annotations, before doing the conversion, by duplicating annotation
data when required.
Conversion code can then completely ignore annotation GPv2 IDs.
Pull Request: https://projects.blender.org/blender/blender/pulls/120581
Now that there is a condition in the loop count there is
possibility the compiler doesn't optimize this. Be
conservative an manually unroll for better codegen.
This fixes a few issues:
- Split of shadows in different direction caused by
the shadow normal bias.
- Fixes#120599 by reverting to light vector to
bias the shadow test.
Cleanup now unused variables.
For socket value logging this needs to be used in a couple other places.
Also remove the operator name argument. For the forseable future this
will only be used with the existing node tools operator anyway.
This add support for the thickness output in a consistent
manner across all BSDF.
If thickness is above zero, for any ray going below the
surface, the object is modeled as a sphere tangent to
the shading point and of diameter equal to the given
thickness. The ray is then intersected with that sphere
and transmitted out.
This model perfectly matches a raytracer behavior
for a sphere model of diameter equal to thickness.
This replaces the old refraction depth model which was
modelling a infinite slab of material.
For simplicity, we do not do 2 microfacet transmission
events. We simply use the main lobe direction for the
first interface. This still matches the raytracer
behavior for smooth surfaces. Weirdly enough the
apparent roughness doesn't need to be amended.
To get shadowing and translucency approximation
to work, this splits the transmission BSDF evaluation
to its own light loop. This simplifies a lot of logic
and assumes only one transmission BSDF is ever
sampled in a nodetree.
This changes the behavior of the thickness output
with regard to the thickness from shadow. We now take
the min instead of the max between both. This
break a lot of file since the default thickness is
set to `0.1`.
This patch doesn't change the default thickness output
behavior but it will be changed in another PR.
Note this might change the shadow sampling pattern
since translucent and non-translucent are now
sampling them separately.
Pull Request: https://projects.blender.org/blender/blender/pulls/120329
Support the new Curves object type in Alembic when exporting curve data.
Make corresponding fixes to importing at the same time.
Summary of changes
- Exporter now supports the `Curves` object type during Export
including when using the convert to mesh option
- Exporter will now enforce that only 1 combination of curve type and
periodicity are in a given object [0].
- Catmul-rom basis curves are now supported and will be used for Hair
data [1].
- Bezier curves are exported with their left/right handle data [2].
- Cyclic bezier and nurbs curves should be handled correctly now.
Along the way this required changes on the Import side as well in order
to be complete
- Importer will now load bezier curve handle data correctly
- Importer could fail to set the correct cyclic data on the last spline
of a multi-curve object
See PR for screenshots
[0] See https://github.com/alembic/alembic/blob/master/lib/Alembic/AbcGeom/OCurves.h#L55
Prior to this change the Alembic exporter could write invalid data to
the file in these cases.
[1] Alembics created with the new Curves Hair object with this patch
will not be loadable in prior versions of Blender. The importer does not
handle the curve data correctly and will crash.
[2] There was a long-standing TODO about how to handle bezier curve data
since nothing is documented on Alembic's side. Bezier data wouldn't even
round-trip properly inside Blender itself. On a hunch, because USD was
influenced by certain aspects of Alembic which came before it, I decided
to try writing out the data the same way as USD. That turned out to work
quite well in at least 1 external software so that's what this patch
will use for both import and export.
Pull Request: https://projects.blender.org/blender/blender/pulls/119894
Error in 0f46e02310c98e212f50dc0af9a46a76c844358a
The maximum index in the triangles index buffer was set incorrectly,
causing the GPU code to switch to using 16 bit integers when it shouldn't.
The existing name was not clear. Renamed it to: "Clean Files After
Install".
I changed the RNA boolean to be positive, to match the name change.
Note: This only changes the UI label and tooltip.
TODOs to be tackled separately:
* Rename the RNA property to match its UI name.
* Make it True by default.
* Doversion.
Designed with Pablo Vazquez.
Part of #120589.
Local Cache and module are not related, so they should not be on the
same row. Instead group Local Cache with custom directory.
Designed with Pablo Vazquez.
This reverts commit af88ff04848b1ff299514514fb18ecf401553bb4.
That commit broke scrolling (at least in some cases).
Reverting the commit resolves#120587
There were multiple reports with objects having many empty material
slots.
The underlying reason for this is the behavior of adding/assigning
materials [which makes room in the form of empty material slots based on
the current `active_material_index` -- which atm. can be set to
arbitrary values]. So just e.g. setting this to 100 in a fresh file and
assigning a material would create 99 empty slots.
To resolve, now clamp to the existing number of material slots.
NOTE: there is already a range function defined, but this actually only
kicks in from the animation system (so clamping would take place there),
so clamping is expected to happen in the set functions (there is also a
related comment in `RNA_property_int_set`)
Pull Request: https://projects.blender.org/blender/blender/pulls/120434
Ensure that the MemHead and MemHeadAligned are such that memory
allocation followed with the head offset keeps the allocation
aligned to at least MEM_MIN_CPP_ALIGNMENT.
Pull Request: https://projects.blender.org/blender/blender/pulls/120582
The callback to set the relative direction wasn't running because
it required GHOST to request version 9 of the wl_seat_interface.
Natural touchpad events now work for KDE 6 and recent versions
of WLROOTS based compositors, GNOME 46 is uses wl_seat_interface
version 8 which still wont work.
The problem happens because, on some OSs, `wm->winactive` is `nullptr`.
Another problem is that `wm->winactive->eventstate` sometimes does not
update when the mouse moves. This happens in some OSs when the cursor
is not over the active window. So the snap cursor state doesn't update.
The solution is to use the `eventstate` of the window in the context
(`CTX_wm_window(C)->eventstate`).
This matches other parts where `eventstate` is used.
Pull Request: https://projects.blender.org/blender/blender/pulls/120475
This PR adds an option to specify custom colors for a
motion path. One for frames before the current frame
and one frame for after. With this it is easier to see
the relation of the motion path to the current frame.
That was already the case with the default colors, but
not with custom colors.
On a technical side note, the colors pre and post the current
frame were already different.
The shader multiplied the custom color by 0.25
for anything pre current frame.
Pull Request: https://projects.blender.org/blender/blender/pulls/119375
In the case that "Custom Properties" was enabled in the user preferences,
the keyframing code would key all custom properties, regardless of that
property's type.
This can cause issues since it is keying e.g. the custom property that
cycles adds.
With this PR this is now limited to only Boolean, Int, Float, Double and Array.
Custom properties that have been defined via an addon are also not keyed.
Pull Request: https://projects.blender.org/blender/blender/pulls/119914
In GPv2 there was an option to disable masks during rendering
of a viewlayer. This wasn't implemented for GPv3 yet.
This needs to change the way the draw calls are created,
because we need to skip over drawings at render time.
So to do this, we precompute the drawing offsets,
then check if we need to skip over it and otherwise
create the draw calls.
Pull Request: https://projects.blender.org/blender/blender/pulls/120561
Caused by ca0b02aa96.
The `points.size() > 1` was added because we can't access
`lengths[points.size() - 1]` if the curve has a single point.
The fix just makes sure we default to a `u` value of `0.0f`
for single point cyclic curves.
Pull Request: https://projects.blender.org/blender/blender/pulls/120565