PxAnisotropyGenerator
Defined in include/PxAnisotropy.h
-
class PxAnisotropyGenerator
Computes anisotropy information for a particle system to improve rendering quality.
Public Functions
-
virtual void generateAnisotropy(PxGpuParticleSystem *gpuParticleSystem, PxU32 numParticles, CUstream stream) = 0
Schedules the compuation of anisotropy information 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 generateAnisotropy(PxVec4 *particlePositionsGpu, PxParticleNeighborhoodProvider &neighborhoodProvider, PxU32 numParticles, PxReal particleContactOffset, CUstream stream) = 0
Schedules the compuation of anisotropy information 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 *anisotropy1, PxVec4 *anisotropy2, PxVec4 *anisotropy3) = 0
Set a host buffer that holds the anisotropy data after the timestep completed.
- Parameters
anisotropy1 – [in] A host buffer holding the first row of the anisotropy matrix with memory for all particles already allocated
anisotropy2 – [in] A host buffer holding the second row of the anisotropy matrix with memory for all particles already allocated
anisotropy3 – [in] A host buffer holding the third row of the anisotropy matrix with memory for all particles already allocated
-
virtual void setResultBufferDevice(PxVec4 *anisotropy1, PxVec4 *anisotropy2, PxVec4 *anisotropy3) = 0
Set a device buffer that holds the anisotrpy data after the timestep completed.
- Parameters
anisotropy1 – [in] A device buffer holding the first row of the anisotropy matrix with memory for all particles already allocated
anisotropy2 – [in] A device buffer holding the second row of the anisotropy matrix with memory for all particles already allocated
anisotropy3 – [in] A device buffer holding the third row of the anisotropy matrix with memory for all particles already allocated
-
virtual void setAnisotropyMax(float maxAnisotropy) = 0
Sets the maximum value anisotropy can reach in any direction.
- Parameters
maxAnisotropy – [in] The maximum anisotropy value
-
virtual void setAnisotropyMin(float minAnisotropy) = 0
Sets the minimum value anisotropy can reach in any direction.
- Parameters
minAnisotropy – [in] The minimum anisotropy value
-
virtual void setAnisotropyScale(float anisotropyScale) = 0
Sets the anisotropy scale.
- Parameters
anisotropyScale – [in] The anisotropy scale
-
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 *getAnisotropy1DevicePointer() const = 0
Gets the device pointer for the anisotropy in x direction.
Only available after calling setResultBufferHost or setResultBufferDevice
- Returns
The device pointer for the anisotropy x direction and scale (w component contains the scale)
-
virtual PxVec4 *getAnisotropy2DevicePointer() const = 0
Gets the device pointer for the anisotropy in y direction.
Only available after calling setResultBufferHost or setResultBufferDevice
- Returns
The device pointer for the anisotropy y direction and scale (w component contains the scale)
-
virtual PxVec4 *getAnisotropy3DevicePointer() const = 0
Gets the device pointer for the anisotropy in z direction.
Only available after calling setResultBufferHost or setResultBufferDevice
- Returns
The device pointer for the anisotropy z direction and scale (w component contains the scale)
-
virtual void setEnabled(bool enabled) = 0
Enables or disables the anisotropy generator.
- Parameters
enabled – [in] The boolean to set the generator to enabled or disabled
-
virtual bool isEnabled() const = 0
Allows to query if the anisotropy generator is enabled.
- Returns
True if enabled, false otherwise
-
virtual void release() = 0
Releases the instance and its data.
-
inline virtual ~PxAnisotropyGenerator()
Destructor.
-
virtual void generateAnisotropy(PxGpuParticleSystem *gpuParticleSystem, PxU32 numParticles, CUstream stream) = 0