This course introduces you to computer graphics, its powerful capabilities, a history of its technologies
as well as up-to-date developments, to its far-reaching potentials across the consumer, industrial, and
military domains, and how to achieve these potentials.
You will learn about the principles of hardware and software used to create computer-generated
images, about basic rendering and raytracing, 3D graphics programming in OpenGL, lighting and
shading, textures, and scene graph architectures. MV3202 prepares you to design and implement 3D
graphics simulations and to understand the theory of modern graphics rendering. The course is
intended for students who have taken a basic course in, or have recent programming experience in, a
programming language such as C++ or Java.
Course Learning Outcomes
What tasks do you need to master in order to achieve the overall course goal? Upon successful
completion of this course, you will be able to:
explain the raytracing algorithm with shadows and secondary rays
use transformations to mimic sophisticated systems in motion, such as a solar system or
an articulated robot arm
contrast the rendering pipeline to raytracing wrt speed, capabilities, physical accuracy
create 3D objects using modeling software
understand scene graph architectures, their benefits and the rendering from a scene graph
use correct lighting and shading and know how it works
relate computer vision to computer graphics
comprehend and evaluate a CG system’s technical description
discuss recent advances in CG and put them in context
converse with practitioners and researchers
Syllabus and Organization
Take a look at the Contents on the following pages to get an idea of the syllabus. Every chapter is a
learning module with specific learning objectives, reading and study material, exercises, and graded
assignments.
This is a preliminary schedule for the quarter. Reading assignments are from various textbooks,
see : Sh = Shirley, Red = RedBook.
The reading report is due before class on the following Monday. For example, Sh1 is to
be read in the week of 07/05 and the reading report must be in my hands before class on
07/12.
The main course web page (where you found this information) is here: http://www.movesinstitute.org/~kolsch/courses/MV3202
. There is one required textbook for the course: Shirley’s Fundamentals of Computer Graphics, see the
resources . Modules will be posted on Sakai, including up-to-date slides, software, reading and
homework assignments, other course material and your grades.
Hours
Lectures and lab: Monday, Tuesday 0900-0950, WA-275 Thursday 0900-1150, WA-275 All time slots will be used for lectures and lab time. Please bring your laptop for every
meeting.
Final: Thursday 9/16/10, 0800-0950 Sp-321
Holidays: Mon 6 Sept 2010 (Labor Day)
Office Hours: I am available for questions and help whenever I am in my office (WA-279) and have some time. If
you would like a firm appointment, please don’t hesitate to set one up by email or phone
(656-3402).
Grading
Grades for homework assignments etc. will be on Sakai: 35% non-programming homework, incl. reading reports 30% programming homework 15% midterm, quizzes 20% final
Homework, Late Policy, Teamwork etc.
Homework assignments will be posted on or before Mondays and are due the following Thursday at
11:59pm unless otherwise noted. No credit will be given for assignments that are more than 3 days late
(Sunday 11:59pm). You can hand in at most one assignment up to 3 days late and still receive full
credit. That is: one permitted late assignment for the entire quarter. Additional late assignment will be
given a max of 50% credit.
Unless otherwise noted, written assignment can be handed in on a sheet of paper (preferred) or by
email. If you email it to me, please make sure your name appears on top of the actual assignment (e.g.,
in the text file attachment), not just in the email. Programming assignment must be turned
in using Sakai file submission. See the respective assignment assignment for the naming
convention.
Collaborative work:
Collaboration is encouraged on understanding assignments and formulating strategies for
solution.
Internet, textbook, and other research is encouraged.
However, the actual writing of solutions must be done independently, without access to
any material from colleagues, or other sources.
Similarly, you may not allow anyone to copy your solution.
Exams must be done independently.
If a part of your solution includes a quote, it must be clearly indentifyable as such through
quotation marks and a reference.
Keep in mind: plagiarism is a serious offense and ”Detection can result in serious
academic sanctions, ranging from a failing grade on a test or paper, through failure in a
course, to the denial of a graduate degree.” NPS’ official words can be found here:
http://intranet.ern.nps.edu/Faculty/documents/Plagiarism\%20Statement.doc
Reading Assignments
There will be weekly reading assignments from the textbook and from other reading material. A
“reading assignment” requires you to read the material and to write a short, one or two page summary.
Demonstrate your understanding of the contents, don’t provide me with a complete recount of the
entire text. You are encouraged to add a paragraph in which you critique the reading, note questions
that you have or state some other related comment. Print the reports (duplex, please) and bring them to
class on the respective due day. If you cannot make it to class, please email them to me prior to
class (naming convention: wkXX_YourLastName.doc where XX is the week in which the
reading was covered). There’s a template on Sakai under Resources, but as long as you
include the week, module number, module name, your name, and the date you can use any
format.
Resources
Textbooks and other resources, more or less in order of relevance within a topic (res: on reserve in the
library).
Computer graphics in general
Our textbook: Peter Shirley: Fundamentals of Computer Graphics, Third Edition, AK Peters.
The book’s web page: http://www.cs.utah.edu/~shirley/fcg2/
A classic book about computer graphics: Foley, van Dam, Feiner and Hughes: Computer
Graphics: Principles and Practice, Addison Wesley
A great book for advanced CG: Real-Time Rendering, by Tomas Akenine-Möller and Eric
Haines, 880 pages, from A.K. Peters Ltd., 2nd edition, ISBN 1568811829, list price
$59. http://www.realtimerendering.com/
res: Shreiner, Dave et al: OpenGL Programming Guide (The Redbook), 7th edition, 2010. This
book will be an essential reference for you and we will have select readings from it. The library
has the 4th edition on reserve for you. It is also available online in even earlier editions, either
here: http://fly.cc.fer.hr/~unreal/theredbook/
or with Google: “Redbook OpenGL”)
Perry McDowell wrote up additional documents that closely follow the OpenGL Programming
Guide (redbook). They are on Sakai under McDowell_OpenGL.
OpenGL tutorials: NeHe Productions provides a long list of tutorials, from the very basic to the
advanced. They are very helpful. http://nehe.gamedev.net/
One of the classic textbook authors for linear algebra is Gilbert Strang. Probably the
most appropriate book is titled “Linear Algebra and Its Applications,” published by
Academic Press. His lectures are also available online via MIT’s Open Coure Ware
at http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/VideoLectures/index.htm
Blender (at http://www.blender.org/
), the open source modeling and animation tool. Start with the brief introduction blender.html,
then print the BlenderQuickStart.pdf guide. Both files are in your C:\Program Files\Blender Foundation\Blender directory after installation.
osgexport http://projects.blender.org/projects/osgexport/
is an exporter from Blender to OpenSceneGraph (.osg) files. You need to put the python script
(.py file) into your .blender/scripts directory.
OSGEdit http://osgedit.sourceforge.net/
allows viewing and editing of OSG scene graphs in a graphical format. (If installing on Fedora,
use “./configure –disable-gnome-support”.)