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-03-10Merge remote-tracking branch 'origin/master' into lanpr-under-gpYimingWu
2021-03-09BLI: New 'BLI_array_iter_spiral_square'Germano Cavalcante
No functional changes. This function replaces some of the logic in `DRW_select_buffer_find_nearest_to_point` that traverses a buffer in a spiral way to search for a closer pixel (not the closest). Differential Revision: https://developer.blender.org/D10548
2021-03-08Geometry Nodes: Improve performance of point distribute nodeHans Goudey
This commit refactors the point distribute node to skip realizing the instances created by the point instance node or the collection and object info nodes. Realizing instances is not necessary here because it copies all the mesh data and and interpolates all attributes from the instances when this operation does not need to modify the input geometry at all. In the tree leaves test file this patch improves the performance of the node by about 14%. That's not very much, the gain is likely larger for more complicated input instances with more attributes (especially attributes on different domains, where interpolation would be necessary to join all of the instances). Another possible performance improvement would be to parallelize the code in this node where possible. The point distribution code unfortunately gets quite a bit more complicated because it has to handle the complexity of having many inputs instead of just one. Note that this commit changes the randomness of the distribution in some cases, as if the seed input had changed. Differential Revision: https://developer.blender.org/D10596
2021-03-08Revert "Fix modernize-raw-string-literal complaints from clang-tidy."Howard Trickey
This reverts commit 7a34bd7c2886dfc812345c0b1649d63a9ee4666f. Broke windows build. Can apparently fix with /Zc:preprocessor flag for windows but need a Windows dev to make that fix.
2021-03-08Cleanup: rename offs to offsetCampbell Barton
2021-03-08Speedup for usual non-manifold exact boolean case.Howard Trickey
The commit rB6f63417b500d that made exact boolean work on meshes with holes (like Suzanne) unfortunately dramatically slowed things down on other non-manifold meshes that don't have holes and didn't need the per-triangle insideness test. This adds a hole_tolerant parameter, false by default, that the user can enable to get good results on non-manifold meshes with holes. Using false for this parameter speeds up the time from 90 seconds to 10 seconds on an example with 1.2M triangles.
2021-03-08Fix modernize-raw-string-literal complaints from clang-tidy.Howard Trickey
2021-03-07Geometry Nodes: simplify allocating dynamically sized buffer on stackJacques Lucke
2021-03-07Fix T85632 Improve Exact boolean in cell fracture of Suzanne.Howard Trickey
The Exact boolean used in the cell fracture addon incorrectly kept some outside faces: due to some raycasts going into open eye socket then out of the head, leading to one ray direction (out of 8) saying the face was inside the head. The current code allowed 1 of 8 rays only as "inside" to accommodate the case of a plane used in boolean to bisect. But this cell fracture case needs more confidence of being inside. So changed the test for intersection to require at least 3 of 8 rays to be inside. Maybe the number of rays to indicate insideness should be exposed as an option, to allow user tuning according to the degree of "non-volumeness" of the arguments, but will try at least for now to magically guess the right value of the rays-inside threshold. Note: all of this only for the case where the arguments are not all PWN (approx: manifold). The all-PWN case doesn't use raycast.
2021-03-07Cleanup: fix implicit conversion warningJacques Lucke
2021-03-07BLI: make it harder to forget to destruct a valueJacques Lucke
Instead of returning a raw pointer, `LinearAllocator.construct(...)` now returns a `destruct_ptr`, which is similar to `unique_ptr`, but does not deallocate the memory and only calls the destructor instead.
2021-03-07BLI: reduce wasted memory in linear allocatorJacques Lucke
The main change is that large allocations are done separately now. Also, buffers that small allocations are packed into, have a maximum size now. Using larger buffers does not really provider performance benefits, but increases wasted memory.
2021-03-07Cleanup: use POINTER_OFFSET macroCampbell Barton
2021-03-05Merge remote-tracking branch 'origin/master' into lanpr-under-gpYimingWu
2021-03-04UI: prefer shorter search items in fuzzy searchJacques Lucke
This is a simple heuristic that seems to improve the search results in many cases. Differential Revision: https://developer.blender.org/D10618
2021-03-04BLI: support mutable lookup from multi value mapJacques Lucke
2021-03-04Cleanup: number literalsCampbell Barton
2021-02-28Fix T85948 Exact boolean crash with some nonplanar ngons.Howard Trickey
Triangulating ngons could fail with the method that was being used: projecting along the dominant normal axis and then using CDT. It could fail if the ngon has self crossings or might be so after the described projection. Switched to using projection along the normal itself, and also to using polyfill which produces some kind of triangulation no matter what in such circumstances. This will also likely be faster if there are a lot of ngons in the meshes, since the exact arithmetic CDT was being used before, and now float arithmetic is used.
2021-02-25BLI: simplify adding an arbitrary value to a resource containerJacques Lucke
With this is becomes easily possible to store a lambda in a resource collector so that it will be freed when the resource collector is freed.
2021-02-25Cleanup: spellingCampbell Barton
2021-02-24Fix T85726 Workbench: Orthographic view is blurryClément Foucault
This was caused by the window_translate_m4 not offsetting the winmat in the right direction for perspective view. Thus leading to incorrect weights. The workbench sample weight computation was also inverted. This fix will change the sampling pattern for EEVEE too (it will just mirror it in perspective view).
2021-02-24Cleanup: spellingCampbell Barton
2021-02-23BLI: new FunctionRef typeJacques Lucke
Using `FunctionRef` is better than using `std::function`, templates and c function pointers in some cases. The trade offs are explained in more detail in code documentation. The following are some of the main benefits of using `FunctionRef`: * It is convenient to use with all kinds of callables. * It is cheaper to construct, copy and (possibly) call compared to `std::function`. * Functions taking a `FunctionRef` as parameter don't need to be declared in header files (as is necessary when using templates usually). Differential Revision: https://developer.blender.org/D10476
2021-02-22Cleanup: unused variableJacques Lucke
2021-02-22Change Exact Boolean modifier to skip round trip through BMesh.Howard Trickey
The Exact modifier code had been written to avoid using BMesh but in the initial release the modifier still converted all Meshes to BMeshes, and then after running the boolean code on the BMeshes, converted the result back to a Mesh. This change skips that. Most of the work here is in getting the Custom Data layers right. The approach taken is to merge default layers from all operand meshes into the final result, and then use the original verts, edges, polys, and loops to copy or interpolate the appropriate custom data layers from all operands into the result.
2021-02-21BLI: cleanup StringRef and Span and improve parameter validationJacques Lucke
Previously, methods like `Span.drop_front` would crash when more elements would be dropped than are available. While this is most efficient, it is not very practical in some use cases. Also other languages silently clamp the index, so one can easily write wrong code accidentally. Now, `Span.drop_front` and similar methods will only crash when n is negative. Too large values will be clamped down to their maximum possible value. While this is slightly less efficient, I did not have a case where this actually mattered yet. If it does matter in the future, we can add a separate `*_unchecked` method. This should not change the behavior of existing code.
2021-02-20Cleanup: doxygen sectionsCampbell Barton
2021-02-17Cleanup: fix compiler warningsBrecht Van Lommel
2021-02-17BLI: use sse2neon to emulate SSE instructions with Arm NeonBrecht Van Lommel
* WITH_CPU_SSE was renamed to WITH_CPU_SIMD, and now covers both SSE and Neon. * For macOS sse2neon.h is included as part of the precompiled libraries. * For Linux it is enabled if the sse2neon.h header file is detected. However this library does not have official releases and is not shipped with any Linux distribution, so manual installation and configuration is required to get this working. Ref D8237, T78710
2021-02-17BLI: add BLI_simd.h header to wrap SSE includesBrecht Van Lommel
In preparation of adding Neon support. Ref D8237, T78710
2021-02-17Cleanup: spellingCampbell Barton
2021-02-15Cleanup: clang tidyJacques Lucke
2021-02-14Cleanup: spellingCampbell Barton
2021-02-14Cleanup: use doxy sectionsCampbell Barton
2021-02-13Cleanup: macro hygiene, use parenthesis around operatorsCampbell Barton
2021-02-12Geometry Nodes: Add operation setting to attribute randomize nodeHans Goudey
This commit adds a drop-down to the attribute randomize node to support a few operations on the values of existing attributes: "Replace/Create" (the existing behavior), "Add", "Subtract", and "Multiply". At this point, the operations are limited by what is simple to implement. More could be added in the future, but there isn't a strong use case for more complex operations anyway, and a second math node can be used. Differential Revision: https://developer.blender.org/D10269
2021-02-11Merge branch 'blender-v2.92-release'Campbell Barton
2021-02-11BLI_math: add mid_v2_v2v2v2Campbell Barton
2021-02-10TBB: fix deprecation warnings with newer TBB versionsBrecht Van Lommel
* USD and OpenVDB headers use deprecated TBB headers, suppress all deprecation warnings there since we have no control over them. * For our own TBB includes, use the individual headers rather than the tbb.h that includes everything to avoid warnings, rather than suppressing all. This is in anticipation of the TBB 2020 upgrade in D10359. Ref D10361.
2021-02-10Merge branch 'blender-v2.92-release'Jacques Lucke
2021-02-10Fix T85514: exact match is not showing up in search menuJacques Lucke
The `get_shortest_word_index_that_startswith` function was not doing what it was supposed to do. This resulted in wrong matches.
2021-02-10Cleanup: typoJacques Lucke
Committing this to the release branch, to avoid merge conflicts with an upcoming fix.
2021-02-10Cleanup: spellingCampbell Barton
2021-02-09Cleanup: spellingCampbell Barton
2021-02-08Forgot to free a bvhtree with previous commit.Howard Trickey
2021-02-07Fix T84493 et al: New Boolean on Suzanne.Howard Trickey
While Boolean is not guaranteed to work if the operands are not volume-enclosing (technically: PWN - piecewise constant winding number), it needs to do something in those cases. This change makes more cases meet user expectations in T84493, T64544, T83403, T82642 (though very slow on that one). The original new boolean code used "generalized winding number" for this fallback; replaced this with code that uses raycasting. Raycasting would have been faster, but for unfortunately also switchd to per-triangle tests rather than per-patch tests since it is possible (e.g., with Suzanne) to have patches that are both inside and outside the other shape. That can make it much slower in some cases, sadly.
2021-02-06UI: Fix Typos in Comments and Docsluzpaz
Approximately 91 spelling corrections, almost all in comments. Differential Revision: https://developer.blender.org/D10288 Reviewed by Harley Acheson
2021-02-06Cleanup: malformed web addresses in commentsCampbell Barton
2021-02-05Cleanup: Use raw string literalSergey Sharybin
Resolves modernize-raw-string-literal Clang-Tidy warning The way warning works is it suggests to use raw literal when overhead of having escape characters is higher than the overhead of having raw literal syntax (talking about code size overhead). This means that the warning will not trigger for "foo\"bar". Differential Revision: https://developer.blender.org/D10322
2021-02-05Cleanup: Use lambda instead of function bindSergey Sharybin
More detailed explanation why it is a preferred way of coding nowadays can be found at https://clang.llvm.org/extra/clang-tidy/checks/modernize-avoid-bind.html Resolves modernize-avoid-bind Clang-Tidy warning. Differential Revision: https://developer.blender.org/D10320