public Vector3 computeVoxelNormal(int x, int y, int z, ReadOnlyVector3 position) {
Vector3 local = new Vector3(position);
local.subtractLocal(basePosition);
local.divideLocal(pool.getLevel().getScale());
try {
float d000 = densities[x][y][z];
float d100 = densities[x + 1][y][z];
float d010 = densities[x][y + 1][z];
float d110 = densities[x + 1][y + 1][z];