Commit Graph

3 Commits

Author SHA1 Message Date
Benjamin Jillich eac0e42dc6 [LYN-3481] EMotionFX crashes when reloading an Actor (#1184)
* [LYN-3481] Added new actor instance request and notification buses

* [LYN-3481] Actor instance notifies bus about it being created or destroyed

* [LYN-3481] Selection lists are now automatically removing destroyed actor instances

* [LYN-3481] Morph targets window plugin reinitializing when used actor instance got destroyed

* [LYN-3481] Removing the OnDeleteActorInstance() from the emfx event handler/manager and porting the recorder to the new actor instance bus

* [LYN-3481] Removed the create actor instance calls from the event handler/manager

* [LYN-3481] Fixing automated tests
2021-06-09 19:25:05 +02:00
Benjamin Jillich 893d4208c0 [LYN-3312] EMotionFX: Multi-threading dual quaternion software skinning / Moving the mouse while having many characters on screen makes the editor unusably slow (#506)
Multi-threaded software skinning by splitting the mesh up into batches of 10,000 vertices, which results in 27 jobs being spawned and executed using a character asset from a customer having 262,676 vertices and a speed improvement of 12x on a 32-core machine.

Single-threaded: 11,61 ms
Multi-threaded (27 jobs): 0,96 ms

* Created a SkinRange() function that can skin a part of the vertices.
* The actual skinning is now using the job system to split up the skinning into several pieces and executes them in parallel.
* Ported the bone info array to AzCore.
* Fixed some issues with the mesh based bounds update in the actor instance.
2021-05-03 18:48:30 +02:00
alexpete a10351f38d Initial commit 2021-03-08 14:30:57 -08:00