Lecture 00 of 42 (Introduction to) Computer Graphics Course Organization and Survey Friday, 18 January 2008 William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc / http://snipurl.com/1ybv6 Course web site: http://www.kddresearch.org/Courses/Spring-2008/CIS736 Instructor home page: http://www.cis.ksu.edu/~bhsu Reading for Next Class: Syllabus and Course Intro Chapter 1, Eberly (2006) 3D Game Engine Design, 2e CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Lecture Outline Course Information: Format, Exams, Resources, Assignments, Grading Overview Topics covered What is computer graphics? Applications Brief Tour of Computer Graphics A case study and some demos Survey of rendering and animation systems Applications to computer-aided design (CAD), manufacturing (CAM), and engineering (CAE) Brief Tour of Visualization Systems Information, data, and scientific visualization Focus on informational graphics CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Course Administration Course Pages (KSOL): http://snipurl.com/1y5gc / http://snipurl.com/1y5ih Class Web Page: www.kddresearch.org/Courses/Spring-2008/CIS736 Instructional E-Mail Addresses – Best Way to Reach Instructor CIS736TA-L@listserv.ksu.edu (always use this to reach instructor and TA) CIS736-L@listserv.ksu.edu (everyone; substitute 636 for 736 for Intro to CG) Instructor: William Hsu, Nichols 213 Office phone: +1 785 532 7905; home phone: +1 785 539 7180 IM: AIM/MSN/YIM hsuwh/rizanabsith, ICQ 28651394/191317559, Google banazir Office hours: after class Mon/Wed/Fri; other times by appointment Graduate Teaching Assistant: Jing Xia Office location: Nichols 213a Office hours: to be announced on class web board Grading Policy Hour exams: 10% each (in-class, with notes); final (open-book): 25% Machine problems, problem sets (6 of 8): 18%; term project: 20% Paper reviews (2): 4%; class participation: 6% (HW, Q&A); labs 7% CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Class Resources Course Content Management System (CMS) http://www.kddresearch.org/Courses/Spring-2008/CIS736 Lecture notes (MS PowerPoint 97-2003, PDF) Homeworks (MS PowerPoint 97-2003, PDF) Exam and homework solutions (MS PowerPoint 97-2003, PDF) Class announcements (students’ responsibility) and grade postings Course Notes at Copy Center (Required) Mailing List (Automatic): CIS736-L@listserv.ksu.edu Homework/exams (before uploading to CMS, KSOL), sample data, solutions Class participation Project info, course calendar reminders Dated research announcements (seminars, conferences, calls for papers) LISTSERV Web Archive http://listserv.ksu.edu/archives/cis736-l.html Stores e-mails to class mailing list as browsable/searchable posts CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Course Overview Graphics Systems and Techniques Main emphasis: shaders, lighting, mappings (textures, etc.) in OpenGL Photorealistic rendering and animation (Maya 2008, Blender; Ogre) 2-D, 3-D models: curves, surfaces, visible surface identification, illumination Special topics: global illumination (ray tracing, radiosity), particle systems, fractals, scientific visualization (sciviz) and information visualization (infoviz) Operations Surface modeling, mapping Pipelines for display, transformation, illumination, animation Computer Graphics (CG): Duality with Computer Vision Visualization and User Interfaces Applications CAD/CAM/CAE: object transformations, surface/solid modeling, animation Entertainment: 3-D games, photorealistic animation, etc. Analysis: info visualization, decision support, intelligent displays CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Why Computer Graphics? Developing Computational Capability Rendering: synthesizing realistic-looking, useful, or interesting images Animation: creating visual impression of motion Image processing: analyzing, transforming, displaying images efficiently Better Understanding of Data, Objects, Processes through Visualization Visual summarization, description, manipulation Virtual environments (VR), visual monitoring, interactivity Human-computer intelligent interaction (HCII): training, tutoring, analysis, control systems Time is Right Recent progress in algorithms and theory Rapidly emergence of new I/O (display and data acquisition) technologies Available computational power, improving price-performance-ratio of hardware Growth and interest of graphics industries (e.g., games, entertainment, computer-aided design, visualization in science and business) CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Image Synthesis Pipeline Graphics Database Editing Front-End (Geometry Processing) Back-End Graphics Database (Rasterization) Display Traversal Modeling Transformation Viewing Operation • Visible-Surface Determination • Scan Conversion • Shading / Illumination CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Image Computing & Information Sciences Kansas State University Hypermedia User Interfaces NCSA Data to Knowledge (D2K) & Text to Knowledge (T2K): http://alg.ncsa.uiuc.edu/do/tools/d2k © 2004 National Center for Supercomputing Applications Visual programming systems for high-performance knowledge discovery in databases (KDD) Hypermedia Database format (similar to hypertext) Provides display-based access to (internetworked) multimedia (text, image, audio, video, etc.) documents Virtual Environments Immersion: interactive training, tutoring systems Entertainment hypermedia Visualization and Computer-Aided Design and Engineering (CAD/CAE) Visualization: scientific, data/information, statistics User interfaces for CAD/CAE/CAM/CASE CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Relevant Topic Areas Analytic Geometry Art and Graphic Design Cognitive Science Computer Engineering Engineering Design Education Film Human Factors Linear Algebra CAD CAE / CASE CAM Rendering Hardware VR Systems Portable/Embedded CG Immersive Training Tutoring Interfaces Color/Optical Models CG/Vision Duality Interface Design Layout CG Design Visualization Parametric Equations Conics Polygon Rendering Numerical Analysis Computer Graphics (CG) Surface Modeling Physically-Based Modeling Stat/Info Visualization Transformations Change of Coordinate Systems User Modeling Ergonomic Interfaces, I/O CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Animation Large-Scale CG Computing & Information Sciences Kansas State University Curve and Surface Modeling in Computer-Aided Design (CAD) 1 2 http://www.geocities.com/SiliconValley/Lakes/2057/nurbs.html 3 4 5 8 7 6 CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Computer-Generated Animation (CGA) Ratattouille © 2007 Disney/Pixar Kung-Fu Panda © 2008 DreamWorks Animation SKG Meet the Robinsons © 2007 Disney/Pixar Toy Story (1995) Toy Story 2 (1999) Toy Story 3 (2010) © Disney/Pixar Happy Feet © 2006 Warner Brothers Wall-E Shrek (2001) © 2008 Disney/Pixar Shrek 2 (2004) Shrek the Third (2007) © DreamWorks Animation SKG Luxo Jr. © 1986 Pixar Animation Studios CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Fractal Systems http://sprott.physics.wisc.edu/fractals.htm CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Information Visualization Visible Decisions SeeIT © 1999 VDI CIS 636/736: (Introduction to) Computer Graphics http://www.advizorsolutions.com Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Design Choices and Issues in Computer Graphics Determine Objectives of Graphics System Decision Support Entertainment Control Interface Education Determine Display Objective Interactively Analyze Data / Documents Visualize Physical Objects Monitor Process Determine Representations In Graphics Database Solid Geometric Model Wireframe / Polygon Mesh Fractal System NURBS Determine and Implement Rendering Pipeline Shaded-Polygon Rendering Ray Tracing Radiosity and Polygon Shading Completed Design CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Math Review for CIS 636 Overview: First Month (Weeks 2-5 of Course) Review of mathematical foundations of CG: analytic geometry, linear algebra Line and polygon rendering Matrix transformations Graphical interfaces Line and Polygon Rendering (Week 3) Basic line drawing and 2-D clipping Bresenham’s algorithm Follow-up: 3-D clipping, z-buffering (painter’s algorithm) Matrix Transformations (Week 4) Application of linear transformations to rendering Basic operations: translation, rotation, scaling, shearing Follow-up: review of standard graphics libraries (e.g., OpenGL) Graphical Interfaces Brief overview Survey of windowing environments (MFC, Java AWT) CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Online Recorded Lectures for CIS 636 Introduction to Computer Graphics Project Topics for CIS 636 Computer Graphics Basics (8) 1. Mathematical Foundations – week of Mon 21 Jan 2008 2. Rasterizing and 2-D Clipping – week of Mon 28 Jan 2008 3. OpenGL Primer 1 of 3 – week of Mon 28 Jan 2008 4. Detailed Introduction to 3-D Viewing – week of Mon 04 Feb 2008 5. OpenGL Primer 2 of 3 – week of Mon 11 Feb 2008 6. Polygon Rendering – week of Mon 18 Feb 2008 7. OpenGL Primer 3 of 3 – week of Mon 03 Mar 2008 8. Visible Surface Determination – week of Mon 10 Mar 2008 Recommended Background Reading for CIS 636 Shared Lectures with CIS 736 (Computer Graphics) Regular in-class lectures (35) and labs (7) Guidelines for paper reviews – week of Mon 25 Feb 2008 Preparing term project presentations and demos for graphics – April CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Online Recorded Lectures for CIS 736 Computer Graphics Project Topics for CIS 736 Advanced Topics in Computer Graphics (8) 1. Filters for Texturing – week of Mon 28 Jan 2008 2. More Mappings – week of Mon 18 Feb 2008 3. Advanced Lighting Models – week of Mon 17 Mar 2008 4. Advanced Ray-Tracing – week of Mon 25 Feb 2008 5. Advanced Ray-Tracing, concluded – week of Mon 24 Mar 2008 6. Global Illumination: Photon Maps (Radiosity) – week of Mon 31 Mar 2008 7. More on Scientific, Data, Info Visualization – week of Mon 21 Apr 2008 8. Terrain – week of Mon 11 Feb 2008 Recommended Background Reading for CIS 636 Shared Lectures with CIS 636 (Computer Graphics) Regular in-class lectures (35) and labs (7) Guidelines for paper reviews – week of Mon 25 Feb 2008 Preparing term project presentations and demos for graphics – April CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Background Expected Both Courses Proficiency in C/C++ or strong proficiency in Java and ability to learn Strongly recommended: matrix theory or linear algebra (e.g., Math 551) At least 120 hours for semester (up to 150 depending on term project) Textbook: 3D Game Engine Design, Second Edition (2006), Eberly Angel’s OpenGL: A Primer recommended CIS 636 Fresh background in precalculus: Algebra 1-2, Analytic Geometry Linear algebra basics: matrices, linear bases, vector spaces Watch background lectures CIS 736 Computer Graphics Recommended: first course in graphics (background lectures as needed) OpenGL experience helps Read up on shaders and shading languages Watch advanced topics lectures; see list before choosing project topic CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Textbook and Recommended Books Required Textbook Eberly, D. H. (2006). 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics, second edition. San Francisco, CA: Morgan Kauffman. 1st Recommended References edition (outdated) 2nd edition Angel, E. O. (2007). OpenGL: A Primer, third edition. Reading, MA: AddisonWesley. [2nd edition on reserve] Shreiner, D., Woo, M., Neider, J., & Davis, T. (2007). OpenGL® Programming Guide: The Official Guide to Learning OpenGL®, Version 2.1, sixth edition. 2nd edition (OK to use) CIS 636/736: (Introduction to) Computer Graphics 3rd edition [“The Red Book”: use 5th ed. or later] Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University References and Outside Reading CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Syllabus [1]: First Half of Course CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Syllabus [2]: Second Half of Course CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Summary This course is a lot of work Reading: Eberly 2e – big book, like Foley et al. Programming assignments (3): expect to spend 10+ hours on each Written assignments (3): about 6-10 hours Term project: at least 20 hours (people have spent up to 50 or more) … but it can also be fun Visible results Nifty algorithms, high-performance hardware “Putting it all together”: very interdisciplinary field Decent job market for people with right development skills, ideas Applicable to many other areas of CS and IT Emphasis “Polygons to pixels pipeline”: viewing, VSD, lighting, shading, texturing Other topics to be covered: animation, curves and surfaces, collisions Brief survey of: ray tracing, visualization and color, fractals CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University Terminology Computer Graphics: Digital Synthesis, Manipulation of Visual Content Graphics Problems (see “Computer Graphics”, Wikipedia) Geometry: representation and processing of surfaces Animation: representation and manipulation of motion Rendering: computationally reproducing appearance of light in scenes Imaging: Different Approaches to Graphics Raster versus vector Sample-based versus geometry-based Purpose of Graphics Entertainment – games, visual effects in movies and television Communications – advertising, journalism Modeling / simulation – displaying events via graphical user interfaces (GUIs) Visualization – displaying events for analysis and understanding Dual Problem: Inverse Input and Output Graphics (rendering): geometry to sample (image) Vision: sample to geometry CIS 636/736: (Introduction to) Computer Graphics Friday, 18 Jan 2008 Computing & Information Sciences Kansas State University