CS465 Program 5: Ray II
watch this space for additional helpful material.
FAQ
Check here for any updates to the Ray II description
- 4:00 pm, 29 November 2004: Do we have to support
transformation of lights?
A: No, you don't have to
worry about this. As with the modeller assume all light sources are at
the top level node.
- 4:00 pm, 29 November 2004: Are we allowed to pull code
from the Ray 1 solution?
A: Absolutely. There should
still be more than enough challenge left.
- 10:45 pm, 20 November 2004: Version 2 of the handout
gives a lot more detail about the file format you should use, and we are
handing out a (necessarily incomplete) parser, based on the one in the
previous assignment, which you can use as a starting point for your parser.
- 11:30 am, 23 November 2004: Version 2.1 of the handout
includes some corrections:
- input file keyword
TriMesh
changed
to TriangleMesh
.
- parameter
image
added to camera
- correction to syntax for materials (replaces color, rather than
appearing after color)
- added materials to mesh examples to make them correct
And the parser is updated with some corrections:
- camera parameter reading code streamlined and changed to match handout
- 11:30 am, 23 November 2004: What do I do if my input
contains a surface of revolution but I'm not implementing surfaces of
revolution?
A: The general principle is, if the input is well-formed
but contains anything you do not implement (surface types you don't support,
parameter names your program does not recognize, etc.) you should safely and
silently ignore it. For example, if your input file contains a triangle
mesh and you don't support triangle meshes the result should be the same as
if the triangle mesh was not in the file. Same goes for parameters: if you
didn't implement area lights and you see an aperture
parameter on
a camera you should act as if the parameter was not there. You still
need to be able to read and use a samples
parameter that comes after
the aperture
, though.
- 12:15 pm, 23 November 2004: The parameters in the file
for the camera don't match the parameters for the camera from the old ray
tracer. Help!
A: You're right. Some need to be converted and some
ignored. You need to convert from height to vertical FOV (assume an image
plane distance of 1). You should ignore the aspect ratio and let it be
instead determined by the image size.
- 2:00 pm, 26 November 2004: We have posted the code for
RayViewer, a helpful replacement for RayTracer.main that shows you the
progress of rendering in a window. This makes waiting for renderings more
fun. Its interface with the rest of the program is simple and it should be
easy to adapt it to your needs.
- 5:00 pm, 2 Decmber 2004: If you implement the AABB
hierarchy, you will need to get rid of your transformation hierarchy
first. That is, you need to flatten the tree and concatenate the
transformations for each individual object. Then, once you have a single
list, you can build the bounding box tree exactly along the lines of
Shirley's Chapter 9.
- 11:30 am, 3 Decmber 2004: Is it really true that I can
only have letters in my filenames for triangle meshes?
A: Here is a version of
Ray2Reader.parseToken that supports quoted strings like this:
TriangleMesh ["Nice (long) filename!.msh" (0.5, 0.5, 0.5)]
The file Ray2Reader.java linked to this page is also updated with this
change.
Cornell CS465 Fall 2004 (cs465-staff-l@cs.cornell.edu)