[Bf-blender-cvs] [8731bf7] gooseberry: Merge branch 'openvdb' into gooseberry

Lukas Tönne noreply at git.blender.org
Thu Jun 11 11:15:21 CEST 2015


Commit: 8731bf75bc9136cc501ce72e510283f4b3c96661
Author: Lukas Tönne
Date:   Thu Jun 11 11:11:27 2015 +0200
Branches: gooseberry
https://developer.blender.org/rB8731bf75bc9136cc501ce72e510283f4b3c96661

Merge branch 'openvdb' into gooseberry

Conflicts:
	build_files/buildbot/config/user-config-player-glibc211-i686.py
	build_files/buildbot/config/user-config-player-glibc211-x86_64.py
	build_files/scons/tools/Blender.py
	intern/cycles/blender/blender_shader.cpp
	intern/cycles/kernel/svm/svm_types.h
	source/blender/blenkernel/BKE_node.h
	source/blender/blenkernel/intern/smoke.c
	source/blender/makesdna/DNA_smoke_types.h
	source/blender/makesrna/intern/rna_nodetree.c
	source/blender/makesrna/intern/rna_smoke.c

===================================================================



===================================================================

diff --cc build_files/buildbot/config/user-config-player-glibc211-i686.py
index 88889e2,2c53e56..893eb0b
--- a/build_files/buildbot/config/user-config-player-glibc211-i686.py
+++ b/build_files/buildbot/config/user-config-player-glibc211-i686.py
@@@ -120,19 -120,9 +120,22 @@@ WITH_BF_FFTW3 = Tru
  WITH_BF_STATICFFTW3 = True
  WITH_BF_OCEANSIM = True
  
 +# Alembic
 +WITH_BF_HDF5 = False
 +WITH_BF_ALEMBIC = True
 +WITH_BF_STATICALEMBIC = True
 +BF_ALEMBIC = '/opt/lib/alembic'
 +BF_ALEMBIC_INC = '${BF_ALEMBIC}/include'
 +BF_ALEMBIC_LIBPATH = '${BF_ALEMBIC}/lib/static'
 +BF_ALEMBIC_LIB_STATIC = '${BF_ALEMBIC_LIBPATH}/libAlembicAbcGeom.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbc.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicAbcCollection.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbcCoreFactory.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicAbcCoreOgawa.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbcMaterial.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicOgawa.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbcCoreAbstract.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicUtil.a'
 +
+ # OpenVDB
+ WITH_BF_OPENVDB = False
+ 
  # Compilation and optimization
  BF_DEBUG = False
  REL_CCFLAGS = ['-DNDEBUG', '-O2', '-msse', '-msse2']  # C & C++
diff --cc build_files/buildbot/config/user-config-player-glibc211-x86_64.py
index dad2ad1,2b5205e..7898738
--- a/build_files/buildbot/config/user-config-player-glibc211-x86_64.py
+++ b/build_files/buildbot/config/user-config-player-glibc211-x86_64.py
@@@ -120,19 -120,9 +120,22 @@@ WITH_BF_FFTW3 = Tru
  WITH_BF_STATICFFTW3 = True
  WITH_BF_OCEANSIM = True
  
 +# Alembic
 +WITH_BF_HDF5 = False
 +WITH_BF_ALEMBIC = True
 +WITH_BF_STATICALEMBIC = True
 +BF_ALEMBIC = '/opt/lib/alembic'
 +BF_ALEMBIC_INC = '${BF_ALEMBIC}/include'
 +BF_ALEMBIC_LIBPATH = '${BF_ALEMBIC}/lib/static'
 +BF_ALEMBIC_LIB_STATIC = '${BF_ALEMBIC_LIBPATH}/libAlembicAbcGeom.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbc.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicAbcCollection.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbcCoreFactory.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicAbcCoreOgawa.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbcMaterial.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicOgawa.a ${BF_ALEMBIC_LIBPATH}/libAlembicAbcCoreAbstract.a ' + \
 +    '${BF_ALEMBIC_LIBPATH}/libAlembicUtil.a'
 +
+ # OpenVDB
+ WITH_BF_OPENVDB = False
+ 
  # Compilation and optimization
  BF_DEBUG = False
  REL_CCFLAGS = ['-DNDEBUG', '-O2', '-msse', '-msse2']  # C & C++
diff --cc build_files/scons/tools/Blender.py
index eeaa0d2,6809ee6..60f2843
--- a/build_files/scons/tools/Blender.py
+++ b/build_files/scons/tools/Blender.py
@@@ -293,16 -288,10 +298,19 @@@ def setup_syslibs(lenv)
          if not lenv['WITH_BF_STATICOCIO']:
              syslibs += Split(lenv['BF_OCIO_LIB'])
  
 +    if lenv['WITH_BF_HDF5']:
 +        syslibs += Split(lenv['BF_HDF5_LIB'])
 +
 +    if lenv['WITH_BF_ALEMBIC']:
 +        if not lenv['WITH_BF_STATICALEMBIC']:
 +            syslibs += Split(lenv['BF_ALEMBIC_LIB'])
 +
