Docstoc

Introduction

Document Sample
Introduction Powered By Docstoc
					 INTRODUCTION          TO     COMPUTER      G RAPH I C S




                  Introduction




Andries van Dam     September 7, 2004    Introduction   1/56
 INTRODUCTION              TO     COMPUTER          G RAPH I C S


What is Computer Graphics? (1/2)
     •   Computer graphics is commonly understood to mean
         the creation, storage and manipulation of models and
         images.
     •   Such models come from a diverse and expanding set
         of fields including physical, mathematical, artistic,
         biological, and even conceptual (abstract) structures.




      Frame from an animation by William Latham, shown at
      SIGGRAPH 1992. Latham uses rules that govern
      patterns of natural forms to create his artwork.


Andries van Dam         September 7, 2004        Introduction   2/56
 INTRODUCTION                    TO      COMPUTER                G RAPH I C S


What is Computer Graphics? (2/2)
     •    The term “computer graphics” was coined in 1960 by
          William Fetter to describe new design methods he
          was pursuing at Boeing.
     •    He created a series of widely reproduced images on a
          pen plotter exploring cockpit design, using a 3D
          model of a human body.




    “Perhaps the best way to define computer graphics is to find out what it
    is not. It is not a machine. It is not a computer, nor a group of computer
    programs. It is not the know-how of a graphic designer, a programmer, a
    writer, a motion picture specialist, or a reproduction specialist.
    Computer graphics is all these – a consciously managed and documented
    technology directed toward communicating information accurately and
    descriptively.”
    Computer Graphics, by William A. Fetter, 1966


Andries van Dam              September 7, 2004                Introduction       3/56
 INTRODUCTION                  TO      COMPUTER                 G RAPH I C S


   What is Interactive Computer
           Graphics? (1/3)
     •   User controls contents, structure, and appearance of
         objects and their displayed images via rapid visual
         feedback
     •   Basic components of an interactive graphics system
          –   input (e.g., mouse, tablet and stylus, force feedback device,
              scanner, live video streams…)
          –   processing (and storage)
          –   display/output (e.g., screen, paper-based printer, video recorder,
              non-linear editor…)
     •   First truly interactive graphics system, Sketchpad,
         pioneered at MIT by Ivan Sutherland for his 1963
         Ph.D. thesis




    Sketchpad in 1963. Note the use of a CRT monitor, light pen and
    function-key panel.

Andries van Dam             September 7, 2004                Introduction    4/56
 INTRODUCTION                TO     COMPUTER              G RAPH I C S


   What is Interactive Computer
           Graphics? (2/3)
     •   Before Sketchpad, output via plotters/printers, input
         via keypunch, both in batch


     Batch (1950s – now)




      Card punching (left). The IBM 704 (right) took up a whole
      room and was capable of about 4,000 arithmetic
      operations/second.
      Cool facts: Whirlwind, built in the early 50’s at MIT, cost $4.5
      million and could perform 40,000 additions/second. Mac
      512K, list price $3,195 in 1984, could do 500,000. Today,
      commodity PCs perform approximately two or three billion
      operations/second.

Andries van Dam           September 7, 2004            Introduction   5/56
 INTRODUCTION               TO     COMPUTER             G RAPH I C S


   What is Interactive Computer
           Graphics? (3/3)
     • Almost all the key elements of interactive
       graphics system are expressed in the first
       paragraph of Sutherland’s 1963 Ph.D. thesis,
       entitled, Sketchpad, A Man-Machine Graphical
       Communication System:

            The Sketchpad system uses drawing as a novel
            communication medium for a computer. The
            system contains input, output, and computation
            programs which enable it to interpret information
            drawn directly on a computer display. Sketchpad
            has shown the most usefulness as an aid to the
            understanding of processes, such as the motion of
            linkages, which can be described with pictures.
            Sketchpad also makes it easy to draw highly
            repetitive or highly accurate drawings and to
            change drawings previously drawn with it…


     • Today, still use batch mode for final production-
       quality video and film (special effects – fx),
       where one frame of a 24 fps movie may take 8-
       24 hours to render on the fastest PC!

Andries van Dam          September 7, 2004           Introduction   6/56
 INTRODUCTION                 TO     COMPUTER         G RAPH I C S


