What you are looking for is actually called a strong silhouette. , not the horizon.
The easiest way to do this is to find the boundary between the surface parts in which the normal is directed towards the camera (the point product is negative), and the parts of the surface in which the normal is directed from the camera (the point product is positive),
With a triangular grid, you can do this directly using normals. with NURBS you can find a closed formula that does this.
source
share