[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