The University of Melbourne Department of Computer Science and Software Engineering 433-380 Graphics and computation Project 1, 2006 Set: 17th March Electronic submission: 4pm, 6th April Marks: This project counts towards 10% of the marks for this subject Marks: This project must be done individually (note: project 2 can be done in groups) Aim The purpose of this project is to get you acquainted with programming using OpenGL. Task This project concerns the automatic construction of a landscape with using fractal geometry for generating varied surface properties, such as colour, Lambertian and specular components. Plasma Fractal You must use the Plasma Fractal, also known as the Random Midpoint Displacement Fractal, which is a de facto standard in fractal landscape generation. The 380 web page has a number of links that have simple explanations of the algorithm. Specifications and marking criteria A project that meets all of below will receive 10 marks, 1 mark off for each (bullet) point not met. • Modelling of fractal landscape: – Automatic generation of new (randomly seeded) fractal landscape at each invocation and correct implementation of plasma fractal. – Appropriate use of OpenGL for representing landscape. – No significant problems with polygonal representation. • Surface properties and lighting: – One light source (such as a small sun or bright moon) with sufficient intensity and sufficient ambient lighting so areas not directly illuminated by light source are visible. – Surface colours and terrain correspond in sensible way (for example rocky outcrops or snow on top of mountains and grass or soil in valleys). – Lambertian and specular surface properties visible. – Perspective: ∗ Perspective projection. ∗ Suitable perspective chosen, above the surface and looking down. Newsgroup consultation You are encouraged to ask questions, answer questions where possible and share examples of pseu- docode and/or small examples of code that highlight the correct invocation of OpenGL commands, JOGL commands or algorithmic techniques. You are not allowed to exchange complete methods or classes. Remember that copying Java code from the Internet or from your colleagues will be considered cheating. Note that stage 2 will involve electronic submission of your code and your code will be checked for similarity between submissions and with code available over the Internet. Electronic submission You code must compile and run on the machines in lab 1.08 using (only) the commands javac *.java java Main Please check that your code works first, before submitting. You must electronically submit all your Java source code required to run your programs using the submit system by the due date, using the following command submit 380 1 *.java readme.txt The readme.txt file must (briefly) describe your implementation. Be sure to include a brief description of how you generate the terrain using OpenGL. Several paragraphs of text are sufficient and concise descriptions are preferred over long, verbose descriptions. Important: if your code contains code from other sources, in particular from other web sites, you have to clearly indicate this in readme.txt, which classes or methods are your own and which are from a different source. Remember that copying Java code from the Internet or from your colleagues will be considered cheating. We will be checking for similarity between submissions and with code available over the Internet. Extensions Project 2 will rely on code you develop in project 1. Although not marked in this project, you may choose to try implementing some of the functions required in project 2, including • Working navigation along the surface of the landscape using the mouse. • Maintenance of a constant and reasonable frame refresh rate during navigation (including possible utilisation of level-of-detail techniques if there are too many polygons to render).