Skip to main content

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 the Rukhanka 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 the Rukhanka 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.