Environmental (R)evolution (1/6)
    • Graphics has been a key enabling
      technology in the evolution of
      computing environments:
          – graphical user interfaces
          – visual computing, e.g., desktop publishing,
            scientific visualization, information
            visualization


    • Hardware revolution drives everything
          – every 12-18 months, computer power
            improves by factor of 2 in price /
            performance – Moore’s Law
                  • 3Com Palm™ organizers, Compaq I-Paq™
                    as a full PC
                  • Hallmark singing card, LeapFrog Pad
          – graphics memory and network speeds are on
            even faster exponentials
                  • Graphics chips in particular have major
                    improvements every six to nine months (e.g.
                    nVidia GeForce™ series, ATI Radeon™
                    series)

Andries van Dam            September 7, 2004       Introduction   7/56
 INTRODUCTION             TO     COMPUTER        G RAPH I C S


Environmental (R)evolution (2/6)
     Character Displays (1960s – now)

     •   Display: text plus alphamosaic pseudo-graphics
     •   Object and command specification: command-line
         typing
     •   Control over appearance: coding for text formatting
         (.p = paragraph, .i 5 = indent 5)
     •   Application control: single task




Andries van Dam        September 7, 2004      Introduction   8/56
 INTRODUCTION             TO     COMPUTER        G RAPH I C S


Environmental (R)evolution (3/6)
     Vector (Calligraphic, Line Drawing)
     Displays (1963 – 1980s)

     •   Display: line drawings and stroke text; 2D and 3D
         transformation hardware
     •   Object and command specification: command-line
         typing, function keys, menus
     •   Control over appearance: pseudo-WYSIWYG
     •   Application control: single or multitasked,
         mainframe host-minicomputer satellite distributed
         computing pioneered at Brown




Andries van Dam        September 7, 2004      Introduction   9/56
 INTRODUCTION                TO      COMPUTER              G RAPH I C S


Environmental (R)evolution (4/6)
     2D bitmap raster displays for PCs and workstations
     (1972 at Xerox PARC - now)

     • Display: windows, icons, legible text and “flat
       earth” graphics
         Note: late 60’s saw first use of raster graphics, especially for
         flight simulators
     • Object and command specification: minimal
       typing via WIMP (Windows, Icons, Menus,
       Pointer) GUI (Graphical User Interface): point-
       and-click selection of menu items and objects,
       widgets and direct manipulation (e.g., drag and
       drop), the messy desktop metaphor
     • Control over appearance: WYSIWYG (which
       is really WYSIAYG, What You See Is All You
       Get)
     • Application control: multi-tasking, networked
       client-server computation and window
       management (even “X terminals”)


Andries van Dam           September 7, 2004             Introduction 10/56
 INTRODUCTION             TO     COMPUTER         G RAPH I C S


Environmental (R)evolution (5/6)
     3D graphics workstations (1984 at SGI – now)

     •   Display: real-time, pseudo-realistic images of 3D
         scenes
     •   Object and command specification: 2D, 3D and nD
         input devices (controlling 3+ degrees of freedom) and
         force feedback haptic devices for point-and-click,
         widgets, and direct manipulation
     •   Control over appearance: WYSIWYG (still
         WYSIAYG)
     •   Application control: multi-tasking, networked
         (client/server) computation and window management

     •   High-end PCs with hot graphics cards (nVidia
         GeForce™, ATI Radeon™) are supplanting graphics
         workstations
     •   Such PCs are clustered together over high speed
         buses or LANs to provide “scalable graphics” to drive
         tiled PowerWalls, Caves, etc.



Andries van Dam        September 7, 2004        Introduction 11/56
 INTRODUCTION         TO     COMPUTER     G RAPH I C S


Environmental (R)evolution (6/6)

     Classical time-sharing is dead, 1:n g n:1

     • PCs and Workstations merging in
       distributed heterogeneous computer
       networks (e.g., LANs, WANs, Internet
       and clusters)
     • But file-, print- and compute-servers
       and network are still shared
     • Client/server computing, component
       software technologies are dominant
       paradigms
     • NCs (Network Computers), thin clients
       attached to powerful servers reprise
       dumb terminals and provide central
       control – haven’t really taken off

