3D projection

A 3D projection (or graphical projection) is a design technique used to display a three-dimensional (3D) object on a two-dimensional (2D) surface. These projections rely on visual perspective and aspect analysis to project a complex object for viewing capability on a simpler plane. This concept of extending 2D geometry to 3D was mastered by Heron of Alexandria in the first century. Heron could be called the father of 3D. 3D Projection is the basis of the concept for Computer Graphics simulating fluid flows to imitate realistic effects. Lucas Films 'ILM group is credited with introducing the concept (and even the term "Particle effect"). 
In 1982, the first all-digital computer generated sequence for a motion picture file was in: "". A 1984 patent related to this concept was written by William E Masters, "Computer automated manufacturing process and system" US4665492A using mass particles to fabricate a cup. The process of particle deposition is one technology of 3D printing.
3D projections use the primary qualities of an object's basic shape to create a map of points, that are then connected to one another to create a visual element. The result is a graphic that contains conceptual properties to interpret that the figure or image is not actually flat (2D), but rather, is a solid object (3D) being viewed on a 2D display.
3D objects are largely displayed on two-dimensional mediums (i.e. paper and computer monitors). As such, graphical projections are a commonly used design element; notably, in engineering drawing, drafting, and computer graphics. Projections can be calculated through employment of mathematical analysis and formulae, or by using various geometric and optical techniques.
Overview.
Projection is achieved by the use of imaginary "projectors"; the projected, mental image becomes the technician's vision of the desired, finished picture. Methods provide a uniform imaging procedure among people trained in technical graphics (mechanical drawing, computer aided design, etc.). By following a method, the technician may produce the envisioned picture on a planar surface such as drawing paper.
There are two graphical projection categories, each with its own method:
Parallel projection.
In parallel projection, the lines of sight from the object to the projection plane are parallel to each other. Thus, lines that are parallel in three-dimensional space remain parallel in the two-dimensional projected image. Parallel projection also corresponds to a perspective projection with an infinite focal length (the distance from a camera's lens and focal point), or "zoom".
Images drawn in parallel projection rely upon the technique of axonometry ("to measure along axes"), as described in Pohlke's theorem. In general, the resulting image is "oblique" (the rays are not perpendicular to the image plane); but in special cases the result is "orthographic" (the rays are perpendicular to the image plane). "Axonometry" should not be confused with "axonometric projection", as in English literature the latter usually refers only to a specific class of pictorials (see below).
Orthographic projection.
The orthographic projection is derived from the principles of descriptive geometry and is a two-dimensional representation of a three-dimensional object. It is a parallel projection (the lines of projection are parallel both in reality and in the projection plane). It is the projection type of choice for working drawings.
If the normal of the viewing plane (the camera direction) is parallel to one of the primary axes (which is the "x", "y", or "z" axis), the mathematical transformation is as follows;
To project the 3D point formula_1, formula_2, formula_3 onto the 2D point formula_4, formula_5 using an orthographic projection parallel to the y axis (where positive "y" represents forward direction - profile view), the following equations can be used:
where the vector s is an arbitrary scale factor, and c is an arbitrary offset. These constants are optional, and can be used to properly align the viewport. Using matrix multiplication, the equations become:
While orthographically projected images represent the three dimensional nature of the object projected, they do not represent the object as it would be recorded photographically or perceived by a viewer observing it directly. In particular, parallel lengths at all points in an orthographically projected image are of the same scale regardless of whether they are far away or near to the virtual viewer. As a result, lengths are not foreshortened as they would be in a perspective projection.
Multiview projection.
With "multiview projections", up to six pictures (called "primary views") of an object are produced, with each projection plane parallel to one of the coordinate axes of the object. The views are positioned relative to each other according to either of two schemes: "first-angle" or "third-angle" projection. In each, the appearances of views may be thought of as being "projected" onto planes that form a 6-sided box around the object. Although six different sides can be drawn, "usually" three views of a drawing give enough information to make a 3D object. These views are known as "front view", "top view", and "end view". The terms "elevation", "plan" and "section" are also used.
Oblique projection.
In "oblique projections" the parallel projection rays are not perpendicular to the viewing plane as with orthographic projection, but strike the projection plane at an angle other than ninety degrees. In both orthographic and oblique projection, parallel lines in space appear parallel on the projected image. Because of its simplicity, oblique projection is used exclusively for pictorial purposes rather than for formal, working drawings. In an oblique pictorial "drawing", the displayed angles among the axes as well as the foreshortening factors (scale) are arbitrary. The distortion created thereby is usually attenuated by aligning one plane of the imaged object to be parallel with the plane of projection thereby creating a true shape, full-size image of the chosen plane. Special types of oblique projections are:
Cavalier projection (45°).
In cavalier projection (sometimes cavalier perspective or high view point) a point of the object is represented by three coordinates, "x", "y" and "z". On the drawing, it is represented by only two coordinates, "x″" and "y″". On the flat drawing, two axes, "x" and "z" on the figure, are perpendicular and the length on these axes are drawn with a 1:1 scale; it is thus similar to the dimetric projections, although it is not an axonometric projection, as the third axis, here "y", is drawn in diagonal, making an arbitrary angle with the "x″" axis, usually 30 or 45°. The length of the third axis is not scaled.
Cabinet projection.
The term cabinet projection (sometimes cabinet perspective) stems from its use in illustrations by the furniture industry. Like cavalier perspective, one face of the projected object is parallel to the viewing plane, and the third axis is projected as going off in an angle (typically 30° or 45° or arctan(2) = 63.4°). Unlike cavalier projection, where the third axis keeps its length, with cabinet projection the length of the receding lines is cut in half.
Military projection.
A variant of oblique projection is called "military projection". In this case, the horizontal sections are isometrically drawn so that the floor plans are not distorted and the verticals are drawn at an angle. The military projection is given by rotation in the "xy"-plane and a vertical translation an amount "z".
Axonometric projection.
"Axonometric projections" show an image of an object as viewed from a skew direction in order to reveal all three directions (axes) of space in one picture. Axonometric projections may be either "orthographic" or "oblique". Axonometric instrument drawings are often used to approximate graphical perspective projections, but there is attendant distortion in the approximation. Because pictorial projections innately contain this distortion, in instrument drawings of pictorials great liberties may then be taken for economy of effort and best effect.
"Axonometric projection" is further subdivided into three categories: "isometric projection", "dimetric projection", and "trimetric projection", depending on the exact angle at which the view deviates from the orthogonal. A typical characteristic of orthographic pictorials is that one axis of space is usually displayed as vertical.
"Axonometric projections" are also sometimes known as "auxiliary views", as opposed to the "primary views" of "multiview projections".
Isometric projection.
In isometric pictorials (for methods, see Isometric projection), the direction of viewing is such that the three axes of space appear equally foreshortened, and there is a common angle of 120° between them. The distortion caused by foreshortening is uniform, therefore the proportionality of all sides and lengths are preserved, and the axes share a common scale. This enables measurements to be read or taken directly from the drawing.
Dimetric projection.
In dimetric pictorials (for methods, see Dimetric projection), the direction of viewing is such that two of the three axes of space appear equally foreshortened, of which the attendant scale and angles of presentation are determined according to the angle of viewing; the scale of the third direction (vertical) is determined separately. Approximations are common in dimetric drawings.
Trimetric projection.
In trimetric pictorials (for methods, see Trimetric projection), the direction of viewing is such that all of the three axes of space appear unequally foreshortened. The scale along each of the three axes and the angles among them are determined separately as dictated by the angle of viewing. Approximations in Trimetric drawings are common.
Limitations of parallel projection.
Objects drawn with parallel projection do not appear larger or smaller as they extend closer to or away from the viewer. While advantageous for architectural drawings, where measurements must be taken directly from the image, the result is a perceived distortion, since unlike perspective projection, this is not how our eyes or photography normally work. It also can easily result in situations where depth and altitude are difficult to gauge, as is shown in the illustration to the right.
In this isometric drawing, the blue sphere is two units higher than the red one. However, this difference in elevation is not apparent if one covers the right half of the picture, as the boxes (which serve as clues suggesting height) are then obscured.
This visual ambiguity has been exploited in op art, as well as "impossible object" drawings. M. C. Escher's "Waterfall" (1961), while not strictly utilizing parallel projection, is a well-known example, in which a channel of water seems to travel unaided along a downward path, only to then paradoxically fall once again as it returns to its source. The water thus appears to disobey the law of conservation of energy. An extreme example is depicted in the film "Inception", where by a forced perspective trick an immobile stairway changes its connectivity. The video game "Fez" uses tricks of perspective to determine where a player can and cannot move in a puzzle-like fashion.
Perspective projection.
Perspective projection or perspective transformation is a linear projection where three dimensional objects are projected on a "picture plane". This has the effect that distant objects appear smaller than nearer objects.
It also means that lines which are parallel in nature (that is, meet at the point at infinity) appear to intersect in the projected image, for example if railways are pictured with perspective projection, they appear to converge towards a single point, called the vanishing point. Photographic lenses and the human eye work in the same way, therefore perspective projection looks most realistic. Perspective projection is usually categorized into "one-point", "two-point" and "three-point perspective", depending on the orientation of the projection plane towards the axes of the depicted object.
Graphical projection methods rely on the duality between lines and points, whereby two straight lines determine a point while two points determine a straight line. The orthogonal projection of the eye point onto the picture plane is called the "principal vanishing point" (P.P. in the scheme on the left, from the Italian term "punto principale", coined during the renaissance).
Two relevant points of a line are:
The principal vanishing point is the vanishing point of all horizontal lines perpendicular to the picture plane. The vanishing points of all horizontal lines lie on the horizon line. If, as is often the case, the picture plane is vertical, all vertical lines are drawn vertically, and have no finite vanishing point on the picture plane. Various graphical methods can be easily envisaged for projecting geometrical scenes. For example, lines traced from the eye point at 45° to the picture plane intersect the latter along a circle whose radius is the distance of the eye point from the plane, thus tracing that circle aids the construction of all the vanishing points of 45° lines; in particular, the intersection of that circle with the horizon line consists of two "distance points". They are useful for drawing chessboard floors which, in turn, serve for locating the base of objects on the scene. In the perspective of a geometric solid on the right, after choosing the principal vanishing point —which determines the horizon line— the 45° vanishing point on the left side of the drawing completes the characterization of the (equally distant) point of view. Two lines are drawn from the orthogonal projection of each vertex, one at 45° and one at 90° to the picture plane. After intersecting the ground line, those lines go toward the distance point (for 45°) or the principal point (for 90°). Their new intersection locates the projection of the map. Natural heights are measured above the ground line and then projected in the same way until they meet the vertical from the map.
While orthographic projection ignores perspective to allow accurate measurements, perspective projection shows distant objects as smaller to provide additional realism.
Mathematical formula.
The perspective projection requires a more involved definition as compared to orthographic projections. A conceptual aid to understanding the mechanics of this projection is to imagine the 2D projection as though the object(s) are being viewed through a camera viewfinder. The camera's position, orientation, and field of view control the behavior of the projection transformation. The following variables are defined to describe this transformation:
Most conventions use positive z values (the plane being in front of the pinhole), however negative z values are physically more correct, but the image will be inverted both horizontally and vertically.
Which results in:
When formula_15 and formula_16 the 3D vector formula_17 is projected to the 2D vector formula_18.
Otherwise, to compute formula_13 we first define a vector formula_20 as the position of point "A" with respect to a coordinate system defined by the camera, with origin in "C" and rotated by formula_21 with respect to the initial coordinate system. This is achieved by subtracting formula_22 from formula_23 and then applying a rotation by formula_24 to the result. This transformation is often called a , and can be expressed as follows, expressing the rotation in terms of rotations about the "x," "y," and "z" axes (these calculations assume that the axes are ordered as a left-handed system of axes):
This representation corresponds to rotating by three Euler angles (more properly, Tait–Bryan angles), using the "xyz" convention, which can be interpreted either as "rotate about the "extrinsic" axes (axes of the "scene") in the order "z", "y", "x" (reading right-to-left)" or "rotate about the "intrinsic" axes (axes of the "camera") in the order "x, y, z" (reading left-to-right)". Note that if the camera is not rotated (formula_26), then the matrices drop out (as identities), and this reduces to simply a shift: formula_27
Alternatively, without using matrices (let us replace formula_28 with formula_29 and so on, and abbreviate formula_30 to formula_31 and formula_32 to formula_33):
This transformed point can then be projected onto the 2D plane using the formula (here, "x"/"y" is used as the projection plane; literature also may use "x"/"z"):
Or, in matrix form using homogeneous coordinates, the system
in conjunction with an argument using similar triangles, leads to division by the homogeneous coordinate, giving
The distance of the viewer from the display surface, formula_38, directly relates to the field of view, where formula_39 is the viewed angle. (Note: This assumes that you map the points (-1,-1) and (1,1) to the corners of your viewing surface)
The above equations can also be rewritten as:
In which formula_41 is the display size, formula_42 is the recording surface size (CCD or film), formula_43 is the distance from the recording surface to the entrance pupil (camera center), and formula_44 is the distance, from the 3D point being projected, to the entrance pupil.
Subsequent clipping and scaling operations may be necessary to map the 2D plane onto any particular display media.
Weak perspective projection.
A "weak" perspective projection uses the same principles of an orthographic projection, but requires the scaling factor to be specified, thus ensuring that closer objects appear bigger in the projection, and vice versa. It can be seen as a hybrid between an orthographic and a perspective projection, and described either as a perspective projection with individual point depths formula_45 replaced by an average constant depth formula_46, or simply as an orthographic projection plus a scaling.
The weak-perspective model thus approximates perspective projection while using a simpler model, similar to the pure (unscaled) orthographic perspective.
It is a reasonable approximation when the depth of the object along the line of sight is small compared to the distance from the camera, and the field of view is small. With these conditions, it can be assumed that all points on a 3D object are at the same distance formula_46 from the camera without significant errors in the projection (compared to the full perspective model).
Equation
assuming focal length formula_49.
Diagram.
To determine which screen "x"-coordinate corresponds to a point at formula_50 multiply the point coordinates by:
where 
Because the camera is in 3D, the same works for the screen "y"-coordinate, substituting "y" for "x" in the above diagram and equation.
You can use that to do clipping techniques, replacing the variables with values of the point that's are out of the FOV-angle and the point inside Camera Matrix.
This technique, also known as "Inverse Camera", is a Perspective Projection Calculus with known values to calculate the last point on visible angle, projecting from the invisible point, after all needed transformations finished.