PxSDFBuilder
Defined in include/PxSDFBuilder.h
- 
class PxSDFBuilder
- Utility class to compute an SDF on the GPU. - Public Functions - 
virtual void buildSDF(const PxVec3 *vertices, PxU32 numVertices, const PxU32 *indices, PxU32 numTriangleIndices, PxU32 width, PxU32 height, PxU32 depth, const PxVec3 &minExtents, const PxVec3 &maxExtents, bool cellCenteredSamples, PxReal *sdf, CUstream stream = 0) = 0
- Constructs a dense grid SDF for a triangle mesh using the GPU. - Parameters
- vertices – [in] The vertices of the triangle mesh 
- numVertices – [in] The number of vertices 
- indices – [in] The triangle indices 
- numTriangleIndices – [in] The number of triangle indices 
- width – [in] The number of samples along the x direction of the resulting SDF volume 
- height – [in] The number of samples along the y direction of the resulting SDF volume 
- depth – [in] The number of samples along the z direction of the resulting SDF volume 
- minExtents – [in] The minimum corner location of the axis aligned box containing the SDF samples. 
- maxExtents – [in] The maximum corner location of the axis aligned box containing the SDF samples. 
- cellCenteredSamples – [in] Determines if the sample points are located at the center of a SDF cell or at the lower left (=min) corner of a cell. 
- sdf – [out] The distance values. Must provide space for width*height*depth distance samples. Negative distance means the sample point is located inside of the triangle mesh. 
- stream – [in] The cuda stream on which the conversion is processed. If the default stream (0) is used, a temporary stream will be created internally. 
 
 
 - 
virtual void buildSparseSDF(const PxVec3 *vertices, PxU32 numVertices, const PxU32 *indices, PxU32 numTriangleIndices, PxU32 width, PxU32 height, PxU32 depth, const PxVec3 &minExtents, const PxVec3 &maxExtents, PxReal narrowBandThickness, PxU32 cellsPerSubgrid, PxSdfBitsPerSubgridPixel::Enum bitsPerSubgridPixel, PxArray<PxReal> &sdfCoarse, PxArray<PxU32> &sdfSubgridsStartSlots, PxArray<PxU8> &sdfDataSubgrids, PxReal &subgridsMinSdfValue, PxReal &subgridsMaxSdfValue, PxU32 &sdfSubgrids3DTexBlockDimX, PxU32 &sdfSubgrids3DTexBlockDimY, PxU32 &sdfSubgrids3DTexBlockDimZ, CUstream stream = 0) = 0
- Constructs a sparse grid SDF for a triangle mesh using the GPU. - Parameters
- vertices – [in] The vertices of the triangle mesh 
- numVertices – [in] The number of vertices 
- indices – [in] The triangle indices 
- numTriangleIndices – [in] The number of triangle indices 
- width – [in] The number of samples along the x direction of the resulting SDF volume 
- height – [in] The number of samples along the y direction of the resulting SDF volume 
- depth – [in] The number of samples along the z direction of the resulting SDF volume 
- minExtents – [in] The minimum corner location of the axis aligned box containing the SDF samples. 
- maxExtents – [in] The maximum corner location of the axis aligned box containing the SDF samples. 
- narrowBandThickness – [in] The thickness of the narrow band. 
- cellsPerSubgrid – [in] The number of cells in a sparse subgrid block (full block has mSubgridSize^3 cells and (mSubgridSize+1)^3 samples) 
- bitsPerSubgridPixel – [in] Subgrid pixel compression 
- subgridsMinSdfValue – [out] Used to store the minimum sdf value over all subgrids 
- subgridsMaxSdfValue – [out] Used to store the maximum sdf value over all subgrids 
- sdfSubgrids3DTexBlockDimX – [out] Used to store x dimension of the texture block that stores the subgrids 
- sdfSubgrids3DTexBlockDimY – [out] Used to store y dimension of the texture block that stores the subgrids 
- sdfSubgrids3DTexBlockDimZ – [out] Used to store z dimension of the texture block that stores the subgrids 
- stream – [in] The cuda stream on which the conversion is processed. If the default stream (0) is used, a temporary stream will be created internally. 
 
 
 - 
virtual void release() = 0
- Releases the memory including the this pointer. 
 - 
inline virtual ~PxSDFBuilder()
- Destructor. 
 
- 
virtual void buildSDF(const PxVec3 *vertices, PxU32 numVertices, const PxU32 *indices, PxU32 numTriangleIndices, PxU32 width, PxU32 height, PxU32 depth, const PxVec3 &minExtents, const PxVec3 &maxExtents, bool cellCenteredSamples, PxReal *sdf, CUstream stream = 0) = 0