Andries van Dam    September 7, 2004    Introduction 12/56
 INTRODUCTION            TO     COMPUTER      G RAPH I C S


         New Forms of Computing:
               1990-2004
                               (1/7)
     •    Multimedia: text and graphics synchronized
          with sound and video
     •    Hypermedia: multimedia with hypertextual links
          (also called Interactive Multimedia)
     •    Discredited term: “Digital Convergence,” the
          merging of digital television and distributed
          computing, consumer electronics: set-top
          computers (e.g., for Interactive TV, Video-On-
          Demand)
     •    The Internet and Internet appliances
     •    Embedded computing (information appliances,
          Personal Digital Assistants)
     •    Ubiquitous/pervasive/invisible/nomadic
          computing, “active badges” a la Xerox PARC,
          with hundreds of devices per person; seamless
          computing is the dream



Andries van Dam       September 7, 2004     Introduction 13/56
 INTRODUCTION              TO     COMPUTER     G RAPH I C S


      New Forms of Computing:
            1990-2004
                                (2/7)
   • Virtual Reality:

                    fully immersive VR
             (via Head-mounted Displays, Cave
                     [180 George St.])




                              CAVE™
Andries van Dam         September 7, 2004    Introduction 14/56
 INTRODUCTION        TO     COMPUTER        G RAPH I C S


      New Forms of Computing:
            1990-2004
                          (3/7)




                          Cave Painting




                              Archeological research
        CMU CUBE               and analysis tool

Andries van Dam   September 7, 2004       Introduction 15/56
 INTRODUCTION        TO     COMPUTER      G RAPH I C S


      New Forms of Computing:
            1990-2004
                          (4/7)




   Blood flow through an arterial bypass graft




                          Use feet for navigation,
                          freeing hands for other
                          uses

Andries van Dam   September 7, 2004     Introduction 16/56
 INTRODUCTION           TO     COMPUTER        G RAPH I C S


      New Forms of Computing:
            1990-2004
                             (5/7)



    semi-immersive VR


                                  Fishtank VR on a monitor

       Barco, Immersadesk™
       GMD’s Responsive
        workbench™




                                           Elumens’
                                         VisionStation™

Andries van Dam      September 7, 2004       Introduction 17/56
 INTRODUCTION             TO      COMPUTER     G RAPH I C S


      New Forms of Computing:
            1990-2004
                                (6/7)


                        augmented VR
                  (via video see-through optics)




     Video or optics superimposes computer-generated
     data on real world (e.g., Columbia’s MARS, led by
     our Ph.D., Steve Feiner)




Andries van Dam         September 7, 2004    Introduction 18/56
 INTRODUCTION               TO     COMPUTER          G RAPH I C S

        New Forms of Computing:
              1990-2004
                                  (7/7)
    New Interaction technology
    •   Inexpensive interaction devices from research lab into
        marketplace
          – makes 2D and 3D graphics no longer “special”
    •   3D (even time-varying, “4D”) interactive illustrations
        as clip art/clip models coming
    •   Kids using computer graphics in gaming consoles;
        VR games and rides (e.g. Aladdin, Pirates of the
        Caribbean, LBEs) with HMD and force-feedback
        input devices

    New forms of user-interface (UI Lecture)
    • 3D Widgets; gestures-based UI (Brown’s “Sketch”);
      VR demands new interaction technology
    • Social interfaces (Microsoft’s Bob bombed, other
      avatars may not)
    • Agents for indirect control



Andries van Dam          September 7, 2004         Introduction 19/56
 INTRODUCTION                TO     COMPUTER     G RAPH I C S


Powerful, Inexpensive Processing
                  Chips are Key in graphics subsystems

     • Advances driven by Moore’s Law
        – price/performance improves 2x every 18
          months due to doubling of number of
          transistors
        – only exponential in technology except growth
          of WWW

     • CPU
        – 64-bit computing enters the mainstream
            • Server: Intel Itanium™, AMD Opteron™
            • Consumer: IBM G5™, AMD Athlon64™
        – AMD Athlon XP™
        – Intel Pentium 4™
        – Sun UltraSPARC IV™

     • Graphics subsystems
        – Commodity cards have taken over the
          mainstream market (nVidia GeForce™, ATI
          Radeon™)

