FractureVDB tutorial Drop 8 (thinkingParticles P2)
Mission: ways to angle slice, cut, dice volume grids in watertight, no errors or missing faces.
Scene: Edwin shows you how to use the Drop 8 FractureVDB with two boxes (one slicing through the other) and two dummy objects (dummies will be the cutter volumes).
MASTER SYSTEM: i) All - Source -- Segments ii) Cutter iii) CutInst (cutter instant)
1) ** Object2Particle: (used to turn any mesh object, helper or even light source into a particle that can be accessed or modified by other thinkingParticles operators. When picking a spline object, it can be automatically turned into a rope object when BulletPhysics is chosen as the collision solver.)
- in this scene: Box001 instance shape to thinkingParticles under Group: ' Source '
-- Box002 same under Group ' Cutter '
--- Dummy001 & 002 instance and under the ' CutInst '
OPEN VDB Container
- hold the volume grids and manages them.
R-Click : ADD ' Distance ' SD Field - you can also use ' Fog ' on other scenes - Rename as appropriate.
ShapeToVolume VDB i)
- this transforms mesh to volume -- OpenVDB: Volume PGroup/ Source and stored as Distance field / SDF - adjust voxel size as needed (decides resolution).
- adjust ext/ int values bandwidth ( which will Search and Mark Surface (+), (-) (0) ) Refer to previous tutorials if you are not sure what this is.
- S2V renamed as ' SourceBox' volume namely the Box to be fractured or slice through.
ShapeToVolume VDB ii)
2) Cutter Box - under Open VDB - Vol PGrp: Cutter (it stores the volumetric info) - select Distance/ SDF - again adjust voxel value as needed.
-- rename to ' Cutter Box '.
ShowVDB as usual helps you to get some real time viewport to visualize how things are setup and looking.
- check the visual of the mesh and the rasterized volume of the Box;
- check the Bounding box: Int / Ext view and debug.
- Box002 : CutterVolume again use ShowVDb check visuals , voxel size adjust try 2.0 and 5.0 difference.
- now, disable ShowVDb and Enable Mesh
3a) GetGridVDB #1 (Box001)
- OpenVDB - PGroup/ Source rename ' GetSourceVol'
- Note: this comes AFTER you have completed the SourceBoxVol data in order for that to be 'Get' or grabbed;
- i/p the above data grabbed to Box001/FractureVDB
- rename GetGridVol 1 to 'GetSourceVol '
3b) GetGridVDB #2 (Box002)
- this gets the data and i/p to the Cutter ;
- rename GetGridVDB 2 into ' GetCutterVol'.
The Dynamic Set Tree (procedural sequence): review the L-Menu
4) FractureVDB
- note: the velocity animates the cutting motion of Box002.
-FractureVDB gives you several options to 'cut' :
-- None /Random /PGroup and in this scene we use PGroup option;
- select PGroup/CutInst for this scene example;
-if you choose Random option: it will randomly place the dummy(cutters) for cutting operations.
-you can increase the random cuts using the Inst. Count value e.g. '10'.
- ** Recut segments : re-cuts the cut segments and creates more fragmentation. This helps to cut up or fragments objects like crazy!
-- note: you can also use the X-Y-Z to modify your cutting angles.
5) SegmentVDB
- a versatile operator used to find isolated volumes within a bigger volume. Every sub-volume within a volume is output as its own field or particle with a volume attached.
- use this operator to now access and create particles from the individual segmented particles where VELOCITY has been assigned.
-SegmentVDB will sort the remainder and the ' cut' segments - sort segments: value Size Up or Centre Outwards- store in Distance field.
6) Filter VDB
-Filtering or smoothing out volume Grids can be a useful feature in getting smoother results when creating a surface for example. Several methods and options allow for intricate control of the final result.
- insert the FilterVDb between the FractureVDB and SegmentVDB to help smooth the grid surfaces to a degree you prefer.
- o/p SegmentVDB/SegField i/p FilterVDB/Distance field
7) SetGridVDB
This operator is usually the last one in the chain of volume Grid operations you might have in your DynamicSets. It is the actual commit of a change in a volumeGrid or it can be used to duplicate a volumeGrid and store it's values in another volume Grid. In general, after a volume grid manipulation e.g. by using a FilterVDB node you would use then SetGridVDB to actually commit those changes to the original Grid by writing those modified values back.
- finally, use VolumeToShapeVDB and volume is remake into shape ready for rendering. Toggle the Relax values to acquire the shape you desire.
Please follow and learn on cebas Vimeo only: vimeopro.com/cebasvt/thinkingparticles-v6-drop-8-new-features-and-quick-tutorials
Serious learners should join facebook.com/groups/thinkingparticles and for those users of cebas finalRender or finalToon , PSD-Manager, join @ facebook.com/groups/finalToon/
Commercial licenses, refer cebas.com/ Educational license please email 3dgallery@cebas.com for the link.