Search the Community
Showing results for tags 'openVDB'.
-
I am trying to resurrect an old version of a Houdini plugin that no longer works with newer versions of Houdini. I've tracked down the issue to a segfault happening in the file $HFS/toolkit/include/openvdb/Grid.h , where the function Grid<TreeT>::setTree(TreeBase::Ptr tree) is checking the type of the tree: tree->type() I can't figure out what could be causing this to segfault. When I print ouf the tree details with tree->print(std::cout, 4) I see that the tree type is "Tree_float_5_4_3", which seems fine? So why would this cause an issue? Anyone have any ideas? The full print output is: Information about Tree: Type: Tree_float_5_4_3 Configuration: Root(1 x 1), Internal(1 x 32^3), Internal(6 x 16^3), Leaf(5,207 x 8^3) Background value: 0 Min value: 0 Max value: 15.9799 Number of active voxels: 4,927,500 Number of active tiles: 5,813 Bounding box of active voxels: [0, 0, 0] -> [299, 224, 72] Dimensions of active voxels: 300 x 225 x 73 Percentage of active voxels: 100% Average leaf node fill ratio: 73.2% Number of unallocated nodes: 0 (0%) Memory footprint: Actual: 11.099 MB Active leaf voxels: 7.443 MB Dense equivalent: 18.797 MB Actual footprint is 59% of an equivalent dense volume Leaf voxel footprint is 67.1% of actual footprint Tree_float_5_4_3
-
I'm trying to work on a VDB SOP but I'm having problems compiling. I'm windows with Houdini 16.5 and I'm getting "unresolved externals". Along with the usual inclusions I have: #include <GU/GU_PrimVDB.h> #include <openvdb/openvdb.h> #include <openvdb/Grid.h> I'm compiling with cmake which looks like this cmake_minimum_required( VERSION 3.6 ) project( HDK_VolumeDeform ) list( APPEND CMAKE_PREFIX_PATH "$ENV{HFS}/toolkit/cmake" ) find_package( Houdini REQUIRED ) set( library_name SOP_VolumeDeform ) add_library( ${library_name} SHARED SOP_Volume_Deform.C SOP_Volume_Deform.h ) target_link_libraries( ${library_name} Houdini) SET(COMPILE_FLAGS "-TP -std=c++11 -DOPENVDB_3_ABI_COMPATIBLE") add_definitions(${COMPILE_FLAGS}) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_FLAGS}") target_include_directories( ${library_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ) houdini_configure_target( ${library_name} ) Strangely enough, the program does compile if I don't try use iterators, though I'm sure there is a lot that would break it. I've also tried with Hcustom, but running with that yields the same problems. Does anyone have any suggestions? Thank you very much!
-
DNEG have shared open source tool for vdb operations. If somebody already checked this, will be nice to hear comments. https://www.dneg.com/openvdb-ax/ https://github.com/dneg/openvdb_ax OpenVDB AX is an open source C++ library that provides a powerful and easy way of interacting with OpenVDB point and volume data. This exposes an expression language to allow fast, custom manipulation of point attributes and voxel values using a collection of mathematical functions. Expressions are quickly JIT-compiled and to offer great performance that in many cases rival custom C++ operators. It is developed and maintained by DNEG Visual Effects, providing a flexible and portable way to work with OpenVDB data.
-
Advanced sourcing for Houdini. it’s not only 10-100x faster but also gives more control over sourcing especially when many sources involved in sim. Houdini16 Hipfile with examples included https://github.com/abryutinalexey/vdb_to_field
-
Hi guys Here's my problem - I need to work with openVDB volumes and I need to code using a python node. The problem is, even after successfully installing openVDB, I am not able to import the pyopenvdb module in Houdini. I can access it from the shell in my Mac, and can create/manipulate volumes etc., but not from Houdini. When I try import pyopenvdb as vdb in the python node or shell, it just says that it cannot find the module. Please help. Thanks.
-
I'm trying to figure out how to create an OpenVDB volume by writing out the voxels, to make a custom SOP. The OpenVDB Hello World example goes something like this: // Initialize the OpenVDB library. This must be called at least // once per program and may safely be called multiple times. openvdb::initialize(); // Create an empty floating-point grid with background value 0. openvdb::FloatGrid::Ptr grid = openvdb::FloatGrid::create(); // Get an accessor for coordinate-based access to voxels. openvdb::FloatGrid::Accessor accessor = grid->getAccessor(); // Define a coordinate with signed indices. openvdb::Coord xyz(5, 5, 5); // Set the voxel value at (5, 5, 5) to 1. accessor.setValue(xyz, 1.0); But now how would I get this to work in Houdini in my "cookMySop()" function? How do I attach this grid to a GU_PrimVDB (or something) to actually create the OpenVDB primitive in Houdini? Could I get a Houdini-specific "Hello World" example?
- 15 replies
-
Scripting in python, I can programmatically create a volume sop and then use setVoxel() or setAllVoxels() to fill in the voxels with data. ( http://archive.sidefx.com/docs/houdini15.0/hom/hou/Volume ) How can I do this with a VDB? I thought it should be somewhat similar, but there are no "set" functions I can call. ( http://archive.sidefx.com/docs/houdini15.0/hom/hou/VDB )
-
I am having quite a bit of troubles accessing SOP OpenVDB nodes from Houdini 12.1 after compiling OpenVDB 2.0. I manage to compile both the Core Library and Houdini Tooklit. I successfully installed the library here : $HOME/dev/openvdb/ and $HOME/houdini12.1/dso/ contains all the *.so 10212 -rwxrwxr-x 1 alexp artist 10456537 Nov 20 12:52 SOP_OpenVDB_Advect_Level_Set.so* 856 -rwxrwxr-x 1 alexp artist 876302 Nov 20 12:52 SOP_OpenVDB_Advect_Points.so* ... 764 -rwxrwxr-x 1 alexp artist 781040 Nov 20 13:05 SOP_OpenVDB_Visualize.so* 356 -rwxrwxr-x 1 alexp artist 364020 Nov 20 13:05 SOP_OpenVDB_Write.so*[/CODE] At this point , I thought It would be enough to open Houdini and at the Geometry level I should already be able to access all the VDB_* nodes. For some reason it's not working for me. I checked the variable HOUDINI_DSO_PATH using 'hconfig -a | grep DSO ' from my linux (Debian) shell and this is the feedback: [CODE] HOUDINI_AUDIO_DSO_PATH := '<not defined>' HOUDINI_DISABLE_IMAGE_DSO := 0 HOUDINI_DSO_ERROR := 0 HOUDINI_DSO_EXCLUDE_PATTERN := '<not defined>' HOUDINI_DSO_PATH := '<not defined>' HOUDINI_IMAGE_DSO_PATH := '<not defined[/CODE]>' Which (please correct me if i am wrong) means that Houdini should search for dso's in "@/dso_^;@/dso" by default. Which expands to: 1) "$HIP/dso" 2) "$HOME/houdini12.1/dso" (<---this is where my SOP_OpenVDB_* files are) 3) "$HFS/houdini/dso" What i tried with no luck: - copy the files to /opt/hfs12.1/houdini/dso - edit $HOME/houdini12.1/houdini.env [append] HOUDINI_DSO_PATH= /home/alexp/houdini12.1/dso/ .. and restart houdini from a new shell. Nothing seems to work. Does anyone has any clue about why I cannot access OpenVDB 2.0.0 dso's from Houdini 12.1 ?
-
I am trying to access the data in a VDB sdf volume container that I use as a 3rd input in my node. I managed to install the openvdb headers and everything seems to compile just fine. All I'd like to do is basically access the distance and gradient values in the vdb sdf, given a world space position. I found this beautiful method which seems to address the gradient question... UT_Vector3 GEO_PrimVDB::getGradient ( const UT_Vector3 & pos ) const And this is the code snippet I am using: GU_Detail *sdfInput = new GU_Detail; duplicateSource(2, context,sdfInput); GU_PrimVDB myVDB(sdfInput,0); UT_Vector3 samplepos(1.0,0.0,0.0); UT_Vector3 gradient; gradient=myVDB.getGradient(samplepos); // <--- CRASH [/CODE] ... but when I try to use it , Houdini crashes (it crashes only on the line where I use getGradient method, it doesn't crash when I define *myVDB) I couldn't find the method to access the distance value by the way. I am pretty sure I am doing something terribly wrong cause of my limited c++ knowledge Can someone help me to correct the above code snippet and add the method to access the 'distance' data ?
-
cmiVFX Releases New Houdini Frictional Viscosities In Motion High Definition Training Videos for the Visual Effects Industry Princeton, NJ (May 24th, 2013)‚ cmiVFX has released Visco-Elastic Fluids in Houdini. This video is based around the theme of Learn, Test & Create. Firstly we'll be covering basic ways of producing a Jiggly / Squishy effect without heavy techniques. We'll also be learning about adding Microsolvers into Houdini's solvers and using a ready made group of microsolvers wrapped in a digital asset. Next we'll cover a workflow for Testing the different parameters of a simulation. As sometimes there are many different values you'd want to try, we'll set up a simulation and run it many times with certain values changed - then bring them all side-by-side for comparison. Finally we will Create an exploding egg with elasticity, setting up egg white and egg yolk in a cool slow motion scene. As a bonus chapter, we will create an "Exploder" digital asset and import forces for use in Fluids / Pyro / RBD. This video also looks at some brand new Houdini 12.5 features such as Open VDB tools and the Point Wrangle node. VIMEO TEASER https://vimeo.com/66951165 Short Description This video covers going deeper into Houdini's Solvers and DOP context. Using microsolvers and digital assets we'll add Visco-Elastic functionality that isn't in the FLIP solver by default. We'll follow a path of Learn, Test and Create which could be applied to any new techniques and effects you might try in Houdini. NOTICE TO VIEWERS: (A basic understanding of SideFX Houdini functionality and use is recommended before viewing this lesson.) Here at cmiVFX we maintain a current training library for the latest versions of popular software titles. When it comes to high end CG and VFX training, there is only once choice... cmiVFX! |||||||||||||||||||||| Houdini Frictional Viscosities In Motion |||||||||||||||||||||| http://cmivfx.com/st...nal Viscosities Chapter Descriptions Jiggle And Squish To start off we'll be looking at some methods of achieving some jiggle and squishy motion without using flip fluids. The aim is to see if we can get a good result with lower level tools instead of diving straight into a higher technique. This could save a lot of valuable time developing a shot. Microsolvers Intro This chapter is about getting a better understanding of how microsolvers work within a solver. We'll perform some R&D to recreate how non-newtonian fluids act in real life, adding extra functionality to the base FLIP solver. Elasticity Intro We will be using an asset that uses some microsolvers to add Visco-Elastic properties to the FLIP solver. Much like if handed the asset in a production environment, we will learn how its created and cover the basics of how to use it. Tests Create Now we know how microsolvers and the elasticity asset work, lets create some tests to see the effect different parameters have. To start with we will set up a zombie head to melt into gloop. Tests Wedge In this chapter we will look into how we can efficiently run a simulation any number of times, changing values in each version. We'll set up 5 variations of the same simulation using Takes and the Wedge Rop, and cover how to use either random or precise values for each. Tests Mesh With our simulation variations cached to disk, we can use the wedge ROP again to mesh each one. We will also look at some new features in Houdini 12.5 such as Open VDB and Point Wrangle. Tests Display As a small final chapter for this section, we will lay out our different tests side by side so we can directly compare the differences in each one. This will really emphasize differences and allow for direct comparisons. Egg Setup So finally lets create! This chapter we'll get our simulation up and running. We'll create an egg that has different color, viscosity and refraction for the egg white and yolk. Egg Elastic In this chapter we will create a flexible system that will give us impulse / explosion velocities. Alongside this we can add on the elasticity asset and get our egg looking cool! Egg Finish Finally we'll cover some finishing touches. I'll look at the final simulation and mesh settings i used, as well as looking into notes points for rendering. We'll use the new Open VDB tools to create the egg yolk interior and add our custom refraction parameter into a shader. BONUS! Exploder Asset As a bonus chapter, we'll look into turning the system we made in chapter 09 into a digital asset. We'll then use this asset to affect Pyro / Fluid simulations and RBD's! About the Instructor Craig Tonks is a young VFX Artist out to create beautiful and exciting images. With an MA in Digital Effects and a growing number of VFX jobs under his belt the future is bright and fun! His passion for playing in Houdini whilst combining both artistic and technical methods makes for fun and explorative videos. Always on the lookout for work, friends and feedback you can contact him at: craig@mrtonks.co.uk Additional Credit Special Thanks to John Lynch for his research and hard work that resulted in this excellent visco-elastic flip OTL asset. (included in project files) Project Contents All cmiVFX videos come with all the training materials you can need right from our website. No matter what time of day, your location, or how your feeling, cmiVFX will be there waiting for you! This video is available today at the cmiVFX Store: http://store.cmivfx.com/ About cmiVFX cmiVFX is the leader in High Definition Video Training for the Visual Effects Community. Register for FREE and receive hours of FREE content at the cmiVFX Video-on-Demand Player.For additional information about cmiVFX, visit http://www.cmivfx.com or email eric@cmivfx.com © 2013 cmiVFX | cmiStudios | cmiUniverse. All rights reserved.