Andries van Dam           September 7, 2004    Introduction 20/56
 INTRODUCTION                  TO      COMPUTER               G RAPH I C S


 Chip Technology Advances in
 Games & Commodity Graphics
            Cards
     •   New game platforms and set-top boxes use high-end
         processors (128-bit architectures, great graphics
         capabilities)
          –   Nintendo GameCube™ (powered by ATI)
          –   Sony Playstation 2™
          –   Microsoft Xbox™ (powered by nVidia)

     •   nVidia GeForce 6800 Ultra™ and ATI Radeon X800
         XT™ are the top graphics cards (approx. $400 -
         $500)

     •   Significant advances in commodity graphics chips
         every 6 months, outrunning CPU chip advances
          –   Intel’s newest Pentium 4 chip (Prescott) has 125 million
              transistors, compared with only 55 million in a previous
              Pentium 4 (Northwood)
          –   GeForce 6800 chip (NV40) has 222 million!

     •   GPUs are now arguably more powerful than CPUs
         and programmable  CPU & OS losing their
         hegemony as the GPU co-processor becomes the tail
         to wag the CPU dog!

     •   Workstation market (and vendors) bowing to
         commoditization (e.g., Sun’s losing client market)
Andries van Dam            September 7, 2004               Introduction 21/56
 INTRODUCTION               TO     COMPUTER           G RAPH I C S


         Application Distinctions
     Two basic paradigms
     •   Sample-based graphics: discrete samples are used to
         describe visual information
          – pixels can be created by digitizing images, using a
            sample-based “painting” program, etc.
          – often some aspect of the physical world is sampled for
            visualization, e.g., temperature across the US
          – example programs: Adobe Photoshop™, GIMP™ ,
            Adobe AfterEffects™ (it came out of CS123/CS224!)


     •   Geometry-based graphics: a geometrical model is
         created, along with various attributes, and is then
         sampled for visualization (this process is called
         rendering)
          – often some aspect of the physical world is visually
            simulated, or “synthesized”
          – example 2D vector graphics: Adobe Illustrator™,
            Macromedia Freehand™, Corel CorelDRAW™ !
          – example 3D programs: Alias|Wavefront’s Maya™,
            Autodesk’s AutoCAD2005™, Discreet’s 3D
            StudioMax™




Andries van Dam          September 7, 2004          Introduction 22/56
 INTRODUCTION                TO      COMPUTER              G RAPH I C S


  Sampled-based Graphics (1/2)
    • Images are made up of a grid of discrete pixels
      for 2D “picture elements”


            CRT beam illumination pattern         light intensity



                                                 1 pixel



 Mathematical                                       NB: Can’t resolve
 pixel grid                        LCD display      adjacent pixels on CRT




    • Pixels are point locations with associated sample
      values, usually of light intensities/colors,
      transparency, and other control information.
      They are not little circles or little squares, as
      we’ll see.



Andries van Dam           September 7, 2004           Introduction 23/56
 INTRODUCTION             TO     COMPUTER         G RAPH I C S

              Sample-based Graphics (2/2)

     • Samples created directly in paint-type program,
       or as a sampling of continuous (analog) visual
       materials. E.g., a photograph can be sampled
       (light intensity/color measured at regular
       intervals) with many devices including:
          – flatbed and drum scanners
          – digital still and motion (video) cameras
          – add-on boards such as frame grabbers
     • Sample values can also be input numerically
       (e.g., with numbers from a computed dataset)
     • Once an image is defined as a pixel-array, it can
       be manipulated
          – Image editing changes made by user, such as
            cutting and pasting sections, brush-type tools,
            and processing selected areas.
          – Image processing algorithmic operations that are
            performed on an image (or pre-selected portion
            of an image) without user intervention. Includes
            blurring, sharpening, edge-detection, color
            balancing, rotating, and warping. A pre-
            processing step in computer vision.

Andries van Dam        September 7, 2004        Introduction 24/56
 INTRODUCTION                TO      COMPUTER           G RAPH I C S


              Sampling an Image
     •   Lets do some sampling of the CIT building




             The 3D
             scene




     •   A color value is measured at every grid point and
         used to color a corresponding grid square
                      0 = white 5 = gray 10 = black




     •   Note: this poor sampling and image reconstruction
         method creates a blocky image



Andries van Dam          September 7, 2004            Introduction 25/56
 INTRODUCTION              TO     COMPUTER         G RAPH I C S


          What’s the Advantage?
     •   Once image is defined in terms of colors at (x, y)
         locations on grid, can change image easily by altering
         location or color values
     •   E.g., if we reverse our mapping above and make 10 =
         white and 0 = black, the image would look like this:




     •   Pixel information from one image can be copied and
         pasted into another, replacing or combining with
         previously stored pixels




