[Bf-blender-cvs] [04fb4e2a629] cycles_procedural_api: only set subdivision type once
Kévin Dietrich
noreply at git.blender.org
Sun Dec 6 06:26:29 CET 2020
Commit: 04fb4e2a629e59c7065f5f821b9e7711530615d8
Author: Kévin Dietrich
Date: Fri Dec 4 17:14:56 2020 +0100
Branches: cycles_procedural_api
https://developer.blender.org/rB04fb4e2a629e59c7065f5f821b9e7711530615d8
only set subdivision type once
===================================================================
M intern/cycles/render/alembic.cpp
===================================================================
diff --git a/intern/cycles/render/alembic.cpp b/intern/cycles/render/alembic.cpp
index 722d610ac2f..ce0b1dcceba 100644
--- a/intern/cycles/render/alembic.cpp
+++ b/intern/cycles/render/alembic.cpp
@@ -1286,6 +1286,7 @@ void AlembicProcedural::read_subd(Scene *scene,
Progress &progress)
{
ISubD subd_mesh(abc_object->iobject, Alembic::Abc::kWrapExisting);
+ ISubDSchema schema = subd_mesh.getSchema();
Mesh *mesh = nullptr;
@@ -1298,6 +1299,13 @@ void AlembicProcedural::read_subd(Scene *scene,
array<Node *> used_shaders = abc_object->get_used_shaders();
mesh->set_used_shaders(used_shaders);
+ if (schema.getSubdivisionSchemeProperty().getValue() == "catmull-clark") {
+ mesh->set_subdivision_type(Mesh::SubdivisionType::SUBDIVISION_CATMULL_CLARK);
+ }
+ else {
+ mesh->set_subdivision_type(Mesh::SubdivisionType::SUBDIVISION_LINEAR);
+ }
+
/* create object*/
Object *object = scene->create_node<Object>();
object->set_owner(this);
@@ -1311,19 +1319,10 @@ void AlembicProcedural::read_subd(Scene *scene,
mesh = static_cast<Mesh *>(abc_object->get_object()->get_geometry());
}
- ISubDSchema schema = subd_mesh.getSchema();
-
if (!abc_object->has_data_loaded()) {
abc_object->load_all_data(schema, progress);
}
- if (schema.getSubdivisionSchemeProperty().getValue() == "catmull-clark") {
- mesh->set_subdivision_type(Mesh::SubdivisionType::SUBDIVISION_CATMULL_CLARK);
- }
- else {
- mesh->set_subdivision_type(Mesh::SubdivisionType::SUBDIVISION_LINEAR);
- }
-
mesh->set_subd_max_level(abc_object->get_subd_max_level());
mesh->set_subd_dicing_rate(abc_object->get_subd_dicing_rate());
More information about the Bf-blender-cvs
mailing list