Some of you might already know the news, but: there is another commercial 3D engine from Russia, called Infinity3D. This engine licensing policy and API are very similar to those of Alternativa3D 5.x, so natural question is, how is it different? Well, one thing where the engines are different is their approach to sorting: in Infinity3D, sorting is done by renderer classes (much like in Away3D, for example). So, unlike Alternativa3D, Infinity3D does not build BSP tree for whole scene at once, but instead re-builds it for all objects visible on screen all the time. The question is, therefore, how does this difference affect actual performance? Both engine blogs had previously published “dynamic BSP” demos (here and here), but those were of little use for any meaningful comparison… until yesterday, when Infinity3D released this new demo:
With this demo, it is finally possible to verify two performance claims made by Infinity3D author, namely:
- Infinity3D BSP performance for dynamic scenes is better;
- Infinity3D BSP performance for static scenes is not worse.
For this purpose, I have made similar Alternativa3D demo using their latest released version. Controls are alternativa’s default W/A/S/D/Z/Space, mouse drag and Enter to toggle animation (note: fps counter insists on going off-stage for some reason, so make sure your browser window width is around 800 pixels).
To test claim 1, you just need to make sure animation is on, and whole scene is in view. I have low-end machine, so results are very unambiguous in this case: 10-12 fps for Infinity3D vs 3-4 fps for Alternativa3D. That’s 3 times faster! Resolution: the claim is true.
For the claim 2, it is not that straight-forward: once you stop animation, both demos run at full 60 fps, so you also need to move around constantly. The results in this case are: same 10-12 fps for Infinity3D vs 9-14 fps for Alternativa3D. Resolution: the claim is true.
Congratulations to Romanov Alexey for his great work on Infinity3D, and looking forward for 1.4 release.