Andries van Dam         September 7, 2004        Introduction 26/56
 INTRODUCTION               TO     COMPUTER            G RAPH I C S


         What’s the Disadvantage
     •   WYSIAYG (What You See Is All You Get): There is
         no additional information
          – no depth information
          – can’t examine scene from a different point of view
          – at most can play with the individual pixels or groups of
            pixels to change colors, enhance contrast, find edges,
            etc.
     •   But recently, strong interest in image-based rendering
         to fake 3D scenes and arbitrary camera positions.
         New images constructed by interpolation,
         composition, warping and other operations.




     Capture of Hair Geometry from Multiple Images, Siggraph 2004


Andries van Dam          September 7, 2004          Introduction 27/56
 INTRODUCTION                  TO      COMPUTER               G RAPH I C S


          Examples of 2D Image
            Manipulation (1/3)
     •   There are many things one can do with sampled images: uses of
         computer imaging range from military applications to entertainment,
         medicine, art, and design.




     •   The news: digitally “enhanced” images are more and more common.
         Usually just sharpening, color balancing, but sometimes a lot more.
         To “Photoshop something in”;
          – National Geographic’s Pyramid cover
          – TV Guide’s Oprah cover
          – Time Magazine’s O.J. Simpson cover
          – University of Wisconsin application
          – Faked NE blackout satellite photo




Andries van Dam             September 7, 2004              Introduction 28/56
 INTRODUCTION                  TO      COMPUTER                G RAPH I C S


          Examples of 2D Image
            Manipulation (2/3)
     •   People can now mutate into other people or objects through
         morphing, and can carry on conversations in different times and
         places
          – Interactive Digital Photomontage, Siggraph 2004




     •   The belief in a very strong connection between photorealistic images,
         still or moving, and reality is being severed
           – no way to tell if news photos are “real” photographs
           – photographic evidence no longer considered “proof” in a court
                of law without clear provenance of the image
           – future of the family photo album?


Andries van Dam             September 7, 2004               Introduction 29/56
 INTRODUCTION                  TO       COMPUTER                 G RAPH I C S


          Examples of 2D Image
            Manipulation (3/3)
     •   In artwork the processes and techniques of photography and
         painting are merging in the art of digital imaging
          –   Michele Turre: the artist, her daughter, and her mother, all at 3
              years of age




     •   CS123 emphasizes geometry-based graphics but we do two
         assignments on sample-based graphics to learn simple
         image processing.
          –   image processing in general includes image transformation, and
              is used for feature detection, pattern recognition, and
              machine/computer vision, and most recently, for image-based
              rendering


Andries van Dam             September 7, 2004                Introduction 30/56
 INTRODUCTION                TO     COMPUTER           G RAPH I C S


         Geometry-Based Graphics
     •    Geometry-based graphics applications store
          mathematical descriptions, or “models,” of geometric
          elements (lines, polygons, polyhedrons…) and their
          associated attributes (e.g., color, material properties).
          These elements are primitive geometric shapes,
          primitives for short.

     •    Images are created as pixel arrays (via sampling of
          the geometry) for viewing, but are not stored as part
          of the model. Images of many different views can be
          generated from the same model.

     •    One cannot usually work directly with the individual
          pixels in a geometry-based program; one manipulates
          the geometric elements, then they are resampled and
          redisplayed.

     •    Increasingly rendering combines geometric and
          sample-based graphics, both as a performance hack
          and to increase quality of the final product




Andries van Dam           September 7, 2004         Introduction 31/56
 INTRODUCTION               TO     COMPUTER              G RAPH I C S


  What is Geometric Modeling?
     What is a model?
     •   Captures the salient features (data, behavior) of the
         thing/phenomenon being modeled
          – data includes geometry, appearance attributes…
          – note similarity to OOP notions
     •   Real: some geometry inherent
          – physical (e.g., actual object such as a pump)
          – non-physical (e.g., mathematical function, weather
            data)
     •   Abstract: no inherent geometry, but for visualization
          – organizational (e.g., company org. chart)
          – quantitative (e.g., graph of stock market)
     •   Modeling is coping with complexity
     •   Our focus: modeling and viewing simple everyday
         objects
     •   Consider this:
         Through 3D computer graphics, for the first time in human
         history we have abstract, easily changeable 3D forms. This
         has revolutionized the working process of many fields –
         science, engineering, industrial design, architecture,
         commerce, entertainment, etc. This has profound
         implications for visual thinking and visual literacy.




