Overview
The aim of the plugin is to eventually implement all the feature set of PopcornFX. However due to the rapidly evolving state of PopcornFX and Unreal Engine, some features are still missing. The table below summarizes the current state of the plugin.
General feature set
Simulation | Status | Notes |
---|---|---|
Raycasts / Sphere sweeps | ✓ | Contact surface types & properties are retrieved from physical materials. Implemented in PhysX and Chaos. |
Broadcasted events | ✓ | |
Audio sampling | ✓ | An interface is exposed for feeding audio waveform/spectrum data but no default implementation is available yet |
GPU particles | ✓ | GPU particles are currently only supported on PC, with D3D11 or D3D12 RHI |
Emitters | ||
Emitter time scale | ✓ | |
Emitter visibility | ✓ | |
Emitter prewarm | ✓ | |
Attribute | ||
Int | ✓ | |
Float | ✓ | |
Bool | ✓ | |
Quaternion | ✓ | |
Attribute samplers | ||
Shape (primitives) | ✓ | |
Shape (static meshes) | ✓ | |
Shape (skeletal meshes) | ✓ | Also supports cloth simulations |
Vectorfield | ✓ | Animated vectorfields are not supported |
Image | ✓ | Can be setup from static images or render targets (for GPU particles) |
Animation track | ✓ | Can be setup from spline components |
Text | ✓ | |
Curves | ✓ | |
Sound | ⨉ |
Supported renderers
Renderer | CPU simulation | GPU simulation | Notes |
---|---|---|---|
Billboard | ✓ | ✓ | GPU (vertex shader) billboarding is on by default, CPU billboarding is still available but might be removed in future versions (advanced rendering features like raytracing rely on vertex shader billboarding) |
Ribbon | ✓ | ⨉ | CPU billboarding is on by default (GPU billboarding is not implemented) |
Triangle | ✓ | ⨉ | CPU billboarding is on by default (GPU billboarding is not implemented) |
Mesh | ✓ | ⨉ | CPU billboarding is on by default (the vertex shader still processes some data but mesh instance matrices are built on CPU) |
Sound | ✓ | ⨉ | Emits Unreal Engine audio system audio sources |
Light | ✓ | ⨉ | Emits Unreal Engine simple lights (simple point lights that cannot cast shadows) |
Decal | ⨉ | ⨉ |
Billboard/Triangle renderer feature set
Make sure to check the material parameter table to see how renderer constants & per particle values are exposed to the material graph. Some of the features below are not present in the default materials (.pkma) and require creating custom .pkma/.pkri files to expose these features to the renderers/graph.
Rendering feature | Billboard | Ribbon | Triangle | Mesh | Notes |
---|---|---|---|---|---|
Transparent | ✓ | ✓ | ✓ | ✓ | PremultipliedAlpha and AdditiveNoAlpha are emulated. Meshes only support Unlit Additive and AlphaBlend materials. |
Opaque | ✓ | ✓ | ✓ | ✓ | |
Diffuse | ✓ | ✓ | ✓ | ✓ | |
Atlas | ✓ | ✓ | ✓ | ✓ | |
Distortion | ✓ | ✓ | ✓ | ✓ | |
Alpha Remap | ✓ | ✓ | ✓ | ✓ | |
Soft Particles | ✓ | ✓ | ✓ | ✓ | |
Flip UVs | ✓ | ✓ | ✓ | ✓ | |
Lit | ✓ | ✓ | ✓ | ✓ | Metalness/roughness maps & constants are ignored. |
LegacyLit | ✓ | ✓ | ✓ | ✓ | |
Normal Wrap | ⨉ | ⨉ | ⨉ | ⨉ | |
Normal Bend | ✓ | ✓ | ✓ | ⨉ | |
Diffuse Ramp | ✓ | ✓ | ✓ | ✓ | |
Emissive | ✓ | ✓ | ✓ | ✓ | |
Emissive Ramp | ⨉ | ⨉ | ⨉ | ⨉ | |
Double Sided | ⨉ | ⨉ | ⨉ | ⨉ | Currently all materials are double sided, implementing this would require to duplicate all default materials (this option can’t be set from code). |
Texture Repeat | ⨉ | ⨉ | ⨉ | ⨉ | This setting needs to be changed on the texture asset directly. |
Transform UVs | ⨉ | ⨉ | ⨉ | ⨉ | |
Tint | ⨉ | ⨉ | ⨉ | ⨉ | |
Correct Deformation | ⨉ | ✓ | ⨉ | ⨉ | |
Custom Texture U | ⨉ | ✓ | ⨉ | ⨉ | |
Texture UVs | ✓ | ✓ | ✓ | ⨉ | |
Mesh Atlas | ⨉ | ⨉ | ⨉ | ✓ | |
Use Vertex Colors | ⨉ | ⨉ | ⨉ | ⨉ | |
ShaderInput0 | ⨉ | ⨉ | ⨉ | ✓ | DynamicParameter0 is reserved for Billboard, Ribbon & Triangle materials. |
ShaderInput1 | ✓ | ✓ | ✓ | ✓ | |
ShaderInput2 | ✓ | ✓ | ✓ | ✓ | |
ShaderInput3 | ✓ | ✓ | ✓ | ✓ | |
Mesh LOD | ⨉ | ⨉ | ⨉ | ✓ | |
Six Way Lightmap | ✓ | ⨉ | ⨉ | ⨉ | |
Volumetric Fog | ✓ | ✓ | ✓ | ✓ | |
Skeletal Animation | ⨉ | ⨉ | ⨉ | ✓ | |
Skeletal Animation Interpolate | ⨉ | ⨉ | ⨉ | ✓ | |
Skeletal Animation Interpolate Tracks | ⨉ | ⨉ | ⨉ | ✓ | |
VAT Rigid | ⨉ | ⨉ | ⨉ | ✓ | |
VAT Fluid | ⨉ | ⨉ | ⨉ | ✓ | |
VAT Soft | ⨉ | ⨉ | ⨉ | ✓ | |
VAT Normalized Data | ⨉ | ⨉ | ⨉ | ✓ | |
Raytraced | ✓ | ⨉ | ⨉ | ✓ | Supported on >= UE5.0:
The current implementation still requires additional improvements. |