General Information
General information regarding OpenGL, which may be relevant to the projects, will be presented here.
- C++ for C/Java programmers: If you know C or Java and would like a "quick" summary of the major features of C++, please check out C++ Annotations by Frank B. Brokken.
- Project Submission: Programming assignments are submitted through the Submit Server. After clicking this link, you will be asked to login using your University directory ID. Note that we will not do any testing through the submit server—you will simply upload a bundle containing all your submission files. As a favor to the TA, please remove large binary files that are not needed to execute your program (compiled object files, executable files, other junk generated by the compiler.) Also, remember to include in your submission a ReadMe.txt file, which explains to the TA how to compile and execute your program. If you have any questions, please send an email either to Dave Mount or the TA.
- OpenGL Error Checking: OpenGL does not report errors, but it is possible to query OpenGL to determine whether an error has occurred. This is done with the procedure glGetError. A simple procedure for checking errors (both in C++ and C) can be found here.
- Animation Speed Control: Because different systems and different rendering contexts require a different amount of time to process, it is useful to have a procedure that returns the wall-clock time. This is provided by the system function ftime. A code snippet that extracts millisecond counts can be found here.
Project 1
- Resources: We have put together a zip file containing Project-1 Resources. It includes a sample executable (for Windows only), source code for a class Vector2d, which encapsulates some geometric utilities for 2-dimensional affine geometry, and a file that contains many of the numeric parameters used in our program (e.g., the speed, size, and color used for water droplets). If you do not have a Windows machine but would like to see our executable, I've uploaded a short (rather low-quality) screen capture using Fraps. It can be found on Youtube.
Project 2
- Resources: We have put together a zip file containing Project-2 Resources. It includes
- Sample executables of our project (for Windows and the LinuxLab machines)
- C++ code for Vector3d, a class that encapsulates 3-dimensional points and vectors
- C++ code for RGBpixmap, a class that contains utilities for storing pixel arrays, which provides the capability to input an .bmp file in a format for OpenGL
- A file parameters.text, which contains many numeric parameter settings used by our program
- A sample skybox given as both a .bmp and .png file
I have also uploaded low-quality screen captures using Fraps for Phase I and Phase II
- Updates to Parameters File: A few students have pointed out some errors in my parameter file. Here they are:
- Skybox: It says that it "Is a large cube of side length 10,000". In fact, it is of side length 20,000, which extends from -10,000 to +10,000.
- Friction: It says that the friction coefficient is 0.05, and the horizontal speed is decreased by (friction coef) * (elapsed time). In fact, our program reduces the horizontal speed by multiplying it times a factor of (1 - 0.05) with every refresh cycle. This is not a great solution, since it depends on how often refreshes are performed. See my Piazza answer for "Speed of Smurf" for a better approach.
- RGBpixmap: The code fragments in the ReadMe.txt file contained some errors. I've fixed them.
|