The simple solution is just to fill a 3-d array with voxels that are inside each ellipsoid. So, if a voxel is already filled, then you can't fill it twice.
Then count the number of fillled voxels at tha end. You can probably get a bit more accurate by trying to count partially fixed voxels, thus around the perimeter of an ellipsoid.
The entire result will be more accurate if you increase the size of the 3-d array, and only as good as the resolution of that array.