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
2017-07-11Fix T52022 Alembic Inherits transform not taken into accountSybren A. Stüvel
Alembic's "inherits transform" flag wasn't taken into account when constructing the parent object relations.
2017-07-03Alembic: renamed offset → sequence_offsetSybren A. Stüvel
2017-06-19Cleanup: doxygen commentsCampbell Barton
Also remove duplicate & mismatching comments from grease-pencil header. Keep comments close to implementation to avoid getting out of sync.
2017-06-02Cleanup: styleCampbell Barton
2017-05-30Alembic import: fixed bug interpolating between frames.Sybren A. Stüvel
2017-05-30Alembic: simplified sub-frame samplingSybren A. Stüvel
It's now less confusing (for example, using nr_of_samples directly, instead of using 1 / 1 / nr_of_samples). Might also have fixed a bug. Also added unittests.
2017-05-30Alembic export: normalise the homogeneous component after scalingSybren A. Stüvel
The scale matrix must have its homogeneous 'w' (at mat[3][3]) set to the scale in order to also scale the translations along with it. However, this also scales the transform matrix's 'w' component, which is not supposed to happen.
2017-05-30Alembic export: avoid create-and-reset of shared pointerSybren A. Stüvel
Constructing the shared pointer where the object is actually allocated makes the code a bit clearer.
2017-05-30Alembic export: prevent rounding error buildup in frame sample timeSybren A. Stüvel
2017-05-26[MSVC] Fix build error. linker was searching for a mangled version of versionstrlazydodo
2017-05-24Alembic: Export mesh as mesh, even when it has no vertices.Sybren A. Stüvel
This makes it possible to have an animated / procedurally generated mesh that starts empty and obtains data in later frames. Fixes the export of an empty mesh with an Ocean Modifier, as described in issue T51351.
2017-05-24Alembic export: consider mesh with animation data as "animated"Sybren A. Stüvel
This allows you to put any kind of animation data on the mesh, and its shape will be exported on each timekey. Note that this timekey is unrelated to the animation data (so we don't export on each keyframe, for example). A practical example is the addition of an animated custom property to trigger the export of animated mesh data. The mesh data can then be created from any source, like Python scripts. Not only is this useful in itself, it also provides a workaround for one of the two issues described in T51351.
2017-05-24Alembic export: write Blender version to Alembic fileSybren A. Stüvel
This is written in a custom metadata key, so it isn't shown by utilities like abcecho or abcls. However, it's still something that's useful to have available.
2017-05-24Fix T51586: Regression: Alembic containing animated curves / hair no longer ↵Sybren A. Stüvel
working Also fixed the same type of error when reading points.
2017-05-23Fix T51534: Alembic: added support for face-varying vertex coloursSybren A. Stüvel
Houdini writes vertex data in a different format than Blender does; Houdini uses "face-varying scope", which means that the vertex colours are indexed by an ever-increasing number over all vertices of all faces instead of the vertex index. I've also merged the read_custom_data_mcols() and read_mcols() functions, because the latter was only called from the former, and the changes in this commit would add yet more function parameters to pass.
2017-05-23Alembic: reduced code duplication in read_mcols()Sybren A. Stüvel
A big chunk of code was copied between the if and else bodies. By using a boolean to store whether the c3f_ptr or c4f_ptr should be used, the in-loop condition is kept as simple as possible.
2017-05-23Alembic: split up read_custom_data_ex() into read_custom_data_{mcols,uvs}()Sybren A. Stüvel
The read_custom_data_ex() function was basically two functions inside if/else bodies.
2017-05-23Fix T51319: Alembic export crash w/simple child particles if Display value < ↵Sybren A. Stüvel
100% This was two-fold. 1) The export used viewport settings to obtain the particle cache, rather than render settings. 2) The child hair writer tried to obtain UV-coordinates from the parent chair, without checking whether those were available in the first place.
2017-05-20CMake: Use GCC7's -Wimplicit-fallthrough=5Campbell Barton
Use to avoid accidental missing break statements, use ATTR_FALLTHROUGH to suppress.
2017-04-28Alembic: use object-oriented approach in ABC_read_mesh()Sybren A. Stüvel
This is easier to extend than the if/else if/else chain that was in place, and allows for somewhat more granular error messages.
2017-04-28Alembic: Construct ISampleSelector once and pass alongSybren A. Stüvel
2017-04-26Alembic export: support simple child hairs (Fix T51144)Sybren A. Stüvel
Simple child hairs don't have a face index number assigned, so the call to dm->getTessFaceData(dm, num, CD_MFACE) would cause a crash. To work around this, UV and normal vectors are copied from the parent hair. I've also removed an unnecessary call to dm->getTessFaceArray(dm); Reviewers: kevindietrich Differential Revision: https://developer.blender.org/D2638
2017-04-26Alembic: fixed indentationSybren A. Stüvel
2017-04-26Alembic: fixed memory leaksSybren A. Stüvel
2017-04-26Alembic: fixed refcount issue when duplicating imported objectsSybren A. Stüvel
Duplicating an imported object didn't increment the cache reader's refcount, whereas removing the duplicate did decrement it. This caused problems.
2017-04-26Avoid platform dependant PATH_MAXCampbell Barton
2017-04-26Alembic export: also export emptiesSybren A. Stüvel
Exporting an empty creates an Alembic XForm object. The empties can also be animated.
2017-04-26Alembic export: renamed func object_is_shape → object_type_is_exportableSybren A. Stüvel
The function doesn't return whether the object is a shape at all, since it also returns true for camera objects (and soon also for empties). It returns true when objects of this type can be exported to Alembic at all. This is now reflected in the name.
2017-04-26Alembic: fixed C++98 compatibilitySybren A. Stüvel
2017-04-25Fix T51292: Alembic import, show notification when trying to load HDF5Sybren A. Stüvel
HDF5 Alembic files are not officially supported by Blender. With this commit, the HDF5 format is detected even when Blender is compiled without HDF5 support, and the user is given an explanatory error message (rather than the generic "Could not open Alembic archive for reading".
2017-04-25Revert "Alembic: Construct ISampleSelector once and pass along"Sybren A. Stüvel
This reverts commit 099816587a0e064fb6a52c82a737ae8814cf21df. It had some unforseen side-effects that should be investigated first.
2017-04-25Fix T51284: Mesh not skinnedSybren A. Stüvel
2017-04-21Alembic: Construct ISampleSelector once and pass alongSybren A. Stüvel
No longer passing time as float and constructing ISampleSelectors all over the place. Instead, just construct an ISampleSelector once and pass it along.
2017-04-20Alembic export: don't show warning for every exported frameSybren A. Stüvel
The warning about not having a UV map is now only shown once per hair system.
2017-04-20Alembic import: select imported objectsSybren A. Stüvel
When the Alembic import is finished, all imported objects are selected.
2017-04-19Alembic import/export: added as_background_job optionSybren A. Stüvel
The ABC_export and ABC_import functions both take a as_background_job parameter, and return a boolean. When as_background_job=true, returns false immediately after scheduling a background job. This was the old behaviour of this function, which makes it very hard for scripts to do something with the data after the import or export completes. When as_background_job=false, performs the export synchronously, and returns true when the export was ok, and false if there were any errors. This allows further processing. The Scene.alembic_export() function is deprecated, and will be removed from Blender 2.8 in favour of calling the bpy.ops.wm.alembic_export() operator. As such, it has been hard-coded to the old background job behaviour.
2017-04-19Alembic export: made hair/particle export optional.Sybren A. Stüvel
The export is still slower than needed, as the particle systems themselves aren't disabled during the export. It's only the writing to the Alembic file that's skipped.
2017-04-19Alembic export: converted some export params to actual boolsSybren A. Stüvel
The variables were interpreted as booleans, and had a 1-bit width. I don't see a reason to not just use the bool type instead.
2017-04-18Alembic import: little fix for D2634Sybren A. Stüvel
Now it doesn't crash any more when the Alembic curves object doesn't have any user properties.
2017-04-18Alembic import/export: write curve resolution to user propertySybren A. Stüvel
Curve resolution isn't natively supported by Alembic, hence it is stored in a user property "blender:resolution". I've looked at a Maya curves example file, but that also didn't contain any information about curve resolution. Differential Revision: https://developer.blender.org/D2634 Reviewers: kevindietrich
2017-04-18Alembic import: fall back to linear when variable order array is invalid.Sybren A. Stüvel
This seems like more sane behaviour than to keep the orderu at the invalid default value 0.
2017-04-18Alembic export: fixed curve type and order.Sybren A. Stüvel
The order number written to Alembic is the same as we use in memory, so the +1 wasn't needed, at least according to the reference Maya exporter maya/AbcExport/MayaNurbsCurveWriter.cpp, function MayaNurbsCurveWriter::write(), in the Alembic source code. Furthermore, when writing an array of nurb orders, the curve type should be set to kVariableOrder, otherwise the importer will ignore it.
2017-04-14Alembic import: fixed dupligroup export when the dupli-empty has a parentSybren A. Stüvel
2017-04-14Alembic export: fixed flattened dupligroup importSybren A. Stüvel
2017-04-14Alembic import: greatly improved curve/hair import performanceSybren A. Stüvel
The U-resolution of the imported curves was kept at the default value of 12, which is way too high for imported hair. We export hair at a fairly high resolution already, so it's not needed to subdivide even further when importing. Of course this may have an impact on other curves that do require this U-resolution to be higher. In that case the resolution can be increased after importing. I removed the default nu->orderu = num_verts, as that allowed every point to influence the entire spline, which was more expensive for the CPU, and unlikely to be needed. The orderu computations had off-by-one errors in the curve importer, which are now also fixed. The correct values are: - Linear: orderu = 2 - Quadratic: orderu = 3 - Cubic: orderu = 4 These values are also what is stored in the Alembic file for curves of type kVariableOrder, according to the reference Maya exporter maya/AbcExport/MayaNurbsCurveWriter.cpp, function MayaNurbsCurveWriter::write(), in the Alembic source code. The result is a frame rate increase of roughly 100x (tested with one 100-hair test on one machine, so take with grain of salt).
2017-04-13Alembic export: unified code of exploreTransform and exploreObject.Sybren A. Stüvel
2017-04-13Alembic export: added support for writing dupli-groupsSybren A. Stüvel
This supports our common character animation workflow, where a character, its rig, and the custom bone shapes are all part of a group. This group is then linked into the scene, the rig is proxified and animated. Such a group can now be exported. Use "Renderable objects only" to prevent writing the custom bone shapes to the Alembic file.
2017-04-13Alembic import: fixed off-by-one error in start/end frameSybren A. Stüvel
static_cast<int> truncates, so a computed end frame of 99.999999999998 would result in 99, instead of the correct 100.
2017-04-12Fix T50227: Alembic uv export/load issueSybren A. Stüvel
Previously only a CD_MLOOPUV custom data layer was created. Now we also create the accompanying CD_MTEXPOLY layer too.
2017-04-12Alembic export: fixed exporting as "flat"Sybren A. Stüvel
This exports all objects in world coordinates without parenting.