Skip to main content
3 of 3
Minor typos

This is a pure optimisation problem. It depends on many factors like:

  • What you need to do with the tween
  • How many different tweens you need to calculate
  • How much signaling between systems you need
  • Whether you need to use that data in your CPU bound process or not.
  • How much time you have to write the code
  • What your tool set supports easiest
  • ...

See if you only need one value to interpolate then your CPU is more than likely faster (unless you're running some weird embedded system). Even if you move a bunch of points you can still calculate the tween of that one position and do the needed cluster transformation in the GPU, like bone animation.

The GPU only starts to win against your processor if you need to calculate many truly separate animation curves in parallel. Or you're in an otherwise performance bound system like running JavaScript in a WebGL application. If you do use the GPU then it's most likely best to tween all vertices, at least unless your object is somehow massive. Since initiating a new draw call is costly and maintaining many states is more complex. Its just that those vertices that don't move would just move from starting point to starting point.

joojaa
  • 8.5k
  • 1
  • 25
  • 48