Computer Science 102 Major Program 2 Due 27 April 11:59PM For this program the ONLY authorized source of assistance is Dr. Westall or the TA's. ANY OTHER DISCUSSION of the program no matter how "high level" or "peripheral" (e.g. Have you started/finished it yet?) is STRICTLY FORBIDDEN. Any student who observes improper behavior is encouraged to report it to Dr. Westall. Reports that can be verified will be rewarded with a 20 point bonus on the assignment for the student doing the reporting and an F for the course for the student being reported!! Adhere to the following programming standards. Violations will lead to deductions. (1) no function should be longer than 30 lines code + whitespace. (2) the maximum nesting level in any function is ONE (3) code lines should not extend beyond column 72 (4) no more that one statement may be written on a single line (5) use reasonably descriptive names for variables and functions (6) package all functions into a single source code module named camera.c (7) your program should compile without any warnings with gcc -Wall (8) indenting should be consistent with logical nesting (9) diagnostic / debug prints should be disabled/deleted in your submission. This is the evaluation regime for mp2. The numeric column is the number of points associated with providing a working version of the component. Providing a NON-WORKING version of any component is discouraged and will lead to deductions(possibly worse than not implementing the feature at all). Ambient lighting with planes & spheres 45 Diffuse lighting / shadows 10 Finite plane 5 Textured planes 10 Spotlights 5 Projecting textures 5 Specular reflection 5 Specular glints 5 Anti-aliasing (makefile configurable) 5 Tiled infinite planes 5 Multiple non-quadric revsurfs 10 --- Possible 110 Note that implementing all features will give you a score of 110/100 (i.e. 10 points extra credit) mp2 will also have a "mymodel.txt" component that will be worth an additional 10 points. Thus a "perfect" total score is 110 but it is possible to score as high as 120. ----------------------------------------------------------------- What you MUST submit is a SINGLE FLAT directory. No .tars and no subdirectories. The SINGLE FLAT directory must include: (0) the code and a makefile that will build your raytracer. (1) mytracer.txt. In this file you must identify the features that you believe work. For example if my raytracer only does basic stuff + finite planes and spotlights I would submit the following. _x_ Finite plane ___ Textured planes _x_ Spotlights ___ Projecting textures ___ Specular reflection ___ Specular glints ___ Anti-aliasing (makefile configurable) ___ Tiled infinite planes ___ Multiple non-quadric revsurfs If you don't claim a particular capability, there will be no deduction if said capability doesn't work. If you DO claim a capability and it doesn't work then that can lead to NEGATIVE credit. (2) mymodel.txt In this file you must provide an input file that demos the best features of your raytracer. IF YOUR mymodel.txt requires textures you (a) MUST include them (b) THEY must live in your submission directory (c) YOUR mymodel.txt file must NOT refer to textures in other directories THE ONLY WAY TO ENSURE that this is the case is to TEST on jmw! (3) myextensions.txt If you invent new stuff such as textured spheres describe what you have done. Any such descriptions should (a) make clear where the source code lives (b) evident in the image produced by mymodel.txt