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
2020-11-06Cleanup: use string APPEND/PREPENDCampbell Barton
Replace 'set' with 'string(APPEND/PREPEND ...)'. This avoids duplicating the variable name.
2020-09-02Make rigidbody simulation handle animated objects gracefullySebastian Parborg
The animated objects was not updated for each internal substep for the rigidbody sim. This would lead to unstable simulations or very annoying clipping artifacts. Updated the code to use explicit substeps and tie it to the scene frame rate. Fix T47402: Properly updating the animated objects fixes the reported issue. Reviewed By: Brecht, Jacques Differential Revision: http://developer.blender.org/D8762
2020-08-28Merge newboolean branch into master.Howard Trickey
This is for design task T67744, Boolean Redesign. It adds a choice of solver to the Boolean modifier and the Intersect (Boolean) and Intersect (Knife) tools. The 'Fast' choice is the current Bmesh boolean. The new 'Exact' choice is a more advanced algorithm that supports overlapping geometry and uses more robust calculations, but is slower than the Fast choice. The default with this commit is set to 'Exact'. We can decide before the 2.91 release whether or not this is the right choice, but this choice now will get us more testing and feedback on the new code.
2020-08-17Cleanup: sort CMake path listsCampbell Barton
2020-08-13Fix T65148: Drivers can't access shape keysSybren A. Stüvel
It was impossible for drivers to use shape key properties, modifiers generate a new mesh. After mesh evaluation the shape keys are no longer necessary, and because of this the `key` pointer was not copied. As drivers work on evaluated data, however, they do need this `key` pointer. This commit makes the `key` pointer available in evaluated meshes, but this is somewhat dangerous. There was an explicit reason why the key on result was kept at null pointer: to have the evaluated mesh in a consistent state. Assigning this pointer makes it potentially inconsistent, as the evaluated mesh and the original shape key may have different topologies. Reviewed By: sergey Differential Revision: https://developer.blender.org/D7785
2020-08-10Tests: move remaining gtests into their own module foldersBrecht Van Lommel
And make them part of the blender_test runner. The one exception is blenlib performance tests, which we don't want to run by default. They remain in their own executable. Differential Revision: https://developer.blender.org/D8498
2020-07-15UV: support region fill for path selectCampbell Barton
This matches edit-mesh region selection (Ctrl-Shift-Select).
2020-07-14Cleanup: sort header, cmake pathsCampbell Barton
2020-07-09UV: path selection supportCampbell Barton
This adds support for path selection for vertex edge & face selection modes, matching mesh editing behavior, useful with the UV rip tool. Region select & edge tagging are currently not supported, although they could be added eventually.
2020-07-09Cleanup: move BMesh UV queries into their own fileCampbell Barton
2020-06-05Cleanup: rename suffix 'conv' to 'convert'Campbell Barton
2020-01-23CMake: Refactor external dependencies handlingSergey Sharybin
This is a more correct fix to the issue Brecht was fixing in D6600. While the fix in that patch worked fine for linking it broke ASAN runtime under some circumstances. For example, `make full debug developer` would compile, but trying to start blender will cause assert failure in ASAN (related on check that ASAN is not running already). Top-level idea: leave it to CMake to keep track of dependency graph. The root of the issue comes to the fact that target like "blender" is configured to use a lot of static libraries coming from Blender sources and to use external static libraries. There is nothing which ensures order between blender's and external libraries. Only order of blender libraries is guaranteed. It was possible that due to a cycle or other circumstances some of blender libraries would have been passed to linker after libraries it uses, causing linker errors. For example, this order will likely fail: libbf_blenfont.a libfreetype6.a libbf_blenfont.a This change makes it so blender libraries are explicitly provided their dependencies to an external libraries, which allows CMake to ensure they are always linked against them. General rule here: if bf_foo depends on an external library it is to be provided to LIBS for bf_foo. For example, if bf_blenkernel depends on opensubdiv then LIBS in blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES. The change is made based on searching for used include folders such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries to LIBS ion that CMakeLists.txt. Transitive dependencies are not simplified by this approach, but I am not aware of any downside of this: CMake should be smart enough to simplify them on its side. And even if not, this shouldn't affect linking time. Benefit of not relying on transitive dependencies is that build system is more robust towards future changes. For example, if bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES and all such code is moved to bf_blenkernel this will not break linking. The not-so-trivial part is change to blender_add_lib (and its version in Cycles). The complexity is caused by libraries being provided as a single list argument which doesn't allow to use different release and debug libraries on Windows. The idea is: - Have every library prefixed as "optimized" or "debug" if separation is needed (non-prefixed libraries will be considered "generic"). - Loop through libraries passed to function and do simple parsing which will look for "optimized" and "debug" words and specify following library to corresponding category. This isn't something particularly great. Alternative would be to use target_link_libraries() directly, which sounds like more code but which is more explicit and allows to have more flexibility and control comparing to wrapper approach. Tested the following configurations on Linux, macOS and Windows: - make full debug developer - make full release developer - make lite debug developer - make lite release developer NOTE: Linux libraries needs to be compiled with D6641 applied, otherwise, depending on configuration, it's possible to run into duplicated zlib symbols error. Differential Revision: https://developer.blender.org/D6642
2019-10-20Fix T70864: Separate loose parts runs indefinitelyCampbell Barton
Large objects with many separate pieces became unstably slow (run for hours and not finish). The entire original mesh was being duplicated twice per loose part. In own tests, millions of vertices and thousands of loose parts now run in around 5-15 seconds.
2019-09-12BMesh: New tool `BM_mesh_intersect_edges`mano-wii
Along with the new utility `BM_vert_weld_linked_wire_edges_into_linked_faces`
2019-04-24Cleanup: sort CMake include pathsCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-16CMake: add libs needed for gtestsCampbell Barton
2019-04-16CMake: add library deps to CMakeLists.txtCampbell Barton
Tested to work on Linux and macOS. This will be enabled once all platforms are verified. See D4684
2019-04-16CMake: cleanup, arg rename, add definitions lastCampbell Barton
2019-04-14CMake: prepare for BLENDER_SORTED_LIBS removalCampbell Barton
No functional change, this adds LIB definition and args to cmake files. Without this it's difficult to migrate away from 'BLENDER_SORTED_LIBS' since there are many platforms/configurations that could break when changing linking order. Manually add and enable WITHOUT_SORTED_LIBS to try building without sorted libs (currently fails since all variables are empty). This check will eventually be removed. See T46725.
2019-02-05Cleanup: remove contributors for CMake filesCampbell Barton
Following removal from C source code. See: 8c68ed6df16d8893
2019-01-25Cleanup: sort cmake file listsCampbell Barton
2018-09-28Cleanup: Remove bmo_similar.c and small renamingDalai Felinto
2018-06-30Cleanup: rename bmesh_queries -> bmesh_queryCampbell Barton
Other files with the same purpose already used 'query'.
2018-05-28Windows: Add support for building with clang.Ray Molenkamp
This commit contains the minimum to make clang build/work with blender, asan and ninja build support is forthcoming Things to note: 1) Builds and runs, and is able to pass all tests (except for the freestyle_stroke_material.blend test which was broken at that time for all platforms by the looks of it) 2) It's slightly faster than msvc when using cycles. (time in seconds, on an i7-3370) victor_cpu msvc:3099.51 clang:2796.43 pavillon_barcelona_cpu msvc:1872.05 clang:1827.72 koro_cpu msvc:1097.58 clang:1006.51 fishy_cat_cpu msvc:815.37 clang:722.2 classroom_cpu msvc:1705.39 clang:1575.43 bmw27_cpu msvc:552.38 clang:561.53 barbershop_interior_cpu msvc:2134.93 clang:1922.33 3) clang on windows uses a drop in replacement for the Microsoft cl.exe (takes some of the Microsoft parameters, but not all, and takes some of the clang parameters but not all) and uses ms headers + libraries + linker, so you still need visual studio installed and will use our existing vc14 svn libs. 4) X64 only currently, X86 builds but crashes on startup. 5) Tested with llvm/clang 6.0.0 6) Requires visual studio integration, available at https://github.com/LazyDodo/llvm-vs2017-integration 7) The Microsoft compiler spawns a few copies of cl in parallel to get faster build times, clang doesn't, so the build time is 3-4x slower than with msvc. 8) No openmp support yet. Have not looked at this much, the binary distribution of clang doesn't seem to include it on windows. 9) No ASAN support yet, some of the sanitizers can be made to work, but it was decided to leave support out of this commit. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D3304
2017-11-26Cleanup: rename edge -> edgesCampbell Barton
2017-11-26Cleanup: move edge-rotate into own fileCampbell Barton
2017-11-23Getting rid of OMP: first usage of new parallel BMesh items iteration instead.Bastien Montagne
`BM_mesh_normals_update` was converted from OMP to new parallel iterator code, basic test with heavily subdivided cube (24.5k faces) gives: - old OMP code: average 10ms per run. - new BLI_task code: average 6ms per run. So new code seems to be easily 40% quicker, in addition to getting rid of OMP. ;) Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D2930
2017-03-11BMesh: add BM_mesh_separate_facesCampbell Barton
Fast-path for bmesh split operator which duplicates and deletes. Use when only separating faces, currently used by the intersect tool.
2016-04-01BMesh: improve path-select fill region w/ ngonsCampbell Barton
Rewrote to work with ngons and and more complex topology, now uses separate function. Fixes T48009.
2015-12-10MSVC 2015 fix, /WX warnings as errors is to restrictive for msvc 2015 ↵Martijn Berger
currently for bmesh
2015-12-10Eigen: fold remaining OpenNL code into intern/eigen.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D1662
2015-12-09BMesh: move BM_face_split_edgenet to its own fileCampbell Barton
Isolate edge-net splitting in preparation for other functions to be added here.
2015-08-18Refactor translation code out of blenfontCampbell Barton
- Add blentranslation `BLT_*` module. - moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`). - moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
2015-06-15BMesh: edge-offset feature (Ctrl+Shift+R)Campbell Barton
Ability to quickly add 2x edge loops on either side of selected loops.
2015-06-11BMesh: flatten faces operatorCampbell Barton
2015-02-02BMesh: tool to ensure all faces are convexCampbell Barton
Access from Mesh -> Cleanup
2014-11-02Fix connect-vertices failing for concave ngonsCampbell Barton
Also add: - generic callback for bmesh elements. - ability to pass an existing array to a bmesh operator.
2014-09-26BMesh: select similar regionsCampbell Barton
Select operator that takes multiple selected face regions and selects any number of matching regions (when they have distinguishing features to isolate them). UI access next.
2014-08-18BMesh: intersect toolCampbell Barton
Modeling tool to cut intersections into geometry (like boolean, without calculating inside/outside). Faces are split along intersections, leaving new edges selected. Access from Face menu.
2014-01-17Code Cleanup: move delete funcs out of bmesh_construct.c into own fileCampbell Barton
2013-12-23BMesh API: make simple, low level functions inlineCampbell Barton
2013-12-21EditMesh: wireframe tool, add offset and vgroup support (not used yet)Campbell Barton
2013-11-25CMake Build: option to compile without opennl/superlu.Campbell Barton
2013-10-16split operators/bmo_beautify.c into tools/bmesh_beautify.cDalai Felinto
This is a proper design if we want to use the beautify routine elsewhere (e.g., in the triangulate modifier)
2013-08-23move bmesh tools into their own include,Campbell Barton
changes to tool args would rebuild far too many files and these are mainly by modifiers outside of bmesh.
2013-08-22new bmesh operator bisect_plane, cuts a mesh in half, takes a user defined ↵Campbell Barton
plane as an argument, handles concave ngons which need multiple cuts.
2013-08-18bmesh improvements to face creation.Campbell Barton
* fill-holes operator now takes advantage of new edge-net fill, works in many more cases then it did before. * face-create that uses edge-net now initializes the normals based on surrounding geometry, only running normal calculation if there are no connected faces for a reference.
2013-08-16rewrite edgenet fill bmesh operator.Campbell Barton
previous code created faces with mixed face-flipping and could get very slow, test with ~60,000 edges here hung my system for over 2min (didnt wait for it to finish), new code executes in about 1 second. new code doesn't attempt to flip faces correctly, its quite involved to do so, especially when the new faces are not created adjacent to eachother. so simpler to calculate normals afterwards.
2013-07-28new mesh tool for cleaning up meshes, splits up non-planar faces while they ↵Campbell Barton
exceed a given angle threshold (access from the 'Mesh -> Clean' menu).