CSE 581: Interactive Computer Graphics Spring 2012, UG 4 Tuesday, Thursday – 9:00AM – 10:18AM DL 0317 Raghu Machiraju Slides: Courtesy - Prof. Huamin Wang, CSE, OSU
Details Instructor: Raghu Machiraju machiraju dot 1 at osu dot edu Office hours: o TR: 10:30 PM – 11:30 PM, DL 779 o Make an appointment Grader: Some H. Being Grader’s office hour: TBA
Prerequisites 222/230/502/Permission from the instructor Fluent in C/C++ Comfortable with linear algebra (vector and matrix) Passion for games, videos, and sleep- deprivation
The Text Interactive Computer Graphics: A top-Down Approach Using OpenGL Any edition is OK
Supplemental Materials OpenGL Programming Guide OpenGL A PrimerOpenGL Reference Manual
Grading Labs – 4x10 : 40% Homework – 3x5: 15% Midterm – 20% Final Project/Exam – 25%
Late Policy Assignment due at 11:59PM on due date Late submissions penalized: -0 to 24 hours: late 10% deduction -24 to 48 hours: late 20% deduction -48 to 72 hours: late 30% deduction ->72 hours late: NOT accepted!
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 gamesMovies/TV/Commercials Scientific visualization
Applications Speed Realism Movies/TV/Commercials Electronic games Real-time techniques Offline techniques
Graphics Topics Geometry (How to represent the shape) Rendering (How to generate an image) Animation (How to let the shape move) This course
Objectives Basic understanding of graphics hardware/software technology The ability of using OpenGL to write 2D/3D programs Getting prepared for advanced graphics 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 Geometry How 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) 78 (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
Graphics Pipeline