[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