[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