Impact CFX Main Page Index API Reference Change Logs
Conversion From Legacy Impact
Impact CFX Project Settings Impact Tags Logging Impact Material Registry
Impact CFX Manager Material Mapping Managing Registered Materials
Impact Materials
Audio Effect Audio Source Prefab Audio Effect Processor Particle Effect Particle System Prefab Particle Effect Processor Decal Effect Decal Prefab Decal Effect Processor URP & HDRP Decals VFX Batch Effect VFX Batch Master Creating a Visual Effect VFX Batch Effect Processor Managing Attached Effects
Impact Objects Impact Object Single Material Impact Object Rigidbody Impact Object Rigidbody (Cheap) Impact Object Custom Velocity Objects With Multiple Materials Impact Terrain
Impact Triggers Common Trigger Properties Material Count Impact Collision Trigger Impact Slide and Roll Trigger Impact Speculative Collision Trigger Impact Simple Collision Trigger Impact Particle Collision Trigger Impact On Trigger Enter Impact On Trigger Stay
Impact Raycasting
FMOD Integration Wwise Integration Master Audio Integration
Custom Triggers Custom Objects Creating an Impact Object Script Impact Material Processors Custom Effects Impact Effect Authoring Asset Effect Result Effect Data Impact Effect Processors Impact Simple Effect Processor Impact Pooled Effect Processor Pooled Effect Object Pooled Effect Authoring Pooled Effect Result Pooled Effect Data Object Pool Pooled Effect Processor Add to Impact CFX Manager Example Effect Download

Legacy Impact Comparison

Deciding if converting to Impact CFX is an important decision, so to help you out, here are some key comparison points between Impact CFX and legacy Impact.

Workflow

The Impact CFX workflow is almost identical to the legacy Impact workflow, so you don't need to worry about learning an entirely new workflow.

The Impact CFX contains the same familiar Material assets, Audio, Particle, and Decal effect assets, and the same Object and Trigger components. The main changes to the workflow are that Impact Tags are now saved in Project Settings, and a new Impact Material Registry asset is required for registering all Impact Materials with the system.

Configurability & Feature Set

Impact CFX offers much more in-depth configurability than legacy Impact. the Impact CFX Manager and Impact Triggers are great examples of the new configuration options.

Impact CFX will also continue to recieve feature updates and extension packages for the forseeable future. For example, Impact CFX has VFX Graph support as well as enhanced URP & HDRP Decal support. Major feature development is no longer being done for legacy Impact.

Performance

Impact CFX uses burst-compiled jobs for the majority of collision effect processing. This means that it much more efficiently processes many collision events, resulting in better performance.

Performance tests based on the Impact CFX demo have shown an almost 50% increase in performance with Impact CFX. The more collisions you have, the better Impact CFX will perform by comparison.

At present, legacy Impact does tend to perform very slightly better (on the order of a few hundredths of a millisecond) when dealing with very few collision events. Legacy Impact processes collision events immediately, where Impact CFX queues collision events and processes them in bulk in FixedUpdate. In situations where there are few things to actually process, immediate processing usually wins over bulk processing due to less overhead from scheduling jobs. In practice, this performance difference is going to be negligible and not have any affect on the overall performance of your project.

Accuracy

Impact CFX uses the same logic and algorithms as legacy Impact to calculate effects, and so has the same accuracy. However, Impact CFX generally produces much better results, especially with many collisions happening at once.

Extendability

Just like legacy Impact, Impact CFX was designed to be extendible, but of course the exact requirements for extending Impact CFX are different than legacy Impact.

With that said, writing job and burst-compatible code unfortunately often means that some extendibility needs to be sacrificed. For instance, there are no longer interfaces like IImpactContactPoint, IImpactCollisionWrapper, and IInteractionData.