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-12-14Cleanup: correct unbalanced doxygen groupsCampbell Barton
Also add groups in some files.
2021-12-09Geometry Nodes: Scene Time NodeJohnny Matthews
This node outputs the current scene time in seconds or in frames. Use of this node eliminates the need to use drivers to control values in the node tree that are driven by the scene time. Frame is a float value to provide for subframe rendering for motion blur. Differential Revision: https://developer.blender.org/D13455
2021-12-08Cleanup: move public doc-strings into headers for 'modifiers'Campbell Barton
Ref T92709
2021-12-07Geometry Nodes: move type conversions to blenkernelJacques Lucke
The type conversions do not depend on other files in the nodes module. Furthermore we want to use the conversions in the geometry module without creating a dependency to the nodes module there.
2021-12-06Fix T93611: Curve modifier crash in editmode in certain situationsPhilipp Oeser
Caused by {rB3b6ee8cee708} Above commit was trying to get the vertexgroup from the mesh that is passed into `deformVertsEM` (but that can be NULL). When can it be NULL, when is is non-NULL? `editbmesh_calc_modifiers` only passes in a non-NULL mesh to `deformVertsEM` under certain conditions: - a non-deform-only modifier is handled currently - a non-deform-only modifier preceeds the current modifier - a deform-only modifier preceeds the current modifier (and the current one depends on normals) So the passed-in mesh cannot be relied on, now get the vertex group from the context object data (like it was before the culprit commit). Related commit: rB8f22feefbc20 Maniphest Tasks: T93611 Differential Revision: https://developer.blender.org/D13487
2021-12-01Fix T92561: unstable particle distribution with Alembic filesKévin Dietrich
When enabling or disabling a Mesh Sequence Cache modifier of an Object with a hair particle system, the hair would switch positions. This is caused because original coordinates in Blender are expected to be normalized, and toggling the modifier would cause the usage of different orco layers: one that is normalized, and the other which isn't. This bug exposes a few related issues: - if the Alembic file did not have orco data, `MOD_deform_mesh_eval_get`, used by the particle system modifier, would add an orco layer without normalization - `MOD_deform_mesh_eval_get` would also ignore the presence of an orco layer (e.g. one that could have been read from Alembic) - if the Alembic file did have orco data, the data would be read unnormalized To fix those various issues, original coordinates are normalized when read from Alembic and unnormalized when written to Alembic; and a new utility function `BKE_mesh_orco_ensure` is added to add a normalized orco layer if none exists on the mesh already, this function derives from the code used in the particle system. Reviewed By: brecht Maniphest Tasks: T92561 Differential Revision: https://developer.blender.org/D13306
2021-11-30Cleanup: spelling in comments & stringsCampbell Barton
2021-11-30Cleanup: use colon after doxygen params, correct slash directionCampbell Barton
2021-11-29Cleanup: Silenced clang-tidy warning.Jeroen Bakker
2021-11-26Geometry Nodes: add utility to set remaining outputsJacques Lucke
Differential Revision: https://developer.blender.org/D13384
2021-11-25Merge remote-tracking branch 'origin/blender-v3.0-release'Sergey Sharybin
2021-11-25Fix T91444: Edge Loop Preview fails with two Mirror ModifiersBastien Montagne
The mirror modifiers merge option caused unnecessary re-ordering to the vertex array with original vertices merging into their copies. While this wasn't an error, it meant creating a 1:1 mapping from input vertices to their final output wasn't reliable (when looping over vertices first to last) as is done in BKE_editmesh_vert_coords_when_deformed. As merging in either direction is supported, keep the source meshes vertices in-order since it allows the vertex coordinates to be extracted. NOTE: Since this change introduce issues for some cases (e.g. bound modifiers like SurfaceDeform), this change is only applied to newly created modifiers, existing ones will still use the old incorrect merge behavior. Reviewed By: @brecht Maniphest Tasks: T93321, T91444 Differential Revision: https://developer.blender.org/D13355
2021-11-24Geometry Nodes: reduce thread switching in evaluatorJacques Lucke
When a node is executed, it usually schedules other nodes. Right now, those newly scheduled nodes are added to a task pool so that another thread can start working on them immediatly. However, that leads to the situation where sometimes each node in a simple chain is executed by another thread. That leads to additional threading overhead and reduced cache efficiency (for caches that are not shared between cores). Now, when a node is executed and schedules other nodes, the first of those newly scheduled nodes will always be executed on the same thread once the current node is done. If it schedules more than one other node, those will be added to the task pool as before. The speedup achieved by this is hard to measure. I found it to be a couple percent faster in some extreme cases, not much to get excited about. It's nice though that the number of tasks added to the task pool is commonly reduced by a factor of 4 or 5.
2021-11-24Geometry Nodes: add utility to show debug messages in node editorJacques Lucke
This is only meant to be used for development purposes for now, not to show warnings to the user. Differential Revision: https://developer.blender.org/D13348
2021-11-24Geometry Nodes: reduce number of scheduled nodes in evaluatorJacques Lucke
Previously, there were a couple of cases where nodes were scheduled when that was not really necessary. This change doesn't seem to have a big impact on performance, but simplifies the code a bit.
2021-11-24Cleanup: removed shadowed variableJacques Lucke
2021-11-24Fix T93345: missing null check for geometry nodes loggerJacques Lucke
2021-11-23Merge branch 'blender-v3.0-release'Jacques Lucke
2021-11-23Fix (unreported): unlinked group input is not logged in geometry nodesJacques Lucke
Differential Revision: https://developer.blender.org/D13340
2021-11-23Merge branch 'blender-v3.0-release'Julian Eisel
2021-11-23Fix broken handling of constraints reordering with library overridesJulian Eisel
Alternative to D13291 (description partially copied from there). New drag & drop reordering code would call constraints reordering operator with the generic context, and not the one from the panel's layout. missing the "constraint" member which is mandatory for poll function to properly deal with override vs. local constraints. For this to work in a decent way, there needs to be some panel-wide context that we can restore when executing callbacks outside of the normal draw context. So similar to uiLayoutSetContextPointer() to set context on a layout level, this introduces UI_panel_context_pointer_set() for panel level context (this calls the former for the current panel root layout as well). Differential Revision: https://developer.blender.org/D13308
2021-11-23Geometry Nodes: Node execution time overlayErik
Adds a new overlay called "Timings" to the Geometry Node editor. This shows the node execution time in milliseconds above the node. For group nodes and frames, the total time for all nodes inside (recursively) is shown. Group output node shows the node tree total. The code is prepared for easily adding new rows of information to the box above the node in the future. Differential Revision: https://developer.blender.org/D13256
2021-11-23Geometry Nodes: reduce overhead when processing single valuesJacques Lucke
Currently the geometry nodes evaluator always stores a field for every type that supports it, even if it is just a single value. This results in a lot of overhead when there are many sockets that just contain a single value, which is often the case. This introduces a new `ValueOrField<T>` type that is used by the geometry nodes evaluator. Now a field will only be created when it is actually necessary. See D13307 for more details. In extrem cases this can speed up the evaluation 2-3x (those cases are probably never hit in practice though, but it's good to get rid of unnecessary overhead nevertheless). Differential Revision: https://developer.blender.org/D13307
2021-11-22Merge branch 'blender-v3.0-release'Hans Goudey
2021-11-22Fix T92631: Fix negative thickness regression in complex solidifyHenrik Dick
This regression was introduced by D11832, but there was problems before that as well. I seem to have missed it in review. See the differential revision for a screenshot of the difference. Differential Revision: https://developer.blender.org/D13216
2021-11-22Cleanup: use simple data member instead of callbackJacques Lucke
This really doesn't have to be a callback currently, since it is always the same `CPPType` for a socket type.
2021-11-22Cleanup: make naming more consistentJacques Lucke
2021-11-17Merge branch 'blender-v3.0-release'Jacques Lucke
2021-11-17Fix: wrong assert in geometry nodes evaluatorJacques Lucke
It only makes sense to check if all required outputs have been computed if the node was executed at all.
2021-11-16Merge branch 'blender-v3.0-release'Hans Goudey
2021-11-16Fix T93085: Incorrect geometry nodes modifier warningHans Goudey
It's valid for a node group connected to the modifier not to have a geometry input, but I didn't consider that case with the last change I made here, f3bdabbe24fe591dc9. Differential Revision: https://developer.blender.org/D13231
2021-11-13Cleanup: spelling in comments, comment block formattingCampbell Barton
2021-11-11Merge branch 'blender-v3.0-release'Hans Goudey
2021-11-11Fix: Incorrect modifier warning with non-geometry input firstHans Goudey
The code assumed that any geometry input that wasn't the first input was a second geometry input. Fix by separating the warning for the first input and for the number of geometry inputs.
2021-11-11Merge branch 'blender-v3.0-release'Hans Goudey
2021-11-11Fix T89313: Attribute search crash with animation playbackHans Goudey
rBc473b2ce8bdbf8fa42 improved the situation somewhat, but attribute search still crashes during animation playback, because the UI search data references stale memory. The proper solution is to allow the search to own data rather than just referencing it, but I would prefer not to do that for 3.0. In the meantime, just disable attribute search when animation is playing. Differential Revision: https://developer.blender.org/D13179
2021-11-10Merge branch 'blender-v3.0-release'Hans Goudey
2021-11-10Geometry Nodes: Clarify modifier node group errorsHans Goudey
This commit adds modifier error messages to some of the cases where the node group is configured improperly. It also clears the geometry set when there is an error with the node group. This is consistent to what we do in nodes themselves, and feels more intuitive than passing the input geometry through the node group silently. Fixes T87142
2021-11-09Merge branch 'blender-v3.0-release'Philipp Oeser
2021-11-09Fix T92928: Geometry nodes animation decorator wrong for vectorsPhilipp Oeser
Decorators were only added for the first item of an array. Decorators for all items of an array are added: - if the layout is flagged `UI_ITEM_PROP_DECORATE` automatically in `uiItemFullR` or - calling `uiItemDecoratorR` (but only in certain situations, see below) When calling `uiItemDecoratorR` with an index of 0, the following happens: - the index is passed to `uiItemDecoratorR_prop` - that checks with `ui_item_rna_is_expand` if decorators should be added to all items of an array - the check fails (because it only permits RNA_NO_INDEX -- which is -1) So two things we can do: - remain using `uiItemDecoratorR` (that would require to pass an index of RNA_NO_INDEX -- a bad level include -- or -1 - just use `uiLayoutSetPropDecorate` to flag the row properly This patch does later. Differential Revision: https://developer.blender.org/D13159
2021-11-09Merge branch 'blender-v3.0-release'Campbell Barton
2021-11-09Fix T92384: Wrong UV layers used with Boolean Modifier (Fast Solver)Campbell Barton
Ensure the layers from the source mesh are used instead of the object referenced by the boolean modifier.
2021-11-08Cleanup: avoid error prone struct declarations in C++Campbell Barton
Reference struct members by name instead relying on their order. This also simplifies moving back to named members when all compilers we use support them.
2021-11-05Fix part of T89313: Attribute search crash during animation playbackHans Goudey
During animation playback, data-blocks are reallocated, so storing pointers to the resulting data is not okay. Instead, the data should be retrieved from the context. This works when the applied search item is the "dummy" item added for non-matches. However, it still crashes for every other item, because the memory is owned by the modifier value log, which has been freed by the time the exec function runs. The next part of the solution is to allow uiSearchItems to own memory for the search items.
2021-11-04Fix T92778: Cloth Point Cache Name disappears after Make Library Override.Bastien Montagne
Cloth modifier had a unique, weird and weak way of copying its pointcache, now make it use `BKE_ptcache_copy_list` like done for e.g. particles or softbody data.
2021-11-03Fix T91862: do type conversion when data enters or exists node groupJacques Lucke
The geometry node evaluator now has access to the entire socket path from the node that produces a value to the node that uses it. This allows the evaluator to make decisions about at which points in the path the value should be converted. Multiple conversions may be necessary under some circumstances with nested node groups. Differential Revision: https://developer.blender.org/D13034
2021-11-02Fix lots of missing messages i18n handling in `uiItemL` calls.Bastien Montagne
Also fix several wrong usages of `IFACE_` (as a reminder, error/info messages should use `TIP_`, not `IFACE_`).
2021-11-02UIMessages/i18n: Fix incorrect part of rBdabfac37e35274b.Bastien Montagne
My bad, forgot lower-level UI code does not handle translations itself. Thanks to Hans Goudey (@HooglyBoogly) for the heads up.
2021-11-02Fix more UI message/i18n issues.Bastien Montagne
2021-10-27Geometry Nodes: Show hint in empty output attributes panelHans Goudey
This is meant to add something to the sub-panel when it is empty so it looks more purposeful, but also add a hint that might be helpful when figuring out how to output a named attribute. Differential Revision: https://developer.blender.org/D12715