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-02-11Cleanup: delete comments with test indexHabib Gahbiche
Tests are not identified with indexes, so no need to maintain comments with indexes anymore Reviewed By: calra, mont29 Differential Revision: https://developer.blender.org/D10277
2021-01-14Tests: skip OSL render tests in build without OSLSebastian Parborg
Differential Revision: https://developer.blender.org/D9990
2021-01-14Tests: enable bake and shader raytracing tests for OptiXBrecht Van Lommel
These are now supported and so can be tested. Also refactor the code a bit to move Cycles specific blacklist out of generic render test code.
2021-01-13Mix modifiers test after commit to bevel modifier defaultsHans Goudey
{rB6b5e4ad5899d} neglected to update the modifier tests to reflect the fact that the default limit method is no longer "NONE".
2021-01-12Tests: skip unit test if built without ocean sim modifierSybren A. Stüvel
Disable the Ocean Sim test when building with `WITH_MOD_OCEANSIM=OFF`.
2021-01-05Enabled Physics Particle Instance testHimanshi Kalra
2021-01-04Make mesh modifier tests not fail with optimized OSD libSebastian Parborg
When building opensubdiv with more aggressive optimization flags (-march=native -02) the output meshes would differ a bit from what we expected in the current automated modifier test file. The differences in vertex position is within the 1e-6 range, which I would call is acceptable for floats. In addition to this, all the modifier test that tests the subdiv modifier in particular pass without any modifications. I've updated two tests in the modifier test file and script to make it pass (listed below). Updated following test categories: 1. Decimate test Here there was a subdiv modifier applied before the actual decimate modifier. Because the decimate modifier creates a queue of potential vertices it can remove, it is highly sensitive to even small changes as it drastically changes in which order the vertices are decimated in. As this test should only be testing the decimate modifier, I pre-applied the subdiv modifier in the test file. 2. RandomCubeModifier For these tests I removed the subdiv modifier as well. As with decimate, a small change in vertex position here can lead to quite different results. Reviewed By: Sergey, Bastien Differential Revision: http://developer.blender.org/D9004
2020-12-30Add regression tests for curve conversion to meshHans Goudey
This adds a basic set of tests for curve sampling and bevel generation. At the moment there are basic test cases for bevels, caps, and the filling of 2D curves, but more tests can be added in the future. Curves are actually converted to "DispLists" for displaying them in the viewport, so it's much simpler to rely on the mesh conversion operator instead of building a new test framework for another data structure. Differential Revision: https://developer.blender.org/D9958
2020-12-30Cleanup: Fix typo in tests error messageHans Goudey
2020-12-17Updated and extended Regression Testing frameworks (Gsoc 2020)Himanshi Kalra
This revision contains the following changes- - Updated the existing testing framework for Modifiers for Regression Testing. - Tests for Physics modifiers and remaining Generate and Deform modifiers are added. - The existing `ModifierSpec` is updated with backward compatibility to support Physics Modifiers. - Now there is support for frame number and giving nested parameters for attributes. - Some Deform modifiers required Object Operators, e.g. "Bind" in Mesh Deform, so a new class was added to support that functionality. - A separate class for holding Particles System, they are tested by converting all the particles to mesh and joining it to the mesh they were added. - Updated the format to add tests for Bevel, Boolean and Operators as well. Reviewed By: zazizizou, mont29, campbellbarton Differential Revision: https://developer.blender.org/D8507
2020-12-10Tests: fix 'ctest -j' running multiple tests at onceCampbell Barton
bl_blendfile_io & bl_blendfile_liblink shared a filename, which could make these tests fail.
2020-12-07Fix failing Eevee render tests after recent changesBrecht Van Lommel
2020-12-03Add Custom Object Space to ConstraintsHenrik Dick
Add Custom Space to the list of space conversions for constraints. Constraints can use World Space, Local Space, Pose Space, Local with Parent, and now also Custom Space with a custom object to define the evaluation space. The Custom Space option uses the Local Space of an other object/bone/vertex group. If selected on owner or target it will show a box for object selection. If an armature is selected, then it will also show a box for bone selection. If a mesh object is selected it will show the option for using the local space of a vertex group. Reviewed By: #animation_rigging, sybren, Severin, angavrilov Differential Revision: https://developer.blender.org/D7437
2020-11-30Tests: blacklist failing tests for Cycles CUDA and OptiX devicesBrecht Van Lommel
Blacklist a bunch of tests on the GPU, which are known to currently have differences with CPU. These can be enabled as they are fixed or the test is modified to give compatible results when there are known limitations. OSL tests were also moved to their own directory since those are not supported on the GPU. Ref T82193
2020-11-30Tests: add CMake option to run Cycles regression tests on GPU devicesBrecht Van Lommel
CYCLES_TEST_DEVICES is a list of devices (CPU, CUDA, OPTIX, OPENCL). It is set to CPU only by default. Test output is now writen to build/tests/cycles/<device>, and the HTML report has separate report pages for the different devices, with option to compare between CPU and GPU renders. Various GPU tests are still failing due to CPU/GPU differences, these are to be fixed or blacklisted still. Ref T82193
2020-11-23Animation: New Euler filter implementationSybren A. Stüvel
This new discontinuity filter performs actions on the entire Euler rotation, rather than only on the individual X/Y/Z channels. This makes it fix a wider range of discontinuities, for example those in T52744. The filter now runs twice on the selected channels, in this order: - New: Convert X+Y+Z rotation to matrix, then back to Euler angles. - Old: Add/remove factors of 360° to minimize jumps. The messaging is streamlined; it now reports how many channels were filtered, and only warns (instead of errors) when there was an actual problem with the selected channels (like selecting three or more channels, but without X/Y/Z triplet). A new kernel function `BKE_fcurve_keyframe_move_value_with_handles()` is introduced, to make it possible to move a keyframe's value and move its handles at the same time. Manifest Task: T52744 Reviewed By: looch Differential Revision: https://developer.blender.org/D9602
2020-11-03Fix sequence tests writing HTML report to wrong directoryBrecht Van Lommel
It was missing from tests/report.html that gathers all tests reports.
2020-11-01Add sequencer transform testsRichard Antalik
Tests files are based on test from D8393 Test files should be in `lib\tests\sequence_editing` These are files, I will add few more tests including animation test. {F9155273} Using generic tool to compare rendered vs reference image as other render engines. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9394
2020-10-14Tests: use environment variable for leak sanitizerAnkit Meel
Don't override other `LSAN_OPTIONS` like suppression file set in the environment variable. Old code added in {rB38ff5064b33ccb8} and {rB5f4e99b7a2b8376} Reviewed By: brecht Differential Revision: https://developer.blender.org/D9207
2020-10-02Cleanup: pep8 (indentation, spacing, long lines)Campbell Barton
2020-10-02Cleanup: pep8, blank linesCampbell Barton
2020-10-02Cleanup: trailing spaceCampbell Barton
2020-09-25Fix Tests for Weld Modifier with KD-TreeHenrik Dick
Fixes the failing tests and reintroduces the KD-Tree solution. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D9013
2020-09-24Fix blender constraints automated tests when using march=nativeSebastian Parborg
More agressive optimization made the results differ a bit more than the current error margin would allow. Bump the error margin to be 1e-6 instead of the previous 0.5e-7.
2020-09-15Fix T75881: Animation, limitation of Bézier HandlesTonyG
Relax limits of FCurve Bézier handles during evaluation. FCurve handles can be scaled down to avoid the curve looping backward in time. This scaling was done correctly but over-carefully, posing unnecessary limitations on the possible slope of FCurves. This commit changes the scaling approach such that the FCurve can become near-vertical. Bump Blender's subversion from 291.0.1 to 291.0.2 to ensure that older animation files are correctly updated. Reviewed By: sybren Differential Revision: https://developer.blender.org/D8752
2020-09-14Alembic export: write custom propertiesSybren A. Stüvel
Write custom properties (aka ID properties) to Alembic, to the `.userProperties` compound property. Manifest Task: https://developer.blender.org/T50725 Scalar properties (so single-value/non-array properties) are written as single-element array properties to Alembic. This is also what's done by Houdini and Maya exporters, so it seems to be the standard way of doing things. It also simplifies the implementation. Two-dimensional arrays are flattened by concatenating all the numbers into a single array. This is because ID properties have a limited type system. This means that a 3x3 "matrix" could just as well be a list of three 3D vectors. Alembic has two container properties to store custom data: - `.userProperties`, which is meant for properties that aren't necessarily understood by other software packages, and - `.arbGeomParams`, which can contain the same kind of data as `.userProperties`, but can also specify that these vary per face of a mesh. This property is mostly intended for renderers. Most industry packages write their custom data to `.arbGeomParams`. However, given their goals I feel that `.userProperties` is the more appropriate one for Blender's ID Properties. The code is a bit more involved than I would have liked. An `ABCAbstractWriter` has a `uniqueptr` to its `CustomPropertiesExporter`, but the `CustomPropertiesExporter` also has a pointer back to its owning `ABCAbstractWriter`. It's the latter pointer that I'm not too happy with, but it has a reason. Getting the aforementioned `.userProperties` from the Alembic library will automatically create it if it doesn't exist already. If it's not used to actually add custom properties to, it will crash the Alembic CLI tools (and maybe others too). This is what the pointer back to the `ABCAbstractWriter` is used for: to get the `.userProperties` at the last moment, when it's 100% sure at least one custom property will be written. Differential Revision: https://developer.blender.org/D8869 Reviewed by: sergey, dbystedt
2020-08-30Re-enable modifer and bmesh_boolean tests.Howard Trickey
These were disabled in the newboolean merge commit. This commit renables them, using the original 'FAST' solver so that the result objects need not change. A TODO to add more tests using the 'EXACT' solver, though most functionality there is now covered by unit gtests.
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-26Tests: fail automated tests on memory leaks and other internal errorsJacques Lucke
This adds a new `--debug-exit-on-error` flag. When it is set, Blender will abort with a non-zero exit code when there are internal errors. Currently, "internal errors" includes memory leaks detected by guardedalloc and error/fatal log entries in clog. The new flag is passed to Blender in various places where automated tests are run. Furthermore, the `--debug-memory` flag is used in tests, because that makes the verbose output more useful, when dealing with memory leaks. Reviewers: brecht, sergey Differential Revision: https://developer.blender.org/D8665
2020-08-17Tests: fix Alembic export test on WindowsSybren A. Stüvel
Convert all `subprocess.run()` arguments to string, to prevent breaking "does this argument need quoting" checks on Windows.
2020-08-17Fix T75936: Alembic, allow exporting of invisible objectsSybren A. Stüvel
Add a new depsgraph builder class that includes invisible objects and use that in the Alembic exporter. Alembic supports three options for visibility, "visible", "inherited", and "hidden". This means that parents can be hidden and still have visible children (contrary to USD, where invisibility is used to prune an entire scene graph subtree). Because of this, the visibility is stored on the transform node, as that represents the Object in Blender and thus keeps the Alembic file as close to Blender's own structure as possible. Reviewed By: Sergey Differential Revision: https://developer.blender.org/D8595
2020-08-17Cleanup: Alembic, rename test in CMake for consistencySybren A. Stüvel
Rename test `alembic_tests` to `alembic_export_tests`, so that its name is consistent with the Python file containing the tests, `alembic_export_tests.py`. No functional changes.
2020-08-17Fix typo: missing `f` string prefix in Alembic export testSybren A. Stüvel
2020-08-17Cleanup: Alembic tests, add note explaining how the export tests workSybren A. Stüvel
No functional changes.
2020-08-17Cleanup: rename `alembic_tests.py` to `alembic_tests_export.py`Sybren A. Stüvel
Rename `alembic_tests.py` to `alembic_tests_export.py`, as this makes it clearer what is being tested. No functional changes.
2020-08-17Tests: Better error reporting in `AbstractAlembicTest`Sybren A. Stüvel
Instead of checking for the length of a list, just handle the error that occurs when the length is incorrect. No functional changes to any actual test.
2020-08-17Fix formatting bug in `AbstractAlembicTest` classSybren A. Stüvel
Replace `formatstring, value` with the correct `formatstring % value`. No functional changes to any actual tests.
2020-08-05Correct recent fix for Cycles motion blur testSergey Sharybin
Need to only compare directory name, not the whole path.
2020-08-05Fix T78777: Cycles motion blur test differences between AVX/AVX2Brecht Van Lommel
This appears to be slight precision differences in the Embree implementation, simply increase the diff threshold a little for these motion blur tests.
2020-07-29Fix failing PLY test, update hash because metadata changedBrecht Van Lommel
2020-07-21Bevel: Refactor "Vertex Only" to an enumHans Goudey
This matches the change that was done to the bevel modifier so that the interface for the modifier, the active tool, and the operator are consistent. This commit extends the refactor to the bmesh implementation too, so that the parameters in the implementation don't stray too far from what is exposed. Tests are adjusted and still pass.
2020-07-07IO: Reversed persistent ID order in exports to Alembic and USDSybren A. Stüvel
Each duplicated (a.k.a. instanced) object has a Persistent ID, which identifies a dupli within the context of its duplicator. This ID consists of several numbers when there are nested duplis (for example a mesh instancing empties on its vertices, where each empty instances a collection). When exporting to Alembic/USD, these are used to uniquely name the duplicated objects in the export. This commit reverses the order of the persistent ID numbers, so that the first number identifies the first level of recursion. This produces trees like this: ABC `--Triangle |--Triangle |--Empty-1 | `--Pole-1-0 | |--Pole | `--Block-1-1 | `--Block |--Empty | `--Pole-0 | |--Pole | `--Block-1 | `--Block |--Empty-2 | `--Pole-2-0 | |--Pole | `--Block-2-1 | `--Block `--Empty-0 `--Pole-0-0 |--Pole `--Block-0-1 `--Block It is now clearer that `Pole-2-0` and `Block-2-1` are instanced by `Empty-2`. Before this commit, they would have been named `Pole-0-2` and `Block-1-2`.
2020-07-07IO: Fix bug exporting dupli parent/child relationsSybren A. Stüvel
Exporting a scene to USD or Alembic would fail when there are multiple duplicates of parent & child objects, duplicated by the same object. For example, this happens when such a hierarchy of objects is contained in a collection, and that collection is instanced multiple times by mesh vertices. The problem here is that the 'parent' pointer of each duplicated object points to the real parent; Blender would not figure out properly which duplicated parent should be used. This is now resolved by keeping track of the persistent ID of each duplicated instance, which makes it possible to reconstruct the parent-child relations of duplicated objects. This does use up some memory for each dupli, so it could be heavy to export a Spring scene (with all the pebbles and leaves), but it's only a small addition on top of the USD/Alembic writer objects that have to be created anyway. At least with this patch, they're created correctly. Code-wise, the following changes are made: - The export graph (that maps export parent to its export children) used to have as its key (Object, Duplicator). This is insufficient to correctly distinguish between multiple duplis of the same object by the same duplicator, so this is now extended to (Object, Duplicator, Persistent ID). To make this possible, new classes `ObjectIdentifier` and `PersistentID` are introduced. - Finding the parent of a duplicated object is done via its persistent ID. In Python notation, the code first tries to find the parent instance where `child_persistent_id[1:] == parent_persistent_id[1:]`. If that fails, the dupli with persistent ID `child_persistent_id[1:]` is used as parent. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8233
2020-06-30Alembic: new exporter based on the USD exporter structureSybren A. Stüvel
The Alembic exporter has been restructured by leverages the `AbstractHierarchyIterator` introduced by the USD exporter. The produced Alembic files have not changed much (details below), as the Alembic writing code has simply been moved from the old exporter to the new. How the export hierarchy is handled changed a lot, though, and also the way in which transforms are computed. As a result, T71395 is fixed. Differences between the old and new exporter, in terms of the produced Alembic file: - Duplicated objects now have a unique numerical suffix. - Matrices are computed differently, namely by simply computing the evaluated transform of the object relative to the evaluated transform of its export-parent. This fixes {T71395}, but otherwise should produce the same result as before (but with simpler code). Compared to the old Alembic exporter, Subdivision modifiers are now disabled in a cleaner, more efficient way (they are disabled when exporting with the "Apply Subdivisions" option is unchecked). Previously the exporter would move to a new frame, disable the modifier, evaluate the object, and enable the modifier again. This is now done before exporting starts, and modifiers are only restored when exporting ends. Some issues with the old Alembic exporter that have NOT been fixed in this patch: - Exporting NURBS patches and curves (see T49114 for example). - Exporting flattened hierarchy in combination with dupli-objects. This seems to be broken in the old Alembic exporter as well, but nobody reported this yet. Differential Revision: https://developer.blender.org/D7664 Reviewed By: Sergey
2020-06-19Alembic: always export transforms as inheritingSybren A. Stüvel
Blender now always exports transforms as as "inheriting", as Blender has no concept of parenting without inheriting the transform. Previously only objects with an actual parent were marked as "inheriting", and parentless objects as "non-inheriting". However, certain packages (for example USD's Alembic plugin) are incompatible with non-inheriting transforms and will completely ignore such transforms, placing all such objects at the world origin. When importing non-inheriting transforms from Alembic, Blender will break the parent-child relation and thus force the child to (correctly) interpret the transform as world matrix.
2020-06-19Alembic: prevent spaces in names of exported particle systemsSybren A. Stüvel
Other types already had spaces, periods, and colons replaced by underscores. The upcoming Alembic exporter (based on the `AbstractHierarcyIterator` class) will be more consistent and apply the same naming rules everywhere. This is in preparation for that change. The `get_…_name()` functions in `abc_util.{cc,h}` will be removed then.
2020-06-19Alembic: export object data with object data nameSybren A. Stüvel
Previously the Alembic exporter exported a mesh object to `{object.name}/{object.name}Shape`. Now it exports to `{object.name}/{mesh.name}` instead. The same change also applies to other object data types. Note that the code now is a bit hackish, as `m_name` is set even in cases where it isn't used. This hackishness was already there, though, but it's now just more visible. This will all be cleaned up when the Alembic exporter is ported to use the `AbstractHierarchyImporter` structure of the Universal Scene Description (USD) exporter. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7672
2020-06-17Refactor duplicate of data-blocks.Bastien Montagne
Main change from user side, besides that all pointers should now be properly remapped to new IDs, is that linked objects are no longer preserved when doing a full copy of scenes. Will open a task to check whether we actually still want that behavior (and re-code it in a more correct way then). This is the main part of work done here, it aims at uniformizing and sanitizing that 'deep copy' process for supported IDs (currently scenes, collections and objects). Note that there will be more follow up commits after that one, but this should be the most risky and changing one.
2020-05-26Merge remote-tracking branch 'origin/blender-v2.83-release'Sybren A. Stüvel
2020-05-26Fix T77021: Alembic export of animated mesh with multiple UV maps failsSybren A. Stüvel
This was caused by a side-effect of our exporting code's memory management (Alembic considers data "written" and "final" when its C++ objects go out of scope) in combination with my change in rB65574463fa2d. I removed an "only export UVs on the first frame" clause because it was unclear why this restriction was there. As it turns out, it breaks the export of the 2nd and subsequent UV maps on an animated mesh. Effectively, on every frame the Alembic library thought we want to create a new UV map, instead of continuing to write a new frame of data to the existing one. This is resolved by keeping a reference to the C++ objects for the UV maps in memory while the exporter is running.