Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMai Lavelle <mai.lavelle@gmail.com>2017-01-25 08:35:20 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-01-26 13:16:34 +0300
commit672fbbfb4e9e66ab081393ae854f1cba0f2b350d (patch)
tree31a965c8efa0f00c62b85e21bd78f36fb8aa5261
parent59c224ebc7a86e18de28127685675ba9bbfea613 (diff)
Fix T49405: Crash when baking with adaptive subdivision
Blenders baking system currently doesn't support the topology used by adaptive subdivision and primitive ids will be wrong or out of range leading to crashes. Updating the baking system to support other topologies would be a bit involved, so for now we simply disable subdivision while baking to avoid crashes.
-rw-r--r--intern/cycles/blender/blender_mesh.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 66893d4d668..85117cfff7b 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -927,6 +927,13 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob,
mesh->subdivision_type = object_subdivision_type(b_ob, preview, experimental);
+ /* Disable adaptive subdivision while baking as the baking system
+ * currently doesnt support the topology and will crash.
+ */
+ if(scene->bake_manager->get_baking()) {
+ mesh->subdivision_type = Mesh::SUBDIVISION_NONE;
+ }
+
BL::Mesh b_mesh = object_to_mesh(b_data,
b_ob,
b_scene,