Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-22Cleanup: spelling in commentsCampbell Barton
2021-09-22Geometry Nodes: Curve Parameter NodeHans Goudey
This commit adds a field input node that outputs the fraction of the total length of the spline on each control point. This is useful for anything that involves varying a value depending on how far along the spline it is. It also works when evaluated on the spline domain, where it outputs the fraction of the total length of all of the splines at the start. The operation isn't as well defined for NURB splines for the reasons noted in the code comment. That can be said explicitly in the docs. Differential Revision: https://developer.blender.org/D12548
2021-09-21Geometry Nodes: Fill instances separately in the curve fill nodeHans Goudey
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
2021-09-21Geometry Nodes: String manipulation nodesErik Abrahamsson
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
2021-09-21Geometry Nodes: Curve tangent nodeHans Goudey
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
2021-09-21Cleanup: Move curve to mesh node implementation to blenkernelHans Goudey
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
2021-09-21GPencil: Curvature support for length modifierHenrik Dick (weasel)
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 #
2021-09-21Cycles: merge of cycles-x branch, a major update to the rendererBrecht Van Lommel
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
2021-09-21VSE strip thumbnailsAditya Y Jeppu
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
2021-09-21VSE: Image transform toolsRichard Antalik
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
2021-09-21LibOverride: make `view_layer` API parameter optional.Bastien Montagne
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.
2021-09-21Geometry Nodes: Curve Sample NodeHans Goudey
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
2021-09-21Fix: Crash with single point bezier spline auto handlesHans Goudey
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.
2021-09-21Geometry Nodes: Attribute Statistic NodeVictor-Louis De Gusseme
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
2021-09-20Cleanup: Refactor VSE overlay settingsRichard Antalik
Move overlay flags into SequencerPreviewOverlay and SequencerTimelineOverlay structs. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D12569
2021-09-20Geometry Nodes: support Set Position node on instancesJacques Lucke
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
2021-09-20Geometry Nodes: new Realize Instances nodeJacques Lucke
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
2021-09-20Fix: Spline length calculation fails with no evaluated pointsHans Goudey
The case that checked whether there were evaluated edges was incorrect, since two points are needed for an edge. Then also avoid running the accumulation for an empty span.
2021-09-20Cleanup: Fix/improve variable names and commentsHans Goudey
2021-09-19Revert "GPencil: Curvature support for length modifier."YimingWu
Reason for revert: accidental push of a intermediate change locally. This reverts commit 25e548c96b3d8c1698fd4385b4dc395665b5a7f6.
2021-09-19GPencil: Curvature support for length modifier.YimingWu
2021-09-18Audaspace: added audio file streams functionality.Jörg Müller
On the blender side this commit fixes importing video files with audio and video streams that do not share the same start time and duration. Differential Revision: https://developer.blender.org/D12353
2021-09-17UI: Always Create Asset PreviewsHarley Acheson
This patch allows Asset Browser previews to be made regardless of the setting of the (unrelated) "File Preview Type" Preference. See D12484 for more details. Differential Revision: https://developer.blender.org/D12484 Reviewed by Julian Eisel
2021-09-17Cleanup: fix memory leakJacques Lucke
2021-09-17Fix T91481: Grease Pencil Layer Double TransformationsHenrik Dick
Use the inverse of the grease pencil object. This patch fixes the issue for bones and objects. Maniphest Tasks: T91481 Differential Revision: https://developer.blender.org/D12539
2021-09-17Fix T85564: FCurve modifier zero influence on restrict range bordersPhilipp Oeser
When using FModifier `Restrict Frame Range`, the resulting influence was zero being exactly on `Start` / `End` range borders (so borders were **exclusive**). This made it impossible to chain FModifers together (forcing the user to specify values slightly below the desired border in following FModifiers). This is now corrected to be **inclusive** on Start / End range borders. Before {F10234864} After {F10234865} Testfile {F10234866} In the case of touching open borders (so [frame A frame B] followed by [frame B frame C]) both modifiers are evaluated (in stack order). If the later modifier has full influence (and is not additive) this simply means the result is the same as the later modifier's value. If influences below 1 are used (or modifiers are additive) both modifier's values are interpolated/added accordingly. technical notes: - this was caused by the introduction of FModifier Influence/BlendIn-Out in rB185663b52b61. - for comparison, see other occurrences of `FMODIFIER_FLAG_RANGERESTRICT`. - the following conditions in `eval_fmodifier_influence` for blend in/ out have been changed accordingly. Maniphest Tasks: T85564 Differential Revision: https://developer.blender.org/D10401
2021-09-17Geometry Nodes: Add a toggle to use attributes as input valuesHans Goudey
This adds a toggle to node group inputs exposed in the modifier to use an attribute instead of a single value. When the toggle is pressed, the button switches to a text button to choose an attribute name. Attribute search isn't implemented here yet. One confusing thing is that some values can't be driven by attributes at all, like the size of a primitive node. In that case, we should have a node warning, but that will be separate since it's more general. We can also have an option to turn off this toggle in node group input settings. The two new properties for each input are stored with the same name as the value, but with `"_use_attribute"` and `"_attribute_name"`` suffixes. The properties are not added for socket types that don't support attribute input, like object sockets. Differential Revision: https://developer.blender.org/D12504
2021-09-17Cleanup: Pass const mesh argumentHans Goudey
Also remove unnecessary parantheses.
2021-09-16Cleanup: Move mesh_convert.c to C++Hans Goudey
This should allow easier changes when it's helpful to use C++ types. The diff is for a test on the buildbot. Differential Revision: https://developer.blender.org/D12528
2021-09-16Cleanup: Remove unnecessary manual of move constructorHans Goudey
Turns out this isn't actually necessary.
2021-09-16Geometry Nodes: Simplify using OutputAttribute in a vectorHans Goudey
Store the optional temporary span storage as a unique_ptr and move it in the move constructor, to avoid the need to add a special move constructor that clears the "show_warning" fields from it. Maybe this is very slightly slower, but we'll need this class less often in the future anyway.
2021-09-16Cleanup: Add built-in check for an attribute IDHans Goudey
2021-09-16Fix: properly implement the 'only append' execption case for WorkSpaces.Bastien Montagne
Add needed extra flag and utils to IDType to mark and check an ID type as only appendable. Note that this is only a loose user-level enforcement currently, in any case you need to be able to link an ID to append it currently, so for low-level code this does not really matter. Currently only WorkSpace and Screen ID types are marked with the new `IDTYPE_FLAGS_ONLY_APPEND` flag.
2021-09-16Cleanup: Comment about shpaekey being treated as embedded IDs in ↵Bastien Montagne
`BKE_id_newptr_and_tag_clear`.
2021-09-16Cleanup: Add comment about 'make_local' callback of Brush doing bad thing.Bastien Montagne
Callbacks in IDTypeInfo should never affect other IDs if they are not embedded. We break this rule in some cases, at least each of those should be clearly commented about and get some security checks to try to avoid unexpected issues as much as possible.
2021-09-16Cleanup: Rename `BKE_id_clear_newpoin` to `BKE_id_newptr_and_tag_clear`.Bastien Montagne
2021-09-16Fix/refactor `BKE_id_clear_newpoin` and `BKE_main_id_newptr_and_tag_clear`.Bastien Montagne
Those were not clearing embdeed IDs flags and `newid` pointers at all...
2021-09-16IDManagement: refactor: Remove 'test' part from `BKE_lib_id_make_local`.Bastien Montagne
Mixing testing and actual action in a single function is just not a good way to do things, and the 'testing' feature is not used anywhere anymore, time to get rid of it.
2021-09-16IDType: Add `BKE_idtype_idcode_is_localizable`.Bastien Montagne
This is the same as `BKE_idtype_idcode_is_linkable` currently, used only in one place in UI code of IDtemplate.
2021-09-16IDType: Cleanup: Remove useless `IDTYPE_FLAGS_NO_MAKELOCAL`.Bastien Montagne
This flag became a full duplicate of `IDTYPE_FLAGS_NO_LIBLINKING`, which is a good thing (don't think we ever want to be able to link some data, without being able to make it local...). So we can now remove it and use `IDTYPE_FLAGS_NO_LIBLINKING` instead.
2021-09-16Fix security popup re-displaying after undoCampbell Barton
Don't reset these flags when loading a file (or undoing) rely on BPY_python_reset to reset the flags.
2021-09-16GPencil: Fix dash modifier reading error.YimingWu
The reference for parent modifier in segment data is not assigned. Now fixed.
2021-09-15Cleanup: Use function to mark mesh normals dirtyHans Goudey
2021-09-15Splines: Add a method for reversing a SplineJohnny Matthews
This moved the spline reversing logic out of the Curve Reverse geometry node and into the spline class. This allows a spline to reverse itself with a call to `my_spline.reverse()` The base class will reverse position, radii & tilt, while specialized versions are created for Bezier and Nurbs splines to reverse the additional data that these classes encapsulate. Differential Revision: https://developer.blender.org/D12501
2021-09-15Fix broken WorkSpace use after recent refactor of append code.Bastien Montagne
Essentially, Workspace (and Screen) types were defined as not localizable. In previous code it happended to work by mere chance (code path taken in `BKE_library_make_local` was conviniently skipping the call to `BKE_lib_id_make_local` in that case, hence not checking for `IDTYPE_FLAGS_NO_MAKELOCAL` flag of the localized ID type). This is a total abuse of this IDType flag, for now removing it. That specific case (IDtype appendable but nor linkable) requires its own proper flag, this will be tackled in a later commit. Issue introduced in rB3be5ce4aad5e.
2021-09-15Geometry Nodes: Add fields version of material nodesHans Goudey
This commit moves the old material nodes to a "legacy" folder and adds versions of the nodes that work with fields. The "Select by Material" node is a field node now, so it doesn't have a geometry output. This is an improvement because there are fewer links to connect, and it's more easily usable in different situations. It's also called "Material Selection", since it's more of an input than an action now. It's sometimes necessary to use the attribute capture node to get a more predictable interpolation to mesh faces. This is because the selection field input is always evaluated on the face domain, so attribute inputs are interpolated before they are booleans, so they cannot use the new interpolations from rB5841f8656d9580d7b9. Differential Revision: https://developer.blender.org/D12456
2021-09-15Geometry Nodes: Add special domain interpolation for selectionsHans Goudey
The generic domain interpolation algorithms didn't quite work for selections. The interpolation would do unexpected things that were different than the results in edit mode. The new behavior is supposed to be the same as edit mode, although we also have to handle face corner selections here. Currently the code assumes that all boolean attributes should be handled that way. I'm not sure of why that wouldn't be the case, but if we ever need non-selection boolean attributes, that could be supported too. Differential Revision: https://developer.blender.org/D12488
2021-09-15Cleanup: replace defines with functionsCampbell Barton
2021-09-15Cleanup: correct tracker ID in commentCampbell Barton
2021-09-15GPencil: Dot dash modifier.YimingWu
Create dot-dash effect for grease pencil strokes. User can manually edit the length, gap and styles for each segment of dashed lines. The values in each segment can all be key-framed to make animations. Reviewed By: Hans Goudey (HooglyBoogly), Antonio Vazquez (antoniov) Differential Revision: http://developer.blender.org/D11876