Age | Commit message (Collapse) | Author |
|
This commit adds warning messages to "legacy" nodes that will be
removed in the future. The warning is shown in the node header, but
it is not printed in the terminal or displayed in the modifier. It is
also not propogated to node groups, but that is a more general task.
If the modifier's node tree has executed a deprecated node, it will
display a warning and a "Search" button that will select the nodes and
pan to them in the node editor. This doesn't open child node trees and
select nodes in there, because I want to keep this operator simple and
avoid wasting a lot of time perfecting this behavior.
Differential Revision: https://developer.blender.org/D12454
|
|
Rename the `UUID` struct to `bUUID`. This avoids a symbol clash on
Windows, which also defines `UUID`. This only pops up when a `UUID`
field is used in the DNA code, which is why it wasn't a problem before
(it will be once D12589 lands).
No functional changes.
|
|
With this commit, each referenced instance data will be converted to
a geometry instances and processed separately. This should result in
a large speedup when the instances component has many insances
referring to the same data.
This change can act as a blueprint for other nodes that need to
implement similar behavior. It adds some helper functions on the
instances component to make that easier.
Thanks to Erik Abrahamsson for a proof of concept patch.
Differential Revision: https://developer.blender.org/D12572
|
|
This patch adds four new nodes to a new "Text" category:
- String Length: Outputs length of a string
- String Substring: Outputs part of a string
- Value to String: Converts a value to a string
- String Join: Concatenates multiple strings with a delimiter
The initial use case of these nodes is the upcoming string to curve
node. However, they could also be used to calculate dynamic attribute
names, or with string attributes in the future.
Differential Revision: https://developer.blender.org/D12532
|
|
The code is basically the same as rB4d51af68adb273.
|
|
This node outputs the direction vector, or tangent of a curve at every
control point. For poly splines this is simply the evaluated tangents,
so it all works very simply. For Bezier splines it uses the tangent at
the evaluated point corresponding to each control point, and NURBS
are interpereted as poly splines built from their control points.
Internally the node is called "Input Tangent" to simplify using it for
mesh tangents as well in the future like the "Normal" node.
Differential Revision: https://developer.blender.org/D12581
|
|
|
|
Currently, the drop indicator colors are hardcoded to white text on semi-transparent black background.
This patch makes the drop indicator use the tooltip theme settings, as they serve a similar purpose.
{F10530482, size=full}
All built-in themes seem to work well and got improved readability.
Reviewed By: HooglyBoogly
Differential Revision: https://developer.blender.org/D12588
|
|
rB8e21d528cab98 neglected to add versioning to add the new
"use_attribute" and "attribute_name" properties to the modifier input
list. Though they are added if the modifier's interface is updated, that
doesn't happen when the file is loaded, so patch adds them manually.
Another solution would be calling `MOD_nodes_update_interface`,
but that would require including the modifiers module.
Differential Revision: https://developer.blender.org/D12535
|
|
I plan to use this for curve object data conversion to mesh in D12533,
and possibly for the implicit curve to mesh conversion in the curve
and text object modifier stack in the future.
Differential Revision: https://developer.blender.org/D12585
|
|
The versioning has to have different behavior for when the old default
value had a float type rather than a double type. Also use memcpy
rather than dupalloc, since it's a bit clearer.
|
|
|
|
It is valid to e.g. copy construct an integer in the same place,
because it is a trivial type. It does not work for types like std::string.
This fixes a crash reported in D12584 where it would copy a buffer
into itself. We should probably also avoid doing this copy alltogether
but that can be done separately.
|
|
Mention that `UUID_STRING_LEN` exists in the documentation of
`BLI_uuid_format()`.
No functional changes.
|
|
In some cases the stroke has 0 points and this must be skipped in the interpolation.
|
|
Extend the stroke following an approximated circluar/helical curve.
This can be used as an effect for lineart or on its own as helix generator.
Reviewed By: Sebastian Parborg (zeddb), Hans Goudey (HooglyBoogly), YimingWu (NicksBest), Antonio Vazquez (antoniov), Henrik Dick (weasel)
Differential Revision: https://developer.blender.org/D11668
# 请为您的变更输入提交说明。以 '#' 开始的行将被忽略,而一个空的提交
# 说明将会终止提交。
#
# 位于分支 master
# 您的分支与上游分支 'origin/master' 一致。
#
# 要提交的变更:
# 修改: source/blender/blenkernel/BKE_gpencil_geom.h
# 修改: source/blender/blenkernel/intern/gpencil_geom.cc
# 修改: source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
# 修改: source/blender/makesdna/DNA_gpencil_modifier_defaults.h
# 修改: source/blender/makesdna/DNA_gpencil_modifier_types.h
# 修改: source/blender/makesrna/intern/rna_gpencil_modifier.c
#
|
|
The issue was caused by `textureSize()` returning the size of the level 0
even when the min texture level is higher than 0.
Using a uniform to pass the correct size fixes the issue.
This issue also affected the downsampling of radiance for reflections and
refractions.
This does not affect anything other than the recusive downsampling shaders.
|
|
Error in e6194e735791b42feb51e810a4910a41d999d3bf.
|
|
Different parameter name in function declaration and implementation.
|
|
Knife tool.
Make the drawing anti aliased and consistent by using
3D_POLYLINE/3D_POINT shaders, and making sure alpha
blending is on.
Monkey work based on [[ https://developer.blender.org/D11333 | D11333 ]]
done by [[ https://developer.blender.org/p/krash/ | Anthony Edlin (krash)]]
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D12287
|
|
This includes much improved GPU rendering performance, viewport interactivity,
new shadow catcher, revamped sampling settings, subsurface scattering anisotropy,
new GPU volume sampling, improved PMJ sampling pattern, and more.
Some features have also been removed or changed, breaking backwards compatibility.
Including the removal of the OpenCL backend, for which alternatives are under
development.
Release notes and code docs:
https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles
https://wiki.blender.org/wiki/Source/Render/Cycles
Credits:
* Sergey Sharybin
* Brecht Van Lommel
* Patrick Mours (OptiX backend)
* Christophe Hery (subsurface scattering anisotropy)
* William Leeson (PMJ sampling pattern)
* Alaska (various fixes and tweaks)
* Thomas Dinges (various fixes)
For the full commit history, see the cycles-x branch. This squashes together
all the changes since intermediate changes would often fail building or tests.
Ref T87839, T87837, T87836
Fixes T90734, T89353, T80267, T80267, T77185, T69800
|
|
|
|
Draw thumbnails as strip overlay. This works for movie and image strips.
To draw thumbnails, this overlay has to be enabled and strips must be
tall enough.
The thumbnails are loaded from source file using separate thread and
stored in cache.
Drawing code uses only images stored in cache, and if any is missing,
background rendering job is started. If job can not render thumbnail,
to prevent endless loop of creating job for missing image it sets
`SEQ_FLAG_SKIP_THUMBNAILS` bit of `Sequence` flag.
To prevent visual glitches during timeline panning and zooming, `View2D`
flag `V2D_IS_NAVIGATING` is implemented. If bit is set, drawing code
will look for set of evenly distributed thumbnails that should be
guaranteed to exist and also set of previously displayed thumbnails.
Due to volatile nature of cache these thumbnails can be missing anyway,
in which case no new thumbnails will be drawn for particular strip.
Cache capacity is limited to 5000 thumbnails and performs cleanup of
non visible images when limit is reached.
ref T89143
Reviewed By: ISS
Differential Revision: https://developer.blender.org/D12266
|
|
Add tools for image manipulation in sequencer preview region.
This includes:
- Translate, rotate and resize operators, tools and gizmos
- Origin for image transformation
- Median point and individual origins pivot modes
- Select and Box select operator works in preview
- Image overlay drawing
ref T90156
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D12105
|
|
This is used to find a valid collection in which to instantiate stray
objects and collections.
In some cases there will be no such active view layer, in which case we
can consider using the Scene's master collections children hierarchy
instead to find a valid instantiated parent collection for those stray
data.
|
|
Expose a key-map preference "Fallback Tool (RMB)",
disabled by default.
The right mouse button uses the fallback tool
(currently visible selection tool in the toolbar),
instead of always tweaking.
When any selection tool is active, right mouse always tweaks.
To enable fallback selection on RMB, set the "Right Mouse Select Action"
to "Selection Tool".
Internal changes:
- Add fall-back key-maps, separate key-maps needed for when the tool is
run as a fall-back. This is needed so RMB-select can support fall-back
tools, so left-mouse can be used when it's the active tool and RMB
can be used as a fall-back action when another tool is active.
- Add options field to tools so tools without gizmos can enable the
full-back tool keymap.
- Support multiple key-maps for keymap handlers.
- Fall-back keymaps now co-exist with the tool-keymaps.
So both keymaps may be active at once - using different mouse buttons.
When gizmos are in use, a highlighted gizmo prioritizes the
tool-keymap over the fall-back keymap.
Resolves T83690.
Reviewed By: JulienKaspar
Ref D12493
|
|
Some selection operators return (PASS_THROUGH & FINISHED) so the tweak
event isn't suppressed from the PRESS event having been handled.
This is now restricted to events with a PRESS action.
Without this, using CLICK for selection was passing the event through
which could run other actions unintentionally.
|
|
|
|
This node allows sampling positions, tangents, and normals at any
arbitrary point along a curve. The curve can include multiple splines,
all are taken into account. The node does not yet support transferring
generic attributes like radius, because some more general tooling will
make that much more feasible and useful in different scenarios.
This is a field node, so it is evaluated in the context of a data-flow
node like "Set Position". One nice thing about that is it can easily
be used to move an entire geometry like the follow path constraint.
The point along the curve is chosen either with a factor of the total
length of the curve, or a length into the curve, the same choice used
in the curve trim node.
Differential Revision: https://developer.blender.org/D12565
|
|
Since the variable for an output parameter can be null,
it is incorrect to use it later on in a reference.
|
|
There's no way to calculate auto or vector handles when there is
only one point, and returning early allows avoiding checking for
that case later on.
|
|
This nodes evaluates a field on a geometry and outputs various
statistics about the entire data set, like min, max, or even
the standard deviation. It works for float and vector types currently,
though more types could be supported in the future.
- All statistics are calculated element-wise for vectors.
- "Product" was not added since the result could very easily overflow.
- The "Size" output was not added since it isn't specific to an
attribute and would fit better in another node.
The implementation shares work as much as possible when multiple
statistics are needed.
This node has been in development since the beginning of this year,
with additions from Johnny Matthews and Hans Goudey.
Differential Revision: https://developer.blender.org/D10202
|
|
There may be mode specific panels for some assets in the navigation or
the asset metadata sidebar. For example the pose library will likely do
this. So let the regions redraw on mode changes.
|
|
This is the same behavior as in shader nodes.
|
|
This change makes the Set Position node do nothing by default.
Before, the geometry would always disappear, because it all points
would be moved to (0, 0, 0).
Differential Revision: https://developer.blender.org/D12553
|
|
Move overlay flags into SequencerPreviewOverlay and
SequencerTimelineOverlay structs.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D12569
|
|
By error I commited the previous version.
|
|
The tooltip was not clear about in what shading modes works.
Related to T91467
|
|
"iff" was intended as "if and only if". while exact use of abbreviations
isn't clear cut, I assumed this was a typo & it's not used anywhere
else in source/, expand to "only if" (suggested by Sybren).
|
|
This makes the Noise Texture node available in geometry nodes.
It should behave the same as in shader node, with the exception
that it does not have an implicit position input yet. That will
be added separately.
Differential Revision: https://developer.blender.org/D12467
|
|
Previously, the node would always realize instances implicitly.
Now it can change the position of entire instances.
The Realize Instances node can be used before if the old
behavior is required.
Differential Revision: https://developer.blender.org/D12555
|
|
This node has a simple geometry input and output.
If the input geometry contains instances, they will be realized
into actual geometry. When there are many instances, this can
be very slow and memory intensive. Generally, instances should
only be made real when necessary, e.g. when every instance
should be deformed independently.
Differential Revision: https://developer.blender.org/D12556
|
|
Add `BLI_uuid_nil()` that returns the nil UUID (used to indicate "not
set") and `BLI_uuid_is_nil(uuid)` to do an equality test with the nil
value.
|
|
On Apple machines, call `clock_gettime()` instead of `timespec_get()`.
macOS only introduced `timespec_get()` in version 10.15 (introduced
approx two years ago, so in 2019), even though the function is from C11.
|
|
Add braces around initialization of sub-objects, as per the warning
suggestion on macOS.
No functional changes.
|
|
XOR the 'seconds' and 'nanoseconds' fields of the current time to seed the
RNG used for generating random UUIDs. This ensures a better seed just in
case the clock as no sub-second resolution.
|
|
The API was checking the number of total weights with the first point of the stroke and this was not valid because each point can have different number of weight elemnts,
|
|
The term "area" isn't normally exposed in the UI.
|
|
|
|
The default end factor should be 1. The proper value for the default end
length is somewhat arbitrary, but it shouldn't be zero.
|