next up previous contents index
Next: Routines for Creating a Up: Viewing the Scene: The Previous: Viewing the Scene: The

Components of a Camera

  A Camera has 5 components:

OpticsModel:
There is only one type of OpticsModel   which is the PinholeOptics  model. It is created with two variables.  

  PinholeOptics(double field_of_view, double aspect_ratio);

field_of_view defines the angle in degrees from the centre of the image plane to the edge of the plane. The total horizontal field of view is then two times this amount. The aspect_ratio stretches the image in the vertical direction. The vertical field of view is:

aspect_ratio tex2html_wrap_inline1680 horizontalfieldofview tex2html_wrap_inline1680 verticalpicturesize / horizontalpicturesize

A normal picture has an aspect ratio of 1. If the aspect ratio is 0.5, for example, then the image is stretched by a factor of 2 in the vertical direction. This halves the vertical field of view.

RayTracer:
There is presently one type of RayTracer  , the StandardRayTracer  . This requires no variables.

  StandardRayTracer(void);

PictureSampler:
  There are three types of Picture Sampler:

Antialiaser    creates an antialiased picture. It can be constructed with one integer parameter which specifies the maximum level of antialiasing or with no parameters in which case the level of antialiasing must be specified in the key file using the keyfile parameter antialising. See section 18

The higher the level of antialiasing the smoother edges appear. The typical maximum level of antialiasing is 3. Increasing the antialiasing level above 3 will make little difference to the picture.

  Antialiaser(int 2);

PixelSample  casts one ray at each pixel. This is useful for making draft pictures as it is faster than the Antialiaser PictureSampler

  PixelSampler(void);

SingleRaySampler  casts a single ray. It requires two integers which specify which pixel to cast the ray at. This is useful for debugging.

  SingleRaySampler(int p_x, int p_y);

Storage:
The usual storage     model is colour storage. No parameters are required

  ColourStorage(void);

PostProcessor:
The PostProcessor   operates on data in the framebuffer of the camera after the image has been generated. Post Processing can be used for creating affects such as fades from one camera to another. If no post processing is required then this should be set to NULL.


next up previous contents index
Next: Routines for Creating a Up: Viewing the Scene: The Previous: Viewing the Scene: The

Sophie Day
Fri Feb 20 15:47:19 NZDT 1998