Calculating the intersection of two volumes

What is an efficient way to calculate the volume of intersection of two arbitrary volumes described as closed surfaces? That is, with two meshes, A and B, how do I calculate the intersection of A and B? Is Sutherland Hodgman clipping applicable to arbitrary 3D volumes?

To be clear, the volumes in question are not necessarily simple, nor are they necessarily convex. Some could be described as parametric equations, others not so much.

• Sutherland Hodgman can clip a convex polygon against a concave polygon. But concave against concave won't work. This can be overcome by dividing one of the polygons into multiple convex polygons then clipping each convex against the concave. Jun 17 '21 at 12:11
• Also, it is worth mentioning that many implementations of SH will only work with two convex polygons in 3D. Jun 17 '21 at 12:14
• Do you want to check whether an intersection had occured or do you want to find out the polygon that results from the intersection ? Jul 7 '21 at 2:33
• The latter. I want to be able to calculate the intersection, union, or difference of two meshes. Jul 7 '21 at 2:44