[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