CSE 581
Interactive Computer
Graphics
Instructor: Roger Crawfis
Course web page:
www.cse.ohio-state.edu/~crawfis/cse581
Outline
• Computer graphics background
• About the course
What is Computer Graphics?
• Computer-generated images or sequences of
images (i.e., animations, movies)
• The scientific study of techniques and methods
for generating such images
• Not simply trying for
photorealism! Not CG. But real 3D!!!
sculptures by J Seward Johnson, Jr.
– Painterly effects Based on van Gogh’s The Bedroom
– Caricatures
http://www.phy.duke.edu/~socolar/family/corcoran.html
http://www.corcoran.org/exhibitions/travel_results.asp?Exhib_ID=63
Some 3-D Computer Graphics Applications
• Manufacturing design (CAD)
• Movies, TV, commercials
– Animations
– Special effects mixed with live footage
• Visual arts
• Video games
• Scientific visualization
• Simulation of natural phenomena
Roger Crawfis, Ohio State Univ.
Course description
A first course in computer graphics
covering fundamental concepts and
techniques related to 2-D and 3-D
transformations (including perspective
projection), rasterization, shading,
hidden surface elimination, and texture
mapping, as well as selected topics in
modeling, animation and related data
structures and mathematical principles.
Outline of course
• Geometry
• Rasterization
• Shading
• Hidden surface
elimination
• Texture mapping
• Modeling
• Animation
• Ray tracing from M. Woo et al., 1997
• Global illumination
Outline of course
• Geometry How to specify the 3-D
positions of the camera and
• Rasterization the scene objects and their
• Shading various parts, how to project
these to 2-D image locations,
• Hidden surface and how to represent trans-
elimination formations of these positions
• Texture mapping
• Modeling
• Animation
• Ray tracing
• Global illumination
Outline of course
How to set individual image
• Geometry pixels corresponding to
projected geometric objects
• Rasterization such as points, lines, polygons,
• Shading and more complicated shapes.
Anti-aliasing reduces artifacts
• Hidden surface (“jaggies”) caused by finite
elimination image resolution
• Texture mapping
• Modeling
• Animation
• Ray tracing
• Global illumination
Outline of course
• Geometry
How to model light interaction
• Rasterization with 3-D surfaces with varying
• Shading material properties in order to
calculate the proper colors
• Hidden surface perceived by the eye at
elimination different image locations
• Texture mapping
• Modeling
• Animation
• Ray tracing
• Global illumination
Outline of course
• Geometry
• Rasterization
• Shading How to efficiently rasterize
• Hidden surface only the visible parts of scene
elimination objects
• Texture mapping
• Modeling
• Animation
• Ray tracing
• Global illumination
Outline of course
• Geometry How to apply “layers” of detail
to scene objects to show
• Rasterization features, simulate bumps and
reflections, or other
• Shading precomputed shading effects.
• Hidden surface Procedural texturing is
concerned with how some
elimination kinds of textures are
• Texture mapping generated algorithmically
• Modeling
• Animation
• Ray tracing
• Global illumination
Outline of course
• Geometry
• Rasterization
• Shading
• Hidden surface
elimination Brown et al, OSU
• Texture mapping How to efficiently represent the
geometry of scene objects,
• Modeling which may be complex, curved,
• Animation etc. (CSE 784, CSE682)
• Ray tracing
• Global illumination
Outline of course
• Geometry
• Rasterization
• Shading
• Hidden surface
elimination
• Texture mapping
• Modeling
Chen et al, OSU
How to render dynamic
• Animation scenes, as well as how to
simulate dynamic phenomena
• Ray tracing (CSE 682)
• Global illumination
Outline of course
• Geometry
• Rasterization
• Shading
• Hidden surface
elimination
• Texture mapping Handler, OSU
• Modeling How to realistically simulate
the movement of rays from
• Animation light sources through multiple
object reflections and
• Ray tracing refractions on the way to the
• Global illumination eye (CSE 681)
Outline of course
• Geometry
• Rasterization
• Shading
• Hidden surface
elimination
• Texture mapping
• Modeling Gao et al, OSU
• Animation How to realistically simulate
• Ray tracing inter-reflections of light
between multiple sources and
• Global illumination object surfaces (CSE 782)
Outline of course
• Geometry
• Rasterization CSE 781 will cover these
in more detail with the
• Shading focus on programmable
GPU’s and real-time
• Hidden surface game engine design.
elimination
• Texture mapping
• Modeling
• Animation
• Ray tracing
• Global illumination Parmelee and Ruston, OSU
What will I learn from this course?
• A basic understanding of graphics
hardware/software technology – algorithms
and jargons
• Learn how to use OpenGL to write 2D/3D
drawing programs
• Prepare yourself for advanced graphics topics
(CSE 681, 682, 694G, 781, 782, 784, 788.xx)
Prerequisites
• Familiarity with:
– Basic concepts in linear algebra (e.g.,
vectors, matrices, matrix multiplication)
– (Object-oriented) programming
– One of the following imperative languages:
• C++
• C#
Lectures
• MWF, 10:30 pm-1:18 pm
• Lecture slides will be posted on the course
page before each lecture.
• Read thru the lecture notes and the assigned
readings before class.
– Note, I will not be providing hand-outs this year in
an effort to save some trees.
• Be prepared to ask questions.
Textbook
• Interactive Computer Graphics, A Top-Down
Approach Using OpenGL by Edward Angel
• This is the official textbook.
• If you can only afford one book, I
would recommend the Red book
Reference Books
The red book The blue book
OpenGL programmer’s OpenGL reference
Guide manual (man pages)
Grading
• 5 programming assignments worth 45% of course
grade.
– About 2 weeks each
– Electronic submission through the CSE submit
– Up to three days late, but 10% penalty for each day
– No credit after three days, so finish early.
• Exams
– Quizes: 15%
– Final: 20%
• Homework
– Will probably have about 5 home-works, four for grade and
one for extra credit – 5% apiece.
Some Jargon
• Graphics Processor or
Graphics Processing Unit (GPU)
• What about it?
nVIDIA/ATI Graphics Chips
32-bit colors, Z/stencil buffer
Advanced Per-pixel lighting
Millions of triangles per second
…
OpenGL programming
• An industry standard API
• This is NOT just a API course
– You are expected learn the graphics
processing and the theory behind it.
– You don’t need to implement the low-level
rasterization algorithms. Instead, we will
use OpenGL.
Homeworks
• These will be a combination of small
programming assignments and
questions.
Lab Examples
• Lab1
– Understand
orthographic
projections or
mappings.
– Set-up a viewport.
– Understanding
clipping to a view.
– Basic line drawing
and setting
OpenGL state.
Lab Examples
• Lab2:
– More 2D primitives
(lines, triangles,
polygons etc)
– Learn how to process
events: redraw, GUI
elements.
Crawfis, OSU
Image Gallery
• Course web site has many examples.
• See the highlights from previous
sections:
Course web page
Lab Environment
• Desired Programming environment
– C++/C#
– OpenGL graphics library
– Windows Visual Studio .Net (Express version is
okay).
– Windows PC with dedicated 3D graphics GPU.
• Class discussion.
OpenGL
• CSE machines
– All Windows-based PC’s will have OpenGL dll’s.
– Caldwell 112D has a secret PC lab. The machines
in this room have nVidia 8800’s or ATI Radeon
9800Pro boards.
– You now have access to this room.
• Your own machine (or your room-mates)
• More detailed instructions on course page
I highly recommend trying to get some test
programs to compile before you start on HW1
Staying Informed
• Ask fellow students about anything missed in
the previous lectures.
• Check the course web site frequently.
Take home message
• What makes most realistic-looking
images/animations look so good is a lot of
expensive software, artistic and detailed
modeling, and a lot of computing power and
time
– For LOTR “Return of the King”, a “renderwall” of
~3,200 CPUs ran 24/7, with an average render
time of hours per frame
• The underlying computer graphics principles
are what this course will focus on.
For the next lecture...
• Readings
– Red book: pp 1-59.
Simple Chart
• Playfair
– hand drawn
– Circa 1800
Crafting a Simple Chart or Graph
Crafting a Simple Chart or Graph
• What are the key ingredients?
• Is object-oriented programming the
best model?
• What classes would you implement?
• Does the computer afford a different
model or representation?
Anatomy of a Chart
• Class discussion
Advanced features
• Discontinuity
• Smoothing
Advanced features
• Asymptote
• Curve fitting or
regression
• Location of axes
• Legends
• Restricted range