Interactive Computer Graphicsweb.cse.ohio-state.edu/~wang.3602/courses/cse5542-2013...CSE 581:...
Transcript of Interactive Computer Graphicsweb.cse.ohio-state.edu/~wang.3602/courses/cse5542-2013...CSE 581:...
CSE 581: Interactive Computer Graphics
Winter 2012, 4 unitsMon Wed Fri 2:30PM ‐ 3:18PM
Bolz Hall 0317
http://www.cse.ohio‐state.edu/~whmin/courses/cse581‐2012‐winter/cse581‐2012‐winter.html
About the course
• Instructor: Huamin Wang ([email protected]‐state.edu)
• Office hour: Mon Fri 3:30PM – 4:30PM, Dreese labs 583or by appointment
• Grader: TBA• Grader’s office hour: TBA
Prerequisites
• 222/230/502/Permission from the instructor
• Fluent in C/C++
• Comfortable with linear algebra (vector and matrix)
• Love computer graphics (or video games!)
Textbook
Interactive Computer Graphics: A top‐Down Approach Using OpenGL
• Any edition• Understand course content
• Prepare exams• Many examples• Very readable
Supplemental Materials
OpenGL Programming Guidehttp://glprogramming.com/red/
OpenGL A Primer OpenGL Reference Manual
Grading and Late Policy
Jan 4 Mar 15
Lab 1Lab 2
Lab 3Lab 4
Lab 5
9 days (10%)13 days(20%)
Midterm(30%)
Midterm(30%)
Take‐home final(10%)
What is Computer Graphics?
• Generating images/videos by computers
• The scientific study of how to generate such images
• Not just photorealism:• Painterly effects• Cartoon• Sketch…
Applications
Computer‐Aided Design (CAD)
Visual arts
Electronic games Movies/TV/Commercials
Scientific visualization
Applications
Speed
Realism
Movies/TV/Commercials
Electronic games
Real‐time techniquesOffline techniques
Graphics Topics
Geometry(How to represent the shape)
Rendering(How to generate an image)
Animation(How to let the shape move)
My research
This course
Objectives
Basic understanding of graphics hardware/software technology
The ability of using OpenGL to write 2D/3D programs
Getting prepared for advancedgraphics courses
Examples
• What is a graphics card (GPU)?• What are its functionalities?• What is the graphics pipeline?• What are the algorithms inside it?
• Stencil buffer• Anti‐aliasing• Shaders
• How to use it?
OpenGL Programming
An Open‐source cross‐platform Graphics Library
Not just about API…
An Open‐source cross‐platform Graphics Library
• Learn the techniques behind it
• Don’t need to implement them. Just use them.
Lab Assignment 1
• Learn how to create an OpenGL window (using GLUT)
• Learn how to draw simple 2D primitives (lines, triangles, polygons, etc)
• Learn how to handle mouse input
Lab Assignment 2
• Learn how to define 3D objects
• Learn how to place objects in 3D worlds
• Learn how to control camera and objects
Lab Assignment 3
• OpenGL illumination
Lab Assignment 4
• Textures
Lab Assignment 5
Be creative!
Course Outline
• GeometryHow to specify camera configurations?How to place scene objects in 2D/3D?How to transform objects and cameras?How to project 3D objects to 2D?
Course Outline
• Geometry• Rasterization
How to assign projected objects (such as triangles, circles, squares…) to image pixels?
Course Outline
• Geometry• Rasterization• Shading
How to model the interaction between the light and objects, based on their different reflection properties?
Course Outline
• Geometry• Rasterization• Shading• Occlusion How to make sure something is visible,
something is occluded?
Course Outline
• Geometry• Rasterization• Shading• Occlusion• Texture How to provide details on object
surfaces? (Appearance, bumps, etc…)
Course Outline
• Geometry• Rasterization• Shading• Occlusion• Texture• Modeling How to represent complicated shapes?
Course Outline
• Geometry• Rasterization• Shading• Occlusion• Texture• Modeling• Animation How to move shapes in a physically
plausible way?
Advanced Graphics Courses
681 (Rendering) 682 (Animation) 781 (Advanced Real‐time Rendering)
781 (Advanced Off‐line Rendering) 784 (Geometry)
Where to do labs?
• Your own PC• Graphics PC Lab –CL 112D• Each PC has a reasonably good graphics card• Software: Visual Studio, OpenGL/GLUT