A fully-featured deformer system for Unity. Deform is multi-threaded with the Job System, compiled with Burst and calculations are done using the Mathematics library.
Now available for download on the Asset Store.
Features
โก Lightning fast!
๐งถ Fully multi-threaded!
โญ 40+ deformers!
๐พ Meshes can be saved!
๐ง Easily extendable!
๐ Works in worldspace!
๐จ Custom editors and handles!
Documentation
- Installation (Important)
- Getting Started
- Creating a Custom Deformer
FAQ
Does Deform work with the new prefab system?
Yes. Deform works seamlessly with nested prefabs and prefab variants.
Are skinned mesh renderers supported?
Yes. However because of how Unity handles skinned mesh renderers; the mesh cannot be modified after its bones are animated. This means that animations to the skinned mesh renderer are applied after Deform modifies the mesh; which is often not the desired effect.
I'm getting an error about read/write permissions. How do I fix it?
This means you have a Deformable component on a mesh that doesn't have read/write permissions enabled. Select the offending mesh in your Project window and enable Read/Write permissions in its import settings.
Do deformers have to be on the object they are deforming?
No. Because deformables require deformers be added manually, they can be anywhere in the scene and on any game object.
Can deformables share deformers?
Yes. You can create a single deformer and add it to multiple deformables.
How do deformables handle instancing?
Each deformable has it's own unique mesh. Duplicating and instantiating deformables shouldn't cause any issues.
Limitations
Deform runs on the CPU. While it is incredibly fast, you should not expect to get performance comparable to vertex shaders. Because meshes are modified on the CPU each mesh has to be unique. From what I understand, this means each mesh will require a new draw call. Deform is not meant to be used at a massive scale. If you need to deform an entire world, tons of meshes, or an incredibly high poly model use vertex shaders.
tldr: Use shaders if you need speed, use Deform if you need modularity and ease-of-use.
Acknowledgments
- Thanks to Thomas Ingram for going the extra-mile to help with editor scripting.
- Thanks to Alexander Ameye, William Besnard, Raphael Herdlicka and David Carney for testing Deform and giving helpful feedback.