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-12-02Cleanup: spelling in commentsCampbell Barton
2021-12-02Cleanup: FIx build with USD after recent refactorAaron Carlisle
rB218360a89217f4e8321319035bf4d9ff97fb2658 missed a couple renames in USD code paths.
2021-12-01Fix T92561: unstable particle distribution with Alembic filesKévin Dietrich
When enabling or disabling a Mesh Sequence Cache modifier of an Object with a hair particle system, the hair would switch positions. This is caused because original coordinates in Blender are expected to be normalized, and toggling the modifier would cause the usage of different orco layers: one that is normalized, and the other which isn't. This bug exposes a few related issues: - if the Alembic file did not have orco data, `MOD_deform_mesh_eval_get`, used by the particle system modifier, would add an orco layer without normalization - `MOD_deform_mesh_eval_get` would also ignore the presence of an orco layer (e.g. one that could have been read from Alembic) - if the Alembic file did have orco data, the data would be read unnormalized To fix those various issues, original coordinates are normalized when read from Alembic and unnormalized when written to Alembic; and a new utility function `BKE_mesh_orco_ensure` is added to add a normalized orco layer if none exists on the mesh already, this function derives from the code used in the particle system. Reviewed By: brecht Maniphest Tasks: T92561 Differential Revision: https://developer.blender.org/D13306
2021-11-19Cleanup: fix typos in comments and docsBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D13264
2021-11-16Merge branch 'blender-v3.0-release'Philipp Oeser
2021-11-16Fix T93066: Alembic export ignores Mantaflow particlesPhilipp Oeser
`ABCPointsWriter::is_supported` already checked for valid particle system types (liquid, spray, foam, bubbles, ...). `AbstractHierarchyIterator::make_writers_particle_systems` did not create a writer for these though, so now bring these in line and also create writers for these.
2021-11-09Alembic: Allow exporting of animated vertex colorsCody Winchester
Allow exporting of animated vertex colors to Alembic. The changes are made to be in line with the way the UV Maps are written. Each vertex color gets a OC4fGeomParam created and mapped into the CDStreamConfig to avoid recreating the Param on each frame. The time sample index is also stored in the config now and set onto the UV and Vertex Color params each frame. Without this the exports would get inconsistent timing results where animated UV maps and Vertex Colors were not playing back at the original speed. Reviewed By: sybren Maniphest Tasks: T88074 Differential Revision: https://developer.blender.org/D11278
2021-11-08GPencil: New option to export PDF full sceneAntonio Vazquez
This new mode export all frames of the scene. Reviewed By: pepeland Differential Revision: https://developer.blender.org/D13055
2021-11-08Cleanup: avoid error prone struct declarations in C++Campbell Barton
Reference struct members by name instead relying on their order. This also simplifies moving back to named members when all compilers we use support them.
2021-10-20Cleanup: use elem macrosCampbell Barton
2021-10-12Cleanup: spelling in commentsCampbell Barton
2021-10-06Cleanup: spelling in commentsCampbell Barton
2021-10-06Cleanup: missing verb in commentKévin Dietrich
2021-10-06Fix crash when reading non standard Alembic velocity attribute typeKévin Dietrich
Some software may export velocity as a different type than 3D vectors (e.g. as colors or flat arrays or floats), so we need to explicitely check for this. A more robust attribute handling system allowing us to cope with other software idiosyncrasies is on the way, so this fix will do for now.
2021-10-04Cleanup: remove redundant assignmentCampbell Barton
2021-10-04Cleanup: use system includesCampbell Barton
2021-10-01Cleanup: unused function declarationKévin Dietrich
This should have been removed during the recent velocity attribute refactor.
2021-09-25Cleanup: use override/final for derived classes.Kévin Dietrich
This will help detecting missing API changes. Those keywords were added on classes which did not already use them. Also added missing `accepts_object_type()` on NURBS reader.
2021-09-25Fix Alembic point cloud streaming.Kévin Dietrich
Point clouds are not imported and read anymore. This was caused by an API change in rB128eb6cbe928e58dfee1c64f340fd8d663134c26 which was not applied to `AbcPointsReader`. It did not cause a compile error as the base class as a default implementation for this method.
2021-09-25Cleanup: typos in code and comments.Kévin Dietrich
No functional changes.
2021-09-13Cleanup: clang-formatCampbell Barton
2021-09-11Geometry Nodes: Support modifier on curve objectsHans Goudey
With this commit, curve objects support the geometry nodes modifier. Curves objects now evaluate to `CurveEval` unless there was a previous implicit conversion (tessellating modifiers, mesh modifiers, or the settings in the curve "Geometry" panel). In the new code, curves are only considered to be the wire edges-- any generated surface is a mesh instead, stored in the evaluated geometry set. The consolidation of concepts mentioned above allows remove a lot of code that had to do with maintaining the `DispList` type temporarily for modifiers and rendering. Instead, render engines see a separate object for the mesh from the mesh geometry component, and when the curve object evaluates to a curve, the `CurveEval` is always used for drawing wire edges. However, currently the `DispList` type is still maintained and used as an intermediate step in implicit mesh conversion. In the future, more uses of it could be changed to use `CurveEval` and `Mesh` instead. This is mostly not changed behavior, it is just a formalization of existing logic after recent fixes for 2.8 versions last year and two years ago. Also, in the future more functionality can be converted to nodes, removing cases of implicit conversions. For more discussion on that topic, see T89676. The `use_fill_deform` option is removed. It has not worked properly since 2.62, and the choice for filling a curve before or after deformation will work much better and be clearer with a node system. Applying the geometry nodes modifier to generate a curve is not implemented with this commit, so applying the modifier won't work at all. This is a separate technical challenge, and should be solved in a separate step. Differential Revision: https://developer.blender.org/D11597
2021-09-11Cleanup: use nullptrJacques Lucke
2021-09-10Modifiers: export motion blur velocity through attributeBrecht Van Lommel
Previously fluid simulation and Alembic modifiers had a dedicated function to query the velocity for motion blur. Now use a more generic system where those modifiers output a velocity attribute. Advantages: * Geometry and particle nodes can output velocity through the same mechanism, or read the attribute coming from earlier modifiers. * The velocity can be preserved through modifiers like subdivision surface or auto smooth. * USD and Alembic previously only output velocity from fluid simulation, now they work with velocity from other sources too. * Simplifies the code for renderers like Cycles and exporters like Alembic and USD. This breaks compatibility: * External renderers and exporters accessing these velocities through the Python API now need to use the attribute instead. * Existing modifier node setups that create an attribute named "velocity" will render differently with motion blur. Differential Revision: https://developer.blender.org/D12305
2021-09-09Cleanup: remove newlines from logging textCampbell Barton
Line endings are already added.
2021-09-08USD import: remove unused files.Michael Kowalski
Removed unused usd_reader_instance.cc and .h files.
2021-09-04RNA: support extracting names from paths without allocating memoryCampbell Barton
Support extracting identifiers RNA paths into fixed size buffer since the maximum size of the identifier is known all cases. - Add BLI_str_unescape_ex to support limiting the destination buffer. - Add BLI_str_quoted_substr to copy values into a fixed size buffer.
2021-08-31Cleanup: Use C style comments for descriptive textCampbell Barton
2021-08-27Refactor IDProperty UI data storageHans Goudey
The storage of IDProperty UI data (min, max, default value, etc) is quite complicated. For every property, retrieving a single one of these values involves three string lookups. First for the "_RNA_UI" group property, then another for a group with the property's name, then for the data value name. Not only is this inefficient, it's hard to reason about, unintuitive, and not at all self-explanatory. This commit replaces that system with a UI data struct directly in the IDProperty. If it's not used, the only cost is of a NULL pointer. Beyond storing the description, name, and RNA subtype, derived structs are used to store type specific UI data like min and max. Note that this means that addons using (abusing) the `_RNA_UI` custom property will have to be changed. A few places in the addons repository will be changed after this commit with D9919. **Before** Before, first the _RNA_UI subgroup is retrieved the _RNA_UI group, then the subgroup for the original property, then specific UI data is accessed like any other IDProperty. ``` prop = rna_idprop_ui_prop_get(idproperties_owner, "prop_name", create=True) prop["min"] = 1.0 ``` **After** After, the `id_properties_ui` function for RNA structs returns a python object specifically for managing an IDProperty's UI data. ``` ui_data = idproperties_owner.id_properties_ui("prop_name") ui_data.update(min=1.0) ``` In addition to `update`, there are now other functions: - `as_dict`: Returns a dictionary of the property's UI data. - `clear`: Removes the property's UI data. - `update_from`: Copy UI data between properties, even if they have different owners. Differential Revision: https://developer.blender.org/D9697
2021-08-26Cleanup: soft CMake file listsCampbell Barton
2021-08-26Cleanup: sort struct blocksCampbell Barton
2021-08-26Cleanup: use C style comments for descriptive textCampbell Barton
2021-08-26Cleanup: remove deprecated flag use in colladaCampbell Barton
2021-08-21Cleanup: spelling in comments & minor cleanupCampbell Barton
Also hyphenate 'mouse-move' use doxy sections in render_update.c & move function comment from the header to the source.
2021-08-19Alembic import: option to always add a cache readerKévin Dietrich
The current behavior of the Alembic importer is to only create a `MeshSequenceCache` modifier or a `Transform Cache` constraint to imported objects if they have some animated properties. Since static objects do not have a cache reader, when reloading files those objects are not updated. Currently, the only way to properly reload a file because of this is to reimport it. This adds an option to the importer to always add a cache reader, even if there is no animated data, to ensure that all objects coming from Alembic archive are linked to them and updated properly upon reloads. Reviewed by: brecht, sybren Ref D10197.
2021-08-12Cleanup: use C++ style comments for disabled codeCampbell Barton
2021-08-11Fix T90519: USD Exporter ErrorMichael Kowalski
Fixes: `Error: metersPerUnit does not match retrieved type float`
2021-08-10Clean-up: Remove UTF8-BOM markersRay Molenkamp
Done at the request of Sergey.
2021-08-06Move NanoSVG lib to externAntonio Vazquez
The library has some modifications and it has been included in a diff. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D12142 (Some minor changes done in the patch)
2021-08-06Fix error setting the ID name in disabled alembic nurbs importeCampbell Barton
This corrects code that's currently disabled, see `USE_NURBS` define. The name passed to `BKE_curve_add` was overwritten, bypassing uniqueness and utf8 encoding checks. Longer names would cause a buffer overrun as the length of the source data was passed to `BLI_strncpy` instead of the destination. Reviewed By: sybren Ref D12125
2021-08-05Cleanup: remove redundant parenthesisCampbell Barton
2021-08-05Cleanup: license headersCampbell Barton
These were removed globally in 65ec7ec524e667ec95ce947a95f6273088dffee6. Some files re-introduced these conventions since.
2021-08-04Cleanup: spellingCampbell Barton
2021-08-03Cleanup: USD importer, consistent naming of function parameterSybren A. Stüvel
Rename function parameter `flags` to `read_flag` in the declaration, to be consistent with the definition. No functional changes.
2021-08-03USD: add USD importerMichael Kowalski
This is an initial implementation of a USD importer. This work is comprised of Tangent Animation's open source USD importer, combined with features @makowalski had implemented. The design is very similar to the approach taken in the Alembic importer. The core functionality resides in a collection of "reader" classes, each of which is responsible for converting an instance of a USD prim to the corresponding Blender Object representation. The flow of control for the conversion can be followed in the `import_startjob()` and `import_endjob()` functions in `usd_capi.cc`. The `USDStageReader` class is responsible for traversing the USD stage and instantiating the appropriate readers. Reviewed By: sybren, HooglyBoogly Differential Revision: https://developer.blender.org/D10700
2021-08-03Cleanup: use C++ comments or 'if 0' for commented codeCampbell Barton
2021-07-30Cleanup: missing leading '*' from comment blocksCampbell Barton
2021-07-29GPencil: Fix unreported problems painting after import SVGAntonio Vazquez
After doing an import, the bounding box of the stroke was not calculated and any operation related to brushes (Sculpt, Weight Paint and Vertex Paint) was not working as expected because the bounding box of the stroke was wrong. This problem was solved automatically after any edit operation, but must be solved in the import process.
2021-07-23Cleanup: code comments punctuation / spacingCampbell Barton
2021-07-21Cleanup: replace BLI_assert(test || !"text") with BLI_assert_msg(test, text)Campbell Barton