Andries van Dam          September 7, 2004           Introduction 32/56
 INTRODUCTION              TO     COMPUTER         G RAPH I C S


                  Lecture Topics
     •   Primitive shapes are manipulated with geometric
         transformations (translation, rotation, scale). These
         transformations are essential for model organization,
         the process of composing complex objects from
         simpler components.
     •   Hierarchical models and the same geometric
         transformations are also essential for animation.
     •   Once object’s geometry is established, must be
         viewed on a screen. Must map from 3D to 2D for
         viewing and from 2D to 3D for 2D input devices
         (e.g., the mouse or pen/stylus).
     •   In the process of mapping from 3D to 2D, object
         (surface) material properties and lighting effects are
         used in rendering one’s constructions. The rendering
         process is also called image synthesis.




Andries van Dam         September 7, 2004       Introduction 33/56
 INTRODUCTION        TO     COMPUTER     G RAPH I C S


  Decomposition of a Geometric
             Model
     • Divide and Conquer
     • Hierarchy of geometrical components
     • Reduction to primitives (e.g., spheres,
       cubes, etc.)
     • Simple vs. not-so-simple elements (nail
       vs. screw)



   Head
   Shaft

   Point
                  composition         decomposition



Andries van Dam   September 7, 2004    Introduction 34/56
  INTRODUCTION                 TO     COMPUTER         G RAPH I C S


Hierarchical (Tree) Diagram of Nail
      •   The object to be modeled is (visually) analyzed, and
          then decomposed into collections of primitive shapes.

      •   The tree diagram provides a visual method of
          expressing the “composed of” relationships of the
          model.


                   Nail                              root node

             Head         Body
           (cylinder)

                 Shaft          Point
                                                     leaf nodes
               (cylinder)      (cone)
                              tree diagram

      •   Such diagrams are part of 3D program interfaces
          (e.g., 3D Studio MAX, Maya).

      •   As a pointer data structure to be rendered, it is called
          a scenegraph




 Andries van Dam            September 7, 2004       Introduction 35/56
 INTRODUCTION                 TO    COMPUTER              G RAPH I C S


    Composition of a Geometric
              Model
                     Translate

                              Translate and Scale




                                   Translate and Rotate


            Primitives                           Composition
      in their own modeling                   in the world (root)
        coordinate system                     coordinate system

     • The primitives created in the decomposition
       process must be assembled to create the final
       object. This is done with “affine
       transformations,” T, R, S (as in the example
       above).
     • Other composition operators will be very briefly
       discussed later (e.g., Constructive Solid
       Geometry (CSG) with Boolean operators).

Andries van Dam         September 7, 2004             Introduction 36/56
 INTRODUCTION               TO     COMPUTER           G RAPH I C S


What Kind of Math do We Need?
     Cartesian Coordinates
     • Typically modeling space is floating point, screen
        space is integer




      x, y Cartesian grid                    Integer Grid

     NB:Often, screen coordinates are measured top to bottom, based
        on raster scan
                    (0,0)




Andries van Dam          September 7, 2004          Introduction 37/56
 INTRODUCTION        TO     COMPUTER       G RAPH I C S


           Example 3D Primitives

Polyline                    Polyhedron




Sphere                          Patch




Andries van Dam   September 7, 2004      Introduction 38/56
 INTRODUCTION                     TO      COMPUTER      G RAPH I C S


         Conceptual Framework for
            Interactive Graphics
       •      Graphics library/package (e.g., OpenGL™, DirectX
              ™) is intermediary between application and the
              display hardware (Graphics System)
       •      Application program maps application objects to
              views (images) of those objects by calling on
              graphics library
       •      User interaction results in modification of model
              and/or image
       •      Images are usually means to an end: synthesis,
              design, manufacturing, visualization,…
       •      This hardware and software framework is nearly 4
              decades old but is still useful, indeed dominant



                               Graphics
Application      Application
                               Library     Graphics
  model           program
                                (GL)       System




