CS 651: Modern Research in Computer Graphics

Assignment 1.1

Goal: Minor extension to Assignment 1. My sense is that nearly everybody ran out of time, so this assignment is mostly to give you a chance to get assignment 1 done right.

Assigned: Tuesday, September 29th

Due: Monday, October 5th by 9 AM

Relevant reading:

Relevant software:

Synopsis: Extend and/or finish your OpenGL viewer for polygonal objects. Again, you need only support a single object. This time you must implement a GUI with:

Comments:

Grading: The same grading criteria described in assignment 1 still apply; fulfilling the requirements gets a B+ and getting an A requires doing something extra. The grade for assignment 1.1 will be used instead of assignment 1.

Turning in the assignment: Same as before. Send me mail by nine o'clock Monday morning directing me to your completed assignment & README file. You don't need to print out the source code this time.

Miscellaneous advice:

Remark: David Coppit observed that he felt as if he were reinventing the wheel, and asked whether good read-in-a-file-and-fly-around programs don't already exist. I've thought about this and decided that the answer is, "not really". Plenty of commercial modeling packages will read files (usually in their own proprietary formats) and let you view them, and VRML plug-ins for web browsers will let you fly around a 3-D scene described in the VRML format. But that's about it. When people want a viewer, they usually write one. Higher-level graphics APIs than OpenGL (such as Performer, Inventor, and Farenheit) may make the job easier, but these are still programming toolkits rather than turnkey applications.

So will you have to write OpenGL code for your project? If what you're doing is strictly geometric (e.g., an LOD algorithm) you might be able to use VRML and a web browser. But if you're doing anything interesting in the way of interactive rendering (such as dynamic LOD, cells & portals, hierarchical image caching, etc…) you'll probably use OpenGL or one of the higher-level APIs mentioned above. This assignment may not be extensive enough to give you useful boilerplate, but it will certainly introduce you to OpenGL and some of the issues involved in rendering simple scenes.