|
Main /
P3Programming Assignment 3: OpenGL and 3D User InterfaceDue: 10/24 Why?The purpose of this assignment is to make sure that you can write an OpenGL program - just to check the mechanics (can you get it to compile, link, ...). In addition, we also want to give you some experience with writing 3D graphics programs. Specifically, we want you to be able to do the things you will need for the second project. Effectively, this program is the warmup for the second project. This program might seem like a lot of work for a programming assignment, but view it as getting started early on project 2. If you're wondering... in project 2, you'll be making a roller coaster. The "objects" in this assignment will be the "control points" that the roller coaster's track has to pass through. What?Your task is first to write a program that uses OpenGL. We recommend that you use FlTk (see the OpenGL survival guide for an explanation), but you can use any windowing tools you see fit. Secondly, your program must draw something in the window (using OpenGL) and be able to have it move. You should have a button or a key that starts/stops the motion. You can use the RunButton example code to make this easier. You should use double buffering so the animation looks OK. Third, your program must allow the user to place a number of small objects in the world and move them around. We strongly recommend that you have a groundplane so that your objects are't just floating in space. Requirements:
Not Required, but strongly recommended:
For the user interface, you don't have to do anything fancy. For example, you could give the user a bunch of sliders to control the camera, use a slider to select an object, and have sliders for its position. You could even have the user type in the coordinates of points. Or, you could have a "direct" interface where the user selects objects by clicking on them, and drag the objects around using the mouse (which is a tricky thing since the mouse is 2D and your world is 3D). While this might seem like a lot of work for a programming assignment, all of this will be used as part of Project 2. Taking the time to do this assignment well will mean that you are very close to having what you need for Project 2. The related two tutorials are OpenGL Survival Guide and CubeIt. You'll probably want to borrow some code. The CubeIt program almost satisfies the requirements for this assignment. How will this be evaluated?We do care that your program is turned in correctly (including proper documentation and readme). You will lose points for not following the rules. As with other programming assignments, this will be graded on a 0-4 scale. Roughly... |