APEX NvParameterized Schemas: ParticleIosAssetParam Struct Reference

NVIDIA APEX

ParticleIosAssetParam Struct Reference

Describes the NxParameterized::Interface for 'ParticleIosAssetParam' : Contains the asset properties for an IOS. More...

#include <params.h>

List of all members.

Classes

union  ParticleType

Public Attributes

ParticleType particleType
U32 maxParticleCount
 'maxParticleCount' : Maximum particle count
F32 particleRadius
 'particleRadius' : Particle radius
F32 maxInjectedParticleCount
 'maxInjectedParticleCount' : Maximum number of newly created particles on each frame
F32 maxMotionDistance
 'maxMotionDistance' : Max motion distance
F32 contactOffset
 'contactOffset' : Contact offset
F32 restOffset
 'restOffset' : Rest offset
F32 gridSize
 'gridSize' : Grid size
F32 damping
 'damping' : Velocity damping constant
Vec3 externalAcceleration
 'externalAcceleration' : External acceleration
Vec3 projectionPlaneNormal
 'projectionPlaneNormal' : The normal of the plane the particles are projected to
F32 projectionPlaneDistance
 'projectionPlaneDistance' : Constant term of the plane the particles are projected to
F32 particleMass
 'particleMass' : Mass of a particle
F32 restitution
 'restitution' : Restitution coefficient
F32 dynamicFriction
 'dynamicFriction' : Dynamic friction
F32 staticFriction
 'staticFriction' : Static friction
String simulationFilterData
 'simulationFilterData' : The name for the collision filtering data for PhysX object interaction.
String fieldSamplerFilterData
 'fieldSamplerFilterData' : The name for collision filtering data for APEX FieldSampler interaction.
Bool CollisionTwoway
 'CollisionTwoway' : Enable/disable two way collision of particles with the rigid body scene
Bool CollisionWithDynamicActors
 'CollisionWithDynamicActors' : Enable/disable collision of particles with dynamic actors
Bool Enable
 'Enable' : Enables collision with static shapes
Bool ProjectToPlane
 'ProjectToPlane' : Whether the particles of this particle system should be projected to a plane
Bool PerParticleRestOffset
 'PerParticleRestOffset' : Enable/disable per particle rest offsets
Bool PerParticleCollisionCacheHint
 'PerParticleCollisionCacheHint' : Ename/disable per particle collision caches
Bool DensityBuffer
 'DensityBuffer' : Enables reading particle densities from the SDK. (PxParticleFluid only)
Bool enableTemperatureBuffer
 'enableTemperatureBuffer' : Enables temperature buffer.

Detailed Description

Describes the NxParameterized::Interface for 'ParticleIosAssetParam' : Contains the asset properties for an IOS.

ParticleIosAssetParam contains 32 fully qualified names
---------------------------------------------
  1 : Bool        particleType.GridDensity.Enabled       RefVariant[SimpleParticleSystemParams]
  2 : Resolution  particleType.GridDensity.Resolution    RefVariant[SimpleParticleSystemParams]
  3 : F32         particleType.GridDensity.GridSize      RefVariant[SimpleParticleSystemParams]
  4 : U32         particleType.GridDensity.MaxCellCount  RefVariant[SimpleParticleSystemParams]
  5 : F32         particleType.restParticleDistance      RefVariant[FluidParticleSystemParams]
  6 : F32         particleType.stiffness                 RefVariant[FluidParticleSystemParams]
  7 : F32         particleType.viscosity                 RefVariant[FluidParticleSystemParams]
  8 : U32         maxParticleCount                       
  9 : F32         particleRadius                         
 10 : F32         maxInjectedParticleCount               
 11 : F32         maxMotionDistance                      
 12 : F32         contactOffset                          
 13 : F32         restOffset                             
 14 : F32         gridSize                               
 15 : F32         damping                                
 16 : Vec3        externalAcceleration                   
 17 : Vec3        projectionPlaneNormal                  
 18 : F32         projectionPlaneDistance                
 19 : F32         particleMass                           
 20 : F32         restitution                            
 21 : F32         dynamicFriction                        
 22 : F32         staticFriction                         
 23 : String      simulationFilterData                   
 24 : String      fieldSamplerFilterData                 
 25 : Bool        CollisionTwoway                        
 26 : Bool        CollisionWithDynamicActors             
 27 : Bool        Enable                                 
 28 : Bool        ProjectToPlane                         
 29 : Bool        PerParticleRestOffset                  
 30 : Bool        PerParticleCollisionCacheHint          
 31 : Bool        DensityBuffer                          
 32 : Bool        enableTemperatureBuffer                

Member Data Documentation

'CollisionTwoway' : Enable/disable two way collision of particles with the rigid body scene

In either case, particles are influenced by colliding rigid bodies. If eCOLLISION_TWOWAY is not set, rigid bodies are not influenced by colliding particles. Use PxParticleBaseDesc.particleMass to control the strength of the feedback force on rigid bodies. Switching this flag while the particle system is part of a scene will fail.

'CollisionWithDynamicActors' : Enable/disable collision of particles with dynamic actors

The flag can be turned off as a hint to the sdk to save memory space and execution time. In principle any collisions can be turned off using filters but without or reduced memory and performance benefits. Switching this flag while the particle system is part of a scene might have a negative impact on performance.

'contactOffset' : Contact offset

