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-04-05Curves: new Grow/Shrink brushJacques Lucke
This adds a new Grow/Shrink brush which is similar to the Length brush in the old hair system. * It's possible to switch between growing and shrinking by hold down ctrl and/or by changing the direction enum. * 3d brush is supported. * Different brush falloffs are supported. * Supports scaling curves uniformly or shrinking/extrapolating them. Extrapolation is linear only in this patch. * A minimum length settings helps to avoid creating zero-sized curves. Differential Revision: https://developer.blender.org/D14474
2022-04-05Cleanup: use doxygen links to struct membersCampbell Barton
2022-04-04BlenLib: Add ushort2 to math vec types.Jeroen Bakker
Needed for the 3d texturing brush project.
2022-03-31Cleanup: spelling, trailing space for comment-blocksCampbell Barton
2022-03-30Curves: Port resample node to the new data-blockHans Goudey
This commit re-implements the resample curve node to use the new curves type instead of CurveEval. The largest changes come from the need to keep track of offsets into the point attribute arrays, and the fact that the attributes for all curves are stored in a flat array. Another difference is that a bit more of the logic is handled by building of the field network inputs. The idea is to let the field evaluator handle potential optimizations while making the rest of the code simpler. When resampling 1 million small poly curves,the node is about 6 times faster compared to 3.1 on my hardware (500ms to 80ms). This also adds support for Catmull Rom curve inputs. Differential Revision: https://developer.blender.org/D14435
2022-03-30Cleanup: use "num" as a suffix in: source/blender/blenlibCampbell Barton
Also replace "num" with: - "number" when it's not used to denote the number of items. - "digits" when digits in a string are being manipulated.
2022-03-30Curves: Add length cache, length paramerterize utilityHans Goudey
This commit adds calculation of lengths along the curve for each evaluated point. This is used for sampling, resampling, the "curve parameter" node, and potentially more places in the future. This commit also includes a utility for calculation of uniform samples in blenlib. It can find evenlyspaced samples along a sequence of points and use linear interpolation to move data from those points to the samples. Making the utility more general aligns better with the more functional approach of the new curves code and makes the behavior available elsewhere. A "color math" header is added to allow very basic interpolation between two colors in the `blender::math` namespace. Differential Revision: https://developer.blender.org/D14382
2022-03-29BLI: optimize Map/Set/VectorSet.clear methodsJacques Lucke
Previously, those methods would destruct and reconstruct the data structure. While that was more simple in initial implementation, it has some downsides which are not resolved: * Already allocated memory is lost. So new memory would have to be allocated when the data structure is refilled. * The clearing process itself was slower because it did unnecessary work.
2022-03-29BLI: add utility to convert IndexMask to best mask typeJacques Lucke
2022-03-29BLI: support value initialization in CPPTypeJacques Lucke
Value initialization differs from default-construction in that it also zero-initializes trivial types.
2022-03-26Cleanup: Remove double #ifdef WITH_TBB checkRay Molenkamp
2022-03-26Fix T95901: Crash in Fill curve (set to N-gon)Howard Trickey
The code that eats away faces until you find input faces in the Constrained Delaunay Triangulation goes too far and crashes when there are no input faces. In the test case there were input faces but they only had two vertices, so were all ignored.
2022-03-25BLI: Adjust interpolation to support integers, other tweaksHans Goudey
In order to allow interpolation of integers with a float, add a separate template parameter for the factor and multiplication types. Also move some helper constexpr variables to the "base" header (reversing the dependency to "base" -> "vector"). This also adds a distance function for scalar types, which is helpful to allow sharing code between vectors and basic types. Differential Revision: https://developer.blender.org/D14446
2022-03-25Cleanup: Further renaming in new curves codeHans Goudey
A follow-up to e253f9f66d6f. Follow the policy from T85728 completely (using "num" as a prefix) and rename another function.
2022-03-25Cleanup: use count or num instead of nbrCampbell Barton
Follow conventions from T85728.
2022-03-25Cleanup: spelling in comments, stringsCampbell Barton
2022-03-25Cleanup: sort cmake file listsCampbell Barton
2022-03-24BLI: Add utility for tacking average and min runtimeHans Goudey
This is useful to save time manually averaging many timing results. The minimum is included because often it can be more stable than an average, and it can help to expose calls from other contexts with lower times that would make the average useless. Differential Revision: https://developer.blender.org/D14417
2022-03-24Geometry Nodes: Improve performance writing to vertex groupsHans Goudey
In a test file from T96282, this commit reduces the runtime of the delete geometry node from 82 ms to 23 ms, a 3.6x improvement. Writing to vertex groups in other cases should be faster too. The largest improvement comes from not writing a new weight of zero if the vertex is not in the group. This mirrors the behavior of custom data interpolation in `layerInterp_mdeformvert`. Other improvements come from using `set_all` for writing output attributes and implementing that method for vertex groups. I also implemented `materialize` methods. Though I didn't obverse an improvement from this, I think it's best to remove virtual method call overhead where it's simple to do so. The test file for the delete geometry node needs to be updated. These methods could be parallelized too, but better to do that later. Differential Revision: https://developer.blender.org/D14420
2022-03-23Curves: improve Comb brushJacques Lucke
New supported features: * 3D/spherical brush that samples a good position on the curves. * Falloff. The custom falloff curve mapping is not yet available in the ui because that requires some more ui reorganization. This is better done when we have a better understanding of what settings we need exactly. Currently, the depth of the 3d brush is only sampled once per stroke, when first pressing LMB. Sometimes it is expected that the depth of the brush can change within a single brush. However, implementing that in a good way is not straight forward and might need additional options. Therefore that will be handled separately. Some experimentation results are in D14376. Ref T96445. Differential Revision: https://developer.blender.org/D14376
2022-03-23Cleanup: move documentation to headers, other minor correctionsCampbell Barton
2022-03-23Cleanup: spelling in commentsCampbell Barton
2022-03-22Fix build when using WITH_TBB=OFF after recent changesBrecht Van Lommel
And wrap tbb::parallel_sort in blender namespace similar to other TBB functionality.
2022-03-21Curves: new Add brushJacques Lucke
This adds a new Add brush for the new curves object type in sculpt mode. The brush is used to insert new curves (typically hair) on the surface object. Supported features: * Add single curve exactly at the cursor position when `Add Amount` is 1. * Front faces only. * Independent interpolate shape and interpolate length settings. * Smooth and flat shading affects curve shape interpolation. * Spherical and projection brush. This also adds the `surface_triangle_index` and `surface_triangle_coordinate` attributes. Those store information about what position on the surface each added curve is attached to: * `surface_triangle_index` (`int`): Index of the internal triangle that a curve is attached to. `-1` when the curve is not attached to the surface. * `surface_triangle_coordinate` (`float2`): First two numbers of a barycentric coordinate that reference a specific position within the triangle. Ref T96444. Differential Revision: https://developer.blender.org/D14340
2022-03-19BLI: generalize converting CPPType to static typeJacques Lucke
Previously, the conversion was done manually for a fixed set of types. Now, there is a more general utility that can be used in other contexts (outside of geometry nodes attribute processing) as well.
2022-03-19BLI: move generic data structures to blenlibJacques Lucke
This is a follow up to rB2252bc6a5527cd7360d1ccfe7a2d1bc640a8dfa6.
2022-03-18Cleanup: Compilation warningsSergey Sharybin
Mainly -Wset-but-unused-variable. Makes default compilation on macOS way less noisy. Differential Revision: https://developer.blender.org/D14357
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-17BLI: add probabilistic rounding utilityJacques Lucke
2022-03-17Cleanup: spelling in commentsCampbell Barton
Use <pre>..</pre> for pseudo-code.
2022-03-16Cleanup: rename cnt to countCampbell Barton
Follow naming from T85728.
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-11Cleanup: fix source typos homogenous->homogeneousBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D14306
2022-03-11Cleanup: remove duplicate compiler attributeCampbell Barton
2022-03-09Cleanup: use ELEM macroCampbell Barton
2022-03-08Cleanup: spelling in commentsCampbell Barton
2022-03-03BLI: Add functions to IndexRange to mirror SpanHans Goudey
Adds functions for special cases of slicing and an `is_empty` method.
2022-03-03Fix: BLI math clamp doesn't workHans Goudey
Return type was wrong, output of std::clamp wasn't used.
2022-03-02UI: Comments Misspellings of Vertex/VerticesNikhil Shringarpurey
Correct misspellings in code comments of "vertex" and "vertices". See D13932 for more details. Differential Revision: https://developer.blender.org/D13932 Reviewed by Harley Acheson
2022-03-02Search: take word order into account in string searchJacques Lucke
Differential Revision: https://developer.blender.org/D14223
2022-03-02Curves: add brush to add curves on surfaceJacques Lucke
This adds a prototype for the first brush that can add new curves by painting on a surface. Note that this can only be used when the curves object has a surface object set in the properties panel. The brush can take minimum distance into account. This allows distributing curves with a somewhat consistent density. Differential Revision: https://developer.blender.org/D14207
2022-03-02BLI: add scoped-defer utility to add RAII-like behavior to C typesJacques Lucke
This utility is useful when using C types that own some resource in a C++ file. It mainly helps in functions that have multiple return statements, but also simplifies code by moving construction and destruction closer together. Differential Revision: https://developer.blender.org/D14215
2022-02-24Cleanup: Typo in commentHans Goudey
2022-02-24BLI: support accessing nth last element in Array/Span/VectorJacques Lucke
This often helps to make the intend of code more clear compared to computing the index manually in the caller.
2022-02-23Fix: Build issue on windowsRay Molenkamp
tbb/enumerable_thread_specific.h drags in windows.h which will define min/max macro's unless you politely ask it not to. it's bit of an eyesore, but it is what it is
2022-02-23Fix: Attempt to fix build error on windowsHans Goudey
`index_mask.cc` ends up including this header, but not much else, the `<algorithm>` include is necessary on Windows for `std::max`.
2022-02-23Curves: initial brush implementations for curves sculpt modeJacques Lucke
The main goal here is to add the boilerplate code to make it possible to add the actual sculpt tools more easily. Both brush implementations added by this patch are meant to be prototypes which will be removed or refined in the coming weeks. Ref T95773. Differential Revision: https://developer.blender.org/D14180
2022-02-23BLI: add index mask utilitiesJacques Lucke
Sometimes it is useful to get the index ranges that are in an index mask. That is because some algorithms can process index ranges more efficiently than generic index masks. Extracting ranges from an index mask is relatively efficient, because it is cheap to check if a span of indices contains a contiguous range.
2022-02-23Cleanup: Remove repeated word in commentsCampbell Barton
2022-02-23CMake: include missing filesCampbell Barton
Also use SRC_ prefix for source variables so cmake_consistency_check.py detects these files as being known to CMake.