ATCM 6317 Procedural Animation Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa
Procedural Animations Two major categories in procedural animation are: Physics-based simulations deal with things that are not alive Alife (artificial life) deals with things are virtually alive
Physics-based simulations Deal with the things that are not alive. Use well-known natural physical laws. Particle systems Rigid body dynamics Soft body dynamics Pyro with volume model Fluid Fur/hair
Recall: Types of 3D models and their use computer animation, games 3D printing, engineering, manufacturing, computer aided design (CAD) scientific visualization, medical visualization, effect animation (e.g. clouds) Surface models Solid models Volume models
Volume model The interior of a volume model is heterogeneous. Can have fuzzy surface.
Types of 3D models A surface model can represent an egg’s broken shell or complete shell. A solid model can represent an egg’s complete shell and the space enclosed by the sell. A volume model can represent an egg’s various parts -- shell, york, white, etc.
Voxels – Volume model Voxels represent positions in 3D space scalar values (e.g. density and temperature) vector values (e.g., flow direction) in 3D space.
Voxels Used to construct a 3D model from CT scan images.
Voxels
Voxels http://www.cgsociety.org/news/article/1029/the-voxels-in-pixels http://www.medievalengineers.com/ http://www.tested.com/tech/gaming/451611-bringing-back-voxel-starforge-cube-world-and-return-graphical-style/ https://www.youtube.com/watch?v=-wseUZ1GNAE
Voxels http://guerillarender.com/forum/viewtopic.php?id=1203
Container Houdini calls the space represented by a set of voxels a container. The container should be big enough to contain a simulation but be minimal. Unnecessarily big containers hold a lot of unused voxels. http://guerillarender.com/forum/viewtopic.php?id=1203
Marching cubes algorithm Extracts a polygon mesh of an iso-surface from voxels (or an implicit function). Iso-surface = the set of all points in space where a given function (or parameter) is equal to a chosen constant threshold. http://rsta.royalsocietypublishing.org/content/366/1878/3155.figures-only Reconstructions from CT scan of a dry cadaveric bone: (a) segmented volume of interest—voxel mesh, (b) surface mesh generated from marching cubes algorithm (no interpolation), (c) rendered view of surface mesh generated from marching cubes algorithm (including partial volume-based interpolation).
Marching cubes algorithm Extracts a polygon mesh of an iso-surface from voxels (or an implicit function). Lets you render volume models using a rendering application for surface models. Reduces data size. http://rsta.royalsocietypublishing.org/content/366/1878/3155.figures-only Reconstructions from CT scan of a dry cadaveric bone: (a) segmented volume of interest—voxel mesh, (b) surface mesh generated from marching cubes algorithm (no interpolation), (c) rendered view of surface mesh generated from marching cubes algorithm (including partial volume-based interpolation).
Marching cubes algorithm Checks if the values at a cube’s vertices are above or below a threshold value. Determine which one the 15 cases the cube fits. Create polygons accordingly. http://users.polytech.unice.fr/~lingrand/MarchingCubes/algo.html
Marching cubes There are some ambiguous marching cubes cases. Additional cases have been added.
Marching cubes Additional cases
Houdini volume models Houdini supports Houdini’s own volume format and VDB. VDB = Volumetric, Dynamic grid that shares several characteristics with B+ trees. OpenVDB = Open-source C++ library of a data structure and tools for sparse volumetric data. http://www.openvdb.org/about/ http://www.tokeru.com/cgwiki/index.php?title=HoudiniVolumes
Houdini volume models Convert VDB SOP converts between Houdini’s standard format and VDB. Convert Volume SOP converts a volume model to a polygonal model. http://www.openvdb.org/about/ http://www.tokeru.com/cgwiki/index.php?title=HoudiniVolumes
Houdini volume models Rendered without conversion to surface models. Allows deep shadows using deep shadow maps (the opacity of depth image planes). http://www.openvdb.org/about/ http://www.tokeru.com/cgwiki/index.php?title=HoudiniVolumes
Houdini volume models http://polycount.com/discussion/146599/speedtree-but-for-rocks