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-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
2021-10-27Fix building WITH_FLUID=OFFCampbell Barton
2021-10-27Fix warning after recent fluid modifier changesSergey Sharybin
2021-10-27Fix T92423: Blender freeze rendering animation with MantaflowSergey Sharybin
Mantaflow could steal tasks from dependency graph, which under certain conditions causes a recursive lock involving GIL. Isolate threading done in mantaflow when it is interfaced form the dependency graph. Isolation done from the modifier, since the deeper calls are branching out quite quickly. Differential Revision: https://developer.blender.org/D13011
2021-10-26Geometry Nodes: Only create instance IDs when they existHans Goudey
Instance IDs serve no purpose for rendering when they aren't stable from one frame to the next, and if the index is used in the end anyway, there is no point in storing a vector of IDs and copying it around. This commit exposes the `id` attribute on the instances component, makes it optional-- only generated by default with the distribute points on faces node. Since the string to curves node only added the index as each instance's ID, I removed it. This means that it would be necessary to add the ID data manually if the initial index actually helps (when deleting only certain characters, for example). Differential Revision: https://developer.blender.org/D12980
2021-10-24Fix: memory leak after type conversion in geometry nodes groupJacques Lucke
The leak happened when two things were true: * Inside of a node group a socket is linked to a Group Input that has a different type. * The corresponding input on the parent Group node is not linked. The conversion happened correctly, but the original value wasn't destructed.
2021-10-24Cleanup: spelling in commentsCampbell Barton
2021-10-21Geometry Nodes: Attribute search in the modifierHans Goudey
This adds attribute search to the geometry nodes modifier for the input and output attributes. The "New" search item is only shown for the output attributes. Some of the attribute search code is extracted to a new file in the interface code, to avoid some code duplication. The UI code required two fixes so that the search would work for dynamic length strings (IDProperties do not have a fixed size). Since this does changes to the UI layout of the modifier, I also addressed T91485 here. Differential Revisiion: https://developer.blender.org/D12788
2021-10-21Geometry Nodes: fix force-computing multiple non-output socketsJacques Lucke
There were some issues when multiple inputs of the same node were forced to be computed (e.g. for the spreadsheet), but none of the node outputs (if existant) were used. Essentially the node was marked as "finished" too early in this case. This fix is necessary for the improved viewer node (T92167).
2021-10-20Geometry Nodes: Make Random ID a builtin attribute, remove socketsHans Goudey
In order to address feedback that the "Stable ID" was not easy enough to use, remove the "Stable ID" output from the distribution node and the input from the instance on points node. Instead, the nodes write or read a builtin named attribute called `id`. In the future we may add more attributes like `edge_id` and `face_id`. The downside is that more behavior is invisible, which is les expected now that most attributes are passed around with node links. This behavior will have to be explained in the manual. The random value node's "ID" input that had an implicit index input is converted to a special implicit input that uses the `id` attribute if possible, but otherwise defaults to the index. There is no way to tell in the UI which it uses, except by knowing that rule and checking in the spreadsheet for the id attribute. Because it isn't always possible to create stable randomness, this attribute does not always exist, and it will be possible to remove it when we have the attribute remove node back, to improve performance. Differential Revision: https://developer.blender.org/D12903
2021-10-20Cleanup: use elem macrosCampbell Barton
2021-10-19Geometry Nodes: Remove implicit realizing and conversionHans Goudey
This commit removes the implicit conversion from points to a mesh that used to happen before the next modifier. It also removes the implicit realizing of instances that happened before another modifier. Now we have specific nodes for both of these operations, the implicit conversions make less sense, and implicit instance realizing has already been removed in other nodes. This adds another geometry nodes modifier before modifiers that would have realized instances implicitly before. Currently adding another data-block during versioning after linking means that an assert needs to be changed. That should be made unnecessary by T92333. Differential Revision: https://developer.blender.org/D12722
2021-10-18Fix: missing use-attribute property in geometry nodes modifierJacques Lucke
The property was missing when a group input changed from not supporting fields to supporting fields.
2021-10-18Geometry Nodes: decouple multi-function lifetimes from modifierJacques Lucke
Previously, some multi-functions were allocated in a resource scope. This was fine as long as the multi-functions were only needed during the current evaluation of the node tree. However, now cases arise that require the multi-functions to be alive after the modifier is finished. For example, we want to evaluate fields created with geometry nodes outside of geometry nodes. To make this work, `std::shared_ptr` has to be used in a few more places. Realistically, this shouldn't have a noticable impact on performance. If this does become a bottleneck in the future, we can think about ways to make this work without using `shared_ptr` for multi-functions that are only used once.
2021-10-17UI: Visual style update to panelsPablo Vazquez
Back in Blender 2.30, the GUI project brought panels into Blender among other important visual updates. For the first time it was possible to move the wall of buttons around. Providing a clear separation between sections (it even allowed the grouping of panels in tabs!) During the 2.5 redesign, the separation between panels became a line on top of each panel, and panels received theme settings for background and header colors. The default theme used the same color for both. In 2.8 the background color of panels was different from headers in the default theme, so the separator line was removed. While the separator line wasn't elegant (only on top, non-themeable, hard-coded emboss effect), it provided a sort of separation between panels. This patch solves the panels-separation by simply adding a margin space around them (not visible in default theme yet). Even though the margin reduces the width of the working area slightly, it makes room for the upcoming always-visible scrollbars. Other adjustments: * Use arrow icon instead of triangle to collapse/expand * Use rounded corners to match the rest of the UI (editor corners, nodes, etc). {F10953929, size=full} Margin on panels makes use of the `style->panelouter` property that hasn't been used in a while. Also slight tweaks to `boxspace` and `templatespace` style properties so they are multiples of 2 and operations on them round better. There is technically no need to update the themes for them to work, so no theme changes are included in this patch. {F10953931, size=full} {F10953933, size=full} {F10953934, size=full} {F10954003, size=full} ---- A new theme setting under Style controls the roundness of all panels (added it to Style instead of ThemeSpace because I think controlling the panel roundness per editor is a bit overkill): {F11091561, size=full, autoplay, loop} Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D12814
2021-10-15Cleanup: Refactor use of implicit inputs in geometry nodesHans Goudey
Instead of checking whether the socket value was hidden, use the proper node declaration to check whether the socket has an implicit input. The remaining larger change to make is allowing nodes to specify what their implicit input should actually be.
2021-10-15Geometry Nodes: Add Voronoi TextureCharlie Jolly
Port shader Voronoi to GN Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D12725
2021-10-15Geometry Nodes: Port shader gradient texture nodeCharlie Jolly
Reviewed By: HooglyBoogly, JacquesLucke Differential Revision: https://developer.blender.org/D12717