+     if lenv['WITH_BF_OPENVDB'] and not lenv ['WITH_BF_STATICOPENVDB']:
+         syslibs += Split(lenv['BF_OPENVDB_LIB'])
++
      if lenv['WITH_BF_OPENEXR'] and not lenv['WITH_BF_STATICOPENEXR']:
          syslibs += Split(lenv['BF_OPENEXR_LIB'])
 +
      if lenv['WITH_BF_ZLIB'] and not lenv['WITH_BF_STATICZLIB']:
          syslibs += Split(lenv['BF_ZLIB_LIB'])
      if lenv['WITH_BF_TIFF'] and not lenv['WITH_BF_STATICTIFF']:
diff --cc build_files/scons/tools/btools.py
index 13f931f,c2f0f1b..e888161
--- a/build_files/scons/tools/btools.py
+++ b/build_files/scons/tools/btools.py
@@@ -180,10 -180,10 +180,11 @@@ def validate_arguments(args, bc)
              'WITH_BF_OIIO', 'WITH_BF_STATICOIIO', 'BF_OIIO', 'BF_OIIO_INC', 'BF_OIIO_LIB', 'BF_OIIO_LIB_STATIC', 'BF_OIIO_LIBPATH',
              'WITH_BF_OCIO', 'WITH_BF_STATICOCIO', 'BF_OCIO', 'BF_OCIO_INC', 'BF_OCIO_LIB', 'BF_OCIO_LIB_STATIC', 'BF_OCIO_LIBPATH',
              'WITH_BF_BOOST', 'WITH_BF_STATICBOOST', 'BF_BOOST', 'BF_BOOST_INC', 'BF_BOOST_LIB', 'BF_BOOST_LIB_INTERNATIONAL', 'BF_BOOST_LIB_STATIC', 'BF_BOOST_LIBPATH',
+             'WITH_BF_OPENVDB', 'WITH_BF_STATICOPENVDB', 'BF_OPENVDB', 'BF_OPENVDB_INC', 'BF_OPENVDB_LIB', 'BF_OPENVDB_LIB_STATIC', 'BF_OPENVDB_LIB_PATH',
              'WITH_BF_LIBMV', 'WITH_BF_LIBMV_SCHUR_SPECIALIZATIONS',
              'WITH_BF_CYCLES_OSL', 'WITH_BF_STATICOSL', 'BF_OSL', 'BF_OSL_INC', 'BF_OSL_LIB', 'BF_OSL_LIBPATH', 'BF_OSL_LIB_STATIC', 'BF_OSL_COMPILER',
 -            'WITH_BF_LLVM', 'WITH_BF_STATICLLVM', 'BF_LLVM', 'BF_LLVM_LIB', 'BF_LLVM_LIBPATH', 'BF_LLVM_LIB_STATIC', 'BF_PROGRAM_LINKFLAGS'
 +            'WITH_BF_LLVM', 'WITH_BF_STATICLLVM', 'BF_LLVM', 'BF_LLVM_LIB', 'BF_LLVM_LIBPATH', 'BF_LLVM_LIB_STATIC', 'BF_PROGRAM_LINKFLAGS',
 +            'WITH_BF_ALEMBIC', 'BF_ALEMBIC', 'BF_ALEMBIC_INC', 'BF_ALEMBIC_LIB', 'BF_ALEMBIC_LIBPATH',
              ]
  
      # Have options here that scons expects to be lists
diff --cc intern/cycles/blender/blender_shader.cpp
index 6c54149,a987c46..140560b
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@@ -737,34 -736,34 +737,62 @@@ static ShaderNode *add_node(Scene *scen
  		uvm->from_dupli = b_uvmap_node.from_dupli();
  		node = uvm;
  	}
 +	else if(b_node.is_a(&RNA_ShaderNodeTexPointDensity)) {
 +		BL::ShaderNodeTexPointDensity b_point_density_node(b_node);
 +		PointDensityTextureNode *point_density = new PointDensityTextureNode();
 +		point_density->filename = b_point_density_node.name();
 +		point_density->space =
 +		        PointDensityTextureNode::space_enum[(int)b_point_density_node.space()];
 +		point_density->interpolation =
 +		        (InterpolationType)b_point_density_node.interpolation();
 +		point_density->builtin_data = b_point_density_node.ptr.data;
 +
 +		/* Transformation form world space to texture space. */
 +		BL::Object b_ob(b_point_density_node.object());
 +		if(b_ob) {
 +			float3 loc, size;
 +			point_density_texture_space(b_point_density_node, loc, size);
 +			point_density->tfm =
 +			        transform_translate(-loc) * transform_scale(size) *
 +			        transform_inverse(get_transform(b_ob.matrix_world()));
 +		}
 +
 +		/* TODO(sergey): Use more proper update flag. */
 +		if(true) {
 +			scene->image_manager->tag_reload_image(point_density->filename,
 +			                                       point_density->builtin_data,
 +			                                       point_density->interpolation);
 +		}
 +		node = point_density;
 +	}
