As a layperson in the field of computer graphics, I rarely see practical applications of algorithms that take 3D geometry as the input (along with some camera and lighting parameters) and output the 2D geometry of a projection, with (self-)occlusion removed. This seems to be uncommon even for simple 3D geometry such as triangle or tetrahedral meshes, let alone for 3D spline surfaces.

At the same time, I can see demand for this: Architects, for instance, might like the ability to export SVG files from their CAD software, and scientists might prefer to have their 3D graphs as SVG files.

In contrast, algorithms that take 3D geometry as the input and output a rasterized 2D image are very common. We even have special hardware for these.

My questions are:

  1. What are real practical applications of 3D geometry to 2D geometry projection and occlusion handling? For example, are such algorithms typically used as an intermediate step before rasterizing the projection views in CAD software?

  2. What are obstacles? (Does the form of projections of splines become too complex? Is the occlusion handling NP-hard for spline surfaces, and hard to approximate?)

  • 1
    $\begingroup$ Texture mapping. $\endgroup$
    – pmw1234
    May 26 at 12:07
  • $\begingroup$ Even though it's not necessarily bad or uninteresting, the question is a bit...broad and open-ended, I'm afraid. $\endgroup$ May 26 at 13:34

1 Answer 1


Such a transformation is (was) mostly useful for line drawing. Because when rendering shaded surfaces, the 2D projections need to be painted with color gradients. These are quite difficult to compute even from a simple shading model when all you have are 2D vectorized primitives. (An exception is flat shading on polyhedral scenes).

The line drawings were more fashionable before the raster display devices, such as random-scan CRT's, storage-tube screens and pen plotters, which are only able to draw lines and have no notion of writeable/readable pixels.

enter image description here

Renderings with hidden-line removal (and also hidden surface removal) are pretty easy on polyhedral models. For general surfaces, they are much harder, due to the non-linear nature of the equations (in particular, intersections of algebraic curves need to be found, requiring numerical methods). In practice, the surfaces are meshed to be approximated by polyhedra, even if not all mesh edges are drawn.

For speed of display, wireframe models are still used (especially when no hardware acceleration is available). The speed is allowed by the fact that fewer pixels are drawn. Removing the hidden parts can further speed-up the display, but AFAIK, this is rarely done.

enter image description here enter image description here

Also, generation of the edges is sometimes used to enhance a classical rendering and/or produce a cartoon-like appearance.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.