Is there an algorithm to construct a polyhedron containing all points in space for which there exists no ray to infinite not intersecting a given polyhedron?

In 2D, we could consider polygons. For example, we have an input polygon on the left with "critical visibility rays"(?) in dashed lines and the expected output polygon on the right (with original, dashed).

An possibly easier problem is just determining whether input is the output: whether all points on the input can *see* infinity. To solve that, it seems I'd need an algorithm to determine whether there exists an unobstructed line of sight between two line segments:

That is, whether a line segment exists connecting any point on one segment to any point on the other without intersecting a given polygon.

I'm really interested in the construction problem, though. And *really*, I'm interested in 3D where topology problem starts to come into play more.

This seems related to a previous question, a reference is given but I couldn't find a direct solution.

Seems the solution (for the 2D problem) might be lurking in "Linear time algorithms for visibility and shortest path problems inside simple polygons" [Guibas et al. 1986], but I'm failing to see how to put this together into a full solution to my problem, and then how to extend to 3d.

weakly externally visiblein the literature. $\endgroup$