By default, the KeyframeTrack constructor calls
this.optimize(). Those calls are unnecessary for animations that are already optimized, and problematic if the track is going to be split later, such as in #13430. From the Oat the Goat technical writeup —
THREE.KeyframeTrack’s constructor calls validate() and optimize() in its constructor, which is unnecessary and was costing us half a second of CPU time per scene.
An option in the KeyframeTrack constructor doesn’t really help, because they’re typically not created directly, and the option would need to be passed through all of the loaders. We could disable the optimization and let users trigger it manually, but I do think it’s a reasonable default. What about a (global) opt-out flag?
THREE.KeyframeTrack.autoValidate = false; THREE.KeyframeTrack.autoOptimize = false;