Two weeks of optimization
Last two weeks brought an amazing performance improvement since it was time of very close work with various tools for performance analysis, a bottlenecks hunting season. We have to say that NVPerfSDK is a really good tool for that case, as you can see on the screenshot there are some more performance counters in our profiler, which are available along with instrumental driver from NVIDIA. It would be great if ATI (sorry, AMD - we still can't get used to this weird names like ati.amd.com) make their tools as easy-to-integrate as NVIDIA ones.
- Noticeable improvement of overall performance.
- Huge increase of DIP speed from 60-80k to 440k/s (OpenGL) and 380k/s (Direct3D9).
- Massive shaders refactoring.
- Half float data storage format for meshes.
- OpenGL pseudo-instancing of geometry drawing.
- SystemProfiler wrapper for all performance tools like NVPerfSDK (being used with instrumental driver the profiler outputs statistics in runtime).
- Manager refactoring (now it handles only textures and all types of meshes).
- Introduced new objects:
- ObjectMeshGui (3D GUI on an arbitrary curved surface)
- MeshDynamic (generated on-the-fly from C++ part)
- WorldOccluder (software occluder)
And a bunch of minor ones:
- Color sets for particle systems replaced by an attenuation texture (a horizontal gradient) with support of vertical texture transformations.
- GridBox improvement.
- Cloning of nodes in editor (using SHIFT+move).
- runFunction() construction for UnigineScript function calls from C++.
- loadUI/deleteUI functions replaced by unified for engine.gui and ObjectGui pair: addUserInrerface/removeUserInterface.
As you can see, there are a lot of visual effects added. A family of teapots walking through volume fog:
It turns out that we have too many objects - icons can be hardly squizzed into the tool bar, we are thinking about a new layout because there are more to come. New volumetric lights:
We suppose that the hottest thing of the month is NVIDIA G80, we want at least one, but it's hard to get for the moment. CUDA seems to be interesting also, we're waiting for NVIDIA's approval of our application for access to the SDK.