PowerPoint Presentation
Course Introduction
Computer Graphics
Instructor: Sungkil Lee
Course Overview
3
Contacts
• Office hour
• Wednesday 10:30-11:30, at my office (27328)
• During the office hour, I will stay at my office as far as possible.
4
Teaching Assistants (TAs)
• Section 41
• Hyojin Jung (정효진)
• cglab.skku@gmail.com
• Send an email to this address to contact any of the TAs
• Make sure to write your section in your email title.
• Examples
• [cg41] Something to tell …
5
Languages
• English section
• Basically, most of the lecture will be given in English.
• But, when it is considered too complex or hard to explain, Korean can be
also used for Korean students.
• Korean section
• Lectures are given in Korean.
• But, the materials are shared with English lectures.
6
Course Summary
• Implication of CG
• Computer graphics is a fundamental tool for creating and manipulating
visual media including games, animation, virtual reality, and web, and is
also a crucial component for science and engineering software.
• What to cover
• This course covers basic theory and practical techniques of computer
graphics for digital media.
• Particulars in this course
• This course particularly deals with modern-style shader programming for
its implementation.
7
What you will learn in this course
• Algorithms for creating realistic images
• Having fun improving your C++ programming skills
• CG is one of the most appropriate topics for object-oriented C++
programming
• You will also learn how to use third-party libraries
• GPU programming
• The concepts of OpenGL programming
• This course is a very unique class that covers modern-style OpenGL which
utilizes the power of modern GPU.
• The basic knowledge of GPU programming can be easily extended to
mobile graphics (e.g., OpenGL ES) and general-purpose GPU programming
(e.g., CUDA, OpenCL).
8
Prerequisites
• Data structures, Algorithms
• The core of CG can be effective data structures and algorithms for
computing realistic imagery, which can be also parallelized.
• If you did not learn data structures or algorithms, I recommend taking the
course after having them first.
• C++
• The concept of object-oriented programming
• The concept of event-driven programming
• Still one of the most powerful languages for high-performance computing
• Linear Algebra
• The basics of vector and matrix manipulation
• Mostly high-school algebra
9
Textbook and References
• Textbook
• Interactive Computer Graphics: A Top-Down
Approach with Shader-Based OpenGL
• Edward Angel and Dave Shreiner
• 6th Edition, 2011
• References
• OpenGL Programming Guide: The Official Guide
to Learning OpenGL, Versions 4.3 or later}
(aka Red Book). Dave Shreiner, 2013.
• http://www.opengl.org/
10
Course Webpage
• Course web page: http://cg.skku.edu/course/cg/
• All course materials will be announced and uploaded on the web.
• Various resources concerning this course will be also available.
• Check the web page regularly.
• Only assignment submission will use i-campus.
ID: cg
password: skku
11
Grading Policy
• General grading rule
• In general, hard-working students will get a good grade.
• Programming assignments are very important throughout the course.
• Your attendance has a non-trivial effect on your grade.
• Organization
• Attendance and attitude: 10 %
• Assignments: 40%
• Mid-term exam: 20%
• Final exam: 30%
12
Grading Policy
• Rules on attendance
• When you are absent in the class more than 5 times (i.e., from 6 times),
you will fail to pass this course; i.e., you get F grade.
• Absence with any reasons will not be considered presence.
• For example, even a serious job interview will just be an absence.
• Do not bring a document that proves you were absent.
• However, the following cases will be regarded as an exception:
• Department/college activities
• Military services (e.g., 예비군훈련)
• Your family passed away; go there immediately and let me know later.
• Two late attendances are equivalent to one absence.
• One absence will be -1 point in your total score (100 pts).
13
Desired Attitudes for this Course
• This course is not an easy-going one.
• You will learn a lot of unique stuffs, unavailable from other courses.
• Participate the course actively.
• Basic etiquettes
• Attend in time: when you are late, it might interrupt lecture.
14
Desired Attitudes for this Course
• No cheating!
• Many of the assignments are available from the last year ones.
• For many years, I have found a lot of cases.
• All of the assignments are intended to improve your programming skills.
Hence, do it on your own. It will significantly raise your value.
• If cheating is found in any cases, you will not pass this course.
• Remember that you immediately get F grade for the cheating.
15
Schedule
• The course will basically follow the schedule below:
16
Programming Assignments
• Four assignments in total will be given in the course.
• They are designed for step-by-step improvements, leading from geometric
modeling to a more complex 3D animation.
• When you follow the schedule step by step, they will be in an acceptable
level of difficulty.
• A submission due for each is usually given 2-3 weeks in most cases.
• You may need to fully spend at least three to four days for each
assignment.
17
Programming Assignments: Subjects
Any questions?
Computer Graphics Overview
20
Big Picture of Computer Graphics (CG)
• Computer graphics deals with:
• all aspects of creating images with a computer: hardware, software, and
applications.
• Three primary research areas in CG
Rendering AnimationModeling
21
Interactive Graphics System
• Basic system for interactive graphics
• Recent mobile/embedded systems often include touch-sensitive display
for both input and output.
Input devices Output device
22
Brief History
• 1950s:
• Computer graphics goes back to the earliest days of computing
• Strip chart recorder, pen plotters
Strip chart recorder and pen plotters
(HP 7035B, Robotron K6418)
23
Brief History
• 1960s:
• Raster graphics with wireframe display
• Early predecessor of the modern raster graphics
• Sketchpad (Turing-awarded, 1988)
• Software written by Ivan Sutherland (Ph.D. thesis at MIT).
• The early concept of display loop, still common in computer graphics
• Computer display new images by light pen movements
Wireframe display Sketchpad (Sutherland)
24
Brief History
• 1960s:
• Direct view storage tube (DVST), created by Tektronix
• Did not require constant refresh
• Similar to CRT but with highly persistent phosphor
• Opened door to use of computer graphics to CAD community
• Display processors
• Rather than have the host computer try to refresh display use a special purpose
computer called a display processor units (DPUs)
• Host compiles display list and sends to DPU.
• Early OpenGL supports this display list mode.
Display-processor architecture
Host
Display
processor
Display
list
25
Brief History
• 1970s:
• Two graphics standard committees formed by International Federation of
Information Processing Societies (IFIPS; 1973)
• GKS: Europeal effort (becomes ISO 2D standard)
• Core: North Americal effort (3D but fails to become ISO Standard)
• Raster graphics
• Allows us to go from lines and wire frame images to filled polygons
• Image produced as an array of picture elements (pixels) in the frame buffer
Early raster display
26
Brief History
• 1980s:
• Realism comes to computer graphics
Smooth shading Environment mapping Bump mapping
27
Brief History
• 1980s:
• Hardware geometry engine by Silicon Graphics Inc. (SGI)
• VLSI implementation of graphics pipeline (1982)
• Iris and Iris GL: Operating system and Graphics API of SGI
• Industry-based standards
• CAD Community: PHIGS (Programmers Hierarchical Graphics System)
• Pixar: RenderMan API (and REYES architecture)
• Networked graphics: X Windows system (by DEC/MIT)
• Client-server architecture with graphics
28
Brief History
• 1990s:
• Iris GL later became OpenGL (1992)
• an easy-to-use platform-independent rendering API (no windowing support)
• Close enough to hardware to get excellent performance
• New hardware capabilities
• Texture mapping, blending, accumulation, stencil buffers
• Toy Story : the first completely computer-generated feature-length movie
Toy story, Pixar (1995)
29
Brief History
• 2000s-now:
• Graphics cards for PCs dominate market
• NVIDIA, ATI (now AMD), 3DLabs
• Game boxes and game players determine direction of market
• Playstation, Wii, XBOX (+Kinect), …
• Computer graphics software in movie industry
• 3DS Max, Maya, Lightwave
• Programmable rendering pipelines: GPU named by NVIDIA
• Display technology
• LCD, PDP (Plasma display panel), LED, OLED, …
Applications:
What can we do with CG?
31
Entertainment – Film Production (Toy Story, Pixar 1995)
First CG-Generated Full-Length Movie
32
Entertainment – Games (Unreal Engine RTX Demo, Epic Games)
33
Science and Engineering – Medical Visualization
34
Science and Engineering – Data Visualization
35
Science and Engineering – CAD (Virtual prototyping)
36
Training and Simulation – Virtual Reality (Flight Simulation)
37
Training and Entertainment – Virtual Reality (Oculus VR)
Any further questions?