Computer Graphics Thilo Kielmann Lecture 1: 1 Introduction (basic administrative information) Course Overview + Examples (a.o. Pixar, Blender, ) Graphics Systems Hands-on Session
General Introduction http://www.cs.vu.nl/~graphics/ 2 (Lecture 1)
The Course in a Nutshell (1) Lecture period: October 29 - December 13 Monday: 15:30 17:15; Room: S3.29 Thursday: 11:00 12:45; Room: S3.29 Book: E. Angel/D. Shreiner Interactive Computer Graphics, 6th ed. (new!!!) Get it from STORM or the VU Boekhandel Grading: Homework (1/4) and assignment / project (3/4) Both parts must be graded sufficient 3 (Lecture 1)
The Course in a Nutshell (2) New book: 6th edition Radical switch from OpenGL 2.x to OpenGL 3.x: State-of-the-art in graphics/games programming All rendering becomes explicit, no more black boxes This takes more effort (worth it, we hope!) http://http.download.nvidia.com/nvision2008/jamie_adam/art_science_gpu_480p.mp4 4 (Lecture 1)
The Course in a Nutshell (2) Lecturer: Thilo Kielmann (kielmann@cs.vu.nl) Course Assistant (also for assignment / project): Ben van Werkhoven (ben@cs.vu.nl) Guest Lecture: Tom van der Schaaf 5 (Lecture 1)
The Course in a Nutshell (3) Lectures (period 2): Part presentation of course material Part hands-on session Programming on Windows PCs in S3.29 Using your own laptop/pc is strongly encouraged Needs to support OpenGL 3.x (or higher) Check out on the course Web site ( Material ) Assignment / Project (period 2 + 3): Programming in Java with OpenGL (note: book uses C/C++) Web: Course information: http://www.cs.vu.nl/~graphics/ Blackboard: http://bb.vu.nl/ 6 (Lecture 1)
Registration & Dates Registration (mandatory): Via the VUnet portal For the course Dates: Assignment / Project: submit no later than Febuary 1, 2013 (no extensions will be given) Homework assignments: will be announced soon 7 (Lecture 1)
Homework Assignments Instead of written exam: 3 homework assignments during the course submit via blackboard slack days: 8 (Lecture 1) you have a total of 5 days credit for late submission (spend them wisely!) each calendar day beyond your credits subtracts 1 from the assignment's grade
Grades for the Course H = average grade of three homeworks P = project grade Score = H *1/4 + P * 3/4 Passing requirements: H > 5.0, P > 5.0, Score >= 6.0 Exam from 2011 (or older) good for H Project from 2011 (or older) good for P 9 (Lecture 1)
General Overview 10 (Lecture 1)
And now: Computer Graphics! What is Computer Graphics? generation/representation and manipulation of pictorial data by a computer Mostly: image generation on the basis of (mathematical) models or other data Related - but not identical - to Digital Image Processing Mostly: image content adaptation and/or analysis of image content 11 (Lecture 1)
Where do we find Computer Graphics? Display of information Scientific Visualization, Design Computer-Aided Design, Simulation and Animation Virtual Reality, Games, User Interfaces Windowing Systems, but today maybe no longer in 2D 12 (Lecture 1)
How we will do it (course outline 1/6) Introduction Lecture01: General overview & Graphics Systems (today) Graphics Programming Lecture02: Basic OpenGL, Shaders in a Nutshell Lecture03: Input, Events, 3D Graphics 13 (Lecture 1)
How we will do it (course outline 2/6) Geometric Objects and Transformations Lecture04: Basics of Coordinate Systems / Affine Transformations Lecture05: Rotation / Translation / Scaling / Shear, 14 (Lecture 1)
How we will do it (course outline 3/6) Start of programming project Viewing, Lighting, Shading (+/- 20 Nov) Lecture06/07: Camera Positioning / Projections 15 (Lecture 1) Lecture08: Light and Matter
How we will do it (course outline 4/6) Modeling and Hierarchy 16 (Lecture 1) Lecture09: Trees, Scene Graphs
How we will do it (course outline 5/6) From Vertices to Fragments Lecture10: Geometry Processing, Rasterization, Clipping, Discrete Techniques Lecture11: Texture Mapping, Texture and Shaders 17 (Lecture 1)
How we will do it (course outline 6/6) Advanced Topics Lecture12: Terrain Generation / Height Maps Guest lecture (13) Tom van der Schaaf Open session (Lecture 14) Post processing General Q&A session 18 (Lecture 1)
How many scientists do it Example: 19 (Lecture 1)
How the big guys do it Sintel (Blender Foundation, 2010) Movie (Youtube) Making of (Youtube) Focus on the project, the artists, story writing... 20 (Lecture 1)
How the (really) big guys do it Pixar Website: http://www.pixar.com/behind_the_scenes 21 (Lecture 1)
How the big guys do it Realize: Huge group of artists, animators, CG specialists, Huge set of high-performance computers Huge amount of time spent on minute details Huge budgets We will not come close in just 2-3 months But the fun is the same or so it should be! 22 (Lecture 1)
How our students did it (2011) Hall of Fame: /graphics/halloffame2011.php Example student projects Fancy terrains Car with lights by night 23 (Lecture 1)
Student Feedback 2011 24 (Lecture 1)
Student Feedback 2011 no more exam! please ask if you need more math explained? good point!...trying to fix this in 2012 25 (Lecture 1)
Remaining Outline for Today Graphics Systems Architectures High-end (and low-end) Graphics Systems Hands-on Session: Initial setup of Java, OpenGL, Eclipse Install example application Compile & Play Encouraged: use of own laptop/pc (if your hardware is up-to-date) 26 (Lecture 1)
Graphics Systems Architectures 27 (Lecture 1)
Graphics Systems Architectures High-level view: Five major elements in a graphics system: 28 (Lecture 1)
Raster Graphics Pictures / images are raster-based In general: 2D array of pixels, each having n bits Pixels stored in part of memory called frame buffer Often special type of memory chips Defines resolution & depth (precision) Often: multiple buffers 29 (Lecture 1)
Graphics Architectures Early: More modern: 30 (Lecture 1)
Graphics Architectures Really Modern (GPU): Very complex Highly parallel Example: Image analysis on GPU-clusters Speedups of over 5000 31 (Lecture 1)
Pipeline Architectures The most important architecture we are dealing with: Vertices Primitives Fragments Multiple images in progress at the same time Works well because we continuously have to apply the same set of operations on (different) data sets 32 (Lecture 1)
Programmable Pipelines With OpenGL 3.x we are getting: e.g., Java Vertex shader 33 (Lecture 1) Fragment shader
High-End Graphics (1) Tiled Video Wall (IC Wall) 34 (Lecture 1)
High-End Graphics (2) CAVE Automatic Virtual Environment 35 (Lecture 1)
High-End Graphics (2) Inside a CAVE Video: http://www.youtube.com/watch?v=-sf6bjjwsce&feature=relmfu 36 (Lecture 1)
Low-End Graphics OpenGL ES for Embedded systems (mostly phones...) subset of desktop OpenGL OpenGL ES 2.X enables full programmable 3D graphics 37 (Lecture 1)
Hands-on Session 38 (Lecture 1)
A cross-platform Application Programming Interface (API) for producing 2D and 3D computer graphics Developed by Silicon Graphics Inc. (1992) See: http://www.opengl.org NOTE: We use the Java binding for OpenGL: JOGL http://jogamp.org/jogl/www/ http://download.java.net/media/jogl/www/ 39 (Lecture 1)
Old School OpenGL 2.x higher-level abstractions core GL functionality AWT + much functionality readily available - strict/limited functionality 40 (Lecture 1) interfacing the windowing system and operating system
New School OpenGL 3.x new, smaller core GL functionality DIY of old GLU/GL functionality your own lib AWT interfacing the windowing system snd operating system + flexibility (e.g., by your own shaders) - more work left to the programmer in the lib 41 (Lecture 1)
Hands-on Session Initial setup of Java, OpenGL, Eclipse & example apps. See link: http://www.cs.vu.nl/~graphics/material.php Compile & play In display, change the order of the 3 triangles VU-local JavaDoc: JOGL: http://www.cs.vu.nl/~graphics/javadoc/ our own lib : http://www.cs.vu.nl/~graphics/doc/ Encouraged: use of your own laptop/pc 42 (Lecture 1)
Theory: Book Chapter 1 Sections: 1.1, 1.2, 1.7, 1.8, 1.9 And in particular also: Course administrative information 43 (Lecture 1)