[Bf-blender-cvs] [29c51dd] openvdb: Added a method to check for sparse volumes.
Kévin Dietrich
noreply at git.blender.org
Sun Nov 13 21:43:59 CET 2016
Commit: 29c51dd1ed700c93ef00e1e5bc294f48785e15a8
Author: Kévin Dietrich
Date: Sat Jan 30 23:23:27 2016 +0100
Branches: openvdb
https://developer.blender.org/rB29c51dd1ed700c93ef00e1e5bc294f48785e15a8
Added a method to check for sparse volumes.
===================================================================
M intern/cycles/blender/blender_object.cpp
M intern/cycles/blender/blender_sync.h
M intern/cycles/kernel/kernel_shader.h
===================================================================
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index d77d197..646a193 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -73,6 +73,34 @@ bool BlenderSync::object_is_light(BL::Object b_ob)
return (b_ob_data && b_ob_data.is_a(&RNA_Lamp));
}
+bool BlenderSync::object_has_sparse_volume(BL::Object b_ob)
+{
+ BL::SmokeDomainSettings b_domain = object_smoke_domain_find(b_ob);
+
+ if(!b_domain) {
+ return false;
+ }
+
+ BL::PointCache b_ptcache = b_domain.point_cache();
+
+ if (!b_ptcache.is_baked()) {
+ return false;
+ }
+
+ if (b_domain.cache_file_format() != BL::SmokeDomainSettings::cache_file_format_OPENVDB) {
+ return false;
+ }
+
+#if 0
+ char filename[1024];
+ SmokeDomainSettings_cache_filename_get(&b_domain.ptr, filename);
+
+ return strcmp(filename, "");
+#else
+ return true;
+#endif
+}
+
static uint object_ray_visibility(BL::Object b_ob)
{
PointerRNA cvisibility = RNA_pointer_get(&b_ob.ptr, "cycles_visibility");
@@ -348,9 +376,10 @@ Object *BlenderSync::sync_object(BL::Object b_parent,
bool use_holdout = (layer_flag & render_layer.holdout_layer) != 0;
if(object_has_sparse_volume(b_ob)) {
- object->mesh = NULL;
+ //object->mesh = NULL;
+ printf("object has sparse volume\n");
}
- else {
+ /*else*/ {
/* mesh sync */
object->mesh = sync_mesh(b_ob, object_updated, hide_tris);
}
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index 2eb153a..addf655 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -123,6 +123,7 @@ private:
bool BKE_object_is_modified(BL::Object b_ob);
bool object_is_mesh(BL::Object b_ob);
bool object_is_light(BL::Object b_ob);
+ bool object_has_sparse_volume(BL::Object b_ob);
/* variables */
BL::RenderEngine b_engine;
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index c8550d2..1a331ab 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -104,7 +104,7 @@ ccl_device_noinline void shader_setup_from_ray(KernelGlobals *kg,
#endif
}
else if(ccl_fetch(sd, type) & PRIMITIVE_VOLUME) {
- ccl_fetch(sd, shader) = kernel_tex_fetch(__vol_shader, ccl_fetch(sd, prim));
+ // ccl_fetch(sd, shader) = kernel_tex_fetch(__vol_shader, ccl_fetch(sd, prim));
}
else {
/* motion triangle */
More information about the Bf-blender-cvs
mailing list