Performance improvement is a never-ending project

Photo by Julian Hochgesang

Material sorting

The main one was mostly due to an incorrect assumption I did when I started Babylon.js (eons ago). I believed that sorting meshes would be less optimal than making sure we can reduce context changes (by sorting meshes by material). I was wrong and my mistake was to simply not challenge my assumption and do a simple test. It is never too late to improve ;)

Developer art
Disabling material sorting

Unleashing the power of parallel shader compilation

This one was initiated by a user complaining that loading a scene in 5.0 was slower than in 4.2 (which should never happen :))

Avoiding V8 deoptimizations

One thing that was painful to find was the fact that our main object (the Mesh class) seemed slow. But not in a consistent way. More something that we saw when having scene with a lot of meshes. These scenes were simply slower on all aspects of the engine (compared to 4.2).

And a few more

If you are curious, you can see the list of tiny other improvements we did on the main repo:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Babylon.js

Babylon.js

1.4K Followers

Babylon.js: Powerful, Beautiful, Simple, Open — Web-Based 3D At Its Best. https://www.babylonjs.com/