Revision: 49133
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49133
Author:   genscher
Date:     2012-07-23 09:18:32 +0000 (Mon, 23 Jul 2012)
Log Message:
-----------
Start to work on Smoke + Cycles.

Goal is a proof of concept, then cleaning code up :-)

Modified Paths:
--------------
    branches/smoke2/intern/cycles/blender/blender_object.cpp
    branches/smoke2/intern/cycles/blender/blender_sync.h
    branches/smoke2/intern/cycles/render/object.h

Modified: branches/smoke2/intern/cycles/blender/blender_object.cpp
===================================================================
--- branches/smoke2/intern/cycles/blender/blender_object.cpp    2012-07-23 
02:16:26 UTC (rev 49132)
+++ branches/smoke2/intern/cycles/blender/blender_object.cpp    2012-07-23 
09:18:32 UTC (rev 49133)
@@ -53,6 +53,26 @@
        return false;
 }
 
+/* Only looking for Smoke domains */
+// TODO DG: disable rendering of smoke flow??
+bool BlenderSync::BKE_modifiers_isSmokeEnabled(BL::Object b_ob)
+{
+       BL::Object::modifiers_iterator b_modifiers;
+       for(b_ob.modifiers.begin(b_modifiers); b_modifiers != 
b_ob.modifiers.end(); ++b_modifiers) {
+               BL::Modifier mod = (*b_modifiers);
+
+               if (mod.is_a(&RNA_SmokeModifier)) {
+                       BL::SmokeModifier smd(mod);
+
+                       if(smd.smoke_type() == 
BL::SmokeModifier::smoke_type_DOMAIN) {
+                               return true;
+                       }
+               }
+       }
+
+       return false;
+}
+
 bool BlenderSync::object_is_mesh(BL::Object b_ob)
 {
        BL::ID b_ob_data = b_ob.data();
@@ -242,6 +262,11 @@
        /* mesh sync */
        object->mesh = sync_mesh(b_ob, object_updated);
 
+       if(BKE_modifiers_isSmokeEnabled(b_ob))
+       {
+               // TODO DG sync_volume(b_ob);
+       }
+
        if(use_holdout != object->use_holdout) {
                object->use_holdout = use_holdout;
                scene->object_manager->tag_update(scene);

Modified: branches/smoke2/intern/cycles/blender/blender_sync.h
===================================================================
--- branches/smoke2/intern/cycles/blender/blender_sync.h        2012-07-23 
02:16:26 UTC (rev 49132)
+++ branches/smoke2/intern/cycles/blender/blender_sync.h        2012-07-23 
09:18:32 UTC (rev 49133)
@@ -90,6 +90,7 @@
        /* util */
        void find_shader(BL::ID id, vector<uint>& used_shaders, int 
default_shader);
        bool BKE_object_is_modified(BL::Object b_ob);
+       bool BKE_modifiers_isSmokeEnabled(BL::Object b_ob);
        bool object_is_mesh(BL::Object b_ob);
        bool object_is_light(BL::Object b_ob);
        bool object_use_particles(BL::Object b_ob);

Modified: branches/smoke2/intern/cycles/render/object.h
===================================================================
--- branches/smoke2/intern/cycles/render/object.h       2012-07-23 02:16:26 UTC 
(rev 49132)
+++ branches/smoke2/intern/cycles/render/object.h       2012-07-23 09:18:32 UTC 
(rev 49133)
@@ -57,6 +57,11 @@
        int particle_id;
        vector<Particle> particles;
 
+       /* Voxel / 3D volume data */
+       bool use_volume;
+       int3 resolution;
+       vector<float3> grid;
+
        Object();
        ~Object();
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to