CS4250 Interactive Computer Graphics
Please checkhomework 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.
- Instructor: David M. Chelberg
(Press here to email)
- Office: Stocker 322B
- Office Hours: Will be via Microsoft Teams (see the office
hours channel for more details.)
- Homework
assignments
- Reading assignments
- Lecture Notes
- Lecture notes will be available from Blackboard.
- Objectives
- This course provides an introduction to computer graphics.
Through this course students should be able to:
- Write programs able to display simple 2D graphics.
- Write programs able to display 3D graphics.
- Write interactive computer graphics programs that allow a
user to manipulate 2D and/or 3D objects in real-time.
- Understand the technology behind real-time 3D computer
games.
-
- Prereq:
- The formal prerequisite is CS3610, and (MATH 3200 or 3210).
- Required Text:
- "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:
- Graphics Systems and Models
- Graphics Programming
- Input and Interaction
- Geometric Objects and Transformations
- Viewing including Stereo Output
- Lighting and Shading
- Discrete Techniques
- Expectations
- 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
- ArcSynthesis
- 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