Title: 159.235 Graphics
1159.235 Graphics Graphical Programming -
Review Lecture
2Lecture 0/1 - The Outline Overview
- We have not exactly stuck rigidly to this!
- Java vs other Graphical Systems
- Aim at covering graphics algorithms
3Lecture 2 - Fundamentals
- Computer Graphics Systems
- Vector and Raster Graphics
- Pixels
- Coordinates
- Colours
4Lecture 3 - Drawing Primitives
- Primitives - lines, rectangles and filling
- Transforms - affine transforms
- Scale, translate, shear etc
- Built into the Graphics2D
5Lectures 4,5,6,7,8,9 - Java
- A Rapid Introduction to Java Programming
- Java Development Kit 1.4 onwards
6Lecture 10 - Data Models
- Data to Render
- Simulations
- How do we get our program data in a form
suitable to render? - Cellular automaton example
- Now you have seen how to do this with triangles
etc.
7Lecture 11
- Rasters and pixels
- How does scanline work?
8Lecture 12
- Aliasing
- And anti aliasing
- Vector graphics vs pixels
- Scalable graphics
9Lecture 13 - Images Intro
- Java Image BufferedImage
- Image file formats
- Internal representations
- Off screen rendering to an image
- Double (image) buffering
10Lecture 14
- Lines and circles
- Effects of different drawing algorithms
- Line
- Circle
- Parameterised equations for line etc
11Lecture 15 - GUI
- Graphical User Interfaces
- Start of the story about Widgets
- Of mice and men
- Menus
- Listeners
12Lecture 16 - More GUI
- Panels and other containers
- Layout managers
- Composing more complex layouts
- Checkboxes and more listeners
- The event model
13Lecture 17 - Printing I/O
- Print method and interface
- File I/O in Java
- Keyboard I/O raw (immediate) and cooked
(buffered by newlines)
14Lecture 18 - Threads
- A brief look at elemental concurrency
- Separate threads in the JVM for the AWT
- Threads of your own
15Lecture 19 - Intro to 3D
- 2D Viewing
- Parametric Equations
- 3D Models
- Projective Geometry
- 3d Graphics Rendering and Voxels
- Movies, games, and Virtual Reality
- Polygons and scenegraphs
16Lecture 20 - Polygons
- Polygons and Triangles
- Quadrilaterals and others
- Convexity
- Wireframes
- Vertices and edges
17Lecture 21 - Transforms
- Scaling
- Translation
- Rotation
- Homogeneous coordinates - 4d matrix vector
maths trick to make all the above work as
matrix multiplications (no matrix additions) - So we can compose transforms easily
18Lecture 22 - More Transforms
- Rotation about an arbitrary axis in 3D
- Using our Homogeneous coordinate apparatus
make this from the simpler transforms
19Lecture 23 - 3D Viewing
- Viewing
- Clipping
- Cohen and Sutherland and the outcodes
- Deciding what part of the polygon is where
and if we should see it or not
20Lecture 24 - Projections
- The 3D rendering pipeline
- Viewing angles
- What do we (should we) See?
- The dreaded Normals!
- (a utility vector that is perpendicular to a
surface) - Use the dot product!
21Lecture 25 - More Projections
- Using the normals and other viewing angle info
to distort (project) 3d onto a flat screen - Different spaces - world and object models
- Projection space - pixels on the screen
22Lecture 26 - Visible Surfaces
- More games to play with Normals
- Back face culling
- Visible surface determination
- Depth sorting ordering
23Lecture 27 - Curves and Surfaces
- Curves for interpolation
- Hermite (control points include gradients)
- Bezier - use spatial control points that
determine the start and end gradients of a
line
24Lecture 28 - More Curves
- Bezier Curves
- How to make surfaces from curves
- Splines and Interpolation
25Lecture 29 - Colour and Light
- Basics of colour and light
- Approximations of the real physics
26Lecture 30 - Phong Model
- Phong equation for Lighting
- Remember the different parts
- Ambient ( a hack)
- Diffuse (an approximation)
- Specular (another approximation)
- Hybrid ( a mix)
27Lectures 31, 32, 33
- Lighting and Illumination
- Various levels of approximations to the
lighting physics - Greater (but slower) realism
28Lecture 34
- Graphics file formats
- and Markup languages
29Textbook Review
- The two main suggested books are
- Computer Graphics Principles and Practice, James
Foley, Andries van Dam, Steven Feiner and John
Hughes, Addison-Wesley, Second Edition (in C with
SRGP and SPHIGS) 1997, ISBN 0-201-84840-6. - Computer Graphics with OpenGL Donald Hearn and M.
Pauline Baker, Third Edition, Prentice Hall 2004,
ISBN 0-13-015390-7. - Possibly also useful
- Java 2D Graphics by Johnathan Knudsen, Published
by O'Reilly, ISBN 1-56592-484-3 - And
- The Essence of Computer Graphics by Peter Cooley,
Published by Pearson, ISBN 0130-16283--3
30159.235 Exam
- 12th November (Afternoon)
- Grading - 60 exam 40 Assignments
- Assignment 1 - (20)
- Assignment 2 - (20)
31Exam Coverage
- Questions mostly about concepts - calculators
not needed. - Maybe ask you to compare and contrast two
methods - Define terms, sketch output of a paint() code
- Write or critique a (small) code fragment
32Exam Preparation
- Generally organise your notes, handouts and
assignments. Read though all your material -
what did you find difficult? - Test yourself on the material - review the
example codes and try to understand them and
write short codes of your own to test your
ideas. - Try to finish your studying the day before the
exam
33At the Exam
- Do not panic.
- Read the exam questions well before you try to
answer each part. Note the marks for each
part. - Make sure you answer as much as you can but
make sure you do get credit for the material you
know well. - There will be six questions and you should
answer them all.
34Where Next?
- See Web Pages for some links and pointers on
what to look at if you plan to work more in
Graphics. - Next - More ideas on Python graphics and also
Blender - And see 159.709 for OpenGL