Specifies a skin around the particles within which contacts will be generated Objects that come within contactOffset distance of the particles will count as being in contact (the contactOffset of the other object has no influence). The contactOffset has to be greater than zero and also be greater than the particle systems restOffset. Having a contactOffset bigger than the restOffset is important to avoid jittering and sticking. The contactOffset needs to be positive and the sum maxMotionDistance + contactOffset must not be higher than gridSize.

'damping' : Velocity damping constant

It generally reduces the velocity of the particles. Setting the damping to 0 will leave the particles unaffected.

'DensityBuffer' : Enables reading particle densities from the SDK. (PxParticleFluid only)

'dynamicFriction' : Dynamic friction

A value of 1 will cause the particle to lose its velocity tangential to the surface normal of the shape at the collision location; i.e. it will not slide along the surface. A value of 0 will preserve the particle's velocity in the tangential surface direction; i.e. it will slide without resistance on the surface.

'Enable' : Enables collision with static shapes

'enableTemperatureBuffer' : Enables temperature buffer.

'externalAcceleration' : External acceleration

Acceleration (m/s^2) applied to all particles at all time steps. Useful to simulate smoke or fire. This acceleration is additive to the scene gravity. The scene gravity can be turned off for the particle system, using the flag PxActorFlag::eDISABLE_GRAVITY.

'fieldSamplerFilterData' : The name for collision filtering data for APEX FieldSampler interaction.

The namespace is NSCollisionGroup64, the type returned should be NxGroupsMask64.

'gridSize' : Grid size

This parameter controls the parallelization of the particle system. The spatial domain is divided into equal sized cubes, aligned in a grid. The parameter given defines the scale of the grid. The sdk may internally choose a different, larger value which can be queried with PxParticleBase.getGridSize(). Therefore the parameter has to be considered as a hint only. Large values will have a negative effect on performance, while too small values are problematic due to spatial data structure buffer limits. Balancing this value is important to achieve a good effect while maintaining good performance.

'maxInjectedParticleCount' : Maximum number of newly created particles on each frame

The maximum number of new particles to be spawned on each frame. Use values >1 to provide the absolute value, or 0 <= x <= 1 to provide the percentage rate to overall number of particles.

'maxMotionDistance' : Max motion distance

Max distance a particle can travel in a single simulation step

'maxParticleCount' : Maximum particle count

'particleMass' : Mass of a particle

The mass is used to translate force or impulses to velocities for collisions (in case PxParticleBaseFlag::eCOLLISION_TWOWAY is set) or for particle updates.

'particleRadius' : Particle radius

Query the authored radius of the instanced objects simulated by this IOS. Emitters need this value for volume fill effects and an IOFX may need it for rendering purposes

'PerParticleCollisionCacheHint' : Ename/disable per particle collision caches

Per particle collision caches improve collision detection performance at the cost of increased memory usage. Switching this flag while the particle system is part of a scene might have a negative impact on performance.

'PerParticleRestOffset' : Enable/disable per particle rest offsets

Per particle rest offsets can be used to support particles having different sizes with respect to collision. This configuration cannot be changed after the particle system was created.

'projectionPlaneDistance' : Constant term of the plane the particles are projected to

This parameter is only used if PxParticleBaseFlag::ePROJECT_TO_PLANE is set. Together with the parameter projectionPlaneNormal a plane is formed. For each point p on the plane the following equation has to hold: (projectionPlaneNormal.x * p.x) + (projectionPlaneNormal.y * p.y) + (projectionPlaneNormal.z * p.z) + projectionPlaneDistance = 0

'projectionPlaneNormal' : The normal of the plane the particles are projected to

This parameter is only used if PxParticleBaseFlag::ePROJECT_TO_PLANE is set. Together with the parameter projectionPlaneDistance a plane is formed. For each point p on the plane the following equation has to hold: (projectionPlaneNormal.x * p.x) + (projectionPlaneNormal.y * p.y) + (projectionPlaneNormal.z * p.z) + projectionPlaneDistance = 0

'ProjectToPlane' : Whether the particles of this particle system should be projected to a plane

This can be used to build 2D applications, for instance. The projection plane is defined by the parameter PxParticleBaseDesc.projectionPlaneNormal and PxParticleBaseDesc.projectionPlaneDistance.

'restitution' : Restitution coefficient

A value of 0 causes the colliding particle to get a zero velocity component in the direction of the surface normal of the shape at the collision location; i.e. it will not bounce. A value of 1 causes a particle's velocity component in the direction of the surface normal to invert; i.e. the particle bounces off the surface with the same velocity magnitude as it had before collision. (Caution: values near 1 may have a negative impact on stability)

'restOffset' : Rest offset

Specifies an offset at which particles will come to rest relative to an objects surface Particles will maintain a distance equal to the restOffset to rigid bodies (the restOffset of the rigid body has no influence). If the restOffset is zero the particles should rest exactly on the object surface. The restOffset can alternatively be specified per particle. However the per particle restOffset needs to be smaller or equal to the PxParticleBaseDesc.restOffset.

'simulationFilterData' : The name for the collision filtering data for PhysX object interaction.

The namespace is NSCollisionGroup128, the type returned should be physx::PxFilterData.

'staticFriction' : Static friction

The value defines a limit at which a particle starts to slide along a surface depending on relative tangential and normal velocity components of the particle. A value of 0 will turn off static friction.


The documentation for this struct was generated from the following file:

Generated on Fri Dec 15 2017 13:59:11

Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.