Saturday, March 28, 2009

Concurrent animator and architectures screen shot

It has been quite a while since the last post. We have been really busy working on pushing the first release of our character editor. The good news is that most of the functionalities have already been implemented and tested, we are just finishing off the particle editing and binary format exporting. Then we should be all set to go.

The quick report for the work that we've done for the past two weeks is as follows: first, I finished implementing the concurrent MD5 animator, which allows concurrent updating of animations for a character. The benchmark with a single character animator running in parallel with the rendering operation shows a 7.3% percent frame rate increase and a 12% CPU utilization increase on an Intel Core 2 Duo processor. The result should scale up very nicely once you introduce hundreds of characters running around on the screen. In our single character test, the total CPU utilization is only about 20%. Second, Tim has been working really hard to finish up implementing the particle editing functionalities for the character editor. Some of the early test cases have shown very impressive effects. The last time I checked, we only have two more functionalities to go.

That's pretty much the shortened version of what we've been doing. And here's a nice treat. Last week we got a screen shot from our art team of some of the environmental architectures. So here it is, the first public screen shot of Project Essence.

04/02/2009

Further testing both by our team and outside sources who also use the import has shown a great performance improvement of the concurrent animator over the single threaded version. Here are some of the testing results:

Single threaded 1 character:   95 FPS
Single threaded 2 characters:  47 FPS
FPS decrease: 102%

Concurrent 1 character:   880 FPS
Concurrent 2 characters:  705 FPS
FPS decrease: 24.8%


04/03/2009

I have made several optimizations to both concurrent and single threaded versions of the MD5Importer animator. The performance of the single threaded version has been significantly improved. The "laggy" problem in the concurrent version has been solved with these optimizations. Also the concurrent version has gained a 4% performance improvement as well. With the help from these new optimizations, the scalability of the concurrent version should be significantly improved. You should see a linear performance decrease with very small slope as you add in a lot of animated characters.

Here are some new testing results:

Single threaded 1 character:   820 FPS
Single threaded 2 characters:  670 FPS
FPS decrease: 22.4%

Concurrent 1 character:   870 FPS
Concurrent 2 characters:  720 FPS
FPS decrease: 20.1%

Notice the result here is largely GPU bound rather than CPU bound. The 2 character case is not enough to show CPU scalability.



No comments:

Post a Comment