Finding outline of intersected objects


For example, let’s say there is a simple head model, something like an ellipse, and two spheres representing the eyes. The spheres intersect the ellipse so that only a half of each sphere is visible outside the “head”.
Is there some automatic way finding a new mesh which would be an outline of all these 3 objects combined?

I got some pretty complicated models with several intersected objects and a lot of hidden geometry. I would like to get a single mesh which combines only the visible parts of all objects involved.