Mesh any scalar grid that has a continuous isosurface. More...
#include <openvdb/tools/VolumeToMesh.h>
Public Member Functions | |
| VolumeToMesh (double isovalue=0, double adaptivity=0, bool relaxDisorientedTriangles=true) | |
| template<typename InputGridType> | |
| void | operator() (const InputGridType &) |
| Main call. | |
| void | setRefGrid (const GridBase::ConstPtr &grid, double secAdaptivity=0) |
When surfacing fractured SDF fragments, the original unfractured SDF grid can be used to eliminate seam lines and tag polygons that are coincident with the reference surface with the POLYFLAG_EXTERIOR flag and polygons that are in proximity to the seam lines with the POLYFLAG_FRACTURE_SEAM flag. (The performance cost for using this reference based scheme compared to the regular meshing scheme is approximately 15% for the first fragment and neglect-able for subsequent fragments.) | |
| void | setSurfaceMask (const GridBase::ConstPtr &mask, bool invertMask=false) |
| void | setSpatialAdaptivity (const GridBase::ConstPtr &grid) |
| void | setAdaptivityMask (const TreeBase::ConstPtr &tree) |
| size_t | pointListSize () const |
| PointList & | pointList () |
| const PointList & | pointList () const |
| size_t | polygonPoolListSize () const |
| PolygonPoolList & | polygonPoolList () |
| const PolygonPoolList & | polygonPoolList () const |
| std::vector< uint8_t > & | pointFlags () |
| const std::vector< uint8_t > & | pointFlags () const |
Mesh any scalar grid that has a continuous isosurface.
|
inline |
| isovalue | Determines which isosurface to mesh. |
| adaptivity | Adaptivity threshold [0 to 1] |
| relaxDisorientedTriangles | Toggle relaxing disoriented triangles during adaptive meshing. |
|
inline |
Main call.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| tree | A boolean tree whose active topology defines the adaptivity mask. |
GridT's tree configuration.
|
inline |
When surfacing fractured SDF fragments, the original unfractured SDF grid can be used to eliminate seam lines and tag polygons that are coincident with the reference surface with the POLYFLAG_EXTERIOR flag and polygons that are in proximity to the seam lines with the POLYFLAG_FRACTURE_SEAM flag. (The performance cost for using this reference based scheme compared to the regular meshing scheme is approximately 15% for the first fragment and neglect-able for subsequent fragments.)
POLYFLAG_EXTERIOR flag. Polygons that are not marked with this flag are interior to reference surface and might need projected UV coordinates or a different material. Polygons marked as POLYFLAG_FRACTURE_SEAM can be used to drive secondary elements such as debris and dust in a FX pipeline.| grid | reference surface grid of GridT type. |
| secAdaptivity | Secondary adaptivity threshold [0 to 1]. Used in regions that do not exist in the reference grid. (Parts of the fragment surface that are not coincident with the reference surface.) |
|
inline |
| grid | A scalar grid used as a spatial multiplier for the adaptivity threshold. |
GridT's tree configuration.
|
inline |
| mask | A boolean grid whose active topology defines the region to mesh. |
| invertMask | Toggle to mesh the complement of the mask. |
GridT's tree configuration.