I see you have looked at the collision stuff
.
As you can see, the system use a collision points matrix and is raycasting on them with the displacement direction to detect collision on the path of these collision points. The system is optimized by enabling and disabling some points to enable different "detection planes" depending on the displacement direction.
So, you have understood that with smaller voxels, the "holes" in the grid are too large.
One solution could have adding points on the "collision grid" to fill the gaps.
But the problem with a 8 voxel height character is the number of points that will lead to some problems :
- The actual code need some redesign to organize such number of points.
- Some optimization problems could arise with big number of calls for individual raycasting points. But it should be tested.
So, changing the approach could be a good idea.
But maybe you could use some kind of "collision volumes" around the player.
Iterate through these volumes and find the nearest collision voxel if any.
Remember you need the collision distance to allow the player to travel until effective collision.
The Blackvoxel Team