Basic Alembic support
authorKévin Dietrich <kevin.dietrich@mailoo.org>
Sat, 6 Aug 2016 04:20:37 +0000 (06:20 +0200)
committerKévin Dietrich <kevin.dietrich@mailoo.org>
Sat, 6 Aug 2016 08:58:13 +0000 (10:58 +0200)
commit61050f75b13ef706d3a80b86137436d3fb0bfa93
treea8044c720b35ae0b1dd8d265178e7a412a50e8bf
parent4158737cb2d79898b9f1147eaa26eb486f4980a1
Basic Alembic support

All in all, this patch adds an Alembic importer, an Alembic exporter,
and a new CacheFile data block which, for now, wraps around an Alembic
archive. This data block is made available through a new modifier ("Mesh
Sequence Cache") as well as a new constraint ("Transform Cache") to
somewhat properly support respectively geometric and transformation data
streaming from alembic caches.

A more in-depth documentation is to be found on the wiki, as well as a
 guide to compile alembic: https://wiki.blender.org/index.php/
User:Kevindietrich/AlembicBasicIo.

Many thanks to everyone involved in this little project, and huge shout
out to "cgstrive" for the thorough testings with Maya, 3ds Max, Houdini
and Realflow as well as @fjuhec, @jensverwiebe and @jasperge for the
custom builds and compile fixes.

Reviewers: sergey, campbellbarton, mont29

Reviewed By: sergey, campbellbarton, mont29

Differential Revision: https://developer.blender.org/D2060
126 files changed:
CMakeLists.txt
build_files/build_environment/install_deps.sh
build_files/cmake/Modules/FindAlembic.cmake [new file with mode: 0644]
build_files/cmake/Modules/FindHDF5.cmake [new file with mode: 0644]
build_files/cmake/config/blender_full.cmake
build_files/cmake/config/blender_lite.cmake
build_files/cmake/config/bpy_module.cmake
build_files/cmake/macros.cmake
release/scripts/modules/sys_info.py
release/scripts/startup/bl_ui/properties_constraint.py
release/scripts/startup/bl_ui/properties_data_modifier.py
release/scripts/startup/bl_ui/space_info.py
source/blender/CMakeLists.txt
source/blender/alembic/ABC_alembic.h [new file with mode: 0644]
source/blender/alembic/CMakeLists.txt [new file with mode: 0644]
source/blender/alembic/intern/abc_camera.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_camera.h [new file with mode: 0644]
source/blender/alembic/intern/abc_curves.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_curves.h [new file with mode: 0644]
source/blender/alembic/intern/abc_customdata.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_customdata.h [new file with mode: 0644]
source/blender/alembic/intern/abc_exporter.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_exporter.h [new file with mode: 0644]
source/blender/alembic/intern/abc_hair.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_hair.h [new file with mode: 0644]
source/blender/alembic/intern/abc_mesh.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_mesh.h [new file with mode: 0644]
source/blender/alembic/intern/abc_nurbs.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_nurbs.h [new file with mode: 0644]
source/blender/alembic/intern/abc_object.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_object.h [new file with mode: 0644]
source/blender/alembic/intern/abc_points.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_points.h [new file with mode: 0644]
source/blender/alembic/intern/abc_transform.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_transform.h [new file with mode: 0644]
source/blender/alembic/intern/abc_util.cc [new file with mode: 0644]
source/blender/alembic/intern/abc_util.h [new file with mode: 0644]
source/blender/alembic/intern/alembic_capi.cc [new file with mode: 0644]
source/blender/blenkernel/BKE_cachefile.h [new file with mode: 0644]
source/blender/blenkernel/BKE_context.h
source/blender/blenkernel/BKE_library.h
source/blender/blenkernel/BKE_main.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/anim_sys.c
source/blender/blenkernel/intern/bpath.c
source/blender/blenkernel/intern/cachefile.c [new file with mode: 0644]
source/blender/blenkernel/intern/cdderivedmesh.c
source/blender/blenkernel/intern/constraint.c
source/blender/blenkernel/intern/context.c
source/blender/blenkernel/intern/depsgraph.c
source/blender/blenkernel/intern/idcode.c
source/blender/blenkernel/intern/library.c
source/blender/blenkernel/intern/library_query.c
source/blender/blenkernel/intern/library_remap.c
source/blender/blenkernel/intern/scene.c
source/blender/blenloader/CMakeLists.txt
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/writefile.c
source/blender/blentranslation/BLT_translation.h
source/blender/depsgraph/DEG_depsgraph_build.h
source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
source/blender/depsgraph/intern/builder/deg_builder_nodes.h
source/blender/depsgraph/intern/builder/deg_builder_relations.cc
source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc
source/blender/depsgraph/intern/depsgraph_build.cc
source/blender/depsgraph/intern/depsgraph_types.h
source/blender/depsgraph/intern/nodes/deg_node_component.cc
source/blender/depsgraph/intern/nodes/deg_node_component.h
source/blender/editors/animation/anim_channels_defines.c
source/blender/editors/animation/anim_channels_edit.c
source/blender/editors/animation/anim_filter.c
source/blender/editors/animation/keyframes_draw.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/include/ED_keyframes_draw.h
source/blender/editors/include/UI_interface.h
source/blender/editors/interface/interface_icons.c
source/blender/editors/interface/interface_templates.c
source/blender/editors/io/CMakeLists.txt
source/blender/editors/io/io_alembic.c [new file with mode: 0644]
source/blender/editors/io/io_alembic.h [new file with mode: 0644]
source/blender/editors/io/io_cache.c [new file with mode: 0644]
source/blender/editors/io/io_cache.h [new file with mode: 0644]
source/blender/editors/io/io_ops.c
source/blender/editors/object/object_constraint.c
source/blender/editors/space_file/filelist.c
source/blender/editors/space_file/filesel.c
source/blender/editors/space_nla/nla_buttons.c
source/blender/editors/space_nla/nla_channels.c
source/blender/editors/space_outliner/outliner_draw.c
source/blender/editors/space_outliner/outliner_intern.h
source/blender/editors/space_outliner/outliner_tree.c
source/blender/editors/space_time/space_time.c
source/blender/makesdna/DNA_ID.h
source/blender/makesdna/DNA_action_types.h
source/blender/makesdna/DNA_cachefile_types.h [new file with mode: 0644]
source/blender/makesdna/DNA_constraint_types.h
source/blender/makesdna/DNA_modifier_types.h
source/blender/makesdna/DNA_space_types.h
source/blender/makesdna/intern/makesdna.c
source/blender/makesrna/RNA_access.h
source/blender/makesrna/RNA_enum_types.h
source/blender/makesrna/intern/CMakeLists.txt
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_cachefile.c [new file with mode: 0644]
source/blender/makesrna/intern/rna_constraint.c
source/blender/makesrna/intern/rna_internal.h
source/blender/makesrna/intern/rna_main.c
source/blender/makesrna/intern/rna_main_api.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_scene_api.c
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_ui_api.c
source/blender/modifiers/CMakeLists.txt
source/blender/modifiers/MOD_modifiertypes.h
source/blender/modifiers/intern/MOD_meshsequencecache.c [new file with mode: 0644]
source/blender/modifiers/intern/MOD_util.c
source/blender/python/intern/CMakeLists.txt
source/blender/python/intern/bpy_app.c
source/blender/python/intern/bpy_app_alembic.c [new file with mode: 0644]
source/blender/python/intern/bpy_app_alembic.h [new file with mode: 0644]
source/blender/python/intern/bpy_app_build_options.c
source/blender/windowmanager/WM_api.h
source/blender/windowmanager/intern/wm_operator_props.c
source/blenderplayer/CMakeLists.txt
source/blenderplayer/bad_level_call_stubs/stubs.c