[Bf-blender-cvs] [2ee0301] openvdb: Merge branch 'master' into openvdb
Kévin Dietrich
noreply at git.blender.org
Thu Jul 23 11:31:13 CEST 2015
Commit: 2ee03015542ec9bd8c6043ecb90984a77c71f68e
Author: Kévin Dietrich
Date: Thu Jul 23 11:31:40 2015 +0200
Branches: openvdb
https://developer.blender.org/rB2ee03015542ec9bd8c6043ecb90984a77c71f68e
Merge branch 'master' into openvdb
===================================================================
===================================================================
diff --cc CMakeLists.txt
index 60d4ff2,712e16d..91040c1
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -221,10 -221,14 +221,17 @@@ mark_as_advanced(WITH_SYSTEM_BULLET
option(WITH_GAMEENGINE "Enable Game Engine" ${_init_GAMEENGINE})
option(WITH_PLAYER "Build Player" OFF)
option(WITH_OPENCOLORIO "Enable OpenColorIO color management" ${_init_OPENCOLORIO})
- option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
+
+ # Compositor
+ option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
+ option(WITH_COMPOSITOR_WERROR "Treat warnings as errors in compositor code" OFF)
+ mark_as_advanced(WITH_COMPOSITOR_WERROR)
+
+ option(WITH_OPENSUBDIV "Enable OpenSubdiv for surface subdivision" OFF)
+
+option(WITH_OPENVDB "Enable features relying on OpenVDB" ON)
+option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enble if OpenVDB was built with blosc support" OFF)
+
# GHOST Windowing Library Options
option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF)
mark_as_advanced(WITH_GHOST_DEBUG)
diff --cc build_files/cmake/macros.cmake
index 4429065,34f6a36..e8cd5ff
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@@ -373,9 -370,16 +373,19 @@@ function(setup_liblink
if(WITH_OPENCOLORIO)
target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES})
endif()
+ if(WITH_OPENSUBDIV)
+ if(WIN32 AND NOT UNIX)
+ file_list_suffix(OPENSUBDIV_LIBRARIES_DEBUG "${OPENSUBDIV_LIBRARIES}" "_d")
+ target_link_libraries_debug(${target} "${OPENSUBDIV_LIBRARIES_DEBUG}")
+ target_link_libraries_optimized(${target} "${OPENSUBDIV_LIBRARIES}")
+ unset(OPENSUBDIV_LIBRARIES_DEBUG)
+ else()
+ target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES})
+ endif()
+ endif()
+ if(WITH_OPENVDB)
+ target_link_libraries(${target} ${OPENVDB_LIBRARIES})
+ endif()
if(WITH_CYCLES_OSL)
target_link_libraries(${target} ${OSL_LIBRARIES})
endif()
@@@ -680,10 -684,10 +690,14 @@@ function(SETUP_BLENDER_SORTED_LIBS
list_insert_after(BLENDER_SORTED_LIBS "ge_logic_ngnetwork" "extern_bullet")
endif()
+ if(WITH_OPENSUBDIV)
+ list(APPEND BLENDER_SORTED_LIBS bf_intern_opensubdiv)
+ endif()
+
+ if(WITH_OPENVDB)
+ list(APPEND BLENDER_SORTED_LIBS bf_intern_openvdb)
+ endif()
+
foreach(SORTLIB ${BLENDER_SORTED_LIBS})
set(REMLIB ${SORTLIB})
foreach(SEARCHLIB ${BLENDER_LINK_LIBS})
diff --cc build_files/scons/config/win32-mingw-config.py
index 704be73,3a4dfce..ff57cd9
--- a/build_files/scons/config/win32-mingw-config.py
+++ b/build_files/scons/config/win32-mingw-config.py
@@@ -166,12 -166,12 +166,18 @@@ BF_BOOST_LIB = 'boost_date_time-mgw46-m
BF_BOOST_LIB_INTERNATIONAL = 'boost_locale-mgw46-mt-s-1_49'
BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
+ WITH_BF_OPENSUBDIV = False
+ BF_OPENSUBDIV = LIBDIR + '/opensubdiv'
+ BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
+ BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
+ BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
+
+WITH_BF_OPENVDB = True
+BF_OPENVDB = LIBDIR + '/openvdb'
+BF_OPENVDB_INC = '${BF_OPENVDB}/include'
+BF_OPENVDB_LIB = 'openvdb tbb'
+BF_OPENVDB_LIB_PATH = '${BF_OPENVDB}/lib'
+
#Ray trace optimization
WITH_BF_RAYOPTIMIZATION = True
BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse']
diff --cc build_files/scons/config/win64-mingw-config.py
index bc4278d,16d8591..7123aed
--- a/build_files/scons/config/win64-mingw-config.py
+++ b/build_files/scons/config/win64-mingw-config.py
@@@ -165,12 -165,12 +165,18 @@@ BF_BOOST_LIB = 'boost_date_time-mgw47-m
BF_BOOST_LIB_INTERNATIONAL = ' boost_locale-mgw47-mt-s-1_49 boost_locale-mgw47-mt-sd-1_49'
BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
+ WITH_BF_OPENSUBDIV = False
+ BF_OPENSUBDIV = LIBDIR + '/opensubdiv'
+ BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
+ BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
+ BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
+
+WITH_BF_OPENVDB = True
+BF_OPENVDB = LIBDIR + '/openvdb'
+BF_OPENVDB_INC = '${BF_OPENVDB}/include'
+BF_OPENVDB_LIB = 'openvdb tbb'
+BF_OPENVDB_LIB_PATH = '${BF_OPENVDB}/lib'
+
#Ray trace optimization
WITH_BF_RAYOPTIMIZATION = True
BF_RAYOPTIMIZATION_SSE_FLAGS = ['-mmmx', '-msse', '-msse2']
diff --cc build_files/scons/tools/btools.py
index c2f0f1b,931b557..f32498f
--- 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_OPENSUBDIV', 'WITH_BF_STATICOPENSUBDIV', 'BF_OPENSUBDIV', 'BF_OPENSUBDIV_INC', 'BF_OPENSUBDIV_LIB', 'BF_OPENSUBDIV_LIBPATH', 'BF_OPENSUBDIV_LIB_STATIC'
]
# Have options here that scons expects to be lists
diff --cc intern/CMakeLists.txt
index cf7f913,4ee3dff..f2fba7b
--- a/intern/CMakeLists.txt
+++ b/intern/CMakeLists.txt
@@@ -81,8 -85,3 +85,7 @@@ endif(
if(WIN32)
add_subdirectory(utfconv)
endif()
+
+if(WITH_OPENVDB)
+ add_subdirectory(openvdb)
+endif()
-
diff --cc intern/SConscript
index d416cab,a13f675..1985bcd
--- a/intern/SConscript
+++ b/intern/SConscript
@@@ -63,5 -63,5 +63,8 @@@ if env['WITH_BF_BULLET']
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-mingw', 'linuxcross', 'win64-vc'):
SConscript(['utfconv/SConscript'])
+ if env['WITH_BF_OPENSUBDIV']:
+ SConscript (['opensubdiv/SConscript'])
++
+if env['WITH_BF_OPENVDB']:
+ SConscript (['openvdb/SConscript'])
diff --cc intern/cycles/blender/blender_shader.cpp
index 2f6b77a,2942471..c7c6d4a
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@@ -736,34 -741,36 +741,64 @@@ 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,
+ EXTENSION_CLIP);
+ }
+ 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() == 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 intern/cycles/kernel/svm/svm.h
index 7dcbb2d,69b9806..7fc4c1f
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@@ -447,12 -447,12 +448,17 @@@ ccl_device_noinline void svm_eval_nodes
svm_node_blackbody(kg, sd, stack, node.y, node.z);
break;
# endif /* __EXTRA_NODES__ */
+ # if NODES_FEATURE(NODE_FEATURE_VOLUME) && !defined(__KERNEL_GPU__)
+ case NODE_TEX_VOXEL:
+ svm_node_tex_voxel(kg, sd, stack, node, &offset);
+ break;
+ # endif /* NODES_FEATURE(NODE_FEATURE_VOLUME) && !defined(__KERNEL_GPU__) */
#endif /* NODES_GROUP(NODE_GROUP_LEVEL_3) */
+#ifdef __OPENVDB__
+ case NODE_OPENVDB:
+ svm_node_openvdb(kg, sd, stack, node);
+ break;
+#endif
case NODE_END:
return;
default:
diff --cc intern/cycles/kernel/svm/svm_types.h
index d9cdd7e,641d30a..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;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list