Wed 4 Jan 2006
Due Wed. 21 September 2005
The purpose of this assignment is for you to set up your basic real-time graphics environment, learn how to interface with basic 2D graphics primitives and to show you how fun 2D graphics can be. (Remember, Super Mario Brothers was nothing more than low quality 2D graphics!)
The below table lists the various parts of this assignment. Each part is assigned a certain number of points. Full completion of a portion is the only way to receive any of the points for that portion. Those parts with an asterisk (*) in the first column are required and MUST be done for the project to be passed off. The remaining portions are optional, although you must tally 400 points over the 4 projects for this class. The maximum which may be received for any single project is 120.
| Required | Description | Point Value |
|---|---|---|
| * | Set up your OpenGL environment | 10 |
| * | Use at least two lines, two polygons/triangles, two points where they use different attributes (i.e. thick line, dashed line) | 5 |
| * |
Allow interactive creation of polygons (via mouse input) of any number of vertices (i.e. I click until I like the polygon, then double click, or type a key, or push a button, and that polygon is complete).
This may help you with other parts of the assignment, so make this robust. Perhaps make it so you can set the color of the polygon…. You may even want to make it so this part can save the polygons out to a file. NOTE: OpenGL does not handle concave polygons and self-intersecting polygons properly. So, this part of your assignment need not handle those properly either. (i.e. if you draw an hourglass figure outline, it might draw more of a rectangle, missing the concavities.) |
20 |
| Draw an interesting scene using nothing by 2D primitives. | 5-25 (depending on quality) | |
|
Using Marching Squares, find the contours of a grayscale image.
You may want to use some of the images Found here. (Specifically, JohnFace.ppm, cone.ppm, invertedCone.ppm, plane.ppm and ridge.ppm) You can find a simple PPM reader/writer C/C++ class named jImage.cpp and jImage.h here. IrfanView is a free image viewer that can read ppms. |
20 | |
| Make your Marching Squares interactive: when I move the mouse up/down, the contour shown goes up/down in value. | 10 | |
| Create an interactive quad-tree application. Ex) When the user clicks, a point is added to the clicked position. Using quad-tree subdivision, make sure that there is AT MOST one point any square. | 15 | |
| Pong Game - Point breakdown below | ||
| Have a moving ball which bounces properly off the walls | 15 | |
| Have two moving paddles on the verticle walls, using keyboard or other input. The paddles must not be able to leave the extent of the window. | 5 | |
| Solve for paddle/ball collision. You now have a complete Pong game. | 10 | |
| Asteroids Game - Point breakdown below | ||
|
Draw the ship. Allow it to rotate around its center. Make it shoot!
NOTE: I must be able to tell which direction is “forward” on the ship. |
10-15 (depending on how nice the ship looks.) | |
| Track the velocity of the ship, allowing it to speed up and slow down (caused by keyboard input). When the ship leaves out the left side, it enters the right side. Top and bottom are similarly defined. | 10 | |
| Add asteroids which move and collide with the ship and get hit by the shot fired by the ship. These can blow up when shot only once if you prefer. | 20 | |
| Other game - You propose to the teacher what you would like to make. Please no copyrighted games! (Missile Command is a good suggestion) | Points negotiable | |
| Quality of the User Interface | 0-15 |