There's two objects: Vullen Renderer and Vullen Manager.
The Vullen Renderer builds the world based off the information in the 3D map array. It processes commands from the Vullen Manager, which holds all changes that are made to the world for a breif period.
The Renderer renders the world in chunks, meaning that it is easily modifyable and the whole world does not have to reload each time a block is placed. The current chunk size is 32x32x32, the map size is 256x256x256 (8x8x8 chunks)
The renderer can access the manager, but the manager cannot access the renderer. This means that the manager builds a list for the renderer to read (efficiency!). I think the issue is in the renderer's check-and-update code - namely, that the chunks are correctly updating but the faces of adjacent chunks are sometimes left unupdated, causing large holes to appear.
I've tried to fix this bug in a few ways but everything so far has just lead to buffer overflows with horrifically massive numbers. I can PM you the relevant source if you wish to look, but it requires:
- Ogre3D
- CEGUI
To run on other computers right now.
Have you tried decreasing chunk size to something like 16x16x16? Larger chunk sizes means longer rebuild times. Of course that's also more rendering load, but I've used that chunk size in a python-based voxel engine (though certain parts of the engine may be significantly different performance-wise) with good performance over-all. I'm guessing you're building a mesh for rendering as well; it would probably be unplayable in some of those pictures.