Performance: Morph Target Static Mesh vs. Animated Character

Comparing a skinned animated pawn to a similar static mesh with morph targets applied (per the Thursday Twitch stream), which of these two will likely create the biggest performance hit on the CPU/GPU?


Skeletal animation all the way.

Skeletal animation is just transform and rotation data that can be used on as many pawns as you wish where morph data is unique to a given object that it is applied to. I even did the math once based on the need for ten player models, excluding materials, and as a 1-1 comparison skeletal based animations came in at around 15 megs and the same set as morphed data came in at about 17 gigs.

Then there is GPU rendering. Frame rates as to skeletal animation can not be calculated as part of the total resource hit as the amount of data rendered is always equal to the amount of data imputed. If your animation is imputed at 30 frames per second it’s outputted at the same rate. Also FPS tends to lie… a lot so the better number is the time it takes for a single frame to render as a sample over time.

Morph data on the other hand its still questionable that the GPU can even be used to render the result due to the massive amount of data that has to be managed if the need is to do so in real time. To be honest I don’t know how UE4 manages morph data, at the moment, but if it’s absolute then it’s going to be a big number.

This is not to say using targets is bad but is something that needs serious consideration depending if you need to do so in real time or as part of a scripted event.

Thanks Frankie! I appreciate the detailed answer. It will indeed be skeletal animation all the way for my purposes.