Old CPUs struggled to interpolate thousands of vertices per frame. Modern shaders now evaluate morph targets on the GPU. A scene can now support 20+ characters with 100 active blend shapes each, running at 120fps on a mid-range card.
This cuts bandwidth by ~50% with no visible quality loss. morph target animation new
At its core, a morph target is a deformed copy of a base mesh. Instead of moving bones to drive vertices, you store a second set of vertex positions. At runtime, the GPU linearly interpolates each vertex from its position towards its Target Pose position. Old CPUs struggled to interpolate thousands of vertices
Morph targets still struggle with circular/rotational movements (like a rotating hinge), which are still better handled by bones. This cuts bandwidth by ~50% with no visible quality loss
Instead of blending on the CPU or in the vertex shader serially:
Old CPUs struggled to interpolate thousands of vertices per frame. Modern shaders now evaluate morph targets on the GPU. A scene can now support 20+ characters with 100 active blend shapes each, running at 120fps on a mid-range card.
This cuts bandwidth by ~50% with no visible quality loss.
At its core, a morph target is a deformed copy of a base mesh. Instead of moving bones to drive vertices, you store a second set of vertex positions. At runtime, the GPU linearly interpolates each vertex from its position towards its Target Pose position.
Morph targets still struggle with circular/rotational movements (like a rotating hinge), which are still better handled by bones.
Instead of blending on the CPU or in the vertex shader serially: