PxSmoothedPositionGenerator
Defined in include/PxSmoothing.h
-
class PxSmoothedPositionGenerator
Ccomputes smoothed positions for a particle system to improve rendering quality.
Public Functions
-
virtual void generateSmoothedPositions(PxGpuParticleSystem *gpuParticleSystem, PxU32 numParticles, CUstream stream) = 0
Schedules the compuation of smoothed positions on the specified cuda stream.
- Parameters
gpuParticleSystem – [in] A gpu pointer to access particle system data
numParticles – [in] The number of particles
stream – [in] The stream on which the cuda call gets scheduled
-
virtual void generateSmoothedPositions(PxVec4 *particlePositionsGpu, PxParticleNeighborhoodProvider &neighborhoodProvider, PxU32 numParticles, PxReal particleContactOffset, CUstream stream) = 0
Schedules the compuation of smoothed positions on the specified cuda stream.
- Parameters
particlePositionsGpu – [in] A gpu pointer containing the particle positions
neighborhoodProvider – [in] A neighborhood provider object that supports fast neighborhood queries
numParticles – [in] The number of particles
particleContactOffset – [in] The particle contact offset
stream – [in] The stream on which the cuda call gets scheduled
-
virtual void setResultBufferHost(PxVec4 *smoothedPositions) = 0
Set a host buffer that holds the smoothed position data after the timestep completed.
- Parameters
smoothedPositions – [in] A host buffer with memory for all particles already allocated
-
virtual void setResultBufferDevice(PxVec4 *smoothedPositions) = 0
Set a device buffer that holds the smoothed position data after the timestep completed.
- Parameters
smoothedPositions – [in] A device buffer with memory for all particles already allocated
-
virtual void setSmoothing(float smoothingStrenght) = 0
Sets the intensity of the position smoothing effect.
- Parameters
smoothingStrenght – [in] The strength of the smoothing effect
-
virtual PxU32 getMaxParticles() const = 0
Gets the maximal number of particles.
- Returns
The maximal number of particles
-
virtual void setMaxParticles(PxU32 maxParticles) = 0
Sets the maximal number of particles.
- Parameters
maxParticles – [in] The maximal number of particles
-
virtual PxVec4 *getSmoothedPositionsDevicePointer() const = 0
Gets the device pointer for the smoothed positions.
Only available after calling setResultBufferHost or setResultBufferDevice
- Returns
The device pointer for the smoothed positions
-
virtual void setEnabled(bool enabled) = 0
Enables or disables the smoothed position generator.
- Parameters
enabled – [in] The boolean to set the generator to enabled or disabled
-
virtual bool isEnabled() const = 0
Allows to query if the smoothed position generator is enabled.
- Returns
True if enabled, false otherwise
-
virtual void release() = 0
Releases the instance and its data.
-
inline virtual ~PxSmoothedPositionGenerator()
Destructor.
-
virtual void generateSmoothedPositions(PxGpuParticleSystem *gpuParticleSystem, PxU32 numParticles, CUstream stream) = 0