01 first


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Quality equates to detail Final Fantasy 40% of CG on 1 characters hair. Throwaway farms
  • 01 first

    1. 1. So how does the computer do it? MoonLander one of the earliest computer games. Originally commissioned by Digital Equipment Corporation to demonstrate a dedicated graphics display in 1973 . Based on a text only game written in Basic.
    2. 3. Principles of Computer Graphics COMP3004 2011/2012 Introduction Dr. John Carter (jnc@ecs.soton.ac.uk)
    3. 4. <ul><li>Aims </li></ul><ul><li>Fundamentals of drawing on a screen, etc. </li></ul><ul><li>Mathematical Background </li></ul><ul><li>Principles behind Graphics Packages. </li></ul><ul><li>Appreciation of how hard it is to produce good graphics. </li></ul>Introduction
    4. 5. Structure <ul><li>Recognising that this is a vocational course. </li></ul><ul><ul><li>Exam 50% and Coursework 50% </li></ul></ul><ul><li>Exam will be between 8 to 12 compulsory questions. </li></ul><ul><ul><li>Get them all correct you get 100% </li></ul></ul><ul><li>Coursework </li></ul><ul><ul><li>3 Graphics programming exercises. </li></ul></ul><ul><ul><ul><li>Two using OpenGL </li></ul></ul></ul><ul><ul><ul><li>One using SDL and direct write to screen. </li></ul></ul></ul>
    5. 6. <ul><ul><li>What this course is not. </li></ul></ul><ul><li>Instruction in programming. </li></ul><ul><li>User Interfaces and Window Systems </li></ul><ul><li>Virtual Reality. </li></ul><ul><li>Everything about Computer Graphics. </li></ul><ul><li>Realistic Modeling of the physical world. </li></ul>
    6. 7. <ul><ul><li>What this Course is… </li></ul></ul><ul><ul><li>The ideas and concepts behind all graphics packages. </li></ul></ul><ul><ul><li>The low-level operations, and how to draw on the screen. </li></ul></ul><ul><ul><li>How to interact with your Graphics Card, make it work for you. </li></ul></ul><ul><ul><li>The Mathematics of Computer Graphics, and how to survive in three-dimensions. </li></ul></ul><ul><ul><li>Rendering, effects and how to make things look good, not the same as real. </li></ul></ul>
    7. 8. <ul><ul><li>What’s missing… </li></ul></ul><ul><li>Lots of Advanced Features </li></ul><ul><li>Analysis of Commercial Packages </li></ul><ul><ul><li>i.e.DirectX, X Windows </li></ul></ul><ul><li>Much else that I’ve forgotten </li></ul>
    8. 9. Why are we doing this? <ul><li>We are going to study how to write graphical applications using OpenGL </li></ul><ul><li>We will look at what is under the bonnet. </li></ul><ul><li>At the end of the course you should be able to write your own (simple) graphical library, so that you could make your coursework run on any computer. </li></ul><ul><li>Because you will understand the underlying algorithms </li></ul>
    9. 10. Applications in Review 2D With 3D effects?? Line, text & rectangles Complex API Not really graphics Science & Engineering gnuplot VTK Data >> 1 TByte Near Real-time Rendering Workstations & Clusters (Visit) Photo Realistic Expensive Cost vs. Quality Real 3-D Workstation farms <ul><li>TV display </li></ul><ul><li>Real time </li></ul><ul><li>Fast interaction </li></ul><ul><li>Speed vs. quality </li></ul><ul><li>Low cost. </li></ul><ul><li>3-D mostly </li></ul><ul><li>Dedicated systems </li></ul>User Interface Visualisation Movies Games
    10. 11. Application Areas
    11. 12. Synthetic Actors
    12. 13. Animated Movies. <ul><li>“ Finding Nemo” – Walt Disney and Pixar </li></ul><ul><ul><li>John Lassiter directed, 2003 </li></ul></ul><ul><ul><li>Classic computer animation in the tradition of Luxor Jr, Toy Story and others </li></ul></ul><ul><li>“ Spirited Away” </li></ul><ul><ul><li>Hayano Miyazaka directed 2002 </li></ul></ul><ul><ul><li>Blend of hand and computer animation in the anime tradition. </li></ul></ul>
    13. 14. Games
    14. 15. Visualisation Example
    15. 16. More Data Visualisation.
    16. 17. GnuPlot a Scientific Graphing tool set yrange [0:1.1] set logscale x set key outside set rmargin 15 set xlabel 'Time between measurements (days)' set ylabel 'Recognition rate' set grid plot '-' using 2:1 / title 'Rate' with linespoints, '-' / using 1:2 title 'Average' with lines 0.974025974 0.083333333 0.932481752 1 0.992307692 2 0.592436975 216.00 0.738589212 275.00 0.432773109 491.00 e 0.01 0.98 999 0.98 e
    17. 18. User Interface Example Using Python and TKInter, user interfaces can be fun. from Tkinter import * root = Tk() t = &quot;Hello, world!&quot; w = Label(root,text = t) w.pack() root.mainloop()
    18. 19. Early Games Console <ul><li>http://design.osu.edu/carlson/history/timeline.html </li></ul><ul><li>1960 “Computer Graphics” first named by Wiliam Fetter at Boeing. </li></ul><ul><li>1962 “Spacewars” – first video game Steve Russell at MIT for PDP-1 </li></ul>1955 Sage Early Warning Anti-Missile System. Sketchpad by Ivan Sutherland on TX-2 (MIT) in 1963.
    19. 20. More History: Spacewar!
    20. 21. Prehistory <ul><li>MoonLander on DEC GT40 in 1973 </li></ul><ul><li>Communicates with host computer via 20kb/s channel </li></ul><ul><li>Host sends drawing instructions </li></ul><ul><li>PDP-11 maintains the screen </li></ul><ul><li>Link to Flash (I think) on web page. </li></ul>
    21. 22. <ul><ul><li>In the Beginning….. </li></ul></ul><ul><li>Primitive Instructions </li></ul><ul><ul><li>Line </li></ul></ul><ul><ul><li>Circle </li></ul></ul><ul><ul><li>Point </li></ul></ul><ul><ul><li>Box </li></ul></ul><ul><li>Graphics API linked to Hardware </li></ul><ul><ul><li>Plot 10 – Tektronix Terminals </li></ul></ul><ul><ul><li>VT55 H + V lines and ‘.’s </li></ul></ul><ul><ul><li>Calcomp Plot Language </li></ul></ul><ul><ul><li>HPGL – HP Plotters </li></ul></ul><ul><ul><li>Fortran + Line Printer </li></ul></ul>| X | X | X | X | X +---------------
    22. 23. Early Days
    23. 24. Graphics API <ul><li>Plot10 </li></ul><ul><li>CALCOMP </li></ul><ul><li>PHIGS </li></ul><ul><li>GKS </li></ul><ul><li>VMRL </li></ul><ul><li>Windows GDI </li></ul><ul><li>SGI GL </li></ul><ul><li>TEK4010 </li></ul><ul><li>Windows Direct X </li></ul><ul><li>OpenGL </li></ul><ul><ul><li>glsl </li></ul></ul><ul><ul><li>cg </li></ul></ul><ul><li>SVG </li></ul><ul><li>Not windowing API </li></ul><ul><ul><li>XP, Vista or W7 </li></ul></ul><ul><ul><li>X-windows (unix) </li></ul></ul><ul><ul><li>Mac OSX </li></ul></ul><ul><li>SDL, freeglut, GLFW </li></ul><ul><li>OpenGL-ES </li></ul>
    24. 25. Some SVG <?xml version=&quot;1.0&quot;?> <svg xmlns=&quot;http://www.w3.org/2000/svg&quot;> <g style=&quot;fill-opacity:0.7; stroke:black; stroke-width:0.1cm;&quot;> <circle cx=&quot;6cm&quot; cy=&quot;2cm&quot; r=&quot;100&quot; style=&quot;fill:red;&quot; transform=&quot;translate(0,50)&quot; /> <circle cx=&quot;6cm&quot; cy=&quot;2cm&quot; r=&quot;100&quot; style=&quot;fill:blue;&quot; transform=&quot;translate(70,150)&quot; /> <circle cx=&quot;6cm&quot; cy=&quot;2cm&quot; r=&quot;100&quot; style=&quot;fill:green;&quot; transform=&quot;translate(-70,150)&quot;/> </g> </svg> Now Mozilla and family can draw SVG
    25. 26. OpenGl is cross-platform standard <ul><li>OpenGL lets you: </li></ul><ul><ul><li>Draw Shapes. </li></ul></ul><ul><ul><li>Colour and Paint them. </li></ul></ul><ul><ul><li>Animation. </li></ul></ul><ul><ul><li>Control User Interaction. </li></ul></ul><ul><ul><li>Display on Screen, write to disk. </li></ul></ul><ul><ul><li>Program GPU. </li></ul></ul><ul><li>This is now the commonest 3-D Graphics API, it is cross platform. </li></ul>
    26. 27. Angle E “ Interactive Computer Graphics: A top-down approach with Shader-Based OpenGL ”, Addison Wesley 2009, (5 th Edition) Th is is the official course text . (5 th edition is ok, but not OpenGL 3+) F.S. Hill, Jr “ Computer Graphics Using OpenGL ” Prentice-Hall 2001 (and later) This is a good alternative. J., D., Foley et al., &quot; Introduction to Computer Graphics &quot;, Addison Wesley 1994. So is this one but it doesn't speak OpenGl M. Woo et al. “ OpenGL Programming Guide ” Addison Wesley 1999 The so called Red Book, the official how-to guide, free electronic copies available, use Google.
    27. 29. <ul><ul><li>More Books </li></ul></ul><ul><li>J.D. Foley and A. Van Dam &quot; Computer Graphics, Principles and Practice &quot; 2nd Ed.(Addison Wesley 1990) </li></ul><ul><ul><li>This book is the standard reference, and well worth it if your project involves Graphics. Get the “in C” edition. But it doesn't speak OpenGl either. </li></ul></ul><ul><li>David M. Bourg “ Physics for Games Developers ” (O’Reilly 2002) </li></ul><ul><ul><li>Not in the library but a must it you really want to put physics in a game. No OpenGL </li></ul></ul><ul><li>Luke Benstead et al. “ Beginning OpenGL Games Programming ”, 2 nd Ed. (Course Technology (2009) </li></ul><ul><ul><li>Not in library, but for a while it was the only book I have found with any treatment of OpenGl 3.0. </li></ul></ul>
    28. 30. Lectures ? <ul><li>Most books start from bottom up. </li></ul><ul><ul><li>Pixels to Movies/Games. </li></ul></ul><ul><li>Problems. </li></ul><ul><ul><li>Timing – You don’t know what you need to know when you need to know it. </li></ul></ul><ul><li>Top Down approach. </li></ul><ul><ul><li>High Level concepts </li></ul></ul><ul><li>Motivation for low level features. </li></ul><ul><li>Basic Knowledge for Coursework. </li></ul>
    29. 31. <ul><ul><li>Coursework </li></ul></ul><ul><li>Three Coursework Components </li></ul><ul><ul><li>Introduction to OpenGL using SDL (10%) </li></ul></ul><ul><ul><li>SDL and the GP2X (15%), 2 labs, write our own GL. </li></ul></ul><ul><ul><ul><li>Shading polygons </li></ul></ul></ul><ul><ul><ul><li>3-D transformations </li></ul></ul></ul><ul><ul><li>Model World (25%) </li></ul></ul>
    30. 32. GP2X Open Hardware See http://gp2x.co.uk/ordergp2x.html Note that this course is almost the only way that you can get you play with a GP2X.
    31. 33. <ul><ul><li>Resources </li></ul></ul><ul><li>These viewgraphs </li></ul><ul><ul><li>Electronic only as they are in a state of flux. </li></ul></ul><ul><ul><li>Last years slides also available. </li></ul></ul><ul><li>The course text and reference texts </li></ul><ul><li>The library </li></ul><ul><li>The Web site (being rebuilt, as usual) </li></ul><ul><ul><li>Up to date versions of these viewgraphs </li></ul></ul><ul><ul><li>Some notes, although these are out of date </li></ul></ul><ul><ul><li>Documentation on OpenGL Programming </li></ul></ul><ul><ul><li>Many example programs, Self paced labs and demo's </li></ul></ul>
    32. 34. What can we ignore at the moment? <ul><li>Pixel based rendering. </li></ul><ul><li>Lines, circles and curves </li></ul><ul><li>Polygon rendering. </li></ul><ul><li>OpenGL </li></ul><ul><li>Advance mathematical ideas. </li></ul>
    33. 35. What do we need to know? <ul><li>Object Formats and Representations. </li></ul><ul><li>Lighting, Materials and Texture </li></ul><ul><li>Modelling </li></ul><ul><li>Colour </li></ul><ul><li>Some Basic mathematical Ideas. </li></ul>
    34. 36. Real work starts next lecture.
    35. 37. Questions? Principles of Computer Graphics COMP3004 Introduction Dr. John Carter (jnc@ecs.soton.ac.uk)