Revision: 5109 http://sourceforge.net/p/smartbody/code/5109 Author: fengww Date: 2013-10-23 18:26:54 +0000 (Wed, 23 Oct 2013) Log Message: ----------- Add voxel rigging option in Retarget Viewer to voxelize the input mesh before auto-rigging. The original auto-rigging method in Pinocchio requires a watertight and single component mesh to work. The new option creates a 'voxel mesh' that is watertight and single component mesh from the input mesh ( which could contain holes and has multiple components ). The 'voxel mesh' is used to generate the skeleton, and the subsequent skinning weights are transferred back to the original mesh. Thus the auto-rigging can now work on arbitrary character mesh.
Add PolyVox library (zlib license) for some voxel operations. Also modified some part of Pinocchio library to process voxelized mesh. Some minor changes in SrModel to allow correct normalization. Modified Paths: -------------- trunk/core/smartbody/SmartBody/src/sr/sr_model.cpp trunk/core/smartbody/sbgui/external/Pinocchio/attachment.cpp trunk/core/smartbody/sbgui/external/Pinocchio/attachment.h trunk/core/smartbody/sbgui/external/Pinocchio/lib/Pinocchio.dll trunk/core/smartbody/sbgui/external/Pinocchio/lib/Pinocchio.lib trunk/core/smartbody/sbgui/external/Pinocchio/lib/Pinocchio.pdb trunk/core/smartbody/sbgui/external/Pinocchio/pinocchioApi.cpp trunk/core/smartbody/sbgui/external/Pinocchio/pinocchioApi.h trunk/core/smartbody/sbgui/external/Pinocchio/pointprojector.h trunk/core/smartbody/sbgui/external/Pinocchio/skeleton.cpp trunk/core/smartbody/sbgui/src/autorig/SBAutoRigManager.cpp trunk/core/smartbody/sbgui/src/autorig/SBAutoRigManager.h trunk/core/smartbody/sbgui/src/jointmapviewer/RetargetStepWindow.cpp trunk/core/smartbody/sbgui/src/jointmapviewer/RetargetStepWindow.h trunk/core/smartbody/sbgui/visualc9/sbgui.vcxproj trunk/core/smartbody/sbgui/visualc9/sbgui.vcxproj.filters trunk/vs2010.sln Added Paths: ----------- trunk/core/smartbody/sbgui/external/polyvox/ trunk/core/smartbody/sbgui/external/polyvox/CHANGELOG.txt trunk/core/smartbody/sbgui/external/polyvox/CMakeLists.txt trunk/core/smartbody/sbgui/external/polyvox/CREDITS.txt trunk/core/smartbody/sbgui/external/polyvox/CTestConfig.cmake trunk/core/smartbody/sbgui/external/polyvox/INSTALL.txt trunk/core/smartbody/sbgui/external/polyvox/LICENSE.TXT trunk/core/smartbody/sbgui/external/polyvox/Packaging.cmake trunk/core/smartbody/sbgui/external/polyvox/README.rst trunk/core/smartbody/sbgui/external/polyvox/TODO.txt trunk/core/smartbody/sbgui/external/polyvox/build/ trunk/core/smartbody/sbgui/external/polyvox/build/lib/ trunk/core/smartbody/sbgui/external/polyvox/build/lib/PolyVoxCore.lib trunk/core/smartbody/sbgui/external/polyvox/build/lib/PolyVoxCore_d.lib trunk/core/smartbody/sbgui/external/polyvox/build/library/ trunk/core/smartbody/sbgui/external/polyvox/build/library/CMakeFiles/ trunk/core/smartbody/sbgui/external/polyvox/build/library/CMakeFiles/generate.stamp trunk/core/smartbody/sbgui/external/polyvox/build/library/CMakeFiles/generate.stamp.depend trunk/core/smartbody/sbgui/external/polyvox/build/library/INSTALL.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/INSTALL.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/PACKAGE.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/PACKAGE.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxConfig.cmake trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/ trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/ALL_BUILD.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/ALL_BUILD.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/CMakeFiles/ trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/CMakeFiles/generate.stamp trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/CMakeFiles/generate.stamp.depend trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/INSTALL.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/INSTALL.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/PACKAGE.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/PACKAGE.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/PolyVoxCore.dir/ trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/PolyVoxCore.sln trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/PolyVoxCore.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/PolyVoxCore.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/PolyVoxCore.vcxproj.user trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/RUN_TESTS.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/RUN_TESTS.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/PolyVoxCore/cmake_install.cmake trunk/core/smartbody/sbgui/external/polyvox/build/library/RUN_TESTS.vcxproj trunk/core/smartbody/sbgui/external/polyvox/build/library/RUN_TESTS.vcxproj.filters trunk/core/smartbody/sbgui/external/polyvox/build/library/cmake_install.cmake trunk/core/smartbody/sbgui/external/polyvox/library/ trunk/core/smartbody/sbgui/external/polyvox/library/CMakeLists.txt trunk/core/smartbody/sbgui/external/polyvox/library/Doxyfile.in trunk/core/smartbody/sbgui/external/polyvox/library/Mainpage.dox trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxConfig.cmake.in trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/CMakeLists.txt trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/AStarPathfinder.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/AStarPathfinder.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/AmbientOcclusionCalculator.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/AmbientOcclusionCalculator.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Array.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Array.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/ArraySizes.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/BaseVolume.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/BaseVolume.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/BaseVolumeSampler.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/ConstVolumeProxy.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractor.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractor.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractorWithNormals.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractorWithNormals.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/DefaultIsQuadNeeded.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/DefaultMarchingCubesController.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Density.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/GradientEstimators.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/GradientEstimators.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/AStarPathfinderImpl.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/ArraySizesImpl.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/ArraySizesImpl.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/Block.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/Block.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/MarchingCubesTables.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/RandomUnitVectors.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/RandomVectors.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/SubArray.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/SubArray.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/TypeDef.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Impl/Utility.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Interpolation.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/IteratorController.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/IteratorController.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/LargeVolume.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/LargeVolume.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/LargeVolumeSampler.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Log.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/LowPassFilter.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/LowPassFilter.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/MarchingCubesSurfaceExtractor.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/MarchingCubesSurfaceExtractor.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Material.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/MaterialDensityPair.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/MeshDecimator.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/MeshDecimator.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/PolyVoxForwardDeclarations.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/RawVolume.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/RawVolume.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/RawVolumeSampler.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Raycast.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Raycast.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Region.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/SimpleInterface.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/SimpleVolume.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/SimpleVolume.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/SimpleVolumeBlock.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/SimpleVolumeSampler.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/SurfaceMesh.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/SurfaceMesh.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Vector.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/Vector.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/VertexTypes.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/VolumeResampler.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/VolumeResampler.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/VoxelFilters.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/include/PolyVoxCore/VoxelFilters.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/AStarPathfinder.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/ArraySizes.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/Impl/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/Impl/MarchingCubesTables.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/Impl/RandomUnitVectors.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/Impl/RandomVectors.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/Impl/Utility.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/Log.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/MeshDecimator.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/Region.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/SimpleInterface.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxCore/source/VertexTypes.cpp trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/CMakeLists.txt trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/include/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/include/PolyVoxUtil/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/include/PolyVoxUtil/Serialization.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/include/PolyVoxUtil/Serialization.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/include/PolyVoxUtil/VolumeChangeTracker.h trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/include/PolyVoxUtil/VolumeChangeTracker.inl trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/source/ trunk/core/smartbody/sbgui/external/polyvox/library/PolyVoxUtil/source/Dummy.cpp trunk/core/smartbody/sbgui/external/polyvox/library/bindings/ trunk/core/smartbody/sbgui/external/polyvox/library/bindings/Array.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/CMakeLists.txt trunk/core/smartbody/sbgui/external/polyvox/library/bindings/CleanCSharpBindings.bat trunk/core/smartbody/sbgui/external/polyvox/library/bindings/CubicSurfaceExtractor.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/CubicSurfaceExtractorWithNormals.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/DefaultMarchingCubesController.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/Density.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/MakeCSharpBindings.bat trunk/core/smartbody/sbgui/external/polyvox/library/bindings/MarchingCubesSurfaceExtractor.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/Material.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/MaterialDensityPair.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/MeshDecimator.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/PolyVoxCore.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/Region.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/SimpleVolume.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/SimpleVolumeSampler.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/SubArray.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/SurfaceMesh.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/TypeDef.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/Vector.i trunk/core/smartbody/sbgui/external/polyvox/library/bindings/VertexTypes.i trunk/core/smartbody/sbgui/external/polyvox/library/polyvox.qhcp.in trunk/core/smartbody/sbgui/src/autorig/VoxelizerWindow.cpp trunk/core/smartbody/sbgui/src/autorig/VoxelizerWindow.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ Smartbody-svn mailing list Smartbody-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/smartbody-svn