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
2022-03-18BLI: move CPPType to blenlibJacques Lucke
For more detail about `CPPType`, see `BLI_cpp_type.hh` and D14367. Differential Revision: https://developer.blender.org/D14367
2022-03-18Fix T96278: missing update after alpha socket connectionJacques Lucke
Differential Revision: https://developer.blender.org/D14299
2022-03-18Cleanup: Remove unused includesHans Goudey
2022-03-17Fix T96330: Three times slower 'relink to new id' process in 3.1.Bastien Montagne
Caused by rB43bc494892c3, moving this 'new id' relink to generic remapping code added the over-head of proper, generic post-processing, compared to the special-cases previous code was only designed to handle. Fortunately with recent 'multi-remapping' work we can easily rewrite that new id relink code to use the multi-remapping approach too. No behavioral change is expected from this commit, besides the improved performances (essentially restored to what they where before rB43bc494892c3).
2022-03-17GPencil: Fix cyclic flag cleared by simplify modifierHenrik Dick
Change the sample mode to don't duplicate the last vertex of the stroke and instead use the cyclic flag to close previously cyclic strokes. This is necessary for the following modifiers. Reviewed By: NicksBest Differential Revision: http://developer.blender.org/D14359
2022-03-17Cleanup: spelling in commentsCampbell Barton
Use <pre>..</pre> for pseudo-code.
2022-03-17Fix: Compiler error on windows and macHans Goudey
The previous fix including `<algorithm>` was an improvement but not the actual error, which appears to be that `int64_t` is long long int on one platform but just long int on another. The fix includes the template argument directly.
2022-03-17Fix: Build error after curve evaluation commitHans Goudey
2022-03-16Curves: Initial evaluation for curves data-blockHans Goudey
This patch adds evaluation for NURBS, Bezier, and Catmull Rom curves for the new `Curves` data-block. The main difference from the code in `BKE_spline.hh` is that the functionality is not encapsulated in classes. Instead, each function has arguments for all of the information it needs. This makes the code more reusable and removes a bunch of unnecessary complications for keeping track of state. NURBS and Bezier evaluation works the same way as existing code. The Catmull Rom implementation is new, with the basis function based on Cycles code. All three types have some basic tests. For NURBS and Catmull Rom curves, evaluating positions is the same as any generic attribute, so it's implemented by the generic interpolation to evaluated points. Bezier curves are a bit special, because the "handle" control points are stored in a separate attribute. This patch doesn't include generic interpolation to evaluated points for Bezier curves. Ref T95942 Differential Revision: https://developer.blender.org/D14284
2022-03-16Add 'multiple' variant of ID relink function.Bastien Montagne
Similar to other changes to ID remapping, gives huge speedups in some cases, like certain types of liboverride creation. Case from {T96092} goes from 1725 seconds (almost 30 minutes) to 45 seconds to generate the liboverride, on my machine. Reviewed By: jbakker Maniphest Tasks: T96092 Differential Revision: https://developer.blender.org/D14240
2022-03-16Geometry Nodes: Remove legacy node codeHans Goudey
This commit removes the implementations of legacy nodes, their type definitions, and related code that becomes unused. Now that we have two releases that included the legacy nodes, there is not much reason to include them still. Removing the code means refactoring will be easier, and old code doesn't have to be tested and maintained. After this commit, the legacy nodes will be undefined in the UI, so 3.0 or 3.1 should be used to convert files to the fields system. The net change is 12184 lines removed! The tooltip for legacy nodes mentioned that we would remove them before 4.0, which was purposefully a bit vague to allow us this flexibility. In a poll in a devtalk post showed that the majority of people were okay with removing the nodes. https://devtalk.blender.org/t/geometry-nodes-backward-compatibility-poll/20199 Differential Revision: https://developer.blender.org/D14353
2022-03-16Document some flags controlling BKE_library_foreach_ID_link behavior.Bastien Montagne
2022-03-16Cleanup: incorrect comments, use C commentsCampbell Barton
2022-03-16Cleanup: Remove volatile from RenderResult and related APIsJesse Yurkovich
Volatile fields were introduced to the RenderResult struct years ago[1]. However, volatile is most likely not doing what it was intended to do in this instance, and is problematic when moving files to c++ (see discussion from D13962). There are complex rules around what happens to these fields but none of them guarantee what the above commit alluded to. This patch drops the volatile and cleans up the APIs surrounding it. [1] rB7930c40051ef1b1a26140629cf1299aa89eed859 Passing on all platforms: https://builder.blender.org/admin/#/builders/18/builds/338 Differential Revision: https://developer.blender.org/D14298
2022-03-16Cleanup: rename cnt to countCampbell Barton
Follow naming from T85728.
2022-03-15Disable GPU subdivision if the maximum number of SSBO binding is reachedKévin Dietrich
Some old platforms and drivers have limited amount of SSBO binding per compute shader. This disables GPU subdivision if we cannot possibly bind all required buffers within this limit. For now the maximum number of buffers used by the GPU code is hardcoded, but will be programmatically detected when shader creation is automated. Ref D14337
2022-03-15Fix slow tracking of long sequencesSergey Sharybin
The performance issue was noticeable when tracking a lot of tracks which are using keyframe pattern matching. What was happening is that at some cache gets filled in and the furthest away frame gets removed from the cache: the frame at marker's keyframe gets removed and needs to be re-read from disk on the next tracking step. This change makes it so frames at markers' keyframes are not removed from cache during tracking. Steps to easily reproduce: - Set cache size to 512 Mb. - Open image sequence in clip editor - Detect features - Track all markers Originally was reported by Rik, thanks!
2022-03-15Cleanup: remove accidental shallow mesh copyJacques Lucke
2022-03-15Cleanup: correct unbalanced doxy sectionsCampbell Barton
2022-03-14Geometry Nodes: Add named attribute nodes behind experimental flagHans Goudey
This commit adds three nodes: - `Remove Attribute`: Removes an attribute with the given name - `Named Attribute`: A field input node - `Store Named Attribute`: Puts results of a field in a named attribute They are added behind a new experimental feature flag, because further development of attribute search and name dependency visualization will happen as separate steps. Ref T91742 Differential Revision: https://developer.blender.org/D12685
2022-03-14Auto-generate RNA-structs declarations in `RNA_prototypes.h`Julian Eisel
So far it was needed to declare a new RNA struct to `RNA_access.h` manually. Since 9b298cf3dbec we generate a `RNA_prototypes.h` for RNA property declarations. Now this also includes the RNA struct declarations, so they don't have to be added manually anymore. Differential Revision: https://developer.blender.org/D13862 Reviewed by: brecht, campbellbarton
2022-03-14Revert "Animation: Sensible frame range for motion paths"Sybren A. Stüvel
This reverts commit 1558b270e9fcbc2e23fa248b0e7e770dddae155c. An earlier commit (rB101fadcf6b93c) introduced some new functionality, which was overlooked in reviewing this commit & got broken. Will re-commit after the issue has been fixed. Ref: D13687
2022-03-14Fix T96402: fix case when material output is contained in node groupJacques Lucke
For now just assume that a node group without output sockets is an output node. Ideally, we would use run-time information stored on the node group itself to determine if the group contains a top-level output node (e.g. Material Output). That can be implemented separately. In the larger scheme of things, top-level outputs within node groups seem to break the node group abstraction and reusability a bit.
2022-03-14Cleanup: use size_t for BLF text API functionsCampbell Barton
Also minor cleanup to txt_sel_to_buf: - Use memcpy instead of strncpy as the strings don't contain nil bytes. - Replace while loops with for loops.
2022-03-14Cleanup: spellingCampbell Barton
2022-03-14Cleanup: Use helper variable, const argumentHans Goudey
2022-03-14Curve: Store NURBS basis cache as a single vectorHans Goudey
Instead of allocating a vector of the basis weights cache for each evaluated point, allocate a single vector for all of the weights. This should reduce memory usage by avoiding the overhead of storing many vectors. I noticed a small performance improvement to evaluated position calculation with an order of 5, which is larger than `Vector`'s default inline buffer capacity. This change is possible because of previous commits that made the basis cache for each evaluated point always have the same "order" size.
2022-03-14Cleanup: Simplify NURBS basis cache argumentsHans Goudey
Only pass a mutable span and a return argument to the calculation function, so it's simpler and doesn't worry about where either are stored.
2022-03-14Curve: Remove temporary buffer during NURBS evaluationHans Goudey
Currently a single buffer is used as working space for all evaluated points. In order to make evaluations more independent, opening options like multi-threading in the future, instead use a separate array for each call. Using an inline buffer capacity higher than the default allows a few percent performance improvement, and removes allocations for every evaluated point.
2022-03-14Cleanup: Remove unnecessary NURBS optimizationHans Goudey
The step after calculating the NURBS basis for a single evaluated point trimmed extra zeroes from the weights. However, in practice this rarely did anything, only for the first and last evaluated point of certain knot configurations. Remove it in order to simplify code. Also use a separate span for the result, to clarify its length.
2022-03-13GPencil: Simplify modifier minimal vert count fixHenrik Dick
Lower the minimal vert count for all simplify modes. Differential Revision: http://developer.blender.org/D14319
2022-03-11Cleanup: Use new enum for NURBS curve knots modesHans Goudey
Move the definition of the enum to `Curves` DNA, since the values will be saved in files, and ongoing development needs to use this.
2022-03-11Curves: Move constructor/assignmentHans Goudey
Add the ability to move `CurvesGeometry` without copying its attributes and data. The benefit is more intuitive management of the data-block copying, and less overhead for copying in some cases. The "moved-from" source is left in an empty but valid state. A test file is added to test the move constructor.
2022-03-11Cleanup: use M_PI_2 and M_PI_4 where possibleHallam Roberts
The constant M_PI_4 is added to GLSL to ensure it works there too. Differential Revision: https://developer.blender.org/D14288
2022-03-11Fix: Deleting vertex group attribute can change original meshHans Goudey
There was an error with the attribute API implementation for vertex groups. If the vertex group layer referenced an original mesh, it wasn't properly duplicated for writing.
2022-03-11Cleanup: Use helper variableHans Goudey
For a NURBS curve, the order is just the degree plus one. So just pass around the degree instead of always subtracting one.
2022-03-11Fix threading conflict with movie cache lineSergey Sharybin
It was possible that a render thread will be freeing cache while the interface is iterating over cache items to build cache line. Found while looking into T94738. It might be a fix, but I am unable to reproduce the original issue, so can not know for sure whether there is something else going or or not.
2022-03-11Text: use simplified logic for txt_to_bufCampbell Barton
This function was copied from txt_sel_to_buf, including unnecessary complexity to support selection as well as checks for the cursor which don't make sense when copying the whole buffer. Use a simple loop to copy all text into the destination buffer.
2022-03-11Curve: Improve NURBS knot generation modesLaurynas Duburas
This patch enables all 8 combinations of Nurbs modes: Cyclic, Bezier and Endpoint. Also removes restriction on Bezier Nurbs order. The most significant changes are mode combinations bringing new meaning. In D13891 is a scheme showing NURBS with same control points in a modes, and also further description of each possible case. Differential Revision: https://developer.blender.org/D13891
2022-03-11Cleanup: use doxy sections in image.ccCampbell Barton
Also minor improvements & clarifications to comments.
2022-03-10Curves: actually delete curves with Delete brushJacques Lucke
Previously, the position was just set to zero as part of the prototype. Differential Revision: https://developer.blender.org/D14291
2022-03-10Cleanup: spelling in comments & some minor clarificationsCampbell Barton
2022-03-10Cleanup: Move image.c to c++Jesse Yurkovich
Passing on all platforms: https://builder.blender.org/admin/#/builders/18/builds/329 Differential Revision: https://developer.blender.org/D13962
2022-03-10Cleanup: Simplify/deduplicate curves built-in attribute accessHans Goudey
Separate two templated functions that deal with custom data so that each built-in attribute accessor doesn't need the same boilerplace and logic.
2022-03-09Cleanup: fix wrong spelling of texture and indentationBrecht Van Lommel
Contributed by luzpaz. Ref D14271, D14270
2022-03-09Fix wrong detection of alpha for grayscale images, after recent changesEthan-Hall
Differential Revision: https://developer.blender.org/D14286
2022-03-09Fix T96233: Crash with gpencil data with vertex groupsFalk David
Blender crashes when a multi-user grease pencil object has vertex groups and is modified by modifiers, layer transform or parenting. The fix makes sure that we copy the vertex group names list. Reviewed By: antoniov Maniphest Tasks: T96233 Differential Revision: https://developer.blender.org/D14275
2022-03-09Cleanup: use ELEM macroCampbell Barton
2022-03-09Attributes: Implement CustomData interpolation for boolean data typeAleksi Juvani
This commit fixes an issue, where for instance, when merging vertices with the "Merge by Distance" geometry node, the resulting vertices had their boolean attributes set unpredictably. Boolean attributes are implemented as custom data, and when welding vertices, the custom data for the resulting vertices comes from interpolating the custom data of the source vertices. This commit implements the missing interpolation function for the boolean custom data type. This interpolation function is implemented in terms of the logical or operation, that is to say, if any of the source vertices (with a weight greater than zero) have the boolean set, the boolean will also be set on the resulting vertex. This logic matches 95981c9876483256b28. In geometry nodes, attribute interpolation generally does not use the CustomData API for performance reasons, but other areas of Blender still do. Differential Revision: https://developer.blender.org/D14172
2022-03-08Cleanup: Correct commentHans Goudey
Normals aren't stored in custom data anymore, nor are they stored in MVert for comparisons.