CS4250 Interactive Computer Graphics

Please checkAnimated
writinghomework page frequently for clarifications regarding assignments, and any late-breaking news regarding due dates etc.

Help for students who are new to makefiles.

A Style Guide is available on-line to assist you in determining the correct style for your programs. You are required to follow the guidelines in all programs you turn in for the course. Failure to follow the guidelines may result in a significantly lower grade on an assignment.

      TeacherInstructor: David M. Chelberg (Press here to email) flying letter!
Office: Stocker 322B
Office Hours: Will be via Microsoft Teams (see the office hours channel for more details.)
Animated writingHomework assignments
Animated Book
      ImageReading assignments
Lecture Notes
Lecture notes will be available from Blackboard.
This course provides an introduction to computer graphics. Through this course students should be able to:
  1. Write programs able to display simple 2D graphics.
  2. Write programs able to display 3D graphics.
  3. Write interactive computer graphics programs that allow a user to manipulate 2D and/or 3D objects in real-time.
  4. Understand the technology behind real-time 3D computer games.
The formal prerequisite is CS3610, and (MATH 3200 or 3210).
Required Text: Animated Book Image
"Interactive Computer Graphics: A Top-Down Approach Using OpenGL, 6/E," Edward Angel, Addison-Wesley, 2012, ISBN: 978-0-13-254523-5.
Link to Publisher. There is a newer edition also available, but it does not have the c++ bindings for OpenGL discussed, instead it uses Javascript and WebGL. 7th Edition Link

Other Useful Texts:
OpenGL® Programming Guide: The Official Guide to Learning OpenGL®, Version 4.5, 9th Edition
OpenGL® Library, 7th Edition
OpenGL®: A Primer, 3/E
Shader Language Reference

Course Outline:
This course emphasizes hands-on learning of computer graphics. Topics will include:
  1. Graphics Systems and Models
  2. Graphics Programming
  3. Input and Interaction
  4. Geometric Objects and Transformations
  5. Viewing including Stereo Output
  6. Lighting and Shading
  7. Discrete Techniques
Students are expected to spend AT LEAST two hours outside of class per class session, including working exercises in the book, and programming homework problems. Programming can only be learned by doing! In this class students are expected to write many programs in order to gain proficiency, and to fully understand the algorithms and data structures covered.
Examination schedule:
There will be two midterm exams (Friday, Oct. 16, and tentatively Friday, Nov. 20). Blackboard quizzes may be given on any given day when no other exams are scheduled.
Grading policy:
Your grade will be based on a composite score computed according to the following approximate breakdown: 10% for quizzes, 30% for paper homework and programming projects 15% for the each midterm, and 30% for the final project.
Attendance Policy:
Students are strongly encouraged to attend all classes, but attendance is not required. Class attendance will not be used in the final determination of grades. Students miss classes at their own risk. There will be no make-up quizzes, students missing class on the day of a quiz will be given a zero. Students are required to attend class during the midterm and final exam unless prior arrangements have been made.
Academic dishonesty:
Students are expected to turn in only their own work with proper documentation. Anything else will result in an F for the exam, project or program, and possibly an F for the course, or even dismissal from the University. This means NO WORKING IN GROUPS, and NO SHARING CODE. For more information see the student affairs handbook
Interesting Links:
Hints on using a perspective camera in opengl
How do I make a camera move independently from my objects in OpenGL?
Viewing and Camera Control in OpenGL
OpenGL tutorials
Durian Software's tutorial
WikiBooks site
Some tutorials from OpenGL itself, they focus on a bit more modern shader language than we are currently using.
Misc. Links
Play Spacewar on PDP1 emulator (generally considered the first video game)
Study of the steps in rending a scene from GTA V.
Library to import 3D models.
An example for C++ of assimp library to import 3D models.
Obama's Competition for Educational Video Games 2010
OpenGL Organization
Software development reference pages
Java Based Sorting Algorithm Animations
Microsoft site for developers.
3D-XplorMath is a mathematical visualization program for Macintosh computers running version 9 or later of MacOS.
Science Magazine arrticle on visualization and the 2006 Visualization Challenge
BSP tree Visualizer
Resource Pages for Game Development
Good article on a new concept -- procedural textures
Page on Real-Time Rendering Book with many resources
Article from IEEE Computer on whether 3D can be efficiently implemented in web browsers
Good video about tristimulus theory of color, but funny, and other random stuff as well.
Article on modeling air resistance for soccer games.
OpenGL from Windows via CygWin
The following are some "magic" incantations that have helped people in the past to display OpenGL from prime to their laptop running windows (assuming you have cygwin installed).
In cygwin.... 1... modify the following file: /etc/ssh_config # Host * # ForwardAgent no ForwardX11 yes #### Change this from a NO to a YES and ensure it is uncommented # RhostsRSAAuthentication no # RSAAuthentication yes # PasswordAuthentication yes ... # Port 22 # Protocol 2,1 2... exit cygwin 3... reopen cygwin and execute xinit This will open an xwin... 4... From this xwin, you can "ssh -Y bin00001.cs.ohio.edu" and viola...

David M. Chelberg <chelberg@ohio.edu>
last-modified: Sun Aug 16 20:50:32 2020