|
Sorry for the lack of posting, I've been doing it as an end of the day task, and the last week, people kept inturrupting my routine by visiting. How dare I have a social life! So, Monday and Tuesday were declared weekend by myself (as Saturday and Sunday were spent working). I took it easy, and only fixed a few bugs. After listening to Tom's Biota Live podcast I got back into working on a simulated life proof-of-design scene I'm working on. I'm making this by hand, rather then by an exporter, so I keep doing shortcuts that should work, and usually end up revealing bugs. So it's all good. Wednesday I got a slight efficiency increase out of the SGManager. On my Quad-Core machine, I went from 26% CPU usage to 3% CPU usage. Since 26% CPU pretty much means it's pegging one core at full load, this was bad (especially for single core machines). I changed the SGManager to only track Representations that are self-animating (DISGRepr::isSelfAnimating*) when either: It is syncronising between two or more Repr's (as is the case where Ogre SceneNodes need to reflect changes made by ODE Bodies), or when something is requesting the SGObject's current position/orientation/scale. Previous behaviour (since 0.12.0) was to update every heartbeat (100 times a second). In scenes with a lot of self-animating objects (such as Ogre Entity Bones), this resulted in a dramatic speed-up. Rendering frame rate improved as well, naturally. After that, and continuing today, I am working on the ESS-STS125 project. The UI is undergoing a metaphor change, to look like a Mac OS X-ish media player. Since we are largely jumping backwards and forwards though a pre-animated sequence, this is a very reasonable interface to present to the user. I'm almost tempted to change "Procedures" (tasks being taken in the animation) to "Playlist"!
|