[Bf-blender-cvs] [0e9ccb3] openvdb: Merge branch 'master' into openvdb
Kévin Dietrich
noreply at git.blender.org
Fri Jan 29 21:39:46 CET 2016
Commit: 0e9ccb3c124496b173b83c7fc94b3080af8abfac
Author: Kévin Dietrich
Date: Wed Jan 27 12:53:54 2016 +0100
Branches: openvdb
https://developer.blender.org/rB0e9ccb3c124496b173b83c7fc94b3080af8abfac
Merge branch 'master' into openvdb
Conflicts:
source/blender/makesrna/intern/rna_nodetree.c
===================================================================
===================================================================
diff --cc intern/cycles/blender/blender_shader.cpp
index 496ffb6,a06a609..2d65720
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@@ -824,35 -816,25 +816,53 @@@ static ShaderNode *add_node(Scene *scen
EXTENSION_CLIP);
}
node = point_density;
+
+ /* Transformation form world space to texture space.
+ *
+ * NOTE: Do this after the texture is cached, this is because getting
+ * min/max will need to access this cache.
+ */
+ BL::Object b_ob(b_point_density_node.object());
+ if(b_ob) {
+ float3 loc, size;
+ point_density_texture_space(b_scene,
+ b_point_density_node,
+ settings,
+ loc,
+ size);
+ point_density->tfm =
+ transform_translate(-loc) * transform_scale(size) *
+ transform_inverse(get_transform(b_ob.matrix_world()));
+ }
}
+ else if(b_node.is_a(&RNA_ShaderNodeOpenVDB)) {
+ BL::ShaderNodeOpenVDB b_vdb_node(b_node);
+ OpenVDBNode *vdb_node = new OpenVDBNode();
+ vdb_node->filename = b_vdb_node.filename();
+ vdb_node->sampling = b_vdb_node.sampling();
+
+ /* TODO(kevin) */
+ if(b_vdb_node.source() == BL::ShaderNodeOpenVDB::source_SEQUENCE) {
+ string filename = b_vdb_node.filename();
+ string basename = filename.substr(0, filename.size() - 8);
+ stringstream ss;
+ ss << b_scene.frame_current();
+ string frame = ss.str();
+ frame.insert(frame.begin(), 4 - frame.size(), '0');
+
+ vdb_node->filename = ustring::format("%s%s.vdb", basename, frame);
+ }
+
+ BL::Node::outputs_iterator b_output;
+
+ for(b_vdb_node.outputs.begin(b_output); b_output != b_vdb_node.outputs.end(); ++b_output) {
+ vdb_node->output_names.push_back(ustring(b_output->name()));
+ vdb_node->add_output(vdb_node->output_names.back().c_str(),
+ convert_socket_type(*b_output));
+ }
+
+ node = vdb_node;
+ }
if(node)
graph->add(node);
diff --cc source/blender/makesrna/intern/rna_nodetree.c
index 6075c7a,f06492e..61e174e
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@@ -3100,18 -3100,22 +3100,34 @@@ void rna_ShaderNodePointDensity_density
BKE_texture_pointdensity_free_data(pd);
}
+ void rna_ShaderNodePointDensity_density_minmax(bNode *self,
+ Scene *scene,
+ int settings,
+ float r_min[3],
+ float r_max[3])
+ {
+ NodeShaderTexPointDensity *shader_point_density = self->storage;
+ PointDensity *pd = &shader_point_density->pd;
+ if (scene == NULL) {
+ zero_v3(r_min);
+ zero_v3(r_max);
+ return;
+ }
+ RE_point_density_minmax(scene, pd, settings == 1, r_min, r_max);
+ }
+
+static void rna_ShaderNodeOpenVDB_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+ bNodeTree *ntree = (bNodeTree *)ptr->id.data;
+ bNode *node = (bNode *)ptr->data;
+
+ ntreeUpdateOpenVDBNode(bmain, ntree, node);
+ ntreeUpdateTree(bmain, ntree);
+ WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
+
+ UNUSED_VARS(scene);
+}
+
#else
static EnumPropertyItem prop_image_layer_items[] = {
More information about the Bf-blender-cvs
mailing list