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-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-19IO: ensure export path and export name are always consistentSybren A. Stüvel
Before this, there was one code path that set `context.export_path`, and a different code path for `context.export_name`, allowing the two to diverge. Keeping track of the export path of the export parent (which can be, but is not always, the Blender parent object) also allows a concrete subclass of `AbstractHierarchyIterator` to find the `AbstractWriter` for the export parent. In case of exporting to Alembic this is important, as it's not possible to simply give the Alembic library the full export path of an object like we do in the Universal Scene Description (USD) exporter; Alembic needs the C++ object of the parent.
2020-06-19IO: Allow exporting a subset of the writersSybren A. Stüvel
This is in order to prepare for compatibility with the Alembic exporter. That exporter is capable of writing object transforms and object data at different (sub)frames. The rename from `created_writers` to `used_writers` is necessary, as not all created writers will be actually used in each iteration. The Universal Scene Description (USD) exporter does not make use of this. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7670
2020-06-19IO: Move Abstract Hierarchy Iterator into `io/common`Sybren A. Stüvel
The goal of the `AbstractHierarchyIterator` class (and supporting classes) was to use it in different exporters. It shouldn't be part of the USD module + namespace any more, now that it will also be used in the upcoming Alembic exporter rewrite. The source files are moved into `io/common`, which is compiled & linked into a new library `bf_io_common`. The unittests are still inside the `tests/gtests/usd` directory. They should be moved to a separate test module too, but that will be delayed until after T73268 has been resolved. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7669
2020-06-17Cleanup: doxy commentsCampbell Barton
2020-06-16Cleanup: use explicit enum type for duplicate option of `BKE_object_duplicate`Bastien Montagne
Using enum type itself in implementations, and uint in headers (as using enums types in headers is a pain when enum are not defined and used in a single same header file...).
2020-06-15Alembic: remove support for HDF5 archive formatSybren A. Stüvel
Alembic is not a single file format, it can be stored in two different ways: Ogawa and HDF5. Ogawa replaced HDF5 and is smaller and much faster (4-25x) to read ([source](http://exocortex.com/blog/alembic_is_about_to_get_really_fast)). As long as Blender has had Alembic support, it has never supported the HDF5 format in any release. There is a build option `WITH_ALEMBIC_HDF5` that can be used to enable HDF5 support in your own build. This commit removes this build option and the code that it manages. In the years that I have been maintainer of Blender's Alembic code, I only remember getting a request to support HDF5 once, and that was to support very old software that has likely since then been updated to support Ogawa. Ubuntu and Fedora also seem to bundle Blender without HDF5 support. This decision was discussed on [DevTalk](https://devtalk.blender.org/t/alembic-hdf5-support-completely-remove) where someone also mentioned that there is a tool available that can convert HDF5 files to the Ogawa format.
2020-06-13Cleanup: naming for lattice deform functionsCampbell Barton
- BKE_lattice_deform_data_create was init_latt_deform. - BKE_lattice_deform_data_destroy was end_latt_deform. - BKE_lattice_deform_data_eval_co was calc_latt_deform.
2020-06-12USD: Use new material binding APISybren A. Stüvel
The material binding API that we used was removed in the Universal Scene Description library version 20.02. Using this new API, the code is compatible with both USD 19.11 and 20.02.
2020-06-05Cleanup: use ED_object_ prefix for constraint functionsCampbell Barton
- ED_object_constraint_list_from_constraint was get_constraint_lb - ED_object_constraint_list_from_context was get_active_constraints - ED_object_constraint_active_get was get_active_constraint - ED_object_constraint_active_set was ED_object_constraint_set_active
2020-06-05Code Cleanup: fcurve function namingJeroen Bakker
2020-06-05CleanUp: Introduce BKE_fcurve_createJeroen Bakker
2020-05-29Merge branch 'blender-v2.83-release'Brecht Van Lommel
2020-05-29Blender: change bugfix release versioning from a/b/c to .1/.2/.3Brecht Van Lommel
The file subversion is no longer used in the Python API or user interface, and is now internal to Blender. User interface, Python API and file I/O metadata now use more consistent formatting for version numbers. Official releases use "2.83.0", "2.83.1", and releases under development use "2.90.0 Alpha", "2.90.0 Beta". Some Python add-ons may need to lower the Blender version in bl_info to (2, 83, 0) or (2, 90, 0) if they used a subversion number higher than 0. https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Python_API#Compatibility This change is in preparation of LTS releases, and also brings us more in line with semantic versioning. Fixes T76058. Differential Revision: https://developer.blender.org/D7748
2020-05-28Cleanup: spellingCampbell Barton
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.
2020-05-22Cleanup: only use nullptr in USD exporterSybren A. Stüvel
This removes all use of `NULL` from the USD Exporter, also when calling into C code. No functional changes.
2020-05-18Alembic: Fix bad allocation with invalid knots dataSergey Sharybin
It is not impossible that the number of knots is stored wrong in the file (for example, it will be 1 knot only). This change fixes bad memory allocation and bad memory access in such cases. It also fixes strict compiler warning which was mentioning that the allocation size is wrong), There isn't really the correct way of dealing with such situation, so simply fall back to Blender's knots calculation. Differential Revision: https://developer.blender.org/D7765
2020-05-18AVI: Fix read past array boundsSergey Sharybin
It is not enough to copy max of destination buffer size bytes, the source might be smaller than the destination size.
2020-05-15Merge remote-tracking branch 'origin/blender-v2.83-release'Sybren A. Stüvel
2020-05-15Fix T76695: Not exporting normals properly in Alembic formatSybren A. Stüvel
When auto-smooth enabled, but no custom normals layer present, the Alembic exporter would incorrectly assume the mesh was shaded smooth. This is now corrected, and normals are always written when auto-smooth is enabled.
2020-05-12Merge remote-tracking branch 'origin/blender-v2.83-release'Sybren A. Stüvel
2020-05-12Fix T76132: Can't import Alembic with changing UVsSybren A. Stüvel
In the Alembic importer, the animation of UVs and normals was overlooked; when the mesh geometry is not animated, the entire mesh was considered constant. T76132 concerns both the exporting and importing of changing UVs. This commit fixes the importing.
2020-05-12Fix T76132: Can't export Alembic with changing UVsSybren A. Stüvel
In the Alembic exporter, UVs were only exported on the first frame. This is an issue, as when exporting an animated mesh the topology can change, and then the UV coordinates of the first frame are no longer valid. T76132 concerns both exporting and importing changing UVs. This fixes the exporting.
2020-05-12Merge branch 'blender-v2.83-release'Campbell Barton
2020-05-12Fix T76514: Invalid geometry in Alembic crashes BlenderSybren A. Stüvel
Even though {T76514} is caused by invalid geometry, and thus technically constitutes a bug in the software that created the Alembic file, I would like Blender not to crash on importing such a file. The error in the Alembic file consists of invalid mesh loops, where consecutive loops refer to the same vertex. The `BKE_mesh_validate()` can actually correct these errors, so this commit focuses on two things: - Letting Blender survive the situation until the mesh is loaded, and - Detecting the error so that `BKE_mesh_validate()` can be called only when necessary. This ensures there is only a minimal impact on performance when loading actually valid data. Differential Revision: https://developer.blender.org/D7703 Reviewed By: JacquesLucke
2020-05-09Cleanup: double-spaces in commentsCampbell Barton
2020-05-08Cleanup: take includes out of 'extern "C"' blocksJacques Lucke
Surrounding includes with an 'extern "C"' block is not necessary anymore. Also that made it harder to add any C++ code to some headers, or include headers that have "optional" C++ code like `MEM_guardedalloc.h`. I tested compilation on linux and windows (and got help from @LazyDodo). If this still breaks compilation due to some linker error, the header containing the symbol in question is probably missing an 'extern "C"' block. Differential Revision: https://developer.blender.org/D7653
2020-05-08USD: Export hair/particle system with name of system (and not its settings)Sybren A. Stüvel
Particle systems have two names: the name of the particle system itself, and the name of the particle system settings. The USD exporter used to use the latter name, and now switched to the former. This is to be in line with the Alembic exporter, as well as to give users more freedom in the naming (the particle system can have a unique name but still share settings from other particle systems).
2020-05-08Cleanup: USD, removed unnecessary variableSybren A. Stüvel
No functional changes.
2020-05-08Cleanup: USD, made AbstractHierarchyIterator::get_writer constSybren A. Stüvel
No functional changes.
2020-05-08Cleanup: USD, added some clarifying commentsSybren A. Stüvel
No functional changes.
2020-05-08Cleanup: USD, refactored export graph constructionSybren A. Stüvel
The construction of the export graph is now split into a few steps: - Construct a `HierarchyContext` object for the to-be-exported object. - Determine the graph index, i.e. the export-parent and the duplicator. - Update the `HierarchyContext` object for this graph index. This allows the upcoming new Alembic exporter to override the location of an object in the export graph, in order to support "flattened" exports. Aside from that, this also simply makes the code cleaner. No functional changes.
2020-05-08Cleanup: Alembic, moved axis conversion functions into their own filesSybren A. Stüvel
The long-term goal is to move code out of `abc_util.{h,cc}` into either files with better, more concrete names, or simply into the one file where they are used. No functional changes.
2020-05-08Fix T76498: Refactoring - Rename BKE modifiers funtionsAntonio Vazquez
2020-04-09Fix T75491: ctest: usd_test fails in a debug configurationSybren A. Stüvel
There was a bug in the `connect_loose_objects()` function, which caused some objects to be exported twice (once for real, and once transform-only). This is now resolved.
2020-04-07Cleanup: BLI_path.h function renamingCampbell Barton
Use BLI_path_ prefix, more consistent names: BLI_parent_dir -> BLI_path_parent_dir BLI_parent_dir_until_exists -> BLI_path_parent_dir_until_exists BLI_ensure_filename -> BLI_path_filename_ensure BLI_first_slash -> BLI_path_slash_find BLI_last_slash -> BLI_path_slash_rfind BLI_add_slash -> BLI_path_slash_ensure BLI_del_slash -> BLI_path_slash_rstrip BLI_path_native_slash -> BLI_path_slash_native Rename 'cleanup' to 'normalize', similar to Python's `os.path.normpath`. BLI_cleanup_path -> BLI_path_normalize BLI_cleanup_dir -> BLI_path_normalize_dir BLI_cleanup_unc -> BLI_path_normalize_unc BLI_cleanup_unc16 -> BLI_path_normalize_unc16 Clarify naming for extracting, creating numbered paths: BLI_stringenc -> BLI_path_sequence_encode BLI_stringdec -> BLI_path_sequence_decode Part of T74506 proposal.
2020-04-03Cleanup: Animation, move AnimData API to `anim_data.c`/`BKE_anim_data.h`Sybren A. Stüvel
The `BKE_animsys.h` and `anim_sys.c` files already had a an "AnimData API" section. The code in that section has now been split off, and placed into `BKE_anim_data.h` and `anim_data.c`. All files that used to include `BKE_animsys.h` have been adjusted to only include the animation headers they need (sometimes none). No functional changes.
2020-04-03Cleanup: split `BKE_anim.h` and `anim.c` into smaller piecesSybren A. Stüvel
The files are now split up into the following sections: - `BKE_anim_path.h` and `anim_path.c` for path/curve functions. - `BKE_anim_visualization.h` and `anim_visualizationanim_path.c` for animation visualization (mostly motion paths). - `BKE_duplilist.h` for DupliList function declarations. These were already implemented in `object_dupli.c`, so they were rather out of place being declared in `BKE_anim.h` in the first place. No functional changes.
2020-03-29Cleanup: spelling, commentsCampbell Barton
2020-03-24Cleanup: spellingCampbell Barton
2020-03-22Cleanup: spelling, correct Mesh.mface docsCampbell Barton
2020-03-19Cleanup: fix typos in commentsBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D7133
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-18Cleanup: 64 bit file IO on windows.Ray Molenkamp
Unlike Linux where fseek/tell will be either 32 or 64 bit depending on the target platform, it will always be 32 bit on windows. We had some macro magic in BLI_winstuff.h that substituted them for 64 bit versions, but that is upsetting the system headers if they get included after BLI_winstuff.h which is problematic for D6811. This diff adds proper functions in blenlib and updates all calls that were using the BLI_winstuff.h header to gain 64 bit file IO. note: Anything that was using the 32 bit versions (ie not including BLI_winstuff.h) will still be using the 32 bit versions, which is perhaps a good code quality Friday project. Differential Revision: https://developer.blender.org/D7160 Reviewers: brecht dfelinto
2020-03-15Fix Blender building after recent 'cleanup'.Bastien Montagne
Caused by rB4be4c0667155. Please ensure at least affected code does still build...
2020-03-15Cleanup: redundant checksCampbell Barton
In some cases moved the checks into asserts, to ensure changes in the future don't cause the checks to become necessary again.