1825 lines
56 KiB
Plaintext
1825 lines
56 KiB
Plaintext
2024-10-05, Alembic 1.8.7
|
|
|
|
Thanks to your feedback, pull requests, and submitted issues we have A
|
|
few bugs and build enhancements.
|
|
|
|
Combine CMake feedback from several PRs and issues. (PR457)
|
|
|
|
Protect from potential buffer overrun because of malformed dimensions.
|
|
(Issue 453)
|
|
|
|
Fix a typo in the python bindings but leave the misspelled member
|
|
(kkVisibilityVisible) to maintain compatibility. (Issue 440)
|
|
|
|
Add unicode filename support for Windows (PR450)
|
|
|
|
Make some of the extra python scripts including the PyAlembic and Maya
|
|
unit tests python 3 compatible. (PR438)
|
|
|
|
2023-09-25, Alembic 1.8.6
|
|
|
|
Thanks to your feedback pull requests and submitted issues we
|
|
have a few bug fixes and build enhancements.
|
|
|
|
CMake:
|
|
|
|
Introduce CPack to top level CMake. (PR 425)
|
|
|
|
AbcCoreOgawa:
|
|
|
|
Fix typo in a comment. (PR 417)
|
|
|
|
AbcGeom:
|
|
|
|
Fix bug with OCurves, ONuPatch, OPoints, OPolyMesh, and OSubD were not properly
|
|
incrementing their number of set samples when using setFromPrevious. (PR 433)
|
|
|
|
Util:
|
|
|
|
Fix default values for float PODTraits. (PR 422)
|
|
|
|
Windows:
|
|
|
|
Support compiling with mingw. (PR 434)
|
|
Explicitly call CreateFileA and CreateFileMappingA (instead of CreateFile and
|
|
CreateFileMapping) since we are using std::string to open the file. (PR 435)
|
|
|
|
AbcStitcher:
|
|
|
|
Introduce -hold argument which will use the previous set sample instead of
|
|
setting an empty sample for missing samples. (PR 432)
|
|
|
|
2023-03-13, Alembic 1.8.5
|
|
|
|
Thanks to your feedback pull requests and submitted issues we
|
|
have a few bug fixes and build enhancements.
|
|
|
|
Add test for fuzzer issue 53406. (PR415)
|
|
|
|
Address Issue 402 by not using deprecated kWrapExisting calls
|
|
when possible.
|
|
|
|
Add missing vertex for cube test in the python bindings per Issue 407.
|
|
|
|
Fix several warnings mentioned in Issue 309, 398 and 412.
|
|
(PR413, PR414 and PR416)
|
|
|
|
CMake:
|
|
|
|
Don't explicitly set MACOSX_RPATH as it is set by default in CMake 3+. (PR404)
|
|
|
|
Use install rpath for Imath 3. (PR405)
|
|
|
|
Use STRING instead of PATH for ALEMBIC_LIB_INSTALL_DIR. (PR406)
|
|
|
|
GitHub:
|
|
|
|
Add CIFuzz as a GitHub action. (PR403)
|
|
|
|
2022-11-11, Alembic 1.8.4
|
|
|
|
Thanks to your feedback pull requests and submitted issues we
|
|
have a few bug fixes and build enhancements.
|
|
|
|
CMake:
|
|
|
|
Add ALEMBIC_DEBUG_WARNINGS_AS_ERRORS to control the build in debug mode.
|
|
It is set to ON by default to preserve the current behavior.
|
|
Use add_compile_options instead of the older add_definitions. (PR371)
|
|
|
|
Fix the include dirs for AbcCoreHDF5 tests. (PR382)
|
|
|
|
Fix issue hinted at in Issue 223: use PROJECT_SOURCE_DIR instead of
|
|
CMAKE_SOURCE_DIR when embedding Alembic within another CMake project. (PR393)
|
|
|
|
AbcCoreOgawa:
|
|
|
|
On Windows _BitScanForward64 is only available when _WIN64 is defined.
|
|
When it is not, fall back on using _BitScanForward. (PR 373)
|
|
|
|
Fuzzer issue 49213 turned up some new malformed MetaData memory problems.
|
|
Indexed MetaData on the write side only allows 254 (plus the default empty one)
|
|
small (up to 256 bytes), we now throw if we encounter malformed MetaData.
|
|
We were also allowing empty property and object names through on the read side
|
|
even though the writer forbids this.
|
|
Finally integrate a couple of tests flagged by Taotao Gu's local fuzzer.
|
|
(PR391 and PR397)
|
|
|
|
Fuzzer issue 52939 showed that with certain malformed MetaData the pair
|
|
separator should NOT occur before the assign separator. (PR396)
|
|
|
|
PyAlembic:
|
|
|
|
N2f and N2d properties were not being correctly bound.(PR390)
|
|
|
|
2021-09-11, Alembic 1.8.3
|
|
|
|
Thanks to your feedback and submitted issues we have a few bug fixes.
|
|
|
|
Make sure we export the IlmBase requirement in CMake when using OpenEXR 2 to
|
|
fulfill the Imath requirement. (Issue 355)
|
|
|
|
Address report from GCC Undefined Behavior Sanitizer by initializing a couple
|
|
of bools in OXform. (Issue 357)
|
|
|
|
Fix compile issue when using C++17 with Microsoft Visual Studio and use a
|
|
hopefully much faster find first bit set when using that compiler. (Issue 358)
|
|
|
|
|
|
2021-06-08, Alembic 1.8.2
|
|
Thanks to your feedback and submitted issues we have a few bug fixes.
|
|
|
|
Ogawa:
|
|
|
|
One of the fuzzer tests were was failing with 32 bit builds because of a
|
|
different exception message.
|
|
|
|
Fix a bug with 32 bit memory mapped Windows builds.
|
|
|
|
CMake:
|
|
|
|
Look for boost python a little differently, falling back on existing behavior.
|
|
|
|
2021-05-15, Alembic 1.8.1
|
|
Thanks to your feedback and submitted issues we have a few bug fixes.
|
|
|
|
CMake:
|
|
|
|
Get the python bindings building on MacOS. (Issue 340)
|
|
|
|
Fix the capitalization of the Imath find_depencency in AlembicConfig.cmake
|
|
so that Imath will be found when used by external projects.
|
|
(Issue 341 and 343)
|
|
|
|
Ogawa:
|
|
|
|
Address Fuzzer issue 33685 sanity check that we have a valid group to avoid
|
|
infinite recursion during traversal.
|
|
|
|
2021-04-17, Alembic 1.8.0
|
|
Thanks to your feedback and issues we have a few bug fixes and enhancements.
|
|
|
|
API:
|
|
|
|
We are dropping support for the ancient TR1 and expect the compilers to at
|
|
least support C++std11, we currently default to C++std14. Because we now
|
|
assume at least C++std11, we can remove ALEMBIC_LIB_USES_TR1 and
|
|
ALEMBIC_LIB_USES_BOOST and we instead expect the std versions of things like
|
|
shared_ptr. (Issue 312)
|
|
|
|
Ogawa:
|
|
|
|
Better support emscripten and ARM toolchains by using memcpy to avoid
|
|
dereferencing non-aligned pointers. (PR 332)
|
|
|
|
Python:
|
|
|
|
Support building python3, and make it the default, to build the bindings
|
|
against python2 use: -DUSE_PYALEMBIC=ON -DPYALEMBIC_PYTHON_MAJOR=2
|
|
|
|
Switch from __nonzero__ to __bool__ for the python3 bindings. (Issue 273)
|
|
|
|
Workaround the testCollections crash. (Issue 274)
|
|
|
|
Make the unit tests python 2 and python 3 compatible. (Issue 276)
|
|
|
|
Rework the python testing framework so they can be run from CMake. (Issue 278)
|
|
|
|
Switch from next to __next__ for the python3 bindings. (Issue 279)
|
|
|
|
Utils:
|
|
|
|
AbcStitcher:
|
|
|
|
Propagate MetaData from the first of our ordered input archives over to the
|
|
stitched output. (PR 324)
|
|
|
|
CMake:
|
|
|
|
Update the minimum requirement to 3.13
|
|
|
|
Overhaul to support the recently released Imath 3.
|
|
(https://github.com/AcademySoftwareFoundation/Imath)
|
|
|
|
Fix for using Alembic as a 3rd party with Imath 3. (Issue 337)
|
|
|
|
Use Boost_VERSION_MACRO instead of Boost_VERSION. (PR 338)
|
|
|
|
=======
|
|
2020-10-23, Alembic 1.7.16
|
|
Thanks to your feedback,and pull requests a couple of bug fixes and a GitHub
|
|
enhancement.
|
|
|
|
GitHub:
|
|
|
|
Add a Github Action to create a python 2.7 wheel. (PR 310)
|
|
|
|
AbcCoreHDF5:
|
|
|
|
Specify char signedness when setting the HDF5 data type as some architectures,
|
|
like ARM, default to unsigned. (PR 316)
|
|
|
|
AbcCoreOgawa:
|
|
|
|
Fuzzer issue 25695: Fix leak that can occur when reading meta data, but the file
|
|
is maliciously cut short. (PR 315)
|
|
|
|
Fuzzer issue 26125: Add a check and throw an excpetion for an obviously
|
|
recursive group. (PR 321)
|
|
|
|
2020-09-10, Alembic 1.7.15
|
|
Thanks to your feedback and issues we have a few bug fixes and an enhancement.
|
|
|
|
AbcCoreOgawa:
|
|
Fuzzer issues 25166, 25175, 25185, 25204, and 25236 all test for illegal
|
|
meta data index values which we more carefully test.
|
|
|
|
Fuzzer issue 25192 turned up a leak from a malformed file causing OrData to
|
|
throw.
|
|
|
|
Tests:
|
|
Clang was flagging an unused variable in AbcMaterial tests.
|
|
|
|
CMake:
|
|
|
|
Add DOCS_PATH variable which will add Doxygen as a target and cause the
|
|
generated html directory to be installed to that location. We remove the
|
|
Doxygen file from the project and now use CMakes module to configure it.
|
|
|
|
2020-07-22, Alembic 1.7.14
|
|
Thanks to your feedback,issues, and pull requests we have several bug fixes and
|
|
a few enhancements.
|
|
|
|
API:
|
|
|
|
Ogawa:
|
|
|
|
Fix another Fuzzer issue with Ogawa::IData allocating too much memory
|
|
because of a malicious file. Add tests for Fuzzer issues:
|
|
24846, 24853, 24598, 25051, and 25081. (PR296)
|
|
|
|
Add support for the Haiku OS. (PR298)
|
|
|
|
Murmur3:
|
|
|
|
Add preprocessor define to support FreeBSD. (Issue 288)
|
|
|
|
Remove Murmur3 from the LICENSE.txt since it was moved into the public domain
|
|
a while ago, and is reflected as such in the code. (Issue 292)
|
|
|
|
AbcGeom:
|
|
|
|
Fix uninitialized member variable in OTypedGeomParam. (PR290)
|
|
|
|
HDF:
|
|
|
|
Remove some unused local functions. (Issue 293)
|
|
|
|
Python bindings:
|
|
|
|
Add GetArchiveStartAndEndTime. (PR291)
|
|
|
|
Add optional dccFPS to the GetArchiveInfo dict. (PR294)
|
|
|
|
2020-07-11, Alembic 1.7.13
|
|
Thanks to your feedback and many issues submitted as well as a few pull requests
|
|
we have several bug fixes.
|
|
|
|
API:
|
|
|
|
Ogawa: Google generously setup AutoFuzz and it found several issues when
|
|
reading maliciously created files. These issues reported issues are fixed:
|
|
253-258, 269-272, 282, 283 (PR266)
|
|
|
|
Maya:
|
|
|
|
AbcImport: Add support for connecting MFnData::kFloatArray.
|
|
|
|
Build:
|
|
|
|
Fix issue where WFObjConvert headers were being put in the wrong place when
|
|
installed. (Issue 264)
|
|
|
|
Partly address Issue 265 by making some adjustments to the Doxyfile and remove
|
|
a very old reference to MD5Hash in the very old Houdini SOP.
|
|
|
|
Partly address issues outline in PR268, use MSVC instead of Windows variable
|
|
as they are Visual Studio specific flags and define
|
|
-Wno-error=implicit-fallthrough for CLANG and GCC 7 and up.
|
|
|
|
|
|
2019-10-25, Alembic 1.7.12
|
|
Thanks to your feedback and numerous pull requests we have several enhancements
|
|
and bug fixes.
|
|
|
|
API:
|
|
|
|
Use critical section instead of mutex on Windows. (PR220)
|
|
|
|
ErrorHandler now uses const char * for message instead of std::string for
|
|
efficiency gain. (PR221)
|
|
|
|
Fix incompatibilities with C++17. (PR237)
|
|
|
|
Add optional DCC FPS hint when calling CreateArchiveWithInfo and
|
|
GetArchiveInfo. (PR241)
|
|
|
|
Maya:
|
|
|
|
AbcExport: Support writing animated facesets. (PR217)
|
|
|
|
AbcExport: Support per curve width. (PR239)
|
|
|
|
AbcExport: When writing sparse data like just the UVs, create an OObject
|
|
instead of an OXform. (PR241)
|
|
|
|
Utils:
|
|
|
|
WFOBJConvert: Fix bug where OBJ files with more than one shape would fail to
|
|
properly convert UVs and Normals. (PR232)
|
|
|
|
CMake:
|
|
|
|
Make it easier to select the python version to build against. (PR215)
|
|
|
|
2019-5-16, Alembic 1.7.11
|
|
Thanks to your feedback and numerous pull requests we have several enhancements
|
|
and bug fixes.
|
|
|
|
CMake:
|
|
|
|
Make ILMBase detection compatible with certain older versions. (PR207)
|
|
|
|
Allow Alembic to build against a custom Python installation. (PR208)
|
|
|
|
OpenMayaMac.h was removed from the DevKit since Maya 2016. (Issue210)
|
|
|
|
API:
|
|
|
|
Fix bug in OSubD where the detection of a partial sample was incorrect.
|
|
|
|
Maya:
|
|
|
|
AbcExport: Fix issue where certain user properties were incorrectly being
|
|
written as arbGeomParams. (Issue 209) (PR211)
|
|
|
|
AbcExport: Fix an issue with acyclic detection because of floating point
|
|
inaccuracy. (PR213)
|
|
|
|
2018-12-5, Alembic 1.7.10
|
|
Thanks to your feedback and numerous pull requests we have several enhancements
|
|
and bug fixes.
|
|
|
|
API:
|
|
|
|
Check to see if the OCompoundProperty already exists before trying to create
|
|
a new one. (PR200, Issue 188)
|
|
|
|
Explicitly include errno.h for compilers that don't bring it in as part of the
|
|
other includes. (Issue 199)
|
|
|
|
Maya:
|
|
|
|
Support reading and writing nParticles as I/OPoints. (PR163)
|
|
|
|
Houdini:
|
|
|
|
Update the example SOP to work with Houdini 16.5, support layering,
|
|
and take advantage of the Houdini API for faster geometry building. (PR196)
|
|
|
|
2018-9-7, Alembic 1.7.9
|
|
Thanks to your feedback and numerous pull requests we have several enhancements
|
|
and bug fixes.
|
|
|
|
API:
|
|
|
|
Add memory mapped read support for Ogawa, which is now on by default but
|
|
can be toggled off via Alembic::AbcCoreFactory::setOgawaReadStrategy.
|
|
Read speed is improved by about 10-25% on Linux and potentially much more on
|
|
Windows. (PR 187)
|
|
|
|
Make getOrders and getKnots const on Alembic::AbcGeom::ICurves. (PR 162)
|
|
|
|
Remove prefix _ in our include guards to be ISO conformant. (PR 192 and 194)
|
|
|
|
Remove some unnecessary null pointer checks before deleting an object. (PR 193)
|
|
|
|
When "wrapping" an IObject around the ISchemaObject properly copy the IObject
|
|
so that the instancing info is copied over as well. (PR 195)
|
|
|
|
Maya AbcImport/AbcExport:
|
|
|
|
Update several deprecated Maya API function calls. (PR 173)
|
|
|
|
Clean up some compiler warnings and add override keyword to a few methods.
|
|
(PR 174)
|
|
|
|
Prevent crash for importing certain invalid NURBS surfaces and add the error
|
|
message when the NURBS surface can't be created. (PR 175)
|
|
|
|
Alembic file translator now resolved in the same way as the AbcImport command.
|
|
(PR 176)
|
|
|
|
Fix per-face shader assignments not merging if the mesh to merge is an
|
|
intermediate object. (PR 177)
|
|
|
|
Utils:
|
|
|
|
AbcStitcher:
|
|
|
|
Fix crash when trying to stitch subd corner sharpness. ( PR 181 )
|
|
|
|
CMake:
|
|
|
|
Use /bigobj flag for Visual Studio 2008/MSVC15.
|
|
Use PyAlembic as a target and property name to avoid a naming conflict.
|
|
Python binding alembic.so should be alembic.pyd on Windows. ( PR 172 )
|
|
|
|
Add the msvc14fixes.cpp for the python bindings if using MSVC 14 2015 Update 3.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2018-4-30, Alembic 1.7.8
|
|
Thanks to your feedback and generous pull requests we have some enhancements.
|
|
|
|
CMake:
|
|
|
|
Add ability to specify where to install the Alembic libraries. (PR 165)
|
|
|
|
Add option to NOT build the library. (PR 166)
|
|
|
|
Add option to specify where to install the python module. (PR 167)
|
|
|
|
Add option to specify where to intall the Maya plug-ins. (PR 168)
|
|
|
|
Utils:
|
|
|
|
AbcStitcher: Add verbose flag and try to accomodate stitching sampling with
|
|
the same time sampling but with slightly different start times in the same
|
|
IArchive. (PR 169)
|
|
|
|
2018-3-23, Alembic 1.7.7
|
|
Thanks to your feedback and pull requests we have a few bug fixes and an
|
|
enhancement.
|
|
|
|
API:
|
|
|
|
Fix bug where std::weak_ptr was used in AbcCoreLayer instead of
|
|
Alembic::Util::weak_ptr.
|
|
|
|
Add OCurves::Schema::Sample::setPositionWeights to go along with the get.
|
|
Expose it in the python bindings.
|
|
|
|
prman Procedural:
|
|
|
|
Add two options, -motionbegin and -motionend to explicitly control MotionBlocks.
|
|
(PR 160)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2018-3-7, Alembic 1.7.6
|
|
Thanks to your feedback and pull requests we have a few bug fixes.
|
|
|
|
API:
|
|
|
|
Fix memory issue when traversing an AbcCoreLayer hierarchy that also happens to
|
|
use heavy instancing. (PR 151)
|
|
|
|
Work around a pread OSX issue when trying to read data samples over 2 GB, by
|
|
reading it in smaller chunks. (PR 153 and PR 155)
|
|
|
|
Fix bug in AbcCoreLayer where the replace/prune logic was occurring in the
|
|
opposite order of the data layering. We've adopted the data layering order
|
|
style. (data in the first file specified overrides later files)
|
|
(PR 156 and PR 157)
|
|
|
|
Here is the canonical example order:
|
|
|
|
sparseAnimatedPoints.abc sparseUVs.abc base.abc
|
|
|
|
Python:
|
|
|
|
Work around compiler bug in MSVC14 Update 3 involving boost::python. (PR 154)
|
|
|
|
prman Procedural:
|
|
|
|
Support widths on IPoints. (PR 147)
|
|
|
|
Support visibility on IPolyMesh. (PR 148)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2017-12-20, Alembic 1.7.5
|
|
Thanks to your feedback we have a bug fix:
|
|
|
|
API:
|
|
|
|
Fixed bug where getPropertiesHash and getChildrenHash were returning the wrong
|
|
value for AbcCoreLayer archives that are made up of only on file. (PR 143)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2017-10-12, Alembic 1.7.4
|
|
Thanks to your feedback and pull requests we have a few bug fixes and an
|
|
enhancement.
|
|
|
|
API:
|
|
|
|
Do not allow scalar properties to match when they have the same data type
|
|
but different extents. This is to avoid a segfault on getValue. (Issue 138)
|
|
|
|
Add: const AbcA::ObjectWriterPtr getPtr() to OObject.h (PR 141)
|
|
|
|
Remove an accidental circular include dependency in AbcCoreLayer. (PR 141)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2017-8-9, Alembic 1.7.3
|
|
|
|
Thanks to your feedback we have a bug fix introduced in the previous release.
|
|
|
|
API:
|
|
|
|
Fix a bug where a file opened as Ogawa but not Ogawa would be closed twice
|
|
causing issues on Windows. (Issue 135)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2017-7-21, Alembic 1.7.2
|
|
|
|
Thanks to your feedback and pull requests we have a few bug fixes and
|
|
enhancements.
|
|
|
|
API:
|
|
|
|
Fix bug with IFaceSet::getFaceExclusivity (Issue 129)
|
|
|
|
When reading directly from a file with Ogawa use pread/ReadFile so we don't have to use a file descriptor per stream. (Issue 124)
|
|
|
|
Misc:
|
|
|
|
Propagate HDF5 dependency when doing a static build mentioned in Issue 126. (pull request 128)
|
|
|
|
Fix up several other minor CMake issues mentioned in Issue 127. (also pull request 128)
|
|
|
|
Make sure the shared library is given a major/minor version. (based on pull request 125)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2017-3-24, Alembic 1.7.1
|
|
|
|
Thanks to your feedback and pull requests we have a few bug fixes and
|
|
enhancements.
|
|
|
|
API:
|
|
|
|
Address Issues 110 and 114 make a few member functions const.
|
|
|
|
Maya AbcExport:
|
|
|
|
Fix call to isAnimated when writing Nurbs curves.
|
|
|
|
Tools:
|
|
|
|
Fix issue 101 which was a crash in abcls by being careful when
|
|
printing certain strings.
|
|
|
|
Rework AbcDiff so it better handles completely different hiearchies,
|
|
and only attempts to do diffs on Ogawa files so we can take advantages
|
|
of the computed hashes.
|
|
|
|
Misc:
|
|
|
|
Add continuous integration to the project via Travis. (pull request 98)
|
|
|
|
Issue 104 turned up a problem with one of the tests when using newer
|
|
versions of HDF5. This test can be removed.
|
|
|
|
Fix small typo in code comments. (pull request 105)
|
|
|
|
Make sure to use python 2, even if 3 can be found since some of the
|
|
dependent binaries don't support it. (pull request 108)
|
|
|
|
Fix typo in CMake Cxx11 variable name mentioned in Issue 115.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2016-11-7, Alembic 1.7.0
|
|
Hello Alembic users,
|
|
|
|
Thanks to your feedback we are introducing the new layering functionality to Alembic, as discussed here:
|
|
|
|
https://groups.google.com/forum/#!topic/alembic-discussion/s0zm8VEBMOk
|
|
|
|
AbcCoreLayer was developed collaboratively between Blizzard Entertainment and Sony Pictures Imageworks and is a way for you make sparse changes to an Alembic file by writing those changes into any number of other Alembic files, and combining them on read via AbcCoreLayer.
|
|
|
|
Here are some examples of what you can do via layering:
|
|
|
|
You can add additional properties to a shape.
|
|
Example: Adding UVs to a polymesh that currently lack them
|
|
|
|
You can override properties.
|
|
Example: Override static points on a polymesh with animated points.
|
|
|
|
You can add new objects.
|
|
Example: Add a shape to an existing hierarchy.
|
|
|
|
You can prune objects.
|
|
Example: Remove shapes you don't like, or entire branches of the hierarchy.
|
|
|
|
You can prune properties.
|
|
Example: Removing incorrect normals.
|
|
|
|
You can replace an object hierarchy with a different one.
|
|
Example: You can replace separate curves groups with one big one.
|
|
|
|
You can replace property hierarchy.
|
|
Example: Don't like a bunch of properties in user properties? It can be replaced with a bunch of other properties, without needing to prune individual properties.
|
|
|
|
AbcCoreLayer provides a SetPrune and SetReplace convenience function in Util.h, for setting up the MetaData appropriately.
|
|
|
|
Maya:
|
|
|
|
AbcImport: Support AbcCoreLayer by specifying more than one file to the AbcImport command.
|
|
|
|
AbcExport:
|
|
Support writing only UVs via -uvsonly or -uvo flag.
|
|
|
|
Utilities:
|
|
AbcDiff: Given 2 Alembic files, create a sparse diff between them.
|
|
|
|
Other changes:
|
|
|
|
API:
|
|
|
|
Internally keep track of how many bytes we've written to reduce the number of potentially expensive calls on write.
|
|
|
|
https://github.com/alembic/alembic/pull/90
|
|
|
|
Harden some unnecessary templated constructors in Abc and AbcGeom.
|
|
|
|
Deprecate (but do not remove) constructors that take the kWrapExisting and kTop flag and provide reasonable constructors that don't use these flags in Abc and AbcGeom.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2016-7-12, Alembic 1.6.1
|
|
Hello Alembic users, thanks to your feedback and reports we have a few bug
|
|
fixes and enhancements.
|
|
|
|
API:
|
|
|
|
OPoints::setFromPrevious was not setting the previous velocity sample.
|
|
(pull request 85)
|
|
|
|
Fix small bug with AbcCoreOgawa::StreamManager COMPARE_EXCHANGE macro on Windows
|
|
(pull request 86)
|
|
|
|
Maya:
|
|
|
|
Fix some unused variable warnings in AbcImport, AbcExport.
|
|
|
|
Utils:
|
|
|
|
AbcStitcher: Support stitching mixed indexed and non-indexed GeomParams.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2016-6-30, Alembic 1.6.0
|
|
Thanks to your generous feedback and code contributions we are happy to announce
|
|
the 1.6.0 release of Alembic.
|
|
|
|
We've overhauled our build system, gotten rid of alembic_bootstrap.py in favor
|
|
of going native CMake. We now better support Windows and also now require at
|
|
least version 2.8.11 of CMake.
|
|
|
|
For the latest build instructions please see:
|
|
https://github.com/alembic/alembic/blob/master/README.txt
|
|
|
|
Other changes include:
|
|
|
|
Moved several core utilities out of examples and into bin.
|
|
|
|
Make HDF5 an optional dependency.
|
|
|
|
Allow install directory prefix to be explicitly set.
|
|
(pull request 46)
|
|
|
|
Add CMake generated configure file, so that the version of the project only
|
|
needs to be set in one place, users know if Alembic was built without HDF5
|
|
support, and whether it is using tr1, boost, or neither. (C++11) as a
|
|
dependency.
|
|
|
|
API:
|
|
Add ability to create a Windows dll, and add symbol visibility flags for other
|
|
compilers. (pull request 14)
|
|
|
|
Improve Ogawa write speeds on Windows by adding a larger buffer.
|
|
(pull request 38)
|
|
|
|
Make the 3 int values on OSubD optional.
|
|
(faceVaryingInterpolateBoundary, faceVaryingPropagateCorners, and
|
|
interpolateBoundary issue 34)
|
|
|
|
|
|
Remove unnecessary scoped static initialization of some variables. (issue 27)
|
|
|
|
Arnold Procedural:
|
|
Add Ogawa support. (pull request 20)
|
|
|
|
Maya:
|
|
Support exporting MFnFloatArray. (pull request 45)
|
|
|
|
Fix bug when Nurbs curves group are only animated via the transforms and speed
|
|
up the isAnimated check. (pull request 82)
|
|
|
|
Many AbcImport/AbcExport changes based on feedback and contributions from
|
|
Autodesk, and to bring the plugins more into line with what is in the devkit.
|
|
(pull request 51 and 62 through 79)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2015-1-15, Alembic 1.5.8
|
|
Hello Alembic users, thanks to your feedback and reports we have a few bug
|
|
fixes and enhancements.
|
|
|
|
API:
|
|
|
|
AbcCoreAbstract:
|
|
Fix wstring array hash calculation. (pull request 17)
|
|
|
|
Build system:
|
|
Make the OS X version check more robust to determine if C++11 flag is required.
|
|
(pull request 18)
|
|
|
|
Python:
|
|
|
|
PyAlembic:
|
|
Add asOgawa option for PyOArchive and make Ogawa the default for
|
|
CreateArchiveWithInfo. (pull request 16)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2015-12-09, Alembic 1.5.7
|
|
Hello Alembic users, thanks to your feedback and reports we have a few bug
|
|
fixes and enhancements.
|
|
|
|
Python:
|
|
|
|
Add missing methods to IPoints.
|
|
Add Points schema to cask.
|
|
(pull request 12)
|
|
|
|
Cask:
|
|
Add oproperty mapping for additional imath classes.
|
|
Add iproperty to oproperty class mapping using pod, extent values.
|
|
Remove named oproperty override mapping (replaced by above methods).
|
|
Add metadata accessor to property class.
|
|
Fix is_deforming method on objects.
|
|
(pull request 15)
|
|
|
|
Maya:
|
|
|
|
AbcExport:
|
|
Add support for writing out all UV sets on an MFnMesh with the
|
|
-wuvs/-writeUVSets flag. (pull request 13)
|
|
|
|
AbcImport:
|
|
Support loaidng multiple UV sets on an MFnMesh when present. (pull request 13)
|
|
|
|
##-*****************************************************************************
|
|
|
|
2015-10-17, Alembic 1.5.6
|
|
Hello Alembic users, thanks to your feedback and reports we have a few bug
|
|
fixes and enhancements.
|
|
|
|
API:
|
|
|
|
AbcCoreAbstract:
|
|
Improve stability of TimeSamplingType equality comparison. (pull request 11)
|
|
|
|
Maya:
|
|
|
|
AbcExport:
|
|
|
|
Recognize "faceVaryingInterpolateBoundary" not "facVaryingInterpolateBoundary"
|
|
plug when writing out an MFnMesh as a SubD. (pull request 6)
|
|
|
|
Don't produce an error for meshes without valid per-face mapping, e.g. whole
|
|
object mappings. (pull request 6)
|
|
|
|
Only create face sets for shading groups applied with with per-face mappings.
|
|
(pull request 6)
|
|
|
|
Make sure a schema that is detected to be static is written out with the
|
|
default time sampling. (pull request 7)
|
|
|
|
AbcImport:
|
|
|
|
Don't warn about UVs or normals size being mismatched if the mesh has no
|
|
points. (pull request 8)
|
|
|
|
Connections to custom VectorArray and PointArray properties will no longer fail.
|
|
(pull request 8)
|
|
|
|
Support varying or vertex color properties and unpacking them into facevarying
|
|
as Maya requires. (pull request 8)
|
|
|
|
Only call setUsedAsColor for attributes that are constant scoped.
|
|
(pull request 8)
|
|
|
|
|
|
Utilities:
|
|
|
|
AbcStitcher:
|
|
Revamp AbcStitcher to better handle cases where certain shapes or properties
|
|
may not exist in some of the files. (pull request 7)
|
|
|
|
Build system:
|
|
|
|
Boost_PYTHON_LIBRARY is case sensitive. (pull request 8)
|
|
|
|
|
|
|
|
##-*****************************************************************************
|
|
|
|
2014-07-15, Alembic 1.5.5
|
|
Hello Alembic users, thanks to your feedback and reports we have a few bug
|
|
fixes and enhancements.
|
|
|
|
API:
|
|
|
|
AbcGeom:
|
|
Fix bug in OSubD::setHoles where corner indices were being set instead.
|
|
|
|
AbcCoreAbstract:
|
|
Improve lookup times and numerical stability of TimeSampling.
|
|
|
|
AbcOpenGL:
|
|
|
|
Camera rotations are now done in X,Y,Z order instead of Z,X,Y
|
|
|
|
Python API:
|
|
|
|
PyAlembic:
|
|
Address Issue 347, expose the CoreType in python.
|
|
|
|
PyAbcOpenGL:
|
|
Wrap ALEMBIC_LIB_USES_BOOST around get_pointer.
|
|
|
|
Maya:
|
|
|
|
AbcExport:
|
|
If a shading group has an attribute named AbcFaceSetName, use that attribute
|
|
instead of the shading groups name for the face set name.
|
|
|
|
Fix for Issue 339, some dag nodes can't be pushed onto MDagPath, so make sure
|
|
the push was successful to avoid infinite recursion.
|
|
|
|
Fix for Issue 342, for improved performance skip over shadingEngines and
|
|
subgraphs in util::isAnimated.
|
|
|
|
|
|
AbcImport:
|
|
Set AbcFacesetName attribute on newly created shadingGroups.
|
|
|
|
Fix bug with open form check on curves.
|
|
|
|
Fix bug with restoring knots from a curve group with more than one curve.
|
|
|
|
Tools:
|
|
|
|
AbcView:
|
|
Fix for Issue 344, show array property values of length 1.
|
|
|
|
Improve performance for some graphics cards by adjusting some drawing options.
|
|
(also done in SimpleAbcViewer)
|
|
|
|
abcls
|
|
Add -v option to automatically display the first sample of all properties.
|
|
Print an error message when seg fault is detected.
|
|
|
|
cask:
|
|
Fix for Issue 345, handle V3d and double array on write.
|
|
Default to Ogawa on write.
|
|
|
|
Fix for Issue 346, TimeSampling is now preserved for properties that are
|
|
copies on write.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2014-03-28, Alembic 1.5.4
|
|
Hello Alembic users, thanks to your feedback and reports we have a few bug
|
|
fixes and enhancements.
|
|
|
|
API:
|
|
|
|
AbcGeom:
|
|
Fix for Issue 333, optional property samples not being filled in correctly
|
|
after being defined previously but not set on the current sample.
|
|
|
|
AbcOpenGL:
|
|
|
|
Fix for Issue 324, adjust dolly and clipping plane values when they get
|
|
a bit extreme.
|
|
|
|
Python:
|
|
Updates for sphix docs
|
|
|
|
AbcView:
|
|
Fix static normals on animated archives.
|
|
Fix remove item bug.
|
|
Fix import session fle bug.
|
|
Add Review mode.
|
|
Support custom scripts.
|
|
|
|
Maya:
|
|
|
|
AbcExport:
|
|
Write out NURBS curves as actual NURBS curves.
|
|
|
|
AbcImport:
|
|
|
|
Support reading NURBS curves.
|
|
Use Alembic::Util::shared_ptr instead of std::tr1::shared_ptr in one spot.
|
|
|
|
Util:
|
|
|
|
AbcEcho:
|
|
|
|
Fix bounds calculation on AbcBoundsEcho.
|
|
Add an optional seconds argument for time sampling support.
|
|
|
|
Build:
|
|
|
|
Use C++11 for OSX Mavericks.
|
|
Define ALEMBIC_LIB_USES_BOOST to accomodate python bindings.
|
|
Use LIBPYTHON_VERSION to determine which python to use.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2013-12-17, Alembic 1.5.3
|
|
Hello Alembic users, thanks to your feedback and reports we have a few bug
|
|
fixes and enhancements.
|
|
|
|
API, Ogawa:
|
|
|
|
Don't open extra filestreams until they are needed.
|
|
|
|
Maya, AbcImport:
|
|
Fix for issue 251, if connections to the immediate children of the archive fail
|
|
warn about it.
|
|
|
|
Relax naming constraints on connection so that if the namespace is different
|
|
between the Maya scene and the Alembic archive, they can still connect.
|
|
|
|
Specifying a Maya node to -connect which doesn't match any of the children of
|
|
the immediate root of the archive, try and connect below that specified Maya
|
|
node.
|
|
|
|
Python:
|
|
|
|
cask:
|
|
Fix for issue 318, make sure the archive gets released properly.
|
|
|
|
abcview:
|
|
Fix bug where animated normals weren't being updated for display.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2013-12-6, Alembic 1.5.2
|
|
Hello Alembic users, thanks to your feedback and contributions we have another
|
|
collection of bug fixes and enhancements to the API.
|
|
|
|
API:
|
|
|
|
Add Nurbs Curves support to I/OCurves, also addresses Issue 249.
|
|
Most reference implementations have not yet been updated to support it.
|
|
|
|
Add SetSourceName, GetSourceName, SetIsUV, isUV utility functions and
|
|
setUVSourceName member function on OPolyMeshSchema and OSubDSchema.
|
|
|
|
Don't assert in TimeSampling::getNearIndex if the floor index and the ceil index
|
|
are the same.
|
|
|
|
Address several clang compile warnings. Part of Issue 322.
|
|
|
|
AbcCoreHDF5 and AbcCoreOgawa:
|
|
Fix reported thread-safety issues.
|
|
|
|
Python bindings:
|
|
|
|
Fix for issue 326.
|
|
"error: control reaches end of non-void function" in PyIArchive
|
|
|
|
Add Nurbs Curves support to I/OCurves.
|
|
Note: The expected number of knots per curve is the number of vertices in the
|
|
curve plus the order of the curve.
|
|
|
|
Add SetSourceName, GetSourceName, SetIsUV, isUV utility functions and
|
|
setUVSourceName member function on OPolyMeshSchema and OSubDSchema.
|
|
|
|
AbcOpenGL:
|
|
Fix for issue 324, clamp values instead of asserting.
|
|
|
|
Misc Tools:
|
|
|
|
AbcStitcher:
|
|
Support stitching Nurbs curves.
|
|
Fix bug where the output file would only be HDF5.
|
|
Fix bug where invalid metadata and name were used for leftover objects.
|
|
Fix bug where top object was gotten before checking for archive validity.
|
|
Add additional check and error message if the number of children nodes aren't
|
|
the same between the IObjects from different archives.
|
|
|
|
AbcTree:
|
|
Rename variable to fix shadow warning on some compilers. Issue 320.
|
|
Windows compatibility fix, S_ISDIR doesn't exist.
|
|
|
|
AbcLs:
|
|
Windows compatibility fix, S_ISDIR doesn't exist.
|
|
Fix the way certain scalar properties print.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2013-9-18, Alembic 1.5.1
|
|
Hello Alembic users, thanks to your feedback we have another collection of
|
|
small but useful bug fixes and enhancements to the API, some of the example
|
|
tools, and the Maya plugins.
|
|
|
|
API:
|
|
|
|
IXform/OXform:
|
|
Make default identity xforms use even less disk space.
|
|
Fix for Issue 313: IXformSchema::getInheritsXforms() crash with no samples
|
|
|
|
Python bindings:
|
|
Fix for Issue 308: ILightSchema.getCameraSchema() segfaults when no cameras
|
|
are available
|
|
|
|
Maya:
|
|
|
|
AbcImport:
|
|
Fix for Issue 311: properly set SubD creases, corners, and holes when the
|
|
geometry is animated
|
|
|
|
Fix for Issue 312: AbcImport doesn't accept long names when filtering
|
|
|
|
AbcExport:
|
|
Ogawa is now written out by default. (when the -dataformat flag isn't specified)
|
|
|
|
Multiple frame ranges can be specified for more control over the samples
|
|
exported.
|
|
|
|
-preRoll flag was added for specified frame ranges that you want evaluated but
|
|
not exported.
|
|
|
|
Misc Tools:
|
|
|
|
AbcLs - fix bugs, added new flag -s to view the size of a scalar or array
|
|
property, -t for printing time info of the archive and the time a sample
|
|
index of a property corresponds to. -f prints out the frame assuming 24fps.
|
|
|
|
AbcView - tweaked docs, lots of bug fixes, better camera support
|
|
|
|
prman Procedural - Fix for Issue 314: subdiv tags could become corrupted.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2013-7-22, Alembic 1.5.0
|
|
Hello Alembic users, we are pleased to announce the official release of a new
|
|
data back end for Alembic, codenamed Ogawa with improved write, read, and
|
|
especially multi-threaded read performance.
|
|
|
|
Here are some improvements we are seeing with this version:
|
|
|
|
1) File sizes are on average 5-15% smaller. Scenes with many small objects
|
|
should see even greater reductions.
|
|
|
|
2) Single-threaded reads average around 4x faster
|
|
|
|
3) Multi-threaded reads can improve by 25x (relative to the same operations in
|
|
the existing HDF5 back-end) on 8 core systems.
|
|
|
|
We are maintaining backwards compatibility, and you will be able to continue to
|
|
read and write Alembic files backed by HDF5.
|
|
|
|
Other library features added:
|
|
|
|
Support for explicit hierarchical deduplication. (OObject::addChildInstance)
|
|
|
|
Hierarchical hash keys added to objects, making it easier to compare sub-graphs
|
|
of various archives. (IObject::getPropertiesHash, IObject::getChildrenHash)
|
|
|
|
Add AbcCoreFactory::IFactory class which is a convenience class for determining
|
|
whether an archive is backed by HDF5 or Ogawa and returning a properly
|
|
instantiated IArchive. All of the readers in the repository have been updated
|
|
to use this.
|
|
|
|
Python bindings have been extended to support the new features above.
|
|
|
|
New utility:
|
|
|
|
abcls this utility is meant to behave like ls or h5ls and offers an
|
|
inexpensive way to explore your object and property hierarchies.
|
|
|
|
Bug fixes:
|
|
|
|
ICamera:
|
|
Getting the film back xform channels needs to be done by index.
|
|
Animated film back data wasn't being reflected in isConstant.
|
|
Offset data should be applied after the filmback matrix.
|
|
|
|
AbcExport: preScale, and postScale film back xform should be 1.0/scale.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2013-4-11, Alembic 1.1.5
|
|
Hello Alembic users, thanks to your feedback we have another collection of
|
|
small but useful bug fixes and performance enhancements for the Maya plugins.
|
|
|
|
AbcExport:
|
|
|
|
Improve the performance of util::isAnimated.
|
|
|
|
If MFnIkJoint's Scale Compensate is off, [IS] is ignored otherwise multiply it
|
|
after [T]. [IS] is actually the inverse of the inverseScale plug.
|
|
|
|
Fixed const related error caught by Microsoft Visual Studio 9.0 compiler.
|
|
|
|
AbcImport:
|
|
|
|
Use createPoint and createColor for MFnNumericAttribute when appropriate.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2013-03-25, Alembic 1.1.4
|
|
Hello Alembic users, thanks to your feedback we have another collection of
|
|
small but useful and important bug fixes.
|
|
|
|
Fix several multi-platform issues to making compiling in Windows and OSX easier.
|
|
|
|
PyAlembic:
|
|
|
|
Fix typo XformSample::getZRotation should be XformSample::getScale.
|
|
|
|
AbcImport:
|
|
|
|
Directly set the string plug, as the default value is not saved to the Maya
|
|
file and thus is not restored.
|
|
|
|
AbcExport/AbcImport:
|
|
|
|
Fix bug where the conversion from shutter open, shutter close to shutter angle
|
|
was being improperly scaled.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2013-02-11, Alembic 1.1.3
|
|
Hello Alembic users, thanks to your feedback we have another collection of
|
|
useful features and bug fixes.
|
|
|
|
Alembic library:
|
|
|
|
Add missing setTimeSampling member function to OCurves and ONuPatch. (Issue 295)
|
|
|
|
Record the max number of samples written for various TimeSampling at the
|
|
archive level, and provide a utility function for getting the start and end time
|
|
of the archive using this data. (Issue 301)
|
|
|
|
Propogate the Error handling policy better.
|
|
|
|
Add Box2(s,i,f,d) array properties to match scalar properties.
|
|
|
|
INuPatch getTopologyVariance wasn't correctly taking into account animated
|
|
weights.
|
|
|
|
IsAncestorVisible utility function was returning the wrong value.
|
|
|
|
TimeSamplingType now allows for some floating point imprecision during
|
|
comparison. (Issue 301)
|
|
|
|
Add isStandardName and makeStandardName convenience functions.
|
|
|
|
- These functions offer plugin writers an easy way to get multi-application
|
|
name compliance. They help you convert any special characters your
|
|
application supports into a set universally accepted characters.
|
|
|
|
Add AbcOpenGL library which is based on the draw code from SimpleAbcViewer.
|
|
|
|
Python:
|
|
|
|
Add PyAbcOpenGL bindings.
|
|
|
|
Fix segfault with invalid getProperty index/name
|
|
|
|
Add getProperty to OCompoundProperty
|
|
|
|
Add getKey to IArrayProperty
|
|
|
|
- This is the preferred way to get the alembic hash of a property.
|
|
Previously you needed to build the a hash by marshalling
|
|
and serializing the data in python which is slooow.
|
|
|
|
Add getMaxNumSamplesForTimeSamplingIndex to IArchive.
|
|
|
|
Add high level Python API named "cask" built on top of the Alembic Python
|
|
bindings.
|
|
|
|
- This was developed to simplify scripting of alembic files
|
|
in Python.
|
|
|
|
- It is designed to be easy to use and "Pythonic". For example it
|
|
gives you a dictionary style interface to objects and
|
|
properties.
|
|
|
|
- It is an abstraction on top of alembic which allows you to create mutable
|
|
objects. This means scripters are not forced to use the separated,
|
|
immutable input and output core alembic objects.
|
|
|
|
- We will host documentation on docs.alembic.io shortly but for now please
|
|
convert the cask.rst file in python/examples/cask/doc to read the docs
|
|
and see examples.
|
|
|
|
Add abcview which uses PyQt and PyAbcOpenGL
|
|
|
|
- This tool is perfect for debugging alembic caches. It offers Katana-
|
|
style, lazy-UI hierarchy traversal and a script editor to do more
|
|
in-depth object and property queries using the Python bindings.
|
|
SimpleAbcView is embedded into the application for easy reference.
|
|
|
|
Bootstrap and CMake:
|
|
|
|
Fix boost configuration if you are not building pyalembic. (Issue 296)
|
|
|
|
Eliminate many warnings when compiling with Visual Studio 10. (Issue 294)
|
|
|
|
Improve many of our CMakeLists.txt so that you can use Cmake directly instead
|
|
of having to go through the bootstrap.
|
|
|
|
Better Windows compliance. (Look for further improvements over the next releases).
|
|
|
|
Maya:
|
|
|
|
AbcExport bounding box calculation for the entire archive is much more efficient
|
|
and is especially noticeable when calculating bounds on deep hierarchies.
|
|
|
|
Add identifyFile and haveNamespaceSupport to AlembicImportFileTranslator.
|
|
|
|
Fix bug where the AlembicImportFileTranslator could not be unloaded properly.
|
|
|
|
Arnold Procedural:
|
|
|
|
Fix bug with multiple samples potentially being added for uvlist.
|
|
|
|
Initialize makeInstance on creation.
|
|
|
|
Add instanced nodes to the list of createdNodes.
|
|
|
|
Utilities:
|
|
|
|
Add abctree which walks the entire hierarchy and prints out the names
|
|
of objects.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2012-10-17, Alembic 1.1.2
|
|
Hello Alembic users, thanks to your feedback we have another collection of
|
|
small but useful features and bug fixes.
|
|
|
|
New features:
|
|
|
|
Maya AbcImport:
|
|
|
|
Added inclusive and exclusive filtering support to allow selective importing
|
|
of cache objects via regex matches.
|
|
|
|
Added file translator support. Alembic caches can now be opened directly and
|
|
imported as Maya references.
|
|
|
|
Facesets now get imported as Maya facesets instead of an integer array
|
|
attribute.
|
|
|
|
Maya AbcExport:
|
|
|
|
Write out curves with a basis of b-spline and repeat first and last
|
|
points twice (if they aren't repeated) if we have a cubic open curve.
|
|
|
|
Support exporting Maya facesets with the -wfs/-writefacets flag.
|
|
|
|
Add -ef/-eulerFilter flag which euler filters samples to rotate, rotate axis,
|
|
and joint orient.
|
|
|
|
Update -sn/-stripNamespaces flag with an optional integer to only strip
|
|
that number of namespaces.
|
|
|
|
Remove boost usage.
|
|
|
|
Core library:
|
|
|
|
Add static emptySample() convenience function.
|
|
|
|
Improve const correctness on most of the Abc and AbcGeom getter functions.
|
|
|
|
Child bounds are no longer written and read via the schema's sample class,
|
|
instead the child bounds property is directly exposed on the schema.
|
|
|
|
Normals and UVs IGeomParams are no longer returned by reference.
|
|
|
|
On Xforms, only write the .animChans data once if necessary.
|
|
|
|
Bug fixes:
|
|
|
|
Maya AbcImport:
|
|
|
|
Clean up temporary trim curves when the trim operation fails for
|
|
MFnNurbsSurface.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2012-9-20, Alembic 1.1.1
|
|
Hello Alembic users, thanks to your feedback we have another collection of
|
|
small but useful and important bug fixes.
|
|
|
|
Bug fixes:
|
|
|
|
Issue 291
|
|
Fix for some compile issues/warnings on Windows.
|
|
|
|
Issue 292
|
|
Hash keys are being computed incorrectly on Windows.
|
|
|
|
Some small CMake updates.
|
|
|
|
Fixed typo in OSubD::setHoles
|
|
|
|
##-*****************************************************************************
|
|
|
|
2012-7-26, Alembic 1.1.0
|
|
|
|
Hello Alembic users. We are excited to announce another release of Alembic
|
|
which contains many new features, bug fixes and performance improvements.
|
|
|
|
What's new:
|
|
|
|
- AbcCollections. Alembic now supports the concept of a collection. Sometimes
|
|
people refer to collections as "groups" or "object sets" (as in Maya).
|
|
|
|
- AbcMaterial. Alembic now supports the concept of a material. This is done by
|
|
defining a schema for a material definition which can act as a standalone object
|
|
or as supplemental data attached to another object. AbcMaterial also defines
|
|
conventions and utilities for binding and resolving marterial assignments
|
|
and overrides. We have not gone as far as defining what a material schema should
|
|
actually contain (as we did with cameras); instead we allow you to define your
|
|
own material "target" to allow all the many variations in material standards
|
|
that exist today. However we have reserved the name "abc" for a target
|
|
we will define at a later time; the hope is that this material target would
|
|
become the standard for material interchange.
|
|
|
|
- AbcLight. Alembic now supports the concept of a light. Light objects are
|
|
distinct objects that contain both a camera and a material schema. The material
|
|
on the light controls the shader parameters associated with the light and the
|
|
camera can contain all relevant camera-like light information.
|
|
|
|
- Python bindings. At long last the Alembic team has finally completed the
|
|
python bindings to allow scripters to access the full power of the alembic
|
|
c++ api. All the new features listed above as well as the layers Abc though
|
|
AbcGeom are bound. The base bindings of typed data (including typed arrays)
|
|
are pyimath types so if your program can natively create imath data types
|
|
there is no performance penalty to convert to and from alembic types.
|
|
|
|
- Performance optimization. When we profiled Alembic we found that, for some
|
|
caches, a great deal of time was being spent in HDF5 functions that access
|
|
groups and attributes by name. We now let you optionally write a side car
|
|
datastructure within the HDF5 file that maps the HDF5 hierarchy to HDF5 object
|
|
references which results in lookups that are much faster. You pay the price
|
|
of a slight disk size increase and memory footprint.
|
|
|
|
- Maya plugin updates. The ".userProperties" compound property that is available
|
|
on most Alembic objects is now supported for both read and write with full
|
|
support for animated values. Additional parameters have also been added to the
|
|
AlembicNode to allow cache retiming along with support for loop, reverse and
|
|
bounce.
|
|
|
|
- Boost removal from the core. We are no longer dependent on boost to give us
|
|
an implementation of a shared pointer (for example) so we were able to remove
|
|
the dependency on boost while building the core library.
|
|
|
|
Bug Fixes:
|
|
|
|
Issue 171:
|
|
OScalar and OArray Properties had a scoping issue when parented to the immediate
|
|
child compound property of an OObject.
|
|
|
|
Issue 245:
|
|
I<type>GeomParam would match to properties that aren't geom params.
|
|
IArrayProperty is always considered a geom param with constant scope.
|
|
|
|
Issue 253-255
|
|
Several bugs involved with the -rm flag on AbcImport have been fixed.
|
|
|
|
Issue 263
|
|
AbcExport UV write fix, loop over all faces, not just the faces which have UVs.
|
|
|
|
Issue 275
|
|
AddGeomToParamListBuilderAsFloat was calculating wrong boundary for the
|
|
IV2fArrayProperty.
|
|
|
|
Issue 280
|
|
Accomodate Unicode file names in AbcImport and AbcExport.
|
|
|
|
Issue 285
|
|
AbcGeom/Basis.h was not including Alembic/Util/Foundation.h
|
|
|
|
##-*****************************************************************************
|
|
|
|
2012-2-14, Alembic 1.0.5
|
|
|
|
Bug fix release.
|
|
|
|
Fix for issue 272.
|
|
|
|
Core:
|
|
|
|
String dimensions weren't being written correctly for string arrays when copying
|
|
a previous sample.
|
|
|
|
Correctness updates to "matches(..)" (data matching functions).
|
|
|
|
Houdini plugin:
|
|
Reverting frame - 1 change.
|
|
Including a clear cache function.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2012-1-12, Alembic 1.0.4
|
|
|
|
Hello, Alembic users, thanks to your feedback we have another collection of
|
|
API additions and small but useful bug fixes.
|
|
|
|
Some highlights:
|
|
|
|
API:
|
|
|
|
- Now supports raw reads, and reading as a different precision, for array properties
|
|
via a new method getAs (). Currently strings, wstrings, and float16_t
|
|
can not be read as any other type.
|
|
|
|
- Added an optional velocity property to polymeshes, subds, nurbs, and curves.
|
|
Velocity is considered to be in units per second.
|
|
|
|
- Added a temporary work around for an HDF5 bug where parts of the file could become
|
|
corrupt. This workaround always stores the HDF5 links in dense storage. This can lead to
|
|
larger file sizes when you have a lot of IObjects.
|
|
|
|
- Improved the performance on partial hierarchy traversal by deferring opening of an
|
|
object's HDF5 group until truly needed.
|
|
|
|
Renderman Procedural:
|
|
|
|
- Added support for V3dGeomParam, P3dGeomParam, and BoolGeomParam
|
|
|
|
Houdini SOP:
|
|
|
|
- Dramatically increased the performance under Houdini 12 and pleasantly increased
|
|
performance under 11.1.
|
|
|
|
Maya AbcImport:
|
|
|
|
- Don't interpolate when the time values closely match the ceiling value.
|
|
|
|
- Don't create a new color set every time an animated color set is evaluated.
|
|
|
|
- Interpolating non indexed color values would sometimes cause a crash.
|
|
|
|
We welcome your comments on the discussion list.
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
##-*****************************************************************************
|
|
|
|
2011-11-11, Alembic 1.0.3
|
|
|
|
Hello, Alembic users, thanks to your feedback we have another collection of
|
|
small but useful bug fixes to our plugins.
|
|
|
|
Some highlights:
|
|
|
|
Renderman Procedural:
|
|
|
|
- Addition of Windows export information for ConvertParameters/Subdivide/Free
|
|
|
|
- Fixed an uninitialized variable for -flipv
|
|
|
|
- Fixed a string-related memory bug for declarations in ParamListBuilder
|
|
(issue 241)
|
|
|
|
- Addition of support for reading, caching and sharing argument strings from
|
|
files.
|
|
|
|
- Addition of support for restoring named resource blocks at specified paths
|
|
or names for objects and facesets
|
|
|
|
- Fixed support for getInheritsXforms in IXforms (issue 247)
|
|
|
|
- Fixed CMake where it failed to find libprman.lib because of a typo
|
|
(issue 229)
|
|
|
|
Maya AbcImport:
|
|
|
|
- Fixed compilation with Maya 2011 by adding an ifdef for the
|
|
setDisplayColors(true) call. (issue 244)
|
|
|
|
- Fixed some issues with the -connect option. Transforms weren't being
|
|
properly cleared when connection.
|
|
|
|
Maya AbcExport:
|
|
|
|
- Change for FBIK joints, there isn't always a connection to translate or
|
|
scale (like rotate for IK joints). We now treat them like they are animated.
|
|
|
|
- Return an error if the file can't be written to.
|
|
|
|
- The full -renderableOnly flag was not properly being detected (issue 252)
|
|
|
|
We welcome your comments on the discussion list.
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
##-*****************************************************************************
|
|
|
|
2011-10-12, Alembic 1.0.2
|
|
|
|
Hello, Alembic users, thanks to your feedback we have another collection of
|
|
small but useful bug fixes and a couple of new flags for some of our plugins.
|
|
|
|
Some highlights:
|
|
|
|
- In Maya don't flip V when reading and writing UVs. (AbcExport and AbcImport)
|
|
|
|
- Add a flag (-flipv) to the prman Procedural to flip V when necessary.
|
|
|
|
- Add a flag (-wcs / -writeColorSets) to AbcExport to write out color sets and
|
|
restore them on AbcImport.
|
|
|
|
- In AbcExport the -renderableOnly flag was doing the opposite of what it was
|
|
supposed to do.
|
|
|
|
- Fix bug in SimpleAbcViewer where XformSchema::getInheritsXforms() was not
|
|
being respected.
|
|
|
|
- Fix bug in AbcStitcher to prevent a segfault.
|
|
|
|
We welcome your comments on the discussion list.
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
##-*****************************************************************************
|
|
2011-09-15, Alembic 1.0.1
|
|
|
|
Hello, Alembic users, we've gotten great feedback from the community
|
|
and with their help we've created this collection of small but useful
|
|
bug fixes.
|
|
|
|
Some highlights:
|
|
|
|
- A collection of useful bug fixes in the Maya AbcExport and AbcImport
|
|
plugins
|
|
|
|
- The renderman procedural has some small bug fixes, e.g. fixes related
|
|
to arbitrary geometric parameters
|
|
|
|
As always, any files generated by either Alembic 1.0.0 or
|
|
Alembic 1.0.1 will interoperate. If you are working in Maya
|
|
we encourage you to look at this update.
|
|
|
|
The complete code changes for this release can be examined here:
|
|
|
|
http://codereview.appspot.com/4978066/
|
|
|
|
We welcome your comments on the discussion list.
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
|
|
##-*****************************************************************************
|
|
2011-08-09, Alembic 1.0
|
|
|
|
Hello, Alembic users, welcome to our first gold release of Alembic.
|
|
|
|
The complete code changes for this release can be examined here:
|
|
http://codereview.appspot.com/4819067/
|
|
|
|
Some highlights:
|
|
|
|
- Addition of the Arnold procedural.
|
|
|
|
- Removal of some things that weren't Alembic related (GLUtil)
|
|
|
|
- Addition of a python unit test suite for AbcExport and AbcImport.
|
|
|
|
- Lots of Houdini SOP improvements.
|
|
|
|
- Cleanup of many compiler warnings.
|
|
|
|
This initial 1.0 version can now be used for critical, deadline-driven
|
|
production work.
|
|
|
|
Also as usual, feedback and questions are welcome! The main discussion list
|
|
is low-traffic, but anyone can sign up and participate:
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
##-*****************************************************************************
|
|
2011-06-28, Alembic 1.0rc1
|
|
|
|
Hello, Alembic users, welcome to the latest beta version of Alembic. As we
|
|
close in on a 1.0 release, we hope the API and file format are now stable
|
|
and fully forwards-compatible. We consider these to be at a first
|
|
"Release Candidate" stage. (note that this doesn't yet apply to the
|
|
application-specific reference implementations). As with all pre-release
|
|
software, we can't guarantee that changes won't occur between now and a full
|
|
1.0 release.
|
|
|
|
This release is mostly a bugfix and cleanup release. We've improved the build
|
|
support for Windows and OS X, as well as conformed the definitions of the Curves
|
|
and NuPatch types more closely to the RI spec. Those changes, though, do mean
|
|
that Curves and NuPatch geometry written out with previous releases will not be
|
|
recognized with this release.
|
|
|
|
The complete code changes for this release can be examined here:
|
|
|
|
http://codereview.appspot.com/4662068
|
|
|
|
Some highlights:
|
|
|
|
- The flags and arguments for the AbcExport Maya plugin have been updated
|
|
based on feedback from the community, and to be more Maya-idiomatic.
|
|
You can see all the arguments supported by entering "AbcExport -h"
|
|
in the script editor.
|
|
|
|
- The Makefile setup for the AlembicIn Houdini SOP is greatly simplified,
|
|
though still not fully integrated with Alembic's CMake setup.
|
|
|
|
- The PRMan procedural now supports the Points, NuPatch, Curves, and FaceSet
|
|
types from AbcGeom.
|
|
|
|
One other important thing to note: previous releases of Alembic did not
|
|
require any of the compiled Boost libraries, but going forward, Alembic
|
|
requires libboost_thread.
|
|
|
|
Although this is our initial 1.0 release candidate, it should still be
|
|
considered pre-release software, and should not be used for critical, deadline-
|
|
driven production work.
|
|
|
|
Also as usual, feedback and questions are welcome! The main discussion list
|
|
is low-traffic, but anyone can sign up and participate:
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
As always, discussion is welcome on the discussion list.
|
|
|
|
##-*****************************************************************************
|
|
2011-05-18, Alembic 0.9.3:
|
|
|
|
The biggest news in this release is what we hope is the complete set of
|
|
geometric types for ALembic 1.0, which includes curves (fashioned after
|
|
RiCurves), nurbs surfaces, facesets in polygons and subds, and a camera
|
|
definition. See http://code.google.com/p/alembic/wiki/Alembic_Geometric_Types
|
|
for a complete list.
|
|
|
|
The complete code changes for this release can be examined here:
|
|
|
|
http://codereview.appspot.com/4517085
|
|
|
|
Some highlights:
|
|
|
|
- There is now a single class for expression transforms. Preivously
|
|
we had both SimpleXform and Xform objects for expressing transformation.
|
|
The new unified Xform class can be used more simply than the old
|
|
Xform class, while retaining the expressivity of the original.
|
|
|
|
- We have experimental support for building Alembic on Windows. Details
|
|
for how to perform the build can found in build/Windows/README.txt and
|
|
build/Windows/WindowsBuildSteps.html
|
|
|
|
- We've changed the API in a couple places, most notably, in the way
|
|
instances of the class class Alembic::AbcCoreAbstract::TimeSampling are
|
|
stored and referenced.
|
|
|
|
- There is a reference Houdini SOP that can read an entire Alembic archive
|
|
or a subtree of an archive with the option to bake in transformations. As
|
|
such, it could also serve as the "leaf" node for an import process which
|
|
rebuilt the full transformation hierarchy within Houdini. The intention is
|
|
to pair this with a CHOP (not slated for inclusion this round) which extracts
|
|
transformation channels from the archive. However, it is not yet integrated
|
|
into the Alembic build infrastructure, so compiling it may take some work.
|
|
|
|
As this is still a 0.9 release, it is still to be considered Beta, and
|
|
should not be used for critical, deadline-driven production work.
|
|
|
|
Also as usual, feedback and questions are welcome! The main discussion list
|
|
is low-traffic, but anyone can sign up and participate:
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
As always, discussion is welcome on the discussion list.
|
|
|
|
##-*****************************************************************************
|
|
|
|
2011-02-17, Alembic 0.9.2:
|
|
|
|
This is somewhere between a major and minor update. Numerous bugs
|
|
have been fixed, some new functionality has been introduced, and
|
|
reference Maya plugins for import and export have been added.
|
|
|
|
The code changes can be examined here:
|
|
|
|
http://codereview.appspot.com/4160045/
|
|
|
|
Some highlights in functionality:
|
|
|
|
- Maya export and import plugins are in the top-level "maya" directory.
|
|
|
|
- In the top-level "python" directory is the beginning of Python bindings
|
|
using Boost.Python. This effort is currently incomplete, but with
|
|
these bindings, the structure of an Alembic Archive can be examined.
|
|
|
|
- UVs on PolyMeshes and SubD meshes, as well as Normals on PolyMeshes,
|
|
are included in their definition, and can be written and read as
|
|
indexed arrays or expanded, non-indexed arrays, with automatic
|
|
interconversion between the two representations.
|
|
|
|
As this is still a 0.9 release, it is still to be considered Beta, and
|
|
should not be used for critical, deadline-driven production work.
|
|
|
|
Also as usual, feedback and questions are welcome! The main discussion list
|
|
is low-traffic, but anyone can sign up and participate:
|
|
|
|
http://groups.google.com/group/alembic-discussion
|
|
|
|
As always, discussion is welcome on the discussion list:
|
|
|
|
##-*****************************************************************************
|
|
|
|
2010-12-13, Alembic 0.9.1:
|
|
|
|
Just a minor update to enable Alembic on 32-bit systems, along with
|
|
getting the code in examples/bin/AbcEcho reasonably working.
|
|
|
|
2010-12-08, Alembic 0.9.1:
|
|
|
|
The main things in this release are the addition of a Renderman procedural
|
|
plugin, and a bunch of bug fixes. The example Maya exporter
|
|
(AlembicSimpleAbcExport) can be used to create an Alembic file from a Maya
|
|
scene, and that Alembic file can be read by the Renderman plugin to create
|
|
images, which means that an end-to-end workflow can be achieved. A complete
|
|
overview of the changes to the code is here:
|
|
|
|
http://codereview.appspot.com/3427045
|
|
|
|
A summary of the bugs fixed in this change:
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=71
|
|
|
|
An internal implementation detail that fixed an issue where files created by
|
|
the AlembicSimpleAbcExport Maya plugin were invalid.
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=118
|
|
|
|
Another internal implementation bugfix that ensured that certain properties of
|
|
a subdivision surface were properly animatable.
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=17
|
|
|
|
Method to return a Property's parent Object simply did not work.
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=121
|
|
|
|
Methods to determine high-level type now more flexible and correct.
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=7
|
|
|
|
Build system improvement; now behaves better when trying to find the Boost
|
|
headers and libraries.
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=13
|
|
|
|
A consequence of the bug that was fixed in issue 71.
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=123
|
|
|
|
Alembic was not reading all the required data from an ISimpleXform.
|
|
|
|
|
|
In progress, we have:
|
|
|
|
http://code.google.com/p/alembic/issues/detail?id=102
|
|
|
|
This is an arbitrary transform "stack" type, roughly equivalent to Renderman's
|
|
transformation model. It has per-operation hints that allow it to be
|
|
recognized as a transform and mapped directly to another application's
|
|
transformation model. It can also be read and written as a regular 4x4
|
|
matrix.
|
|
|
|
##-*****************************************************************************
|