Simulation feature parity
Not all PopcornFX simulation features are implemented on all backends.
The table below gives an overview on what is supported where:
Simulation feature |
CPU-VM |
GPU-D3D11 |
GPU-D3D12 |
GPU-D3D12U |
GPU-PS5 |
Notes |
Event triggers |
✓ |
⨉ |
2.24 |
2.23 |
⨉ |
|
Spatial layers |
✓ |
✓ |
✓ |
2.23 |
2.19 |
|
Fences: Intra-layer |
2.19 |
2.19 |
2.19 |
2.23 |
2.19 |
|
Fences: Inter-layer |
2.23 |
2.23 |
2.23 |
⨉ |
2.23 |
|
Attributes |
✓ |
✓ |
✓ |
2.23 |
✓ |
|
Extract parent payloads |
✓ |
2.17 |
2.17 |
2.23 |
2.17 |
|
Simulation interfaces |
✓ |
✓ |
✓ |
2.23 |
✓ |
|
Samplers |
||||||
Animtrack sampler |
✓ |
2.22 |
2.22 |
2.23 |
2.22 |
|
Audio sampler |
✓ |
⨉ |
⨉ |
⨉ |
⨉ |
|
Curve sampler |
✓ |
✓ |
✓ |
2.23 |
✓ |
|
Event-stream sampler |
2.24 |
2.24 |
2.24 |
⨉ |
2.24 |
|
Grid sampler |
2.19 |
2.19 |
2.19 |
2.23 |
2.19 |
|
Image sampler |
✓ |
✓ |
✓ |
2.23 |
✓ |
|
Shape sampler |
✓ |
✓ |
✓ |
2.23 |
✓ |
mesh.projectPCoords(), mesh.project(), mesh.sampleSurfacePCoordsFromUV() since v2.19.0 |
Text sampler |
✓ |
✓ |
✓ |
2.23 |
✓ |
|
Vector-field sampler |
✓ |
✓ |
✓ |
2.23 |
✓ |
|
Attribute samplers |
||||||
Animtrack attribute sampler |
✓ |
⨉ |
2.22 |
2.23 |
⨉ |
|
Audio attribute sampler |
✓ |
⨉ |
⨉ |
⨉ |
⨉ |
|
Curve attribute sampler |
✓ |
⨉ |
✓ |
2.23 |
⨉ |
|
Event-stream attribute sampler |
⨉ |
⨉ |
⨉ |
⨉ |
⨉ |
|
Grid attribute sampler |
2.19 |
⨉ |
2.19 |
2.23 |
⨉ |
|
Image attribute sampler |
✓ |
⨉ |
✓ |
2.23 |
⨉ |
|
Shape attribute sampler |
✓ |
⨉ |
✓ |
2.23 |
⨉ |
|
Text attribute sampler |
✓ |
⨉ |
⨉ |
⨉ |
⨉ |
|
Vector-field attribute sampler |
✓ |
⨉ |
✓ |
2.23 |
⨉ |
|
Other limitations
Simulation backend "cross-talk" is not possible. So if a spatial-layer or grid sampler is shared between two layers, one on CPU, and one on GPU, each layer will see its own version of the data, as if there had been two separate spatial layers or grids: One for CPU, and one for GPU.
Attribute samplers could be implemented on PS5, it’s just not done yet. If you need this and it’s a blocker, please contact us.
Plugins
Some things such as renderer support do not depend on the simulation backend used, but on the integration of the PopcornFX SDK into the game engine.
Check the "Supported features" page of each official game-engine plugin for more infos on what each one support:
-
Unreal Engine: Supported features
-
Unity: Supported features
-
O3DE: Supported features
-
Godot: Supported features