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:
authorDaniel Genrich <daniel.genrich@gmx.net>2012-07-25 20:44:43 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2012-07-25 20:44:43 +0400
commit0e31dcdf0d50e6637d3fcd5bea87e8e1b1d375d1 (patch)
tree6f5fa2a5c4bd85cf34b6b7a9ff13e4b15ee9b149
parente9d3a54a4069ec2c59b9ed31ef2b2af2da94f94d (diff)
Reorganize some code + fix "use_volumetric" flag (true if smoke is used, false if not)
-rw-r--r--intern/cycles/blender/blender_object.cpp8
-rw-r--r--intern/cycles/blender/blender_smoke.cpp12
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);