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 horizontalfieldofview 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.