diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2012-07-25 20:44:43 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2012-07-25 20:44:43 +0400 |
commit | 0e31dcdf0d50e6637d3fcd5bea87e8e1b1d375d1 (patch) | |
tree | 6f5fa2a5c4bd85cf34b6b7a9ff13e4b15ee9b149 | |
parent | e9d3a54a4069ec2c59b9ed31ef2b2af2da94f94d (diff) |
Reorganize some code + fix "use_volumetric" flag (true if smoke is used, false if not)
-rw-r--r-- | intern/cycles/blender/blender_object.cpp | 8 | ||||
-rw-r--r-- | intern/cycles/blender/blender_smoke.cpp | 12 |
2 files changed, 8 insertions, 12 deletions
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index f3184ca0989..3ae7cfc3524 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -255,6 +255,7 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, object->motion.pre = tfm; object->motion.post = tfm; object->use_motion = false; + object->use_volume = false; object->random_id = hash_int_2d(hash_string(object->name.c_str()), b_index); @@ -278,8 +279,11 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, if (object_use_particles(b_ob)) sync_particles(object, b_ob); - // if(BKE_modifiers_isSmokeEnabled(b_ob)) - // sync_smoke(object, b_ob); + if(BKE_modifiers_isSmokeEnabled(b_ob)) + { + object->use_volume = true; + sync_smoke(object, b_ob); + } object->tag_update(scene); } diff --git a/intern/cycles/blender/blender_smoke.cpp b/intern/cycles/blender/blender_smoke.cpp index 61e6282771f..742b488aa5a 100644 --- a/intern/cycles/blender/blender_smoke.cpp +++ b/intern/cycles/blender/blender_smoke.cpp @@ -74,22 +74,14 @@ void BlenderSync::sync_smoke(Object *ob, BL::Object b_ob) BL::SmokeModifier *smd = get_smoke(b_ob); BL::SmokeDomainSettings sds = smd->domain_settings(); + ob->grid.clear(); ob->resolution = get_int3(sds.domain_resolution()); - // int rna_SmokeModifier_density_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION]); - // void rna_SmokeModifier_density_get(PointerRNA *ptr, float *values); - int length[3]; int numcells = rna_SmokeModifier_density_get_length(&sds.ptr, length); - - ob->grid.clear(); - if(numcells == 0) - ob->use_volume = false; // still needs to be rendered transparent! - else + if(numcells != 0) { - ob->use_volume = true; - vector<float> &grid = ob->grid; grid.reserve(numcells); grid.resize(numcells); |