Here's a simple algorithm that runs in O(num triangles):
1) Pick an axis -- any axis works, so pick something easy like X or Z.
2) Calculate the minimum point along this axis (dot product axis and vertex, and choose the vertex with the lowest value -- this is the minimum)
3) Define a reference plane, which is the plane that goes through the minimum point, and has the axis as its normal (if you're really pedantic, the negative of the axis will point "out" from the prism in step 4)
4) For each triangle, calculate the signed volume of the prism between the triangle and the reference plane. Sum all of these volumes.
5) That's it!
The "signed volume" is positive if the triangle normal has a positive dot product with the axis (a proper "capping" triangle on the prism) and negative if the triangle has a negative dot product with the axis. Note that a triangle that is perpendicular to the reference plane contributes zero volume, this is OK and expected.
Sincerely,
jw