Deformation System
The Rukhanka Deformation System
is a system that responsible for applying deformations calculated by the Rukhanka Animation System
to the skinned meshes. These deformations include animations represented by skin matrices and blend shapes represented by animated blend shape weights. It was made to be a direct replacement for Entities.Graphics Deformation System
with following improvements:
- Each mesh vertex is skinned only with bones that have non-zero influence (weight) on it. This way redundant zero-weight loop iterations were completely removed from skinning function.
- Skinning and blend shape applications are performed by single compute shader.
- Deformations of all skinned meshes are performed by just two compute shader calls: per-vertex workload preparation and actual deformation application.
- The
Rukhanka Deformation System
works in cooperation with theRukhanka Animation Culling System
to check LOD level visibility, to restrict deformation application to the visible LOD levels only. - The
Rukhanka Deformation System
works in cooperation with theRukhanka Animation Culling System
to apply deformations only to the visible meshes.
tip
Rukhanka Deformation System
is designed to be a direct replacement of Entities.Graphics Deformation System
. No shader or script changes are required to switch between these two.
tip
Define the RUKHANKA_NO_DEFORMATION_SYSTEM
project script symbol to disable the Rukhanka Deformation System
and switch back to the Entities.Graphics Deformation System
.