Unloading invisible surfaces to camera from the scene

Hello, the title might a bit confusing, but let me elaborate. I currently am not able to verify this, but I was wondering, would Threejs performance take a hit if a had a minecraft-like game and (including removed faces, which are facing another block) would try to remove faces which are for example right behind the camera. As I’m thinking, the method might help the performance, but I’m also aware of the fact, that the logic behind the thing would be perhaps complicated and would just counter all the performance gain from removing the faces. Question remains, would it help? (The reason why I can’t verify it on my own is that my computer just died recently…)

three.js performs frustum culling (checking that something is within the camera’s view angle) at the mesh level. If an entire object is out of view, it isn’t rendered. A minecraft-like game cannot reasonably have each voxel be a separate mesh (too many draw calls) and so some “batching” of nearby voxels is probably necessary to include when building an application like that. A reasonable goal would be to draw everything within the viewport, plus a little bit more due to the voxel batching.

Simondev has some great tutorials on recreating Minecraft in JavaScript and goes over some optimisation techniques.