Project 5: Scene description format
This document describes the file format used in the raytracer
programming assignment.
We use a simple text format for specifying scenes. Each line of the
file contains a single
command possibly followed by several arguments. If the number of
arguments is wrong, an error message is printed. The lines starting
with '#' are comments.
There is a stack of modeling transformation matrices and a stack of
material properties.
Geometric primitives
- ball R cx cy cz
- Constructs a ball with radius R and center (cx,cy,cz).
The ball is affected by the current modeling
transformation and gets current material properties.
- cylinder
- Constructs a unit radius cylinder with its axis along the
direction of the Z-axis
and of height 1 ( this cylinder is described by the following two
inequalities:
0 ≤ z ≤ 1 and x² + y² ≤ 1).
The cylinder is added to the scene with the current modeling
transformation and the current material properties.
- object_flat filename
- Loads a flat-shaded mesh from the file, and adds it to the scene.
The mesh is added to the scene with the current modeling
transformation and the current material properties.
- object_phong filename
- Loads a Phong-shaded mesh from the file, and adds it to the
scene. The mesh is added to the scene with the current modeling
transformation and the current material properties.
- triangle x1 y1 z1 x2 y2 z2 x3 y3 z3
- Constructs a triangle (x1,y1,z1), (x2,y2,z2), (x3,y3,z3).
The triangle is added to the scene with the current modeling
transformation and the current material properties.
Lights
- pointlight x y z r g b
- Constructs a point light positioned at (x,y,z) with color
(r,g,b).
The light is added to the scene with the current modeling
transformation.
- arealight width r g b
- Constructs an area light that is geometrically a square with
corners
(-width, -width, 0), (width, -width, 0), (width, width, 0),
(-width, width, 0)
and has color (r,g,b).
The light is added to the scene with the current modeling
transformation.
Material properties
- shininess p
- Changes the current shininess power p.
- ca r g b
- Changes the current ambient material colorCa.
- cr r g b
- Changes the current diffuse material colorCa.
- cp r g b
- Changes the current specular material colorCa.
Camera and image parameters
- eyepos x y z
- Sets the camera position.
- eyedir x y z
- Sets the viewing direction of the camera.
- eyeup x y z
- Sets the up-vector of the camera.
- wdist d
- Sets the distance to the view plane.
- fovy_deg angle
- Sets the vertical field of view in degrees. See section ?6.5? of
the book for more detail.
- nx d
- Sets the width of the image in pixels.
- ny d
- Sets the height of the image in pixels.
Stack operation, transformations
- {
- Pushes the copy of the current transformation matrix and material
properties onto their
respective stacks.
- }
- Pops a copy of the current transformation matrix and material
properties from their
respective stacks.
- push_matrix
- Pushes the copy of the current transformation matrix onto stack.
- pop_matrix
- Pops a copy of the current transformation matrix from the stack.
- rotate angle_deg ax ay az
- Post-multiplies the current transformation matrix by the rotation
transformation of angle_deg degrees around the axis (ax,ay,az).
- translate tx ty tz
- Post-multiplies the current transformation matrix by the
translation transform
with the translation vector (tx,ty,tz).
- scale sx sy sz
- Post-multiplies the current transformation matrix by the scaling
transform
with the scaling parameters (sx,sy,sz).
Global options
- background r g b
- Sets the background color for the whole scene.
- max_recursion n
- Sets the maximum recursion depth.
- aasample N
- Sets the anti-aliasing sampling parameter. If N=0, no
anti-aliasing is performed and a single viewing ray per pixel
is generated. When N>0, a jittered samples grid of size NxN
is created and used to shoot N² viewing rays per pixel.
- end
- Ends the processing of the scene file proceeds to rendering.