Site Navigation |
Deadlines
SubmissionThe assignments must be submitted through our submit system; detailed instructions can be found at the bottom of the pages for the individual assignments. Late submission is not possible: from 6:00 pm on the days of the deadlines, submit refuses to accept any files. Requests for extension of the deadline will generally not be granted. Crashed hard disks at home, sick cats, exams for other courses, having started too late: it's all your own responsibility. Plan your work so that you finish on time, and make frequent backups to prepare for any disasters. In particular, do not ever send your submission by email to the instructor without prior agreement. |
|
Goal
In two programming assignments, you will implement a ray tracer that can render spheres and triangles, does diffuse and glossy shading, has global illumination capabilities, includes vector and matrix algebra, deals with material properties, and does several kinds of texture mapping. Getting your hands dirty means that you will get a deeper understanding of the techniques discussed in the lectures and in the textbook.
Prerequisites
The programming assignments are done in Java, which is installed on the lab machines in BBL. If you want to work at home, you need to have the Java 2 platform (Java SE) installed on your computer. It can be downloaded from java.sun.com. Be sure to select the Software Development Kit (JDK 5.0). On linux, you can also use Blackdown Java.
If you want the same integrated development environment at home as is installed at the ICS, then download and install Eclipse.
You don't have to work under MS Windows. Java tools for other operating systems, such as Linux, are available as well. Apart from Sun's or Blackdown's Java, for instance, gcc (or rather, gcj) translates Java code into C, and compiles the C code into an executable. This should run faster than interpreted byte code in the Java Runtime Environment. However, make sure that your code compiles and runs on the Windows machines in BBL before you submit. If you take this road, let me hear your succes stories (I didn't get any up till now...).
Grading
If you implement everything that is required decently, you will get a maximum grade of 8.0. If you show initiative, and make some nice additions to your ray tracer, you may get up to two points extra credits, provided that your program meets the standard requirement fairly well. This somewhat uncommon grading rule serves to remind you that in a university, it's partially up to the students to decide what they want to learn.
Both programming assignments count for 50% for the total programming grade: P = P1 + P2. P must be at least 5.0 to pass the course. If you failed the programming assigments, you may do the additional assignment, provided that you handed in both programming assignments, took part in both written exams, and your final grade for the course is at least 4.0. The grade of the additional assignment (P3) replaces the lower of the two grades P1 and P2. The final grade for the course is (2T + P) / 3, where T is the grade for the written tests.
Cooperation
Both programming assignments must be done in groups of two students. If you can't find a programming partner to work with, post a message on ruuinf.misc. Submitting alone is generally not allowed, unless
- You have a very good reason to work alone, and
- You reached agreement with instructor Remco Veltkamp through email before Nov 22.
You are alowed and even encouraged to discuss the principles of ray tracing that you have to implement with others. However, you are not allowed to discuss implementation details, let alone to exchange code (except, of course, with your programming partner). You are also not allowed to use any code that is available on the internet. We will use software to detect plagiarism. Students who are caught cheating will fail the course, and will have to re-take it next year.