+ 	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() == 1) {
+ 			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 intern/cycles/kernel/svm/svm_types.h
index 641d30a,d9cdd7e..28e55a1
--- a/intern/cycles/kernel/svm/svm_types.h
+++ b/intern/cycles/kernel/svm/svm_types.h
@@@ -126,7 -126,7 +126,8 @@@ typedef enum NodeType 
  	NODE_NORMAL_MAP,
  	NODE_HAIR_INFO,
  	NODE_UVMAP,
 +	NODE_TEX_VOXEL,
+ 	NODE_OPENVDB,
  } NodeType;
  
  typedef enum NodeAttributeType {
@@@ -350,11 -350,11 +351,16 @@@ typedef enum NodeBumpOffset 
  	NODE_BUMP_OFFSET_DY,
  } NodeBumpOffset;
  
 +typedef enum NodeTexVoxelSpace {
 +	NODE_TEX_VOXEL_SPACE_OBJECT = 0,
 +	NODE_TEX_VOXEL_SPACE_WORLD  = 1,
 +} NodeTexVoxelSpace;
 +
+ typedef enum NodeOpenVDBType {
+ 	NODE_VDB_FLOAT  = 0,
+ 	NODE_VDB_FLOAT3 = 1,
+ } NodeOpenVDBType;
+ 
  typedef enum ShaderType {
  	SHADER_TYPE_SURFACE,
  	SHADER_TYPE_VOLUME,
diff --cc source/blender/blenkernel/BKE_node.h
index 0a6c21c,d19b0c9..dc157f6
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@@ -782,7 -790,7 +790,8 @@@ struct ShadeResult
  #define SH_NODE_COMBXYZ					189
  #define SH_NODE_OUTPUT_LINESTYLE		190
  #define SH_NODE_UVALONGSTROKE			191
 -#define SH_NODE_OPENVDB					192
 +#define SH_NODE_TEX_POINTDENSITY		192
++#define SH_NODE_OPENVDB					193
  
  /* custom defines options for Material node */
  #define SH_NODE_MAT_DIFF   1
diff --cc source/blender/blenkernel/intern/smoke.c
index 6a0af3e,1bf7660..0fb94e4
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@@ -567,7 -576,7 +578,9 @@@ void smokeModifier_createType(struct Sm
  			smd->domain->viewsettings = MOD_SMOKE_VIEW_SHOWBIG;
  			smd->domain->effector_weights = BKE_add_effector_weights(NULL);
  
 +			smd->domain->display_thickness = 1.0f;
++
+ 			smd->domain->use_openvdb = false;
  		}
  		else if (smd->type & MOD_SMOKE_TYPE_FLOW)
  		{
diff --cc source/blender/makesdna/DNA_smoke_types.h
index 54b734f,522b19b..7241ea4
--- a/source/blender/makesdna/DNA_smoke_types.h
+++ b/source/blender/makesdna/DNA_smoke_types.h
@@@ -152,11 -153,29 +155,33 @@@ typedef struct SmokeDomainSettings 
  	float flame_ignition, flame_max_temp;
  	float flame_smoke_color[3];
  
 +	/* display */
 +	float display_thickness;
 +	int pad2;
++
+ 	struct ListBase vdb_caches;
 -	short use_openvdb, pad[3];
++	short use_openvdb, pad3[3];
  } SmokeDomainSettings;
  
+ typedef struct OpenVDBCache {
+ 	struct OpenVDBCache *next, *prev;
+ 	struct OpenVDBReader *reader;
+ 	struct OpenVDBWriter *writer;
+ 	char path[1024];
+ 	char name[64];
+ 	int startframe, endframe;
+ 	short flag, compression, pad[2];
+ } OpenVDBCache;
+ 
+ enum {
+ 	VDB_CACHE_CURRENT = 1,
+ };
+ 
+ enum {
+ 	VDB_COMPRESSION_ZIP   = 0,
+ 	VDB_COMPRESSION_BLOSC = 1,
+ 	VDB_COMPRESSION_NONE  = 2,
+ };
  
  /* i

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list