[Bf-blender-cvs] [d7e0c52ef0c] cycles_procedural_api: avoid reopening the archive at every frame
Kévin Dietrich
noreply at git.blender.org
Tue Sep 22 17:29:46 CEST 2020
Commit: d7e0c52ef0c47b3abae1de514776122a649d2dbf
Author: Kévin Dietrich
Date: Tue Sep 22 15:27:11 2020 +0200
Branches: cycles_procedural_api
https://developer.blender.org/rBd7e0c52ef0c47b3abae1de514776122a649d2dbf
avoid reopening the archive at every frame
===================================================================
M intern/cycles/render/alembic.cpp
M intern/cycles/render/alembic.h
===================================================================
diff --git a/intern/cycles/render/alembic.cpp b/intern/cycles/render/alembic.cpp
index fa4798350ba..4d57ca35e57 100644
--- a/intern/cycles/render/alembic.cpp
+++ b/intern/cycles/render/alembic.cpp
@@ -250,15 +250,17 @@ void AlembicProcedural::generate(Scene *scene)
return;
}
- Alembic::AbcCoreFactory::IFactory factory;
- factory.setPolicy(Alembic::Abc::ErrorHandler::kQuietNoopPolicy);
- IArchive archive = factory.getArchive(filepath.c_str());
-
if (!archive.valid()) {
- // avoid potential infinite update loops in viewport synchronization
- clear_modified();
- // TODO : error reporting
- return;
+ Alembic::AbcCoreFactory::IFactory factory;
+ factory.setPolicy(Alembic::Abc::ErrorHandler::kQuietNoopPolicy);
+ archive = factory.getArchive(filepath.c_str());
+
+ if (!archive.valid()) {
+ // avoid potential infinite update loops in viewport synchronization
+ clear_modified();
+ // TODO : error reporting
+ return;
+ }
}
auto frame_time = (Abc::chrono_t)(frame / frame_rate);
diff --git a/intern/cycles/render/alembic.h b/intern/cycles/render/alembic.h
index b3197cb2e1d..55679a04edf 100644
--- a/intern/cycles/render/alembic.h
+++ b/intern/cycles/render/alembic.h
@@ -86,6 +86,8 @@ class AlembicProcedural : public Procedural {
array<AlembicObject *> objects; // todo : Node::set
private:
+ IArchive archive;
+
void read_mesh(Scene *scene,
AlembicObject *abc_object,
Transform xform,
More information about the Bf-blender-cvs
mailing list