MV 3202: Computer Graphics
Winter 2010 (FY10-2)
Synopsis and Course Goal
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 01/05 and the reading report must be in my hands before class on
01/12.
|
|
|
|
|
|
| Week | Date | Modules | Topic | Reading | Assignments (due date) |
|
|
|
|
|
|
| 1 | 1/4 | 0, 1 | Introduction to Computer Graphics | Sh1, Sh2 | 1/8: C++ quiz, math quiz, OpenGL Primer 2 |
|
|
|
|
|
|
| 2 | 1/11 | 2, 3 | Raycasting & Raytracing | Sh10 | 1/15: ray-object intersections |
|
|
|
|
|
|
| 3 | 1/18 | 4 | Graphics APIs, OpenGL | Red1, Red2 | 1/22: quiz, primer2 extension; 1/18 is a holiday (MLK’s Birthday) |
|
|
|
|
|
|
| 4 | 1/25 | 5, 6 | Transformations, Viewing Transformations | Sh6, Sh7, Red3 | 1/29: quiz |
|
|
|
|
|
|
| 5 | 2/1 | 7, 8 | Primitives, State, Geometric Modeling | Sh17, Red2, Blender | 2/4: midterm (incl. primitives & state) |
|
|
|
|
|
|
| 6 | 2/8 | 9 | Scene Graphs & X3D | Sh13, TBA | |
|
|
|
|
|
|
| 7 | 2/15 | 9 | X3D cont., midterm discussion | TBA | 2/18: X3D scene; 2/15 is a holiday (President’s Day) |
|
|
|
|
|
|
| 8 | 2/22 | 10, 11 | Lighting & Shading | Sh9, Red5 | 2/26: interpolation calculation |
|
|
|
|
|
|
| 9 | 2/29 | 12 | Texture Mapping | Sh11, Sh3, Red9 | 3/5: OpenGL tutorial, X3D textures |
|
|
|
|
|
|
| 10 | 3/7 | 13 | The Framebuffer | RedA | TBA, group project |
|
|
|
|
|
|
| 11 | 3/15 | 14 | Advanced Rendering & Capstone | TBA | Tue is last day of classes, 3/19: final project |
|
|
|
|
|
|
| |
Textbook, Web and Data Space
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:
Tuesday, Wednesday, Thursday 0800-0850, WA-275
lab: Wednesday 1500-1650, WA-275
All time slots will be used for lectures and lab time. Please bring your laptop for every
meeting.
Final:
Wednesday 3/17/09, 0800-0850 WA-275
Holidays:
Mon 18 Jan 2008 (MLK’s Birthday),
Mon 15 Feb 2008 (President’s 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.
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/
- Another book: Interactive Computer Graphics, Edward Angel, 3rd Edition
http://www.aw-bc.com/info/angel/computergraphics/
OpenGL
- res: Shreiner, Dave et al: OpenGL Programming Guide (The Redbook), 6th edition, 2008,
ISBN-13 9780321481009. This book will be an essential reference for you and we will have
select readings from it.
http://www.pearsonhighered.com/educator/academic/product/1,3110,0321481003,00.html
. 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 Sakaiunder McDowell_OpenGL.
- A generic graphics book with a focus on OpenGL: F. S. Hill, Computer Graphics Using
OpenGL, Second Edition, Prentice Hall, 2001. ISBN: 0-02-354856-8
http://vig.prenhall.com/catalog/academic/product/1,4096,0023548568,00.html
- 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/
- additional reference for OpenGL: D. Shreiner (ed.), OpenGL Reference Manual: The Official
Reference Guide to OpenGL Version 1.4 (the “blue book”), 4th Edition, Addison Wesley, 2004.
ISBN: 0-321-17383-X
http://www.pearsonhighered.com/academic/product/0,3110,032117383X,00.html
Math
- A great resource for all things math: Mathworld at
http://mathworld.wolfram.com/
- Matrices and vectors (no geometry): first sections of Gonzalez’ and Woods’ review
at
http://www.imageprocessingplace.com/DIP/dip_downloads/review_materials_students_download/review.zip
- 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
- A somewhat slow-paced tutorial on Vector Math for 3D Computer Graphics, but it has questions
to keep you engaged :-)
http://chortle.ccsu.ctstateu.edu/VectorLessons/vectorIndex.html
Modeling and animation
- 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.
- A good tutorial explains the basics of modeling and animation in Blender is here:
http://download.blender.org/documentation/htmlI/ch04.html
- 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.
- Cal3d http://cal3d.sourceforge.net/
is a skeletal based 3d character animation library. You can render Cal3d objects in
OpenSceneGraph with osgCal2 http://osgcal.sourceforge.net/
.
Scene Graphs, including X3D and OpenSceneGraph
- Joe Sullivan’s OSG Tutorials are here:
http://www.nps.navy.mil/cs/sullivan/osgtutorials/
- OSG training slides and examples from the creators of OSG are available from me upon
request.
- For programming OSG, you will invariably need the reference guide (On their web page,
Documentation→ReferenceGuides→Osg→Doxygen, or without frames:
http://www.openscenegraph.org/osgwiki/pmwiki.php/ReferenceGuides/Osg
- 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”.)
C/C++ and Programming
- Essential reference: The C Programming Language by Kernighan and Ritchie:
http://cm.bell-labs.com/cm/cs/cbook/
- Students seem to like these books (free for download): How to Think Like a Computer Scientist,
from Green Tea Press, at
http://greenteapress.com/
- An introduction into programming, exemplified on computer graphics:
http://www.alice.org
Miscellaneous references
- A good introduction to Nvidia’s Cg and an extensive look at the graphics pipeline: Chapter 1 of
nVidia’s Cg Tutorial, at
http://developer.nvidia.com/object/cg_tutorial_home.html
Contents