#perf-drop
7 items (7 fixes)
Census tris × instances before decimating; prefer BoxCollider over ModelCollider for decorative props.
BoxCollider is cheap and follows WorldScale; Capsule/ModelCollider don't scale with WorldScale and ModelCollider is costly on clutter.
Census tris × instances first — silhouette fails before UVs; inject usemtl after scripted OBJ export.
Two screenshots of byte-identical geometry differ by tens of percent because editor auto-exposure adapts over wall-clock frames — settle the viewport and exposure-normalize before comparing.
Editor-embedded play mode pins at exactly 60 fps regardless of cvars. The cap is the compositor's vsync on the editor window, not the engine frame sync.
GameTask.RunInThreadAsync for parse/math; main thread only for engine objects; Yield every N items for loading UI.
Converting euler poses per-key can land on q vs -q — the interpolation takes a violent 360-degree detour. Negate the quat if dot(prev, new) < 0.