Office Hours: Hours are here.
I try to maintain an "open door policy": you are welcome to drop by at times other than office hours, and generally I'll be able to talk to you, but sometimes I may be too busy.
Make sure you register for the web caucus for this course (cosc556). There are announcements there for the assignments!! The caucus is the official mechanism for distributing information about the course. All students in the class are required to register for that caucus. To do so you will need an EMU e-mail account. This is free. If you don't already have one, go the the Halle library and get one.
Submissions: To submit assignments, go to http://caddis.acad.emich.edu/~hwmatt/student/
Caveat Emptor: Programming and other assignments should be completed by each student on their own. It is expressly forbidden for students to collaborate on assignments without the express permission of the instructor. A few friendly pointers and a bit of advice is fine, but "borrowing" or copying another's work is grounds for punitive action, including a failing grade and possible expulsion from the University. In general, do not find yourself in a situation in which you have given a copy of your code to someone, or you have been given someone else's code.
Trajectory Among Blender Objects, Due date: December 18
Sample code discussed in class:
prog8BezierCurve.cc renders a cubic Bezier curve. This is taken from Baker & Hearn's graphics textbook. The program displays the four control points as well as the curve itself. Note that the z components of the coordinates are omitted so as to yield planar output.
The files bezmesh.c and bezsurf.c accompany the handout from class demonstrating the types of OpenGL calls used in generated curves and surfaces. Both the files are copyrighted by Silicon Graphics Inc. (If you Google for them, you'll find lots of links to many copies.) Both render a Bezier surface defined by a single 3rd order patch (16 vertices). The first program, bezmesh.c, renders the surface in wireframe. The second, bezsurf.c, renders the surface using a simple lighting and material scheme.
The file curves.c, from Angel, allows the user to place four control points and generates various types of curves that make use of those points.
There are many tutorials online. Demonstrations illustrating basic GL stuff such as lighting, transformations, and textures can be found at http://www.xmission.com/~nate/tutors.html. The demos are writting in C. You can download either .exe files, or the source code.
We will be programming mostly in C and C++, using the OpenGL graphics library. OpenGL is not object-oriented, so doesn't make full use of C++. Nonetheless, you can certainly write OO programs that link to the C-based OpenGL. You will need both OpenGL and GLUT (a windowing toolkit based on OpenGL). We will also be programming in the OpenGL shader languages, Cg and GLSL.
OpenGL Here is some information about how to install OpenGL (if needed) and GLUT on your own machine.
There is on-line documentation of GLUT. See, also, the main GLUT page.