Hello ThreeJS team,
I am not pretty sure, if this forum is the right place for my question, but I am writing a dissertation about a 3D visualization monitoring system.
I was discussing the pros and cons about some WebGL frameworks and the decision was between ThreeJS and BabylonJS.
One big part during this decision making dealt with the performance.
I read some articles and two main buzzwords I found were Change Detection and Culling. But I did not find enough information about how these concepts could cause performance differences.
Are these concepts implemented in WebGL and therefore equally for derived libraries or are there different approaches in each of the libraries?
Are there other big concepts that need to be taken into account analyzing performance differences?
Thanks a lot in regard
I think it’s fair to say that three.js and babylon.js are both full-featured WebGL frameworks, and neither is going to impose an upper ceiling on the performance of your project. But in any ambitious graphics project, the best performance usually requires some amount of measuring, tuning, and ‘tricks’. And all of those things require time and work.
Whether it takes more time/work to get great performance from three.js or babylon.js will depend a lot on what you’re doing.
Common performance techniques — like frustum culling, instancing, batching, LODs, spatial indexing, … — will available in both frameworks. Most of these require some work to set up. I’m not sure what a “3D visualization monitoring system” involves, to make a guess about which performance tricks are required, or whether one framework is better for that purpose.
Thank you for the answer.
My performance analysis was based on a rudimentary scene without any custom performance optimizations (Loading a bunch of random placed cubes and having a little camera drift). I think I have to point that out in my dissertation more clearly, since potential optimizations seems to be able to cause a completely different outcome.
But it is pretty helpful to know the techniques that could cause slight differences. So thanks again!