1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! The abstract **Camera** base class holds generic camera options
//! and defines the interface that all camera implementations must
//! provide.
//!
//! - EnvironmentCamera
//! - OrthographicCamera
//! - PerspectiveCamera
//! - RealisticCamera
//!
//! ## Perspective Camera
//!
//! The two most characteristic features of perspective are that
//! objects are smaller as their distance from the observer increases;
//! and that they are subject to **foreshortening**, meaning that an
//! object's dimensions along the line of sight are shorter than its
//! dimensions across the line of sight.
//!
//! ![Perspective Camera](/doc/img/wikipedia_perspective_camera.png)
//!
//! ## Orthographic Camera
//!
//! The orthographic camera is based on the orthographic projection
//! transformation. The orthographic transformation takes a
//! rectangular region of the scene and projects it onto the front
//! face of the box that defines the region. It doesn’t give the
//! effect of foreshortening - objects becoming smaller on the image
//! plane as they get farther away - but it does leave parallel lines
//! parallel, and it preserves relative distance between objects.
//!
//! ![Orthographic Camera](/doc/img/wikipedia_orthographic_camera.png)
//!
//! ## Environment Camera
//!
//! A camera model that traces rays in all directions around a point
//! in the scene, giving a 2D view of everything that is visible from
//! that point. One important use of this image representation is
//! environment lighting - a rendering technique that uses image-based
//! representations of light in a scene.

pub mod environment;
pub mod orthographic;
pub mod perspective;
pub mod realistic;