PxSceneDesc Class Reference
[Physics]
Descriptor class for scenes. See PxScene.
More...
#include <PxSceneDesc.h>
Public Member Functions | |
PX_INLINE | PxSceneDesc (const PxTolerancesScale &scale) |
constructor sets to default. | |
PX_INLINE void | setToDefault (const PxTolerancesScale &scale) |
(re)sets the structure to the default. | |
PX_INLINE bool | isValid () const |
Returns true if the descriptor is valid. | |
Public Attributes | |
PxVec3 | gravity |
Gravity vector. | |
PxSimulationEventCallback * | simulationEventCallback |
Possible notification callback. | |
PxContactModifyCallback * | contactModifyCallback |
Possible asynchronous callback for contact modification. | |
PxCCDContactModifyCallback * | ccdContactModifyCallback |
Possible asynchronous callback for contact modification. | |
const void * | filterShaderData |
Shared global filter data which will get passed into the filter shader. | |
PxU32 | filterShaderDataSize |
Size (in bytes) of the shared global filter data filterShaderData. | |
PxSimulationFilterShader | filterShader |
The custom filter shader to use for collision filtering. | |
PxSimulationFilterCallback * | filterCallback |
A custom collision filter callback which can be used to implement more complex filtering operations which need access to the simulation state, for example. | |
PxBroadPhaseType::Enum | broadPhaseType |
Selects the broad-phase algorithm to use. | |
PxBroadPhaseCallback * | broadPhaseCallback |
Broad-phase callback. | |
PxSceneLimits | limits |
Expected scene limits. | |
PxFrictionType::Enum | frictionType |
Selects the friction algorithm to use for simulation. | |
PxReal | bounceThresholdVelocity |
A contact with a relative velocity below this will not bounce. A typical value for simulation. stability is about 0.2 * gravity. | |
PxReal | frictionOffsetThreshold |
A threshold of contact separation distance used to decide if a contact point will experience friction forces. | |
PxReal | ccdMaxSeparation |
A threshold for speculative CCD. Used to control whether bias, restitution or a combination of the two are used to resolve the contacts. | |
PxReal | solverOffsetSlop |
A slop value used to zero contact offsets from the body's COM on an axis if the offset along that axis is smaller than this threshold. Can be used to compensate for small numerical errors in contact generation. | |
PxSceneFlags | flags |
Flags used to select scene options. | |
PxCpuDispatcher * | cpuDispatcher |
The CPU task dispatcher for the scene. | |
PxGpuDispatcher * | gpuDispatcher |
The GPU task dispatcher for the scene. | |
PxPruningStructureType::Enum | staticStructure |
Defines the structure used to store static objects. | |
PxPruningStructureType::Enum | dynamicStructure |
Defines the structure used to store dynamic objects. | |
PxU32 | dynamicTreeRebuildRateHint |
Hint for how much work should be done per simulation frame to rebuild the pruning structure. | |
void * | userData |
Will be copied to PxScene::userData. | |
PxU32 | solverBatchSize |
Defines the number of actors required to spawn a separate rigid body solver island task chain. | |
PxU32 | nbContactDataBlocks |
Setting to define the number of 16K blocks that will be initially reserved to store contact, friction, and contact cache data. This is the number of 16K memory blocks that will be automatically allocated from the user allocator when the scene is instantiated. Further 16k memory blocks may be allocated during the simulation up to maxNbContactDataBlocks. | |
PxU32 | maxNbContactDataBlocks |
Setting to define the maximum number of 16K blocks that can be allocated to store contact, friction, and contact cache data. As the complexity of a scene increases, the SDK may require to allocate new 16k blocks in addition to the blocks it has already allocated. This variable controls the maximum number of blocks that the SDK can allocate. | |
PxReal | maxBiasCoefficient |
The maximum bias coefficient used in the constraint solver. | |
PxU32 | contactReportStreamBufferSize |
Size of the contact report stream (in bytes). | |
PxU32 | ccdMaxPasses |
Maximum number of CCD passes. | |
PxReal | wakeCounterResetValue |
The wake counter reset value. | |
PxBounds3 | sanityBounds |
The bounds used to sanity check user-set positions of actors and articulation links. | |
PxgDynamicsMemoryConfig | gpuDynamicsConfig |
The pre-allocations performed in the GPU dynamics pipeline. | |
PxU32 | gpuMaxNumPartitions |
Limitation for the partitions in the GPU dynamics pipeline. This variable must be power of 2. A value greater than 32 is currently not supported. Range: (1, 32) . | |
PxU32 | gpuComputeVersion |
Defines which compute version the GPU dynamics should target. DO NOT MODIFY. |
Detailed Description
Descriptor class for scenes. See PxScene.This struct must be initialized with the same PxTolerancesScale values used to initialize PxPhysics.
Member Data Documentation
A contact with a relative velocity below this will not bounce. A typical value for simulation. stability is about 0.2 * gravity.
Range: [0, PX_MAX_F32)
Default: 0.2 * PxTolerancesScale::speed
- See also:
- PxMaterial
Referenced by isValid().
Broad-phase callback.
This callback will be associated with the client PX_DEFAULT_CLIENT. Please use PxScene::setBroadPhaseCallback() to register callbacks for other clients.
Default: NULL
- See also:
- PxBroadPhaseCallback
Possible asynchronous callback for contact modification.
Default: NULL
Maximum number of CCD passes.
The CCD performs multiple passes, where each pass every object advances to its time of first impact. This value defines how many passes the CCD system should perform.
- Note:
- The CCD system is a multi-pass best-effort conservative advancement approach. After the defined number of passes has been completed, any remaining time is dropped.
This defines the maximum number of passes the CCD can perform. It may perform fewer if additional passes are not necessary.
A threshold for speculative CCD. Used to control whether bias, restitution or a combination of the two are used to resolve the contacts.
- Note:
- This only has any effect on contacting pairs where one of the bodies has PxRigidBodyFlag::eENABLE_SPECULATIVE_CCD raised.
Default: 0.04 * PxTolerancesScale::length
Referenced by isValid().
Possible asynchronous callback for contact modification.
Default: NULL
Size of the contact report stream (in bytes).
The contact report stream buffer is used during the simulation to store all the contact reports. If the size is not sufficient, the buffer will grow by a factor of two. It is possible to disable the buffer growth by setting the flag PxSceneFlag::eDISABLE_CONTACT_REPORT_BUFFER_RESIZE. In that case the buffer will not grow but contact reports not stored in the buffer will not get sent in the contact report callbacks.
Default: 8192
Range: (0, PX_MAX_U32]
Referenced by isValid().
PxCpuDispatcher* PxSceneDesc::cpuDispatcher |
The CPU task dispatcher for the scene.
See PxCpuDispatcher, PxScene::getCpuDispatcher
Referenced by isValid().
Defines the structure used to store dynamic objects.
Hint for how much work should be done per simulation frame to rebuild the pruning structure.
This parameter gives a hint on the distribution of the workload for rebuilding the dynamic AABB tree pruning structure PxPruningStructureType::eDYNAMIC_AABB_TREE. It specifies the desired number of simulation frames the rebuild process should take. Higher values will decrease the workload per frame but the pruning structure will get more and more outdated the longer the rebuild takes (which can make scene queries less efficient).
- Note:
- Only used for PxPruningStructureType::eDYNAMIC_AABB_TREE pruning structure.
This parameter gives only a hint. The rebuild process might still take more or less time depending on the number of objects involved.
Default: 100
Referenced by isValid().
A custom collision filter callback which can be used to implement more complex filtering operations which need access to the simulation state, for example.
Default: NULL
- See also:
- PxSimulationFilterCallback
The custom filter shader to use for collision filtering.
- Note:
- This parameter is compulsory. If you don't want to define your own filter shader you can use the default shader PxDefaultSimulationFilterShader which can be found in the PhysX extensions library.
- See also:
- PxSimulationFilterShader
Referenced by isValid().
const void* PxSceneDesc::filterShaderData |
Shared global filter data which will get passed into the filter shader.
- Note:
- The provided data will get copied to internal buffers and this copy will be used for filtering calls.
Referenced by isValid().
Size (in bytes) of the shared global filter data filterShaderData.
Default: 0
- See also:
- PxSimulationFilterShader filterShaderData
Referenced by isValid().
A threshold of contact separation distance used to decide if a contact point will experience friction forces.
- Note:
- If the separation distance of a contact point is greater than the threshold then the contact point will not experience friction forces.
If the aggregated contact offset of a pair of shapes is large it might be desirable to neglect friction for contact points whose separation distance is sufficiently large that the shape surfaces are clearly separated.
This parameter can be used to tune the separation distance of contact points at which friction starts to have an effect.
Default: 0.04 * PxTolerancesScale::length
Referenced by isValid().
Selects the friction algorithm to use for simulation.
- Note:
- frictionType cannot be modified after the first call to any of PxScene::simulate, PxScene::solve and PxScene::collide
- See also:
- PxFrictionType Default: PxFrictionType::ePATCH
Defines which compute version the GPU dynamics should target. DO NOT MODIFY.
PxGpuDispatcher* PxSceneDesc::gpuDispatcher |
The GPU task dispatcher for the scene.
Platform specific: Applies to PC GPU only.
See PxGpuDispatcher, PxScene::getGpuDispatcher
The pre-allocations performed in the GPU dynamics pipeline.
Limitation for the partitions in the GPU dynamics pipeline. This variable must be power of 2. A value greater than 32 is currently not supported. Range: (1, 32)
.
Referenced by isValid().
Gravity vector.
Range: force vector
Default: Zero
- See also:
- PxScene.setGravity()
The maximum bias coefficient used in the constraint solver.
When geometric errors are found in the constraint solver, either as a result of shapes penetrating or joints becoming separated or violating limits, a bias is introduced in the solver position iterations to correct these errors. This bias is proportional to 1/dt, meaning that the bias becomes increasingly strong as the time-step passed to PxScene::simulate(...) becomes smaller. This coefficient allows the application to restrict how large the bias coefficient is, to reduce how violent error corrections are. This can improve simulation quality in cases where either variable time-steps or extremely small time-steps are used.
Default: PX_MAX_F32
Range [0, PX_MAX_F32]
Setting to define the maximum number of 16K blocks that can be allocated to store contact, friction, and contact cache data. As the complexity of a scene increases, the SDK may require to allocate new 16k blocks in addition to the blocks it has already allocated. This variable controls the maximum number of blocks that the SDK can allocate.
In the case that the scene is sufficiently complex that all the permitted 16K blocks are used, contacts will be dropped and a warning passed to the error stream.
If a warning is reported to the error stream to indicate the number of 16K blocks is insufficient for the scene complexity then the choices are either (i) re-tune the number of 16K data blocks until a number is found that is sufficient for the scene complexity, (ii) to simplify the scene or (iii) to opt to not increase the memory requirements of physx and accept some dropped contacts.
Default: 65536
Range: [0, PX_MAX_U32]
Referenced by isValid().
Setting to define the number of 16K blocks that will be initially reserved to store contact, friction, and contact cache data. This is the number of 16K memory blocks that will be automatically allocated from the user allocator when the scene is instantiated. Further 16k memory blocks may be allocated during the simulation up to maxNbContactDataBlocks.
- Note:
- This value cannot be larger than maxNbContactDataBlocks because that defines the maximum number of 16k blocks that can be allocated by the SDK.
Range: [0, PX_MAX_U32]
Referenced by isValid().
The bounds used to sanity check user-set positions of actors and articulation links.
These bounds are used to check the position values of rigid actors inserted into the scene, and positions set for rigid actors already within the scene.
Range: any valid PxBounds3
Default: (-PX_MAX_BOUNDS_EXTENTS, PX_MAX_BOUNDS_EXTENTS) on each axis
Referenced by isValid().
Possible notification callback.
This callback will be associated with the client PX_DEFAULT_CLIENT. Please use PxScene::setSimulationEventCallback() to register callbacks for other clients.
Default: NULL
Defines the number of actors required to spawn a separate rigid body solver island task chain.
This parameter defines the minimum number of actors required to spawn a separate rigid body solver task chain. Setting a low value will potentially cause more task chains to be generated. This may result in the overhead of spawning tasks can become a limiting performance factor. Setting a high value will potentially cause fewer islands to be generated. This may reduce thread scaling (fewer task chains spawned) and may detrimentally affect performance if some bodies in the scene have large solver iteration counts because all constraints in a given island are solved by the maximum number of solver iterations requested by any body in the island.
Default: 128
A slop value used to zero contact offsets from the body's COM on an axis if the offset along that axis is smaller than this threshold. Can be used to compensate for small numerical errors in contact generation.
Range: [0, PX_MAX_F32)
Default: 0.0
Defines the structure used to store static objects.
- Note:
- Only PxPruningStructureType::eSTATIC_AABB_TREE and PxPruningStructureType::eDYNAMIC_AABB_TREE are allowed here.
Referenced by isValid().
void* PxSceneDesc::userData |
Will be copied to PxScene::userData.
Default: NULL
The wake counter reset value.
Calling wakeUp() on objects which support sleeping will set their wake counter value to the specified reset value.
Range: (0, PX_MAX_F32)
Default: 0.4 (which corresponds to 20 frames for a time step of 0.02)
Referenced by isValid().
The documentation for this class was generated from the following file:
Copyright © 2008-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com