Basically, the ideas is that we perceive things by projection. (or rather, physically speaking light get reflected into our retina) Now, forget that we have two eyes and the processing to get into a stereoscopic imagery in our head. But suppose we just have one eye for simplicity of this account. Now, we see things by projection. So, essentially what we get is a planar representation of a 3D image. Besides having two eyes to get different perspective to reconstruct the original 3D image, we also heavily relies on past experiences of reality of likely objects. So, given a drawing on paper (which is 2D), we are able to interpret its original 3D scene as the drawing is of. The simplest example is that a drawing of a cube, which on paper is a hexagonal thing. (and if you view the cube from its corner perspective, it's a perfect hexagon, which SGI exploited for their logo design. See: SGI Logo ＆ Visual Illusion.)
Now, however, given a piece of drawing (which is a 2D image), there are really a myriad ways to interpret it. Put it technically, there are infinite 3D scenes that can project into a given 2D image. Our brain simply automatically choose the simplest, possible, earthly interpretation. For most images this works out fine. But for some drawings, our brain are kinda indecisive and ambiguous on how to interpret it. This is why, given a line drawing of a cube, sometimes you see it as this side out, while in a blink of an eye you see it as the other side out. To recap, this is because a 2D image cannot define a 3D object.
Now, it becomes really interesting if you were to exploit this fact into applications. Given a 2D image, you can create several 3D objects whose projection is this 2D image. Of course, almost all 3D scenes will in reality be absurd objects and shapes, but still they are real 3D objects. One simple application of this exploit is for example in creating decorative visual displays for the entertainment industry. (⁖ screen-savers)
In particular, given a line drawing, say, a cube. In your program, you find a few real 3D object of which this line drawing is a projection. Then, you start to rotate this 3D object. (say, in OpenGL) So, the effect is that when a viewer sees a drawing on screen, then the thing on screen suddenly starts to rotate like a real 3D object, and it came to the surprise and realization of the viewer the real nature and shape of the object. Now, when the 3D object has rotated a 360°, in your program you switch to another 3D interpretation, so that, the effect being the object as if thru a 2D-space-hole suddenly and smoothly transformed into another, rather different, 3D object.
Likewise, you can start with some 3D object in rotation and thru this 2D screen presentation turn it into another 3D object. This understand can be used to explore unexplored fields in illusion, visualization, and computer animations.
Artist M C Escher did several artworks based on the idea of 3D objects and its 2D projection. He exploited a aspect so that seemingly realistic drawing are actually “impossible” objects. Note, however, these the vast potential of dimensionality and projection remain unexplored.
For example, this site shows the actual 3D objects of many Escher's “imposisble” 2D drawings. Escher for Real (2002) By Gershon Elber. @ Source www.cs.technion.ac.il. There are also someone who has built actual models using Lego™ blocks of Escher's drawings.
(M C Escher's artworks are copyrighted by M.C. Escher Company B.V.)