All Animations load in to Memory at once with DTS or DAE Collada?
by Ben Quirk · in Torque 3D Professional · 06/05/2010 (3:08 pm) · 5 replies
Does a character with over 40 animation sequences get loaded at once into RAM when saved as DTS/DAE? Does Torque3D only load the sequence needed into RAM when reading a DTS/DAE? Would it make sense to only export Animation sequences that you know will be used and cull out the others?
I understand there are DSQs as well. But this question is on DTS and maybe DAE is known.
I understand there are DSQs as well. But this question is on DTS and maybe DAE is known.
About the author
www.benquirk.net Computer Graphics and Multimedia Artist. Currently an active artist working in producing 3d and 2d animations for law firms.
#2
06/05/2010 (6:14 pm)
Fantastic. Thanks Chris!
#3
Animation data is stored inside the TSShape, so even if all your characters use the exact same animations, there will a copy of every animation for each unique TSShape. In the project I'm working on this has become quite the problem, because both RAM usage and loading times are going up quite quickly (we are aiming at 100 animations and about two dozens of unique characters).
The loading time is worsened because when using addSequence() the source shapes will be unloaded after having the sequence read from it (because there are no more live references to it after addSequence), so it gets re-loaded from disk for each character being loaded.
Right now I'm in the middle of removing the animation data from TSShape and keeping it into a separate resource class that can be shared among different TSShapes. This will drop the RAM used by animations from 200MBs to 10MBs. If this doesn't ends up too hackish I'll look into submitting it as a resource.
06/06/2010 (8:46 am)
You will have something to worry about when you get to the point of loading 40+ animations into dozens of unique character shapes.Animation data is stored inside the TSShape, so even if all your characters use the exact same animations, there will a copy of every animation for each unique TSShape. In the project I'm working on this has become quite the problem, because both RAM usage and loading times are going up quite quickly (we are aiming at 100 animations and about two dozens of unique characters).
The loading time is worsened because when using addSequence() the source shapes will be unloaded after having the sequence read from it (because there are no more live references to it after addSequence), so it gets re-loaded from disk for each character being loaded.
Right now I'm in the middle of removing the animation data from TSShape and keeping it into a separate resource class that can be shared among different TSShapes. This will drop the RAM used by animations from 200MBs to 10MBs. If this doesn't ends up too hackish I'll look into submitting it as a resource.
#4
06/06/2010 (9:34 am)
That sounds very interesting Manoel. Hope you can make a resource out of it!
#5
This is so useful and performance wise that should be merged into T3D head :-)
02/22/2011 (4:45 am)
Manoel had you success in this?This is so useful and performance wise that should be merged into T3D head :-)
Associate Chris Robertson
Unless you've got a ton of unused animations, and you've identified the excess shape/animation data as a problem I wouldn't worry about it.