Andries van Dam                September 7, 2004      Introduction 39/56
 INTRODUCTION             TO     COMPUTER        G RAPH I C S


                  Graphics Library
     •   Primitives
     •   Attributes
          – color
          – line style
          – material properties for 3D
     •   Lights
     •   Transformations
     •   Immediate mode vs. retained mode
          – immediate mode: no stored representation,
              package holds only attribute state, and
              application must completely draw each frame
          – retained mode: library compiles and displays
              from a scenegraph, a complex DAG




Andries van Dam        September 7, 2004       Introduction 40/56
 INTRODUCTION           TO     COMPUTER      G RAPH I C S


 2D Hardware/Algorithms Outline
     • Display Hardware: Raster scan vs. random scan
     • Drawing primitives by scan conversion
        – lines
        – polygons
        – circles and ellipses
        – characters
        – attributes (color, line style, fill pattern…)
     • Clipping to clip rectangle: three methods
        – analytically compute intersections and draw
           clipped primitives
        – test each pixel and write only if inside
        – compute spans inside the primitive and fill
           entire span without testing
     • Color Table
        – indirect specification of (pseudo) color
        – color correction, simple types of animation
     • BitBlt/RasterOp for operating on blocks of
       pixels

Andries van Dam      September 7, 2004     Introduction 41/56
 INTRODUCTION               TO     COMPUTER           G RAPH I C S


     Graphics Display Hardware
     •   Vector (calligraphic, stroke, random-scan)
          – still used in some plotters




     •   Raster (TV, bitmap, pixmap), used in displays and
         laser printers




Andries van Dam          September 7, 2004      Introduction 42/56
 INTRODUCTION              TO     COMPUTER          G RAPH I C S


              Vector Architecture




     •   Vector display works with a display list/file stored in
         refresh buffer
     •   Display controller draws all vectors at < 60 Hz (often
         at variable rate); flicker is a problem



Andries van Dam         September 7, 2004         Introduction 43/56
 INTRODUCTION              TO     COMPUTER         G RAPH I C S


          2D Raster Architecture




     •   Raster display stores bitmap/pixmap in refresh buffer,
         also known as bitmap, frame buffer; can be in
         separate hardware (VRAM) or in CPU’s main
         memory (DRAM)
     •   Video controller draws all scan-lines at consistent
          > 60 Hz; separates update rate of the frame buffer
         and refresh rate of the CRT


Andries van Dam         September 7, 2004        Introduction 44/56
 INTRODUCTION              TO     COMPUTER           G RAPH I C S


                  Drawing Lines



     •   For horizontal, vertical and diagonal lines all pixels
         lie on the ideal line: special case
     •   For lines at arbitrary angle, pick pixels closest to the
         ideal line (Bresenham’s = midpoint “scan
         conversion” algorithm)
     •   For thick lines, use multiple pixels in each column or
         fill a rotated rectangle




     •   Sampling a continuous line on a discrete grid
         introduces sampling errors: the “jaggies”


Andries van Dam         September 7, 2004          Introduction 45/56
 INTRODUCTION           TO     COMPUTER     G RAPH I C S


          Drawing Filled Polygons
     1.     Find intersection of scanline with
            polygon edges

     2.     Sort intersections by increasing x

     3.     Fill the polygon between pairs of
            intersections (spans)




Andries van Dam      September 7, 2004    Introduction 46/56
 INTRODUCTION        TO     COMPUTER     G RAPH I C S


   Drawing Circles and Ellipses




                     circle outline




                     filled ellipse


Andries van Dam   September 7, 2004    Introduction 47/56
 INTRODUCTION         TO     COMPUTER     G RAPH I C S


              Thickness Attribute
     • Thick circle drawing by tracing a
       rectangular pen




     • Treat such primitives as regions and fill
       them, e.g., approximate them as
       sequences of connected quadrilaterals

Andries van Dam    September 7, 2004    Introduction 48/56
 INTRODUCTION         TO     COMPUTER     G RAPH I C S


         Drawing Characters (1/2)
     • For characters defined by small bitmap
        – selectively write pixels of refresh
           buffer corresponding to “true” bits of
           character bitmap
     • Transparent mode: don’t write 0’s –
       BitBlt with OR
     • Opaque mode: write background color
       for 0’s
     • Descenders & proportional spacing
       easily accommodated




