I am testing the FPS with my laptop using the Intel(R) Iris(R) Plus Graphics 655 card. To test the threeJS example with Instance rendering and merge-drawcall re
This is only guesses
Three.js by default culls if things are outside the frustum.
We can turn this off with mesh.frustumCulled = false
. I didn't notice a difference and this should show up in the draw count.
Three.js by default sorts opaque objects back to front.
This means everything else being equal, sorted will run faster than unsorted because of the depth test. If I set the depth test to always
material.depthFunc = THREE.AlwaysDepth
Then I seem to get slightly faster rendering with instanced vs native. Of course everything else is not equal.
An issue in Chrome.
If I run in Firefox or Safari I get the expected results. Merged > Instanced > Native
It could be a bug or it could be they're working around a driver or security issue that the other browsers are not. You'd have to ask.