Way to estimate the amount of overlap between a rectangular prism and a frustum?
The typical prism/obb/aabb is made up of 6 planes, and the frustum is also typically made up of 6 planes.
To generate a new volume that is the intersection of the two original volumes, use plane clipping to clip one against the other. This technique is generic enough that it can be used with any object like a mesh.
That is take all the planes from the frustum then clip them one by one against the prism. After each clip operation, the new volume becomes the input to the next clipping operation.
What is left will be the clipped volume representing the intersection of the two. Compute the volume of the new shape and divide it by the original volume and you will get a value that is somewhere between [0,1].
This technique is often used to generate decals in games (though the volume computation is not done). Searching the web for decal generation alogorithms/tutorials should help you with the implementation details.
And if you have specific questions I am happy to add more details to this answer.