Andries van Dam    September 7, 2004    Introduction 49/56
 INTRODUCTION         TO     COMPUTER     G RAPH I C S


         Drawing Characters (2/2)
     • Outline fonts: defined in terms of
       (mathematical) drawing primitives
       (lines, arcs, splines) and thus scalable,
       but more CPU intensive (e.g. Adobe
       PostScript™, Microsoft TrueType™)




     • Font design (typography is a highly
       skilled specialty, involving graphical
       and algorithmic design)


Andries van Dam    September 7, 2004    Introduction 50/56
 INTRODUCTION                  TO     COMPUTER                G RAPH I C S


               1-bit Bilevel Display



     •   Digital intensity value      Digital to Analog
         Conversion (DAC)         analog signal to drive
         electron beam
     •   Black & White (or any 2 colors, depending on the
         monitor phosphor color)
     •   Original Mac resolution was 512x384 pixels, now
         from 640x480 up to 1280x1024, even 3Kx3K in
         IBM’s Roentgen display. Our PCs are 1280x1024
     •   1280x1024 memory – 15 nanosec/pixel => 32 pixel
         chunks stored in shift registers/buffers
                                            Set or
                              X address
                  Address                 increment     Raster scan
      Frame                                 Set or       generator
      buffer                  Y address
                  Address                   decrement
                                                                        Deflection
                              Pixel value                 DAC           Intensity
                  Data
                                     Video Controller

Andries van Dam             September 7, 2004              Introduction 51/56
 INTRODUCTION          TO     COMPUTER     G RAPH I C S


                  n-Bit Display




     • 2n intensities or colors: 1
       (grayscale) or 3 (color)
       DACs & guns


Andries van Dam     September 7, 2004    Introduction 52/56
 INTRODUCTION               TO     COMPUTER             G RAPH I C S


           Image Display System
              Look-up Table




     •   Any specific 2n colors may be inadequate (n typically
         16-24 in low-end systems)
     •   Look-up table allows 2n colors out of 224 colors to be
         used in one image, some other 2n in another image
          – 224 = approx. 16.7 million, exceeds eye’s ability to
            discriminate (somewhere between 7-10 million)
     •   Color table is a resource managed (usually) by
         window manager


Andries van Dam          September 7, 2004           Introduction 53/56
 INTRODUCTION               TO     COMPUTER           G RAPH I C S


Color Look – Up Table Operation




     •   Pixel value is indexed to color look up table (CLUT)
         where color is stored. Here we use only 12 bits (4bits
         per color) for clarity – typically, 24bits are used
     •   CLUT look up done at video rates, overlapped with
         fetch and DAC!
     •   In 24-bit “true” color systems, 3 x 8 bits for R, G, B;
         each color has its own 8-bit CLUT (0-255)
     •   CLUT allows variety of effects
          – pseudo coloring (LandSat images, stress diagrams,
            thermograms…)
          – fast image changes: change table rather than stored image
          – multiple images: select or composite/blend
          – animation hack



Andries van Dam          September 7, 2004         Introduction 54/56
 INTRODUCTION        TO     COMPUTER     G RAPH I C S


             BitBlt/RasterOp (1/2)
     • Logically operate on each pixel in
       rectangular source and destination
       regions in same or different pixmaps to
       achieve dynamics, e.g., to move/scroll
       windows on screen
     • RasterOp (Source, Destination) g
       Destination
     • In some implementations either S or D
       may be masked, and need not be same
       size
                       pixmap




Andries van Dam   September 7, 2004    Introduction 55/56
 INTRODUCTION                 TO   COMPUTER         G RAPH I C S


             BitBlt/RasterOp (2/2)
     •   Replace (S,D): S destructively replaces D, i.e., is
         deleted and copied on top of D (also called Move);
         used for making opaque characters, icons, scroll
     •   Copy (S,D) as above, but S is not deleted
     •   OR (S,D): S is non-destructively “added” to D; used
         for painting, transparent and “kerned” characters
         (where characters extend beyond their boxes); not as
         useful in n-bit systems
     •   AND (S,D): S can mask out pixels in D
     •   XOR (S,D) S selectively inverts D; used in 1-bit
         systems for rubber-banding/dragging, cheap cursors:

                  S XOR (S XOR D) = D        0 = W, 1 = B

                               XOR
                          S            D     D’

                               XOR
                          S            D’    D

     •   Note: effects in color systems for all but replace may
         be weird

Andries van Dam          September 7, 2004        Introduction 56/56

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:4/5/2013
language:Unknown
pages:56