SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Computer Graphics Lecture notes                          Copyright Sanjay Goel, JIIT, 2004


                                  Computer Graphics
                                                               Sanjay Goel, JIIT, 2004

                                   Course Description

Course Code: CI 041 (2-0-2)
Prerequisite    : A. Essential
                 i. CI 031 - Data Structures
                 ii. CI 021 - Computer System Organisation
                  iii. Programming experience of at least 5000 lines in C/C++.
                  iv. Sufficient familiarity with vector algebra.
                  B. Desirable
                 v. CI 023 – Multimedia Laboratory (familiarity with 2D graphics
                       creation and editing workflow using tools like Illustrator and
                       Photoshop)
                 vi. CI 034 – 2D Animation Workshop (familiarity with animation
                       workflow using tools like Flash / Animo)
 Post Courses     : Multi-dimensional Data Structures, Advanced Computer
        Graphics, Digital Image Processing, Computer Games,
                   Physics based modeling and simulation,
                   Multimedia Systems, Visual Computing,
                   Image based Modeling and Rendering
 Objectives

    -   Broaden the understanding of Computer Science and initiate learning of
        Systems Engineering.
    -   Strengthen higher-level cognitive skills of analysis, creation and evaluation.
    -   Strengthen ability of data abstraction and problem solving using programming.
    -   Strengthen ability to identify and define problems and also express their
        solutions clearly and precisely.
    -   Understand concepts, algorithms, and design principles underlying modern
        computer graphics.
    -   Strengthen ability to design and analyse algorithms with a clear focus on
        problem domain of image synthesis.
    -   Gain practical experience in graphics programming.


Learning Outcomes

The students shall develop the basic generic skills to design, implement, evaluate and
reuse data structures and algorithms for digital image synthesis for a broad-based set
of computing problems in various domains.

Method

Teaching in this course is designed to engage the students in active and experiential
learning by taking a problem solving and design-oriented approach with special
emphasis on real world applications. Lectures will be highly interactive and work
oriented. Students will have to work individually as well as in groups inside as well
Computer Graphics Lecture notes                         Copyright Sanjay Goel, JIIT, 2004


as outside the class. A large proportion of the course will focus on the design,
analysis, implementation, integration and applications of data structures and
algorithms for digital image synthesis. Students are expected to carry out lot of
design and programming oriented project work. Each student is expected to write
minimum 3000 lines of documented program code as part of this course. Students
are encouraged to learn and use Graphics Libraries like OpenGL for project
implemention. Each student is also expected to do literature survey making use of the
library and web resources (including Digital Libraries) to identify, understand,
summarise and present at least one research paper on science or application of
computer graphics.


Evaluation Scheme
Evaluation scheme is designed to promote and test higher-level thinking skills
through holistic and continuous evaluation and de-emphasis rote learning. Written
exams will be designed and conducted as open book(s), open notes tests. One of the
minor tests may be designed and conducted as a take home test. Evaluation scheme
will have following components:

Minor test 1                               15
Minor test 2                               15
Tutorials, Self study and home assignments 30
Class exercises and quizzes                15
Major test                                 40
Laboratory Assignments                     30
Implementation Projects and Viva           55
Total                                     200

Recommended Reference Books:
   1. Foley, van Dam, Feiner and Hughes, Computer Graphics
   2. Computer Graphics Using OpenGL, by F.S. Hill, Jr.
   3. D Hearn and P M Baker, Computer Graphics
   4. D F Rogers, Mathematical Elements for Computer Graphics
   5. M. Woo et al, The OpenGL Programming Guide
   6. J. Hartmen, J. Werneke, The VRML 2.0 Handbook
   7. Angel, Interactive Computer Graphics: A Top-Down Approach Using
      OpenGL
   8. A. Watt, 3D Computer Graphics
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


                                     Lecture Notes
7.01.04

2hr.


    1.    CG has picture description as input and picture as output.
    2.    Science : output = fn (input)
    3.    Engineering : Required input = fn (desired output)
    4.    Output picture taxonomy for CG
             i.      static vs dynamic picture (degree of dynamism)
             ii.     colour vs B&W (colouredness in the whole spectrum from binary
                     to true color)
             iii.    interactive vs non-interactive (degree of interactivity)
             iv.     realistic vs symbolic (degree of realism)
             v.      objects vs abstract (degree of abstraction)
             vi.     geometric objects vs natural objects

    5. In class Task: identify some static and b&w picture and describe it in a m/c
       readable format. Get your description critiqued by your partner and rewrite
       your description.
    6. Discussion on graphics.h, initgraph and closegraph functions.
    7. Lab Practice assignment : Practice these and also develop competence to use
       other functions of graphics.h
    8. Design and Programming Assignment No. 1: Develop a description
       scheme for encoding a tree description in m/c readable format on a text file.
       Create this file. Write a program to read this file and create a tree on the
       screen.
    9. Solution classes proposed by students :
           i.      Row major 1/0
           ii.     List of points for which colour is 1. (assumption : all others are 0)
           iii.    Vectorised information

14.01.04 ( 2 hr.)

         1. Mouse Programming by Ritul
         2. Project demos by Ritul, Aditya and Bakul
         3. Familiarisation with OpenGL by Anjali Gupta

23.01.04 (2 hr.)

   1. Output picture taxonomy for CG
               i. static vs dynamic picture (degree of dynamism)
               ii. colour vs B&W (colouredness in the whole spectrum from binary to
                   true color)
               iii. interactive vs non-interactive (degree of interactivity)
               iv. realistic vs symbolic (degree of realism)
               v. objects vs abstract (degree of abstraction)
               vi. geometric objects vs natural objects (degree of naturalism)
               vii. synthetic vs captured (degree of synthesis)
Computer Graphics Lecture notes                            Copyright Sanjay Goel, JIIT, 2004


                  viii. soundless vs sound (degree of sound capability)

    2. Taxonomy of picture drawing techniques
          i.    Stored
                  i.      Vector
                               a. Uncompressed
                               b. Compressed
                  ii.     Raster
                               a. Uncompressed
                               b. Compressed
          ii.   Procedural

    3. Case study on procedural drawing of tree by Sidhartha Bakshi.
    4. Add dynamism to your tree keeping your original format (raster/ vector/
       procedural)
    5. Design and Programming Assignment No. 2 (Group Assignment):
       Enhance your graphics data encoding scheme to add dynamism to static
       graphics. Specifically work with your earlier design for enriching your static
       tree with several fluttering symbolic birds of varying sizes, colours, fluttering
       speeds, fluttering styles and so on. Consider adding sound(s).
       Create some different data files. Write a program to read these files and create
       an animation on the screen.
    6. Think about the different file storage techniques that may be useful for storing
       animations created using tools like Flash and Animo.
    7. Discussion on Group and individual projects.


    30.01.04 ( 2 hr.)

        1.    Output picture taxonomy for CG

             i.      colour vs B&W (colouredness in the whole spectrum from binary
                      to true color)
              ii.    soundless vs sound (degree of sound quality)
             iii.    objectless vs object oriented (object population)
             iv.     synthetic vs photographed objects (degree of synthesis)
             v.      realistic vs symbolic objects (degree of realism)
             vi.     geometric objects vs natural objects (degree of naturalism)
             vii.    static vs dynamic objects (degree of dynamism)
             viii.   interactive vs non-interactive objects (degree of interactivity)
             ix.     passive objects vs reactive objects vs active objects (degree of
                     behaviour)
             x.      Single picture vs picture sequence (duration for single picture,
                     transition event, transition style)

    2. Design and Programming Assignment No. 3 (Group Assignment):

        A. Design an Game Engine (Scriptor and Player) for children of 4-7 years of
           age. Using this tool, the children should be able to create and play simple
Computer Graphics Lecture notes                            Copyright Sanjay Goel, JIIT, 2004


           animations having some trees and fluttering and flying birds. The initial
           requirements of the engine are as follows:

           a. Game Scriptor:
              i.    The scriptor should offer two readymade object templates i.e.
                    tree and symbolic bird and a collection of bird singing tones.
              ii.   The users should be able to position any number of objects of
                    the type of the given templates at any position in different sizes.
                    The birds should have following optional variable parameters:
                            a. Colour
                            b. Fluttering speed
                            c. Singing tone
                            d. Flying trajectory
              iii.  The user should be able to specify the colour of the background.
              iv.   The graphically inputted script should be stored as a structured
                    data file.

           b.   Game Player:
                v.   It should read the script data file, render the initial static
                     graphics and start the bird fluttering and flying as per the script.
                vi.  It should allow the user to activate any flying/fluttering bird to
                     make it sing in its predefined tone.
                vii. It should also allow the user to kill any bird.

        B. Write a design story around these basic ideas to develop more interesting
           games for the same user group.
        C. Start creating an animated Concept map of your Game Engine.

6.2.04 ( 2 hrs.)

1.    Demonstration and code analysis of raster image based animation of a flying bird
     using three BMP files of three frames in a cycling manner by Abhishek.
2.    Discussion on opening BMP files
     2.1 It is essentially a row major matrix of Pixel colour codes.
     2.2 Be careful about the codes used for the colour. If you just skip the header
         information, sometimes you will find that the Colour code in TC is different
         from the code in BMP File. Hence your program will show some pixels in
         colours different from the display colours by paintbrush.
3.   Group Assignment : Find out the details in BMP header and write a program to
     interpret the rest of the data in BMP file in the light of header information.
4.   Group Assignment : Learn about some vector file format (ils, cdr, dxf, and so
     on) supported by Illustrator so that you can use your existing Illustrator graphics
     in this course. Write a program to open your existing illustrator files. Limit
     yourself to the limited set of most essential features potentially useful for
     drawing some objects for your games.
5.    Demonstration of Game engine by Pavani.
6.    Identification of some main problems in implementing the Game engine project
     by each group.
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


7.   Discussion on algorithm design for achieving ‘simultaneous’ rendering of
     multiple game objects without using parallel processing or multi-tasking
     environment
     7.1 The game objects could be visual or aural and their rendering may require
          you to sequentially display static stages of the visual object or sequentially
          play sections of the sound.
     7.2 Let us call these stages and sections as object states and object rendering
        should mean iterative and may be cyclic rendering of each object state.
     7.3 Achieve ‘simultaneity’ by achieving a well-crafted effective illusion of it
        by switching your logic’s attention through different states of different
        objects.
     7.4 Assuming you have an array of N objects.
     7.5 Each object has Si states : i = 1..N
     7.6 If the Si for each object is same then you can render as follows:
          for statecount = 1 to max
             for object-no = 1 to N
                 render_object-state (object-no, statecount) ;

     7.7 If the Si for each object is not same then you can follow one or mix of the
         following approaches:
          7.7.1 The object cycles can overlap and different states of different objects
                   may be rendered in the inner loop of above logic :
                   for statecount = 1 to max
                       for object-no = 1 to N
                       {
                         statenumber = fn(objectno, statecount);
                         render_object-state (object-no, statenumber);
                        }
          7.7.2 The object cycles can have the same legth but some objects do not
                   do any state rendering in some outer loops
                   for statecount = 1 to max
                       for object-no = 1 to N
                       {
                         render-or-not = fn(objectno, statecount)
                         if (render-or-not = true)
                          {
                             statenumber = fn2 (objectno, statecount)
                              render_object-state (object-no, statenumber)
                            }
                           }
       7.8 Our ear is more sensitive to the gaps in in sound so try and adjust the
           visual data during the required delays of sound object.

8.  Context is the lawful framework within which knowledge and experience occur.
    Context is the setting and the rules of the game. Context is the stage on which
    this drama unfolds.
9. Group Assignments:
9.1 Design one Game context per group member. For the time being, understand
   Game context as object set for developing games.
9.2 Design one story per game context.
Computer Graphics Lecture notes                             Copyright Sanjay Goel, JIIT, 2004


9.3 Develop animated concept maps for each story.
9.4 Extend your game engine to offer all your game contexts to the game designers.
9.5 Extend your game engine to create new game contexts using predefined objects.

13.02.04 (2 hr.)

    1. Layered Architecture of Graphics Application
           a. Applications using Graphics functions of a Graphics Library
           b. Graphics Library using basic Graphics functions like putpixel and
               so on
           c. Hardware/Software for realisation of basic Graphics functions like
               putpixel and so on.
    2. Common Shape drawing functions : Line, circle, arc, ellipse, rectangle and so
       on.
       All these shapes can be drawn using the following ideas:
           a. It is like cross-stitching
           b. On CRT/LCD based computer monitors, we can not draw ‘continuous’
               shapes, we can only create good quality illusion of continuity by
               creating ‘discrete appproximations’.
           c. Try to create an illusion of continuous geometry by ‘selective
               illumination’ of ‘chosen’ set of discrete points on the monitor using
               following strategy:

                   Repeat
                    apply some selection criteria for filtering the points that satisfy the
                     geometrical constraints

                     if selected(x,y) putpixel (x,y)

                    Until enough points are selected

    3. This process is called Rasterisation.
    4. Good Quality rasterisation for solid line/circle/ellipse/arc/rectangle or any
       other curve will be achieved if pixel selection for discrete approximation
       through spatial sampling is done at the “highest possible sampling rate” which
       is determined by the monitor resolution. In other words, member pixels of any
       pair of two nearest illuminated pixels in this discrete approximation are
       adjacent to each other in any of the following 8 possible ways shown below
       with blue lines.




           Repeat
Computer Graphics Lecture notes                          Copyright Sanjay Goel, JIIT, 2004


          - apply some selection criteria for filtering the points that satisfy the
               geometrical constraints
          - if selected(x,y) putpixel (x,y)
        Until enough points are selected
    5. Line is a locus of points that satisfy the equation y = mx +b.
    6. Our Options:
          a. Find yi(xi) for a required set of appropriately chosen xi for lines having
               –1<=m<=1 or xi(yi) for a required set of appropriately chosen for yi for
               lines having slope <-1 or >1.
          b. Find xi+1(xi,yi) and yi+1(xi,yi) for a required number of N points such
               that either xi+1 = xi++ or xi-- for lines having –1<=m<=1 OR yi+1 =
               yi++ or yi-- for lines having slope <-1 or >1.
               This is called DDA algorithm (Digital Differential Analyser) and it
               draws a line as a sequence of small horizontal or vertical steps and on
               an average, tries to approximate the required slope.




    7. Programming Assignment:
        Write and efficient draw-line function using the putpixel function to draw
        good quality lines (without unnecessary gaps) in various styles. Write a
        program to measure the performance of your draw-line function in lines
        per minute by repeatedly calling your function to draw lines between
        randomly generated endpoints in random styles on your monitor. Compare
        the performance of your function with readymade function of your library.




27.02.04 (2 hr.)

    1. Layered Architecture of Graphics Application
          a. Applications using Graphics functions of a Graphics Library
          b. Graphics Library using basic Graphics functions like putpixel and so
             on
          c. Hardware/Software for realisation of basic Graphics functions like
             putpixel and so on.
Computer Graphics Lecture notes                          Copyright Sanjay Goel, JIIT, 2004


 .
     2. Response of ‘putpixel’ illuminated point on the monitor screen
     3. Monitor is usually a CRT based simple system.




                Intensity builds and decays slowly in response to electron gun swithing
          on/off.


                                              Electron Gun switch status



      Photon                                  Photon Output
     Intensity



                      Time
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


4.




     5.




        6a. Design issues of a single point temporally continuous dot on a CRT type
           bilevel display system:
         - A focused electron gun with a switch to fire electrons or not at a certain
            switching (refreshing) frequency.
         - For an illusion of continuous dot, the dot needs to be refreshed before it
            ‘disappears’. The image of the refreshed dot gets mixed with the image of
            dying dot and the illusion of continuous dot is created.
         - The refreshing frequency is a function of decay time of the phosphor and
            human vision limitations.
        6b. Design issues of a single point temporally blinking dot on a CRT type
            bilevel display system:
         - The excited phosphor must decay down to the level of ‘blank’, if
            refreshing has not been done.
         - Engineering Task : To strike a proper balance in the two requirements.
            Choose a phosphor with following criteria:
                   i.     ‘Acceptable’ level of Photon output per strike of the gun , to
                          be determined by the viewing conditions such as viewing
                          distance, ambient light, required wavelength of the light.
                          TV monitor is designed for long distance while computer
                          monitor is designed for short distance viewing.
                   ii.    Decay time (Phosphor must have sufficient persistence)
                   iii.   Maximum blinking rate of the application within human
                          vision limitations (Phosphor must not persist for longer than
                          required).
     8. Design issue of single linear array of temporally continuous/blinking dots on a
        CRT based bilevel display system:
         - All dots must get refreshed within each cycle.
Computer Graphics Lecture notes                          Copyright Sanjay Goel, JIIT, 2004


        -    For temporal continuity, Phosphor cells must have sufficient persistent to
             allow the refreshing of all other cells between two refreshing excitations.
         - For avoiding ghost effect (unwanted persistence resulting in multiple ‘on’
             dots at the same time while one is trying to have a illusion of single
             moving dot), persistence must be not be longer than time of one refreshing
             cycle time (T).
                                                                     Forward Trace
                           T                                         x x x x x
        cell1

        cell2                                                    Very fast Retrace

        cell3

        cell4

        cell5

9.   Design issue of 2D array of temporally continuous/blinking dots on a CRT
      based bilevel display system:
        - All dots must get refreshed within each refresh cycle.
        - For temporal continuity, Phosphor cells must have sufficient persistence
           to allow the refreshing of all other cells between two refreshing
           excitations.
        - For avoiding ghost effect (unwanted persistence resulting in multiple ‘on’
           dots at the same time while one is trying to have an illusion of single
           moving dot in this 2D array), persistence must not be longer than time of
           one refreshing cycle time (T).
        - Cells are organised as lines of 1D array of cells. All cells on all lines need
           to refresh in one refresh cycle.
        - Excitation/Refreshing starts at the top left side, scans the first horizontal
           line, makes a fast horizontal retrace of reaching the end of the line and
           starts scanning the next line. The process continues till all lines get
           scanned. Electron gun then makes a vertical retrace to start another refresh
           cycle at the top left corner. Hence the top left corner is number as (0,0).




                 -
Computer Graphics Lecture notes                              Copyright Sanjay Goel, JIIT, 2004


10. The aspect ratio (horizontal length : vertical length of the display area) of
    computer screen is 4:3; CGA 320 :240;
                            VGA : 640 : 480; 800 :600; 1024 :768
 16.03.04 (1 hr.)

 1. Response of ‘putpixel’ illuminated point on the monitor screen
 2. Vector monitors: Computer controls the movement as well as firing of the
    electron gun. From a limited perspective of interface between computer and
    output device, Vector monitors worked almost like the plotters. Computer
    sends the X,Y and colour information and the Gun like plotter pen moved to the
    desired location. Vector monitors, also referred to by Atari and others as "XY"
    or "Quadrascan" monitors, are available in black & white or color.
 3. Plotters : In plotter, Pen is given 2d relative movement over the surface of the
    paper. This is achieved with the help of two motors independent motors. In
    Flatbed plotters the paper is stationary and both the movements are given to
    pen. The pen arm moves up or down over the paper with the set boundaries
    giving Y movement to the pen and the pen holder moves within the length of
    the pen arm and gives X movement to the pen. Select Pen, Pen Up and Pen
    Down are realised through required mechnical components that are controlled
    by the electronic hardware on the plotter which is under the command of the
    plotters firmware which is controlled by the user’s program on computer.

                  User’s Program using plotter’s vector graphics library
                                  (e.g. HPGL/DMPL)


                                      Plotter’s Firmware



                                  Plotter’s Electronic Circuit



                              Plotter’s Mechanical Assemblies

         The firmware keeps a track of the current location of the pen which set to 0,0
         at plotter initialisation. Movement to given X,Y point is achived by
         translating the delta X to direction (+/-) degree of rotation of motor
         connected to pen holder and similary delta_y to direction (+/-) degree of
         rotation of motor connected to pen arm. The speed (degree/sec) and
         resolution (minimum degree) of these motors are important distinguishing
         factors in this design.
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004




         In alternate option of Drum Plotter, the X movement is given to pen and Y
         movement is given to paper, which is rotated over a drum with the help of a
         another motor. Logical principles remain same.




   4. Vector monitors: Vector monitors worked on the same model and point
      coordinates & colour code was required to be sent to monitor which had
      interpreting hardware/ firmware for creating garphic. The electron guns in the
      neck of the tube emit a stream of electrons that bombard the face of the tube that
      would hit dead center if not for the deflection magnets on the neck of the tube.
      There are two deflection coils. One for horizontal deflection (X) and one for
      vertical deflection (Y) of the electron beam. Consider the center of the screen to
      be (0,0) volts to the deflection magnets. If you want to move the beam to the
      right you put a positive voltage on the horizontal deflection "X" coil (+,0). A
      negative voltage moves it to the left. Up and down are accomplished with
      positive or negative voltages to the vertical deflection (Y) coil. The third
      portion of a vector monitor is what (at least by Atari) is called the "Z" amplifier,
      whichcontrols the brightness. There is a "Z" amplifier for each electron gun,
      which means that black and white monitors have only one "Z" amp and color
      monitors have three. There were more than 30 vector based games made in the
      80's. Each monitor had different specs and run at different speeds, making them
      incompatible between different gaming hardware. Vector monitors in general
      are less reliable than raster monitors.
Computer Graphics Lecture notes                          Copyright Sanjay Goel, JIIT, 2004




Raster Monitors : The computer works in synchronisation with the electron gun of
the monitor. Colour monitors have three guns moving simultaneosly and computer
sends HSYNC and VSYNC signals to maintain the synchronised deflection of
electonic beams as per the Video_out signal from the Computer. If the monitor
resolution is 640 x 480 then, the vertical sync signal tells the monitor to start
displaying a New image or frame, and the monitor starts in the upper left corner with
pixel (0,0). The horizontal sync signal tells monitor to refresh another row of 640

     .
pixel After 480 rows of pixels are refreshed with 480 horizontal sync signals, a
vertical sync signal resets the monitor to the upper left
corner and the process continues. During the time when pixel data is not being
displayed and the beam is returning to the left column to start another horizontal
scan, the RGB signals should all be set to black color ( all zero ).
Computer Graphics Lecture notes                          Copyright Sanjay Goel, JIIT, 2004




      Depending on the display quality, there are approx. 240-1280 pixels per row,
      approx. 240-1024 pixel per column and approx. 25/30/60 frames per second to
      ensure flicker free display. Hence, the the vertical frequency of row per second
      is in KHz and horizontal frequency of Pixel per sec is in MHz.

      Vertical frequency = f (frame rate, rows per frame)
      Hoizontal freqncy = fn(vertical frequency, pixel per row)

      Computer does not have to send pixel coordinate information to the monitor, it
      only send the colour information for ordered set of pixels in a predefined
      sequence such that

                      X = f1 (delta_T, rows per sec, pixels per row)
                      Y = f2 (delta_T, rows per sec, pixels per row)

       Where, delta_T is the time elapsed since the beginning of scanning. Hence, for
       using monitor as a display device, the computer has to generate and send the
       following :

            a.   R value for the current pixel
            b.   G value for the current pixel
            c.   B value for the current pixel
            d.   Hsync
            e.   Vsync

         This is very high bandwidth communication. Depending on the monitor type
         (digital/analog) different encoding options (with suitable connector type) are
         used for connecting computer with monitor. DB15 Type for VGA/SVGA for
         connecting to Analog monitors.




         FEMALE connector at the videocard MALE connector at the monitor cable
Computer Graphics Lecture notes                                  Copyright Sanjay Goel, JIIT, 2004


                                         PIN Details

                   Pin            Name           Dir              Description
                   1      RED                          Red Video (75 ohm, 0.7 V p-p)
                   2      GREEN                        Green Video (75 ohm, 0.7 V p-p)
                   3      BLUE                         Blue Video (75 ohm, 0.7 V p-p)
                   4      ID2                          Monitor ID Bit 2
                   5      GND                          Ground
                   6      RGND                         Red Ground
                   7      GGND                         Green Ground
                   8      BGND                         Blue Ground
                   9      KEY                -         Key (No pin)
                   10     SGND                         Sync Ground
                   11     ID0                          Monitor ID Bit 0
                   12     ID1 or SDA                   Monitor ID Bit 1
                          HSYNC or                     Horizontal Sync (or Composite
                   13
                          CSYNC                        Sync)
                   14     VSYNC                        Vertical Sync
                   15     ID3 or SCL                   Monitor ID Bit 3


      6. Study Assignment : Find out different type of display connectors and cables
         and their salient features for connecting different kind of display monitors
         {CRT (Analog, Digital) , LCD, and so on} .

19.03.04 (2 hr.)

 1.    Game demonstration by Siddharth Jain, Esha and Bakul.
 2.    Response of ‘putpixel’ illuminated point on the monitor screen
 3.    Response to ‘putpixel’ Colour signals RGB at appropriate time
 4.    If pixel rate is HF (Horizontal Frenqiency)
       i.e. time gap t between two horizontally neighbour pixel = 1/HF,
        we need a subsystem to convert 2D spatial signal of colour (a function of x,y)
        into a 1D temporal signal and place the signal at appropriate pins of the
        connector on video board as colour(a function of T) and colourcode for pixel
        (x=0,y=0) is sent at T = 0 then colourcode for (x=1,y=0) is required to be sent
        at t, for (x=2,y=0) at 2t, and so on. The process is required to continuously
        repeated frame after frame with a particular frame rate.
 5.    This task is carried out by DPU (Display Processor Unit) which reads the
       digital colour codes in an ordered manners, converts it into analog version and
       output the signal on video port for controlling analog monitor.
 6.    The colour codes for every point are stored in a reserved location in the address
       space. This portion of the RAM is called Frame Buffer /Video RAM.
 7.    Putpixel(x,y) is realised by making CPU write required colour code at memory
       location corresponding to (x,y) using Direct addressing mechnism.
 8.    Getpixel(x,y) is realised by making CPU read exsiting value of colour code at
       memory location corresponding to (x,y) using Direct addressing mechnism.
Computer Graphics Lecture notes                          Copyright Sanjay Goel, JIIT, 2004


 9. For Colour display, the colour code is a structure (R,G,B) rather than a single
     value.
 10. Animation can be created using extra video pages through set-active-page and
     set-visual-page constructs. Each slide of the visual story board is constructed
     and stored on a different page. Generally, the slide content is not displayed
     during construction and constructed graphics of a slide is displayed while the
     CPU is directed to construct the next slide on the nonvisual(active) page.
     Example, following two shapes are constructed on two pages and these pages
     alternately become the visual pages. This creates an illusion of a rotating hand.

           Slide 0 on page 0      Slide 1 on page 1




 11. These extra pages can also be used to store temporary graphical objects without
     showing these objects on the screen. These objects can be used by constructs
     like Getpixel for constructing the some graphics on the visual page. Example,
     you can store some text on nonvisual page, scan this page for nonbackground
     pixels, display a pattern at a mapping location in the visual page. Another
     example, you can store a trajectory in nonvisual page, on the visual page, the
     moving objects is displayed at different points of this trajectory without
     shopwing the trajectory.
 12. These extra pages require extra Video RAM. Set-active-page establishes the
     connection of CPU with the chosen page, set-visual-page connects DPU with the
     chosen frame buffer.

12. Graphics Pipeline

     a. Putpixel
        Program calls Putpixel (randomly) {image is a 2D digital spatial signal in 2D
        logical space }


        CPU writes (randomly) colour code in the chosen page (area) of the frame
        buffer at appropriate location through direct addressing {Now image is a 2D
        digital spatial signal that is mapped on 1D Array of Physical RAM}


        DPU reads it (sequentially) and gives it to DAC {Now image is digital
        temporal signal}


        DAC converts it into analog value and put it on the connector at required time
        {Now Image is an analog temporal signal}


        Cable picks up the signal through its connector and carries the signal to
        Monitor. {Now Image is an analog temporal signal}
Computer Graphics Lecture notes                         Copyright Sanjay Goel, JIIT, 2004




        Monitor reads is and creates illuminated point on the monitor screen. {Now
        Image is 2D spatial signal on Physical screen}

   b. Getpixel
       Program calls getpixel (randomly) {image is a 2D digital spatial signal in 2D
       logical space }


        CPU read (randomly) colour code from the chosen page (area) of the frame
        buffer at appropriate location through direct addressing {Now image is a 2D
        digital spatial signal that is mapped on 1D Array of Physical RAM}

 13. Assignment : Examine the design options of creating large size frame buffers
     without using much of address space.

 26.03.04 (2 hr.)

 1.   Program demonstrations by Vikas, Ritul and Lomesh.
 2.   Review of Graphics Pipeline for Puitpixel and getpixel.




 3. The original PC design was based upon the capabilities of the 8086/8088, which
    allowed for only 1 MB of memory, of which a small range (128K: A0000 to
    BFFFF) was allotted for graphics memory. Hence, several framebuffer design
    approaches have been developed to enable the CPU to address large frame
    buffer with small address space.
 4. Frame Buffer design approaches : Packed Vs. Planer.
 5. Planer Frame Buffer : CPU assigns only one bit of address space to every
    pixel rather than one full or more bytes. It is parallely connected to n memory
    blocks (called planes) for n bit pixels. For example, if 24 bit pixels are needed
    to achieve 256 shades of reds, greens and also blues; then 24 memory blocks
    (planes) will be parallely connected to CPU. Each of this plane will have only
    one of the bits (0-23) of the 24 bit colour code for every pixel in the frame
    buffer. Hence the address space requirement for frame buffer is made
    independent of the colour resolution. It only depends on the spatial resolution.
    Through appropriate in-between circuitry (to be discussed once again) on the
    video controller card, CPU simultaneously accesses these meomory blocks (on
    the video controller card)) for reading/writing 1 bit in each plane during
    getpixel/putpixel.Uisng this scheme, 640x 480 x 256 colours will require only
    (640 x 480)/8 of address space rather than (640 x 480). Though the framebuffer
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


       will still need 640 x 480 byte of video memory. This means 8 pixels share the
       same address at the level of the byte addressing. The exact pixel adressing is
       achieved by extracting/changing the required bit . Hence, (x,y) coordinates of
       the pixel are mapped to Byte offset and Bit number at the time of putpixel
       and getpixel.

      Block Diagram showing parts and interface for a generic Display
             controller for analog monitor using planer frame buffer

                                                          Colour Code bits of a pixel
                                                           0123                    n
                                           Plane 0
       CPU
                 Address Bus
                                           Plane 1



                                           Plane 2


         Data Bus                          Plane 3




                                                                    CLUT               D      Analog
 Colour Code bits of a pixel                                                           A
                                                                    (Optional)                Monitor
                                                                                       C
                                           Plane n




          All the planes of the framebuffer share the same address space and get
          simultaneously activated. However different bits of the colourcode of a pixel
          go to (or get pickedup) corresponding planes in the frame buffer. Each
          plane has one bit for every pixel. The number of planes equal the number of
          bits per pixel.

 6.     Colour Look Up Table (CLUT): When this is used, the framebuffer stores the
       colour number rather than the colour code. The colour number from the
       framebuffer is used to read the corresponding colour code in the colour look up
       table. Setcolorpallete/getcolorpallet functions in TurboC give the access to this
       look up table. If we need to display only 16 simultaneous colours on the screen
       we need only 16 entries in the Colour Look up Table. Hence the framebuffer
       needs to to only 4 bit per pixel in order to give colour number (0..15). The
       corresponding colour code in the CLUT can have much larger bits. In VGA, it
       is 6 bit for Red,Green and Blue each making 18 bit colour code. Hence, any 16
       out of 218 colours can be simultaneously created on monitor. This helps in
       economising the framebuffer size at the cost of large number of simulatneous
       colours. Indexed BMP file format also corresponds to this scheme.
Computer Graphics Lecture notes                             Copyright Sanjay Goel, JIIT, 2004


 7.   Creating Animation using CLUT manipulation : If we need very fast
      animation of otherwise complex shapes without many colours we can use
      CLUT for creating animation effect suing following strategy:

      i.     Model the animation as a slide show in different slides of the object
             keeping the background as it is.

       Slide 0               Slide 1           Slide 2                Slide 3




      Slide 4               Slide 5           Slide 6               Slide 7




      Slide 8               Slide 9           Slide 10                Slide 11




       Slide 12             Slide 13             Slide 14




           ii.     In the above slide show, the object (it may have very complex shape
                   within the constrain that it does not require more colours) moves
                   along the periphery and then towards the centre. There are only two
                   colours , one for the background and one for the object.
           iii.    Initialise the CLUT as follows:

                              INDEX     RED     GREEN       BLUE
                              0         255     255         0
                              1         255     255         0
                              2         255     255         0
                              3         255     255         0
                              4         255     255         0
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


                              5        255    255         0
                              6        255    255         0
                              7        255    255         0
                              8        255    255         0
                              9        255    255         0
                              10       255    255         0
                              11       255    255         0
                              12       255    255         0
                              13       255    255         0
                              14       255    255         0
                              15       255    255         0

         iv.      Draw object at all the non-overlapping 15 positions using different
                  colour index (1-15). No object will be visible on the screen as all
                  colours are mapped to background colour only.




                  In this figure each colour represents a colour number in the CLUT.
                 It is not the actual colour. On the screen only yellow colour will be
                 visible at every point on the screen as the colour codes for every
                 colour number is YELLOW.


         v.       Now start changing the CLUT entries in such a manner that in the
                  beginning only entry number 1 is given RED colour keeping all other
                  as YELLOW only. Then after a delay entry number 2 is give RED
                  code while all other 1-15 are made YELLOW. This is continued in
                  this manner by making onle one entry in the CLUT correspond to
                  RED while all others are YELLOW. We get an illusion of moving
                  RED ball as we see only one (at non overlapping different positions)
                  at a time.

                  CLUT for selective display of Slide 1

                              INDEX    RED    GREEN       BLUE
                              0        255    255         0
                              1        255    0           0
                              2        255    255         0
                              3        255    255         0
                              4        255    255         0
                              5        255    255         0
                              6        255    255         0
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


                              7       255    255          0
                              8       255    255          0
                              9       255    255          0
                              10      255    255          0
                              11      255    255          0
                              12      255    255          0
                              13      255    255          0
                              14      255    255          0
                              15      255    255          0

                  CLUT for selective display of Slide 2

                              INDEX   RED    GREEN        BLUE
                              0       255    255          0
                              1       255    255          0
                              2       255    0            0
                              3       255    255          0
                              4       255    255          0
                              5       255    255          0
                              6       255    255          0
                              7       255    255          0
                              8       255    255          0
                              9       255    255          0
                              10      255    255          0
                              11      255    255          0
                              12      255    255          0
                              13      255    255          0
                              14      255    255          0
                              15      255    255          0


                  CLUT for selective display of Slide 3

                              INDEX   RED    GREEN        BLUE
                              0       255    255          0
                              1       255    255          0
                              2       255    255          0
                              3       255    0            0
                              4       255    255          0
                              5       255    255          0
                              6       255    255          0
                              7       255    255          0
                              8       255    255          0
                              9       255    255          0
                              10      255    255          0
                              11      255    255          0
                              12      255    255          0
                              13      255    255          0
Computer Graphics Lecture notes                            Copyright Sanjay Goel, JIIT, 2004


                              14       255    255          0
                              15       255    255          0

                   CLUT for selective display of Slide 4

                              INDEX    RED    GREEN        BLUE
                              0        255    255          0
                              1        255    255          0
                              2        255    255          0
                              3        255    255          0
                              4        255    0            0
                              5        255    255          0
                              6        255    255          0
                              7        255    255          0
                              8        255    255          0
                              9        255    255          0
                              10       255    255          0
                              11       255    255          0
                              12       255    255          0
                              13       255    255          0
                              14       255    255          0
                              15       255    255          0


         This process continues in the similar manner. Hence, this scheme allows us
         to first create all the slides (in invisible mode) and then make their content
         visible selectively just by changing two entries in the CLUT.

16.04.04 (2 hr.)

1. In order to relieve CPU from doing graphics processing, GPU, (Graphics
   Processing Unit) a dedicated processor is integrated into the system. The CPU does
   not have to execute many graphics algorithms in detail as it uses GPU as a slave
   processor that has its own RAM and ROM and works on behalf of the CPU.
   Standard Graphics operations like line, circle, area fill, polygon and many others
   are available to the CPU as GPU commands. Hence CPU can pay more attentions
   to other parts of the application like simulation, database retrieval and so on.
Computer Graphics Lecture notes                         Copyright Sanjay Goel, JIIT, 2004




Block Diagram showing parts and interface for a generic Display
controller (with Graphics Accelerator) for analog monitor using
planer frame buffer

                                      Plane 0
 CPU
          Address Bus
                                      Plane 1


GPU                                   Plane 2


                                      Plane 3

  Data Bus



                                                             CLUT              D            Analog
                                                             (Optional)        A            Monitor
                                                                               C

                                            Plane n




   2. Rovolving an object around a point along the circumference of a circle:
      Two options : Object may be defined as a raster (Bitmap) or as a vector
      image. Revolving Raster based object will be computationally more expensive
      as it would require trigonometric operations for every point in the raster.
      Vector definitions are more suitable for animation pupose because only the
      end points of lines need to be revolved and lines can be drawn between new
      endpoints using simple linbe function.
   3. The revolution is obtained by drawing realigned object at new positions on the
       circumference of the circle. In order to achieve illusion of smooth movement,
       these positions should be as close as possible . If the object is a simple dot,
       you get a circular movement of a dot usinf folowing formulation:

        for (θ :=0 , θ < 2 Π, θ = θ + ∆θ)
           {draw dot;
             delay;
             erase dot }

 4.    What is the ideal value of ∆θ ?
        The number of steps in which revolution should be completed α r, 1/∆θ
Computer Graphics Lecture notes                            Copyright Sanjay Goel, JIIT, 2004


       ∆θ α (object width) ;
 5. For a dot, the object width = 1 pixel
         We need to place the dot at 2 Π r pixel positions for continuous and
        smooth movement thru an angular movement of 2 Π.
        Hence, in one step, ∆θ = 1/r
 6. For wider objects, we can increase ∆θ to some extent without any visible
       difference in smoothness of the movement.
 8. Assignments :
    Study Assignment (Group Project) : Find out the details of the API for a
    GPU.
    Programming Assignment (Individual Assignment) :
    Write a program to display a revolving object (e.g. bird,man and so on) along
     the circumference of a circle. The circle’s centre and radius should be allowed
     to be specified by the user. Define your data structucture and algorithm such
     that the same program can be used to revolve different kind of objects with
     different speed. Please pick up some objects from your ongoing games.
     Members of the same group should revolve different objects. If possible,
     incorporate some kind of revolution in your game story.

    23.04.04 (2 hr.)

   1. Geometrc Operations like Translation, Rotation, Scaling, Shear on graphical
      objects.
   2. Comparison of the algorithmic complexity of performing these operations on
      raster Vs vector definitions of graphical objects.
   3. Usually vector definitions will be more efficient.
   4. Data Structure for modeling vector based graphics :
      i. Scene Description Table : List of Objects with geometric dispplay
           parameters
   Object Basic      Geometric display parameters
   No       Object Position           Orientation       Size       Shear
            id       parameters to parameters           parameters parameters
                        specify the     with respect to   with respect    with respect
                        position of     the basic shape   to the basic    to the basic
                        origin of the   definition        shape           shape
                        basic shape     {Axis of          definition      definition
                        definition      rotation, Angle   { Sx,Sy,Sz}     {Shx,Shy,Shz}
                        {X,Y,Z}         of rotation}
   1          A
   2          B
   3          A
   4          A
   5          D

        Notice that any basic shape may be reused several time for creating many
        objects in a scene by varying its one or more geometric parameters.

        ii. Object shape description : Description of the basic shape of every vector
            object
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


        Basic Object      Basic Shape description using the vector primitives
        id
        A                 L P1, P2; L P1,P3; L P2,P4….., ;C P10,R, A P10,R2, θ1,θ2;....
        B                 C P1, R1
        C


             The above example uses a vocabulary which is to be interpreted as
             follows:
                  L indicates a line between two points
                  C indicated a circle at given centre and or given radius
                  A indicates an arc at a given centre, of a given radius and between
                  two angles
                 and so on…

             Different Vocabulary may be followed by different systems.

        iii. Vertex List :   coordinates of every vertex in the basic shape.

         Basic Object id                Vertex       Coordinates with respect to the
                                        No.          local coordinate system of the
                                                     given object i.e. there need not be
                                                     any relationship between the
                                                     vertices of object A and Object B
                                                     (X,Y,Z)
         A                              P1           (0,0,0)
                                        P2           (10,5,6)
                                        …            ..
         B                              P1           (0,0,0)



    5. Alternatively, if the objects are defined using polygonal faces (Wire Mesh
       Modeling) only, the basic shape description can be changed as follows:

        i.   Object description : List of Polygonal faces that define an object.
                       Basic     Basic Shape description using the
                      Object            Polygonal Face ids.
                         id
                         A               F1, F2, F3, F5, F6
                         B                 F1, F2, F3, F4
                         C
Computer Graphics Lecture notes                             Copyright Sanjay Goel, JIIT, 2004




         ii.      Face List : List of edges that define a polygonal face

                         Basic      Polygonal     List of edge-ids that define the
                        Object id    face id              polygonal Face
                           A           F1                   E1,E2,E3,E4
                                       F2                    E1,E5,E6
                                        F3                E2,E3,E4,E7,E8

         iii.     Edge List : List of Vertices that define an Edge.

                     Basic Object    Edge id       Vertices
                          id
                          A          E1            P1, P2
                                     E2            P2,P3
                                     E3            P3,P4



          The Scence dscription and Vertex List is used as earlier. The graphics
    database can be created on the above principles by increasing or reducing
    redundancy as per the choice of designers. Different systems use different kind of
    adaptation of this basic model.

    5. Geometric Transformation of Vectorised Objects: Just Transform the
       Vertex list using appropriate geometric parameters as per the Scene
       description table and run the process using other lists to render the graphics.
       The Scene Description Table itself may be continuously updated by another
       process.
    6. The geometric Transformations can be modeled as follows:
         P’ = f (P, Geometric display parameters);
       Where P and P’ are vectors (X,Y,Z) and f is a linear function.
       Simple geometric transformation have following formulations:
       Translation : P’x = Px + δX;
                       P’y = Py + δY
                       P’z = Pz + δZ
       Scaling about origin :
                       P’x = Sx. Px
                       P’y = Sy. Py
                       P’z = Sz. Pz
       Shear :
                       P’x = Px + Sh1.Py + Sh2 Pz
                       P’y = Py + Sh3.Px + Sh4 Pz
                       P’z = Pz + Sh5.Px + Sh6 Py
       Rotation about Z axis :
                       P’x = Cosθ Px - Sinθ Py
                       P’y = Sinθ.Px + Cosθ Py
                       P’z = Pz
Computer Graphics Lecture notes                           Copyright Sanjay Goel, JIIT, 2004


         More complex linear rigid body geometric transformations can be formulated
         as a series of these basic transformations.

                         P’x = a Px + b Py + c Pz + d
                         P’y = e Px + f Py + g Pz + h
                         P’z = i Px + j Py + j Pz + k

         These Linear Transformations are called Affine Transformations. They
         preserve the lines and the parallelism amongst parallel lines.

    7. These transformations can be represented as matrices using homogeneous
        coordinates where (Px, Py, Pz) is represented as (Px-w, Py-w, Pz-w, w). w
        can be any scalar with following interpretaion:
             Px = Px-w/w
             Py = Py-w/w
             Pz = Pz-w/w
        Use w= 1.
    8. [P’] = [T] [P] where, [P] and [P’] are column matrices representing
        homogeneous represention of P and P’ as (Px, Py, ’z, 1) and (P’x, P’y, P’z, 1)
        T is 4x 4 matix representing affine tranformations as {(a,b,c,d), (e,f,g,h),
        (i,j,k,l), (0,0,0,1)}
    9. The advantage of homogeneous representation is in its power of representing
        all linear transformation including translation as a matrix.
    10. Complex Transformation that are caused by a series of several siomple
        transformation can be modeled as a single matrix by multiplying all the
        matrices in correct order.
    11. T = T3 T2 T1 means First apply T1, then apply T2 then T3. This composite
        result can simply be obtained by multiplying the point column matrix with T
        as follows:
           [P’] = T1 [P]
           [P’’] = T2 [P’]
           [P’’’] = T3 [P’’]
        This process can be simplified as follows:
              T = [T3 ][T2 ][T1]
          [P’’’] = [T ][P]

    12. For transforming object, Create a matrics of the vertices to be tranformed out
        vertex list, by creating a column for every vertex using homomgeneous
        representation [P1 P2 P3…..Pn] where each P is a column of 4 elements
        {Px,Py,Px,1}.
    13. Multiply this matrix with Geometric Transformation Matrix to get transformed
        vertices as follows:
           [P’1 P’2 P’3…..P’n] = [T] [P1 P2 P3…..Pn];
    14. Use various lists described in 4 above to render tranformed object.

30.04.04 (2 hrs.)

    1.    Demonstrations by Abhishek Sikdar, Ankit Dalmia, Ankit Chaturvedi.
    2.    Projections: It is a way of dimension reduction. Projects are created to create
          2D image of 3D point. Hence a point (x,y,z,1) is converted as (x’y’,0,1) or
Computer Graphics Lecture notes                            Copyright Sanjay Goel, JIIT, 2004


           (x’,0,z’,1) or (o,y’,z’1) and is displayed at (x”,y”) on the screen. Where x”
           and y” are direction cosines with respect to screen coordinate system, while
           x, y, z are direction cosines with respect to world coordinates and x’, y’ and
           z’ are direction cosines on the projection plane with respect to world
           coordinates. Parallel and Perspective projections are important types of
           projections. There are other types of projection as well for specific
           applications.
    3.     Parallel Projection : Top view (Plan, projection on x-y plane), Front view
           (elevation, projection on xz plane) and Side view (projection on yz plane)
           are main sub types of parallel projections. Any plane can be used to project
           all the ‘world points’ using parallel projectors that are orthogonal to
           ‘projection plane’ and do not have a finite ‘centre of projection’. The content
           of projection plane is then displayed on the screen. Parallel lines in all
           orientations remain parallel. All lines perpendicular to the projection plane
           reduce to points.

           If z axis represents the height then,
            Top view :
                      x” = f (x’ = x);
                      y” = f (y’ = y);
                              z’ = 0;
                             w’ = w = 1;
             Elevation :
                          x” = f (x’ = x);
                                 y’ = 0
                          y” = f(z’ = z);
                                w’ = w = 1;
             Side View :
                                 x’ = 0;
                          x” = f(y’ = y);
                          y” = f(z’ = z);
                                w’ = w = 1;
             All these transformations ( sets of 4 linear equations) can be easily written
         as matrices that can be concatanated with other geometric transformation
         matrices and the resultant matrix can be used to find the screen projection of
         all the points even when they are continuously undergoing some
         geometrically transformed points just with one matrix multiplication
         operation. The arithmatic operations can be reduced by taking advantage of
         the fact that many entries in the matrix will be zero.

    4. Perspective projection : The projectors are not orthogonal to projection
        plane. They meet at a finite centre of projection (can be considered as the
        position of eye/synthetic camera).

          If the projection is taken on X,Y plane and the centre of projection is
          assumed to be at (0,0,-E,1; where E is positive number) with respect to the
          homogeneous world coordination system. All the points in the world
          (x,y,z,1) need to to projected at XY plane such that the projectors meet at
          centre of projection casting the projection of every point on XY plane.
Computer Graphics Lecture notes                                 Copyright Sanjay Goel, JIIT, 2004




                                                                       P2 (x2,y2,z2)
                                      Y axis             P1(x1,y1z1)


                                             P1’
                                                   P2’       X axis
                 (0,0,-E1)

                        C.P.                                                             Z axis




         Using similar triangle, the projections of P1 and P2 can be found on XY
   plane as P1’ and P2’.

            x1’ / x1                  =     E / (z1 + E);
            y1’ / y1                  =     E / (z1 + E) ;
                                  z1’ = 0
            x2’ / x2                  =     E / (z1 + E);
            y2’ / y2                  =     E / (z1 + E) ;
                                  z2’ = 0

            This is simplified as ;
                x’ = x / ((z/E) + 1)
                y’ = y / ((z/E) + 1)
               z’ = 0;
          The denominator can be treated as w’ in homogenous coordinate
   representaion where;
            w’ = ((z/E) + 1).

   The set of these 4 linear equations cane written as a matrix that can be used as
   earlier projection matrices giving more realistic imagery on computer screen.

 5.   Z Buffer Algorithm: It is used for displaying a set of of planer faces on 2D
      screen. The colour of each point on projection plane (x’,y’) is to be set as the
      colour of the corresponding point (x,y,z) on nearest face along the depth of the
      world. The depth is taken along z axis as above

      The vertices of each Planer faces can be used to find out a,b,c,d parameters of
      the normal of plane as ax + by + cz + d = 0.
        Hence,
                     z = - (ax +by+d)/c
        hence ,
                    for a given planer face, this can used to more effciently compute
      the z values using already stored z of neighbours.
                    zx+1,y = zx,y – a/c
                    zx,y+1 = zx,y – b/c
Computer Graphics Lecture notes                              Copyright Sanjay Goel, JIIT, 2004


      We maintain a buffer (in software or in hardware of some graphics
      accelerators) to store the nearest z value for every x’,y’.

      Algorithm works as follows:

      1. Apply the geometric and perspective transformations to all the vertices and
         get new plane parameters.

      2. For x’ = 0 to max-x’
          For y’ = 0 to max-y’
          {
            Initialise z-min (x’,y’) to a very large value (more than the largest depth) ;
            Initialise the colour(x’,y’) to the colour of background.
           }

           For facenumber= 0 to max-faces
            For x’ = 0 to max-x’
              For y’ = 0 to max-y’
                {
                  If (x’,y’) is inside currently chosen face
                  {
                     Find z as depth of the face from this pont ;
                     If z < z-min (x’,y’)
                        {
                          z-min (x’,y’) = z
                          colour (x’,y’) = colour (x,y,z)
                        }
                   }


07.05.04 (2 hrs.)

      1. Window-viewport tranformation.
      2. Clipping a ploygon with rectangle
      3. Clipping with arbitrary shaped (even concave) polygons.
      4. Inside test.
      5. Flood filling by supplying a seed point inside the region to be coloured :
         Recursive, Stack based and Queue based algorithms.
      6. Surface of revolution (e.g. sphere, flask and so on) and Lofting for
         modelling of 3d geometric objects.
      7. Applying interpolation and approximation (learnt in Numerical Analysis
         course) for smooth 2d and 3d curves.

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to computer graphics
Introduction to computer graphicsIntroduction to computer graphics
Introduction to computer graphicssonal_badhe
 
Computer Graphics Introduction
Computer Graphics IntroductionComputer Graphics Introduction
Computer Graphics IntroductionGhaffar Khan
 
Introduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLABIntroduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLABRay Phan
 
Lecture applications of cg
Lecture   applications of cgLecture   applications of cg
Lecture applications of cgavelraj
 
Image Processing (General Topic)
Image Processing (General Topic)Image Processing (General Topic)
Image Processing (General Topic)mcc.jeppiaar
 
Image Processing
Image ProcessingImage Processing
Image ProcessingRolando
 
Application of computer graphics and input devices
Application of computer graphics and input devicesApplication of computer graphics and input devices
Application of computer graphics and input devicesMani Kanth
 
P1 powerpoint presentation
P1 powerpoint presentationP1 powerpoint presentation
P1 powerpoint presentationAishahBegum
 
B. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath Yogi
B. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath YogiB. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath Yogi
B. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath YogiTekendra Nath Yogi
 
Introduction to computer graphics
Introduction to computer graphics Introduction to computer graphics
Introduction to computer graphics Priyodarshini Dhar
 
Introduction in Image Processing Matlab Toolbox
Introduction in Image Processing Matlab ToolboxIntroduction in Image Processing Matlab Toolbox
Introduction in Image Processing Matlab ToolboxShahriar Yazdipour
 
Image processing fundamentals
Image processing fundamentalsImage processing fundamentals
Image processing fundamentalsA B Shinde
 
Introduction to computer graphics part 1
Introduction to computer graphics part 1Introduction to computer graphics part 1
Introduction to computer graphics part 1Ankit Garg
 
Introduction to computer graphics
Introduction to computer graphicsIntroduction to computer graphics
Introduction to computer graphicsKamal Acharya
 

Was ist angesagt? (19)

Introduction to computer graphics
Introduction to computer graphicsIntroduction to computer graphics
Introduction to computer graphics
 
Unit 1
Unit 1Unit 1
Unit 1
 
Computer Graphics Introduction
Computer Graphics IntroductionComputer Graphics Introduction
Computer Graphics Introduction
 
Introduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLABIntroduction to Digital Image Processing Using MATLAB
Introduction to Digital Image Processing Using MATLAB
 
Lecture applications of cg
Lecture   applications of cgLecture   applications of cg
Lecture applications of cg
 
Image Processing (General Topic)
Image Processing (General Topic)Image Processing (General Topic)
Image Processing (General Topic)
 
Ch06
Ch06Ch06
Ch06
 
Image Processing
Image ProcessingImage Processing
Image Processing
 
Application of computer graphics and input devices
Application of computer graphics and input devicesApplication of computer graphics and input devices
Application of computer graphics and input devices
 
P1 powerpoint presentation
P1 powerpoint presentationP1 powerpoint presentation
P1 powerpoint presentation
 
B. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath Yogi
B. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath YogiB. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath Yogi
B. SC CSIT Computer Graphics Unit1.1 By Tekendra Nath Yogi
 
Introduction to computer graphics
Introduction to computer graphics Introduction to computer graphics
Introduction to computer graphics
 
Video processing on dsp
Video processing on dspVideo processing on dsp
Video processing on dsp
 
Introduction in Image Processing Matlab Toolbox
Introduction in Image Processing Matlab ToolboxIntroduction in Image Processing Matlab Toolbox
Introduction in Image Processing Matlab Toolbox
 
Computer graphics1
Computer graphics1Computer graphics1
Computer graphics1
 
Image processing fundamentals
Image processing fundamentalsImage processing fundamentals
Image processing fundamentals
 
Introduction to computer graphics part 1
Introduction to computer graphics part 1Introduction to computer graphics part 1
Introduction to computer graphics part 1
 
Introduction to computer graphics
Introduction to computer graphicsIntroduction to computer graphics
Introduction to computer graphics
 
Image processing
Image processingImage processing
Image processing
 

Andere mochten auch

Introduction to Computer Graphics Notes
Introduction to Computer Graphics NotesIntroduction to Computer Graphics Notes
Introduction to Computer Graphics Notesrprajat007
 
Computer graphics notes
Computer graphics notesComputer graphics notes
Computer graphics notesMurkur Rajesh
 
Computer Graphics Notes (B.Tech, KUK, MDU)
Computer Graphics Notes (B.Tech, KUK, MDU)Computer Graphics Notes (B.Tech, KUK, MDU)
Computer Graphics Notes (B.Tech, KUK, MDU)Rajesh Kamboj
 
Developing and Publishing Academic Products
Developing and PublishingAcademic ProductsDeveloping and PublishingAcademic Products
Developing and Publishing Academic ProductsSanjay Goel
 
Advanced Data Structures 2006
Advanced Data Structures 2006Advanced Data Structures 2006
Advanced Data Structures 2006Sanjay Goel
 
Software Development Careers: Why, What, and How?
Software Development Careers:  Why, What, and How?Software Development Careers:  Why, What, and How?
Software Development Careers: Why, What, and How?Sanjay Goel
 
Computer basics(revision notes)
Computer basics(revision notes)Computer basics(revision notes)
Computer basics(revision notes)VAibhav Negi
 
10th class computer science notes in english by cstechz
10th class computer science notes in english by cstechz10th class computer science notes in english by cstechz
10th class computer science notes in english by cstechzShahbaz Ahmad
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primerecomputernotes
 
RESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingRESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingBertrand Delacretaz
 
NCR/PA Multimedia/Graphics
NCR/PA Multimedia/GraphicsNCR/PA Multimedia/Graphics
NCR/PA Multimedia/GraphicsNCRPA
 
Engineering Graphics Notes - Akshansh
Engineering Graphics Notes - AkshanshEngineering Graphics Notes - Akshansh
Engineering Graphics Notes - AkshanshAkshansh Chaudhary
 
Computer graphics & image processing lecture notes
Computer graphics & image processing lecture notesComputer graphics & image processing lecture notes
Computer graphics & image processing lecture notesTejaRamPooniya
 
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVSCBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVSGautham Rajesh
 
Auto cad20042d tutorial
Auto cad20042d tutorialAuto cad20042d tutorial
Auto cad20042d tutorialHerry Mulyadie
 

Andere mochten auch (20)

Introduction to Computer Graphics Notes
Introduction to Computer Graphics NotesIntroduction to Computer Graphics Notes
Introduction to Computer Graphics Notes
 
Computer graphics notes
Computer graphics notesComputer graphics notes
Computer graphics notes
 
Computer Graphics Notes (B.Tech, KUK, MDU)
Computer Graphics Notes (B.Tech, KUK, MDU)Computer Graphics Notes (B.Tech, KUK, MDU)
Computer Graphics Notes (B.Tech, KUK, MDU)
 
Developing and Publishing Academic Products
Developing and PublishingAcademic ProductsDeveloping and PublishingAcademic Products
Developing and Publishing Academic Products
 
Advanced Data Structures 2006
Advanced Data Structures 2006Advanced Data Structures 2006
Advanced Data Structures 2006
 
Software Development Careers: Why, What, and How?
Software Development Careers:  Why, What, and How?Software Development Careers:  Why, What, and How?
Software Development Careers: Why, What, and How?
 
Computer basics(revision notes)
Computer basics(revision notes)Computer basics(revision notes)
Computer basics(revision notes)
 
Computer notes
Computer notesComputer notes
Computer notes
 
10th class computer science notes in english by cstechz
10th class computer science notes in english by cstechz10th class computer science notes in english by cstechz
10th class computer science notes in english by cstechz
 
Introduction and Brief History of Computers
Introduction and Brief History of ComputersIntroduction and Brief History of Computers
Introduction and Brief History of Computers
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primer
 
Input Devices
Input DevicesInput Devices
Input Devices
 
RESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingRESTful Web Applications with Apache Sling
RESTful Web Applications with Apache Sling
 
Pradhanbros tutorial
Pradhanbros tutorialPradhanbros tutorial
Pradhanbros tutorial
 
NCR/PA Multimedia/Graphics
NCR/PA Multimedia/GraphicsNCR/PA Multimedia/Graphics
NCR/PA Multimedia/Graphics
 
Engineering Graphics Notes - Akshansh
Engineering Graphics Notes - AkshanshEngineering Graphics Notes - Akshansh
Engineering Graphics Notes - Akshansh
 
50220130402003
5022013040200350220130402003
50220130402003
 
Computer graphics & image processing lecture notes
Computer graphics & image processing lecture notesComputer graphics & image processing lecture notes
Computer graphics & image processing lecture notes
 
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVSCBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
 
Auto cad20042d tutorial
Auto cad20042d tutorialAuto cad20042d tutorial
Auto cad20042d tutorial
 

Ähnlich wie Computer Graphics 2004

Image Processing, 2012
Image Processing, 2012Image Processing, 2012
Image Processing, 2012Sanjay Goel
 
Ig4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_vedIg4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_vedchloecleary
 
IG4 assignment motion graphics
IG4 assignment motion graphicsIG4 assignment motion graphics
IG4 assignment motion graphicschloecleary
 
IEEE EED2021 AI use cases in Computer Vision
IEEE EED2021 AI use cases in Computer VisionIEEE EED2021 AI use cases in Computer Vision
IEEE EED2021 AI use cases in Computer VisionSAMeh Zaghloul
 
Ig4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_vedIg4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_vedAlexandraWard
 
Unit 67 3_d_animation
Unit 67 3_d_animationUnit 67 3_d_animation
Unit 67 3_d_animationDamionVize
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012BenT1990
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012LS66731
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012BenT1990
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012LS66731
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012BenT1990
 
Image Processing In Open CV. Image Processing In Open CV. Image Processing In...
Image Processing In Open CV. Image Processing In Open CV. Image Processing In...Image Processing In Open CV. Image Processing In Open CV. Image Processing In...
Image Processing In Open CV. Image Processing In Open CV. Image Processing In...Antoinette Williams
 
Graphics pdf
Graphics pdfGraphics pdf
Graphics pdfaa11bb11
 
Master Thesis of Computer Engineering SuperResoluton Giuseppe Caliendo
Master Thesis of Computer Engineering SuperResoluton Giuseppe CaliendoMaster Thesis of Computer Engineering SuperResoluton Giuseppe Caliendo
Master Thesis of Computer Engineering SuperResoluton Giuseppe CaliendoGiuseppeCaliendo2
 
YCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptxYCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptxSharmilaMore5
 
IRJET - Content based Image Classification
IRJET -  	  Content based Image ClassificationIRJET -  	  Content based Image Classification
IRJET - Content based Image ClassificationIRJET Journal
 
Art-Making Generative AI and Instructional Design Work: An Early Brainstorm
Art-Making Generative AI and Instructional Design Work:  An Early BrainstormArt-Making Generative AI and Instructional Design Work:  An Early Brainstorm
Art-Making Generative AI and Instructional Design Work: An Early BrainstormShalin Hai-Jew
 

Ähnlich wie Computer Graphics 2004 (20)

Image Processing, 2012
Image Processing, 2012Image Processing, 2012
Image Processing, 2012
 
Ig4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_vedIg4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_ved
 
IG4 assignment motion graphics
IG4 assignment motion graphicsIG4 assignment motion graphics
IG4 assignment motion graphics
 
IEEE EED2021 AI use cases in Computer Vision
IEEE EED2021 AI use cases in Computer VisionIEEE EED2021 AI use cases in Computer Vision
IEEE EED2021 AI use cases in Computer Vision
 
Ig4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_vedIg4 assignment motion_graphics_i_ved
Ig4 assignment motion_graphics_i_ved
 
IG4 Assingment Brief
IG4 Assingment BriefIG4 Assingment Brief
IG4 Assingment Brief
 
Unit 67 3_d_animation
Unit 67 3_d_animationUnit 67 3_d_animation
Unit 67 3_d_animation
 
Mini Project- Face Recognition
Mini Project- Face RecognitionMini Project- Face Recognition
Mini Project- Face Recognition
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012
 
Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012Level 3 unit 65 assignment 1 2012
Level 3 unit 65 assignment 1 2012
 
Image Processing In Open CV. Image Processing In Open CV. Image Processing In...
Image Processing In Open CV. Image Processing In Open CV. Image Processing In...Image Processing In Open CV. Image Processing In Open CV. Image Processing In...
Image Processing In Open CV. Image Processing In Open CV. Image Processing In...
 
Graphics pdf
Graphics pdfGraphics pdf
Graphics pdf
 
Mini Project- 3D Graphics And Visualisation
Mini Project- 3D Graphics And VisualisationMini Project- 3D Graphics And Visualisation
Mini Project- 3D Graphics And Visualisation
 
Master Thesis of Computer Engineering SuperResoluton Giuseppe Caliendo
Master Thesis of Computer Engineering SuperResoluton Giuseppe CaliendoMaster Thesis of Computer Engineering SuperResoluton Giuseppe Caliendo
Master Thesis of Computer Engineering SuperResoluton Giuseppe Caliendo
 
YCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptxYCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptx
 
IRJET - Content based Image Classification
IRJET -  	  Content based Image ClassificationIRJET -  	  Content based Image Classification
IRJET - Content based Image Classification
 
Art-Making Generative AI and Instructional Design Work: An Early Brainstorm
Art-Making Generative AI and Instructional Design Work:  An Early BrainstormArt-Making Generative AI and Instructional Design Work:  An Early Brainstorm
Art-Making Generative AI and Instructional Design Work: An Early Brainstorm
 

Mehr von Sanjay Goel

New Generation MTech and MSc Programs at JKLU
New Generation MTech and MSc Programs at JKLUNew Generation MTech and MSc Programs at JKLU
New Generation MTech and MSc Programs at JKLUSanjay Goel
 
Build a Career in Engineering and Technology 19.08.20
Build a Career in Engineering and Technology    19.08.20Build a Career in Engineering and Technology    19.08.20
Build a Career in Engineering and Technology 19.08.20Sanjay Goel
 
Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...
Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...
Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...Sanjay Goel
 
CSCW lecture notes, Sanjay Goel, JIIT, 2012
CSCW lecture notes, Sanjay Goel, JIIT, 2012CSCW lecture notes, Sanjay Goel, JIIT, 2012
CSCW lecture notes, Sanjay Goel, JIIT, 2012Sanjay Goel
 
HCI lecture notes by Sanjay Goel, JIIT 2012
HCI lecture notes by Sanjay Goel, JIIT 2012HCI lecture notes by Sanjay Goel, JIIT 2012
HCI lecture notes by Sanjay Goel, JIIT 2012Sanjay Goel
 
Advanced Data Structures 2007
Advanced Data Structures 2007Advanced Data Structures 2007
Advanced Data Structures 2007Sanjay Goel
 
Advanced Data Structures 2005
Advanced Data Structures 2005Advanced Data Structures 2005
Advanced Data Structures 2005Sanjay Goel
 
Data Structures problems 2002
Data Structures problems 2002Data Structures problems 2002
Data Structures problems 2002Sanjay Goel
 
Data Structures problems 2006
Data Structures problems 2006Data Structures problems 2006
Data Structures problems 2006Sanjay Goel
 
Data Structures 2007
Data Structures 2007Data Structures 2007
Data Structures 2007Sanjay Goel
 
Data Structures 2005
Data Structures 2005Data Structures 2005
Data Structures 2005Sanjay Goel
 
Data Structures 2004
Data Structures 2004Data Structures 2004
Data Structures 2004Sanjay Goel
 
Preparing Graduate Mindset
Preparing Graduate MindsetPreparing Graduate Mindset
Preparing Graduate MindsetSanjay Goel
 
Multimedia Creation
Multimedia CreationMultimedia Creation
Multimedia CreationSanjay Goel
 
Manuscript digitisation
Manuscript digitisationManuscript digitisation
Manuscript digitisationSanjay Goel
 
An Overview of Selected Learning Theories about Student Learning
An Overview of Selected Learning Theories about  Student  LearningAn Overview of Selected Learning Theories about  Student  Learning
An Overview of Selected Learning Theories about Student LearningSanjay Goel
 
Ph D Presentation
Ph D PresentationPh D Presentation
Ph D PresentationSanjay Goel
 
Computer Vision based Dance Visualisation
Computer   Vision   based Dance  VisualisationComputer   Vision   based Dance  Visualisation
Computer Vision based Dance VisualisationSanjay Goel
 

Mehr von Sanjay Goel (20)

New Generation MTech and MSc Programs at JKLU
New Generation MTech and MSc Programs at JKLUNew Generation MTech and MSc Programs at JKLU
New Generation MTech and MSc Programs at JKLU
 
Build a Career in Engineering and Technology 19.08.20
Build a Career in Engineering and Technology    19.08.20Build a Career in Engineering and Technology    19.08.20
Build a Career in Engineering and Technology 19.08.20
 
Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...
Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...
Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...
 
CSCW lecture notes, Sanjay Goel, JIIT, 2012
CSCW lecture notes, Sanjay Goel, JIIT, 2012CSCW lecture notes, Sanjay Goel, JIIT, 2012
CSCW lecture notes, Sanjay Goel, JIIT, 2012
 
HCI lecture notes by Sanjay Goel, JIIT 2012
HCI lecture notes by Sanjay Goel, JIIT 2012HCI lecture notes by Sanjay Goel, JIIT 2012
HCI lecture notes by Sanjay Goel, JIIT 2012
 
Advanced Data Structures 2007
Advanced Data Structures 2007Advanced Data Structures 2007
Advanced Data Structures 2007
 
Advanced Data Structures 2005
Advanced Data Structures 2005Advanced Data Structures 2005
Advanced Data Structures 2005
 
Data Structures problems 2002
Data Structures problems 2002Data Structures problems 2002
Data Structures problems 2002
 
Data Structures problems 2006
Data Structures problems 2006Data Structures problems 2006
Data Structures problems 2006
 
Data Structures 2007
Data Structures 2007Data Structures 2007
Data Structures 2007
 
Data Structures 2005
Data Structures 2005Data Structures 2005
Data Structures 2005
 
Data Structures 2004
Data Structures 2004Data Structures 2004
Data Structures 2004
 
Preparing Graduate Mindset
Preparing Graduate MindsetPreparing Graduate Mindset
Preparing Graduate Mindset
 
Multimedia Creation
Multimedia CreationMultimedia Creation
Multimedia Creation
 
Manuscript digitisation
Manuscript digitisationManuscript digitisation
Manuscript digitisation
 
An Overview of Selected Learning Theories about Student Learning
An Overview of Selected Learning Theories about  Student  LearningAn Overview of Selected Learning Theories about  Student  Learning
An Overview of Selected Learning Theories about Student Learning
 
Prayag Centre
Prayag CentrePrayag Centre
Prayag Centre
 
Ph D Presentation
Ph D PresentationPh D Presentation
Ph D Presentation
 
Learning
Learning   Learning
Learning
 
Computer Vision based Dance Visualisation
Computer   Vision   based Dance  VisualisationComputer   Vision   based Dance  Visualisation
Computer Vision based Dance Visualisation
 

Kürzlich hochgeladen

ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptxAneriPatwari
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...HetalPathak10
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationdeepaannamalai16
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWQuiz Club NITW
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Celine George
 
Sulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesSulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesVijayaLaxmi84
 
An Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPAn Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPCeline George
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptxmary850239
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...Nguyen Thanh Tu Collection
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Osopher
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
How to Uninstall a Module in Odoo 17 Using Command Line
How to Uninstall a Module in Odoo 17 Using Command LineHow to Uninstall a Module in Odoo 17 Using Command Line
How to Uninstall a Module in Odoo 17 Using Command LineCeline George
 

Kürzlich hochgeladen (20)

ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptx
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
Plagiarism,forms,understand about plagiarism,avoid plagiarism,key significanc...
Plagiarism,forms,understand about plagiarism,avoid plagiarism,key significanc...Plagiarism,forms,understand about plagiarism,avoid plagiarism,key significanc...
Plagiarism,forms,understand about plagiarism,avoid plagiarism,key significanc...
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITW
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17
 
Sulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesSulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their uses
 
Spearman's correlation,Formula,Advantages,
Spearman's correlation,Formula,Advantages,Spearman's correlation,Formula,Advantages,
Spearman's correlation,Formula,Advantages,
 
An Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPAn Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERP
 
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
 
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of EngineeringFaculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
How to Uninstall a Module in Odoo 17 Using Command Line
How to Uninstall a Module in Odoo 17 Using Command LineHow to Uninstall a Module in Odoo 17 Using Command Line
How to Uninstall a Module in Odoo 17 Using Command Line
 

Computer Graphics 2004

  • 1. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 Computer Graphics Sanjay Goel, JIIT, 2004 Course Description Course Code: CI 041 (2-0-2) Prerequisite : A. Essential i. CI 031 - Data Structures ii. CI 021 - Computer System Organisation iii. Programming experience of at least 5000 lines in C/C++. iv. Sufficient familiarity with vector algebra. B. Desirable v. CI 023 – Multimedia Laboratory (familiarity with 2D graphics creation and editing workflow using tools like Illustrator and Photoshop) vi. CI 034 – 2D Animation Workshop (familiarity with animation workflow using tools like Flash / Animo) Post Courses : Multi-dimensional Data Structures, Advanced Computer Graphics, Digital Image Processing, Computer Games, Physics based modeling and simulation, Multimedia Systems, Visual Computing, Image based Modeling and Rendering Objectives - Broaden the understanding of Computer Science and initiate learning of Systems Engineering. - Strengthen higher-level cognitive skills of analysis, creation and evaluation. - Strengthen ability of data abstraction and problem solving using programming. - Strengthen ability to identify and define problems and also express their solutions clearly and precisely. - Understand concepts, algorithms, and design principles underlying modern computer graphics. - Strengthen ability to design and analyse algorithms with a clear focus on problem domain of image synthesis. - Gain practical experience in graphics programming. Learning Outcomes The students shall develop the basic generic skills to design, implement, evaluate and reuse data structures and algorithms for digital image synthesis for a broad-based set of computing problems in various domains. Method Teaching in this course is designed to engage the students in active and experiential learning by taking a problem solving and design-oriented approach with special emphasis on real world applications. Lectures will be highly interactive and work oriented. Students will have to work individually as well as in groups inside as well
  • 2. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 as outside the class. A large proportion of the course will focus on the design, analysis, implementation, integration and applications of data structures and algorithms for digital image synthesis. Students are expected to carry out lot of design and programming oriented project work. Each student is expected to write minimum 3000 lines of documented program code as part of this course. Students are encouraged to learn and use Graphics Libraries like OpenGL for project implemention. Each student is also expected to do literature survey making use of the library and web resources (including Digital Libraries) to identify, understand, summarise and present at least one research paper on science or application of computer graphics. Evaluation Scheme Evaluation scheme is designed to promote and test higher-level thinking skills through holistic and continuous evaluation and de-emphasis rote learning. Written exams will be designed and conducted as open book(s), open notes tests. One of the minor tests may be designed and conducted as a take home test. Evaluation scheme will have following components: Minor test 1 15 Minor test 2 15 Tutorials, Self study and home assignments 30 Class exercises and quizzes 15 Major test 40 Laboratory Assignments 30 Implementation Projects and Viva 55 Total 200 Recommended Reference Books: 1. Foley, van Dam, Feiner and Hughes, Computer Graphics 2. Computer Graphics Using OpenGL, by F.S. Hill, Jr. 3. D Hearn and P M Baker, Computer Graphics 4. D F Rogers, Mathematical Elements for Computer Graphics 5. M. Woo et al, The OpenGL Programming Guide 6. J. Hartmen, J. Werneke, The VRML 2.0 Handbook 7. Angel, Interactive Computer Graphics: A Top-Down Approach Using OpenGL 8. A. Watt, 3D Computer Graphics
  • 3. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 Lecture Notes 7.01.04 2hr. 1. CG has picture description as input and picture as output. 2. Science : output = fn (input) 3. Engineering : Required input = fn (desired output) 4. Output picture taxonomy for CG i. static vs dynamic picture (degree of dynamism) ii. colour vs B&W (colouredness in the whole spectrum from binary to true color) iii. interactive vs non-interactive (degree of interactivity) iv. realistic vs symbolic (degree of realism) v. objects vs abstract (degree of abstraction) vi. geometric objects vs natural objects 5. In class Task: identify some static and b&w picture and describe it in a m/c readable format. Get your description critiqued by your partner and rewrite your description. 6. Discussion on graphics.h, initgraph and closegraph functions. 7. Lab Practice assignment : Practice these and also develop competence to use other functions of graphics.h 8. Design and Programming Assignment No. 1: Develop a description scheme for encoding a tree description in m/c readable format on a text file. Create this file. Write a program to read this file and create a tree on the screen. 9. Solution classes proposed by students : i. Row major 1/0 ii. List of points for which colour is 1. (assumption : all others are 0) iii. Vectorised information 14.01.04 ( 2 hr.) 1. Mouse Programming by Ritul 2. Project demos by Ritul, Aditya and Bakul 3. Familiarisation with OpenGL by Anjali Gupta 23.01.04 (2 hr.) 1. Output picture taxonomy for CG i. static vs dynamic picture (degree of dynamism) ii. colour vs B&W (colouredness in the whole spectrum from binary to true color) iii. interactive vs non-interactive (degree of interactivity) iv. realistic vs symbolic (degree of realism) v. objects vs abstract (degree of abstraction) vi. geometric objects vs natural objects (degree of naturalism) vii. synthetic vs captured (degree of synthesis)
  • 4. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 viii. soundless vs sound (degree of sound capability) 2. Taxonomy of picture drawing techniques i. Stored i. Vector a. Uncompressed b. Compressed ii. Raster a. Uncompressed b. Compressed ii. Procedural 3. Case study on procedural drawing of tree by Sidhartha Bakshi. 4. Add dynamism to your tree keeping your original format (raster/ vector/ procedural) 5. Design and Programming Assignment No. 2 (Group Assignment): Enhance your graphics data encoding scheme to add dynamism to static graphics. Specifically work with your earlier design for enriching your static tree with several fluttering symbolic birds of varying sizes, colours, fluttering speeds, fluttering styles and so on. Consider adding sound(s). Create some different data files. Write a program to read these files and create an animation on the screen. 6. Think about the different file storage techniques that may be useful for storing animations created using tools like Flash and Animo. 7. Discussion on Group and individual projects. 30.01.04 ( 2 hr.) 1. Output picture taxonomy for CG i. colour vs B&W (colouredness in the whole spectrum from binary to true color) ii. soundless vs sound (degree of sound quality) iii. objectless vs object oriented (object population) iv. synthetic vs photographed objects (degree of synthesis) v. realistic vs symbolic objects (degree of realism) vi. geometric objects vs natural objects (degree of naturalism) vii. static vs dynamic objects (degree of dynamism) viii. interactive vs non-interactive objects (degree of interactivity) ix. passive objects vs reactive objects vs active objects (degree of behaviour) x. Single picture vs picture sequence (duration for single picture, transition event, transition style) 2. Design and Programming Assignment No. 3 (Group Assignment): A. Design an Game Engine (Scriptor and Player) for children of 4-7 years of age. Using this tool, the children should be able to create and play simple
  • 5. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 animations having some trees and fluttering and flying birds. The initial requirements of the engine are as follows: a. Game Scriptor: i. The scriptor should offer two readymade object templates i.e. tree and symbolic bird and a collection of bird singing tones. ii. The users should be able to position any number of objects of the type of the given templates at any position in different sizes. The birds should have following optional variable parameters: a. Colour b. Fluttering speed c. Singing tone d. Flying trajectory iii. The user should be able to specify the colour of the background. iv. The graphically inputted script should be stored as a structured data file. b. Game Player: v. It should read the script data file, render the initial static graphics and start the bird fluttering and flying as per the script. vi. It should allow the user to activate any flying/fluttering bird to make it sing in its predefined tone. vii. It should also allow the user to kill any bird. B. Write a design story around these basic ideas to develop more interesting games for the same user group. C. Start creating an animated Concept map of your Game Engine. 6.2.04 ( 2 hrs.) 1. Demonstration and code analysis of raster image based animation of a flying bird using three BMP files of three frames in a cycling manner by Abhishek. 2. Discussion on opening BMP files 2.1 It is essentially a row major matrix of Pixel colour codes. 2.2 Be careful about the codes used for the colour. If you just skip the header information, sometimes you will find that the Colour code in TC is different from the code in BMP File. Hence your program will show some pixels in colours different from the display colours by paintbrush. 3. Group Assignment : Find out the details in BMP header and write a program to interpret the rest of the data in BMP file in the light of header information. 4. Group Assignment : Learn about some vector file format (ils, cdr, dxf, and so on) supported by Illustrator so that you can use your existing Illustrator graphics in this course. Write a program to open your existing illustrator files. Limit yourself to the limited set of most essential features potentially useful for drawing some objects for your games. 5. Demonstration of Game engine by Pavani. 6. Identification of some main problems in implementing the Game engine project by each group.
  • 6. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 7. Discussion on algorithm design for achieving ‘simultaneous’ rendering of multiple game objects without using parallel processing or multi-tasking environment 7.1 The game objects could be visual or aural and their rendering may require you to sequentially display static stages of the visual object or sequentially play sections of the sound. 7.2 Let us call these stages and sections as object states and object rendering should mean iterative and may be cyclic rendering of each object state. 7.3 Achieve ‘simultaneity’ by achieving a well-crafted effective illusion of it by switching your logic’s attention through different states of different objects. 7.4 Assuming you have an array of N objects. 7.5 Each object has Si states : i = 1..N 7.6 If the Si for each object is same then you can render as follows: for statecount = 1 to max for object-no = 1 to N render_object-state (object-no, statecount) ; 7.7 If the Si for each object is not same then you can follow one or mix of the following approaches: 7.7.1 The object cycles can overlap and different states of different objects may be rendered in the inner loop of above logic : for statecount = 1 to max for object-no = 1 to N { statenumber = fn(objectno, statecount); render_object-state (object-no, statenumber); } 7.7.2 The object cycles can have the same legth but some objects do not do any state rendering in some outer loops for statecount = 1 to max for object-no = 1 to N { render-or-not = fn(objectno, statecount) if (render-or-not = true) { statenumber = fn2 (objectno, statecount) render_object-state (object-no, statenumber) } } 7.8 Our ear is more sensitive to the gaps in in sound so try and adjust the visual data during the required delays of sound object. 8. Context is the lawful framework within which knowledge and experience occur. Context is the setting and the rules of the game. Context is the stage on which this drama unfolds. 9. Group Assignments: 9.1 Design one Game context per group member. For the time being, understand Game context as object set for developing games. 9.2 Design one story per game context.
  • 7. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 9.3 Develop animated concept maps for each story. 9.4 Extend your game engine to offer all your game contexts to the game designers. 9.5 Extend your game engine to create new game contexts using predefined objects. 13.02.04 (2 hr.) 1. Layered Architecture of Graphics Application a. Applications using Graphics functions of a Graphics Library b. Graphics Library using basic Graphics functions like putpixel and so on c. Hardware/Software for realisation of basic Graphics functions like putpixel and so on. 2. Common Shape drawing functions : Line, circle, arc, ellipse, rectangle and so on. All these shapes can be drawn using the following ideas: a. It is like cross-stitching b. On CRT/LCD based computer monitors, we can not draw ‘continuous’ shapes, we can only create good quality illusion of continuity by creating ‘discrete appproximations’. c. Try to create an illusion of continuous geometry by ‘selective illumination’ of ‘chosen’ set of discrete points on the monitor using following strategy: Repeat apply some selection criteria for filtering the points that satisfy the geometrical constraints if selected(x,y) putpixel (x,y) Until enough points are selected 3. This process is called Rasterisation. 4. Good Quality rasterisation for solid line/circle/ellipse/arc/rectangle or any other curve will be achieved if pixel selection for discrete approximation through spatial sampling is done at the “highest possible sampling rate” which is determined by the monitor resolution. In other words, member pixels of any pair of two nearest illuminated pixels in this discrete approximation are adjacent to each other in any of the following 8 possible ways shown below with blue lines. Repeat
  • 8. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 - apply some selection criteria for filtering the points that satisfy the geometrical constraints - if selected(x,y) putpixel (x,y) Until enough points are selected 5. Line is a locus of points that satisfy the equation y = mx +b. 6. Our Options: a. Find yi(xi) for a required set of appropriately chosen xi for lines having –1<=m<=1 or xi(yi) for a required set of appropriately chosen for yi for lines having slope <-1 or >1. b. Find xi+1(xi,yi) and yi+1(xi,yi) for a required number of N points such that either xi+1 = xi++ or xi-- for lines having –1<=m<=1 OR yi+1 = yi++ or yi-- for lines having slope <-1 or >1. This is called DDA algorithm (Digital Differential Analyser) and it draws a line as a sequence of small horizontal or vertical steps and on an average, tries to approximate the required slope. 7. Programming Assignment: Write and efficient draw-line function using the putpixel function to draw good quality lines (without unnecessary gaps) in various styles. Write a program to measure the performance of your draw-line function in lines per minute by repeatedly calling your function to draw lines between randomly generated endpoints in random styles on your monitor. Compare the performance of your function with readymade function of your library. 27.02.04 (2 hr.) 1. Layered Architecture of Graphics Application a. Applications using Graphics functions of a Graphics Library b. Graphics Library using basic Graphics functions like putpixel and so on c. Hardware/Software for realisation of basic Graphics functions like putpixel and so on.
  • 9. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 . 2. Response of ‘putpixel’ illuminated point on the monitor screen 3. Monitor is usually a CRT based simple system. Intensity builds and decays slowly in response to electron gun swithing on/off. Electron Gun switch status Photon Photon Output Intensity Time
  • 10. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 4. 5. 6a. Design issues of a single point temporally continuous dot on a CRT type bilevel display system: - A focused electron gun with a switch to fire electrons or not at a certain switching (refreshing) frequency. - For an illusion of continuous dot, the dot needs to be refreshed before it ‘disappears’. The image of the refreshed dot gets mixed with the image of dying dot and the illusion of continuous dot is created. - The refreshing frequency is a function of decay time of the phosphor and human vision limitations. 6b. Design issues of a single point temporally blinking dot on a CRT type bilevel display system: - The excited phosphor must decay down to the level of ‘blank’, if refreshing has not been done. - Engineering Task : To strike a proper balance in the two requirements. Choose a phosphor with following criteria: i. ‘Acceptable’ level of Photon output per strike of the gun , to be determined by the viewing conditions such as viewing distance, ambient light, required wavelength of the light. TV monitor is designed for long distance while computer monitor is designed for short distance viewing. ii. Decay time (Phosphor must have sufficient persistence) iii. Maximum blinking rate of the application within human vision limitations (Phosphor must not persist for longer than required). 8. Design issue of single linear array of temporally continuous/blinking dots on a CRT based bilevel display system: - All dots must get refreshed within each cycle.
  • 11. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 - For temporal continuity, Phosphor cells must have sufficient persistent to allow the refreshing of all other cells between two refreshing excitations. - For avoiding ghost effect (unwanted persistence resulting in multiple ‘on’ dots at the same time while one is trying to have a illusion of single moving dot), persistence must be not be longer than time of one refreshing cycle time (T). Forward Trace T x x x x x cell1 cell2 Very fast Retrace cell3 cell4 cell5 9. Design issue of 2D array of temporally continuous/blinking dots on a CRT based bilevel display system: - All dots must get refreshed within each refresh cycle. - For temporal continuity, Phosphor cells must have sufficient persistence to allow the refreshing of all other cells between two refreshing excitations. - For avoiding ghost effect (unwanted persistence resulting in multiple ‘on’ dots at the same time while one is trying to have an illusion of single moving dot in this 2D array), persistence must not be longer than time of one refreshing cycle time (T). - Cells are organised as lines of 1D array of cells. All cells on all lines need to refresh in one refresh cycle. - Excitation/Refreshing starts at the top left side, scans the first horizontal line, makes a fast horizontal retrace of reaching the end of the line and starts scanning the next line. The process continues till all lines get scanned. Electron gun then makes a vertical retrace to start another refresh cycle at the top left corner. Hence the top left corner is number as (0,0). -
  • 12. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 10. The aspect ratio (horizontal length : vertical length of the display area) of computer screen is 4:3; CGA 320 :240; VGA : 640 : 480; 800 :600; 1024 :768 16.03.04 (1 hr.) 1. Response of ‘putpixel’ illuminated point on the monitor screen 2. Vector monitors: Computer controls the movement as well as firing of the electron gun. From a limited perspective of interface between computer and output device, Vector monitors worked almost like the plotters. Computer sends the X,Y and colour information and the Gun like plotter pen moved to the desired location. Vector monitors, also referred to by Atari and others as "XY" or "Quadrascan" monitors, are available in black & white or color. 3. Plotters : In plotter, Pen is given 2d relative movement over the surface of the paper. This is achieved with the help of two motors independent motors. In Flatbed plotters the paper is stationary and both the movements are given to pen. The pen arm moves up or down over the paper with the set boundaries giving Y movement to the pen and the pen holder moves within the length of the pen arm and gives X movement to the pen. Select Pen, Pen Up and Pen Down are realised through required mechnical components that are controlled by the electronic hardware on the plotter which is under the command of the plotters firmware which is controlled by the user’s program on computer. User’s Program using plotter’s vector graphics library (e.g. HPGL/DMPL) Plotter’s Firmware Plotter’s Electronic Circuit Plotter’s Mechanical Assemblies The firmware keeps a track of the current location of the pen which set to 0,0 at plotter initialisation. Movement to given X,Y point is achived by translating the delta X to direction (+/-) degree of rotation of motor connected to pen holder and similary delta_y to direction (+/-) degree of rotation of motor connected to pen arm. The speed (degree/sec) and resolution (minimum degree) of these motors are important distinguishing factors in this design.
  • 13. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 In alternate option of Drum Plotter, the X movement is given to pen and Y movement is given to paper, which is rotated over a drum with the help of a another motor. Logical principles remain same. 4. Vector monitors: Vector monitors worked on the same model and point coordinates & colour code was required to be sent to monitor which had interpreting hardware/ firmware for creating garphic. The electron guns in the neck of the tube emit a stream of electrons that bombard the face of the tube that would hit dead center if not for the deflection magnets on the neck of the tube. There are two deflection coils. One for horizontal deflection (X) and one for vertical deflection (Y) of the electron beam. Consider the center of the screen to be (0,0) volts to the deflection magnets. If you want to move the beam to the right you put a positive voltage on the horizontal deflection "X" coil (+,0). A negative voltage moves it to the left. Up and down are accomplished with positive or negative voltages to the vertical deflection (Y) coil. The third portion of a vector monitor is what (at least by Atari) is called the "Z" amplifier, whichcontrols the brightness. There is a "Z" amplifier for each electron gun, which means that black and white monitors have only one "Z" amp and color monitors have three. There were more than 30 vector based games made in the 80's. Each monitor had different specs and run at different speeds, making them incompatible between different gaming hardware. Vector monitors in general are less reliable than raster monitors.
  • 14. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 Raster Monitors : The computer works in synchronisation with the electron gun of the monitor. Colour monitors have three guns moving simultaneosly and computer sends HSYNC and VSYNC signals to maintain the synchronised deflection of electonic beams as per the Video_out signal from the Computer. If the monitor resolution is 640 x 480 then, the vertical sync signal tells the monitor to start displaying a New image or frame, and the monitor starts in the upper left corner with pixel (0,0). The horizontal sync signal tells monitor to refresh another row of 640 . pixel After 480 rows of pixels are refreshed with 480 horizontal sync signals, a vertical sync signal resets the monitor to the upper left corner and the process continues. During the time when pixel data is not being displayed and the beam is returning to the left column to start another horizontal scan, the RGB signals should all be set to black color ( all zero ).
  • 15. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 Depending on the display quality, there are approx. 240-1280 pixels per row, approx. 240-1024 pixel per column and approx. 25/30/60 frames per second to ensure flicker free display. Hence, the the vertical frequency of row per second is in KHz and horizontal frequency of Pixel per sec is in MHz. Vertical frequency = f (frame rate, rows per frame) Hoizontal freqncy = fn(vertical frequency, pixel per row) Computer does not have to send pixel coordinate information to the monitor, it only send the colour information for ordered set of pixels in a predefined sequence such that X = f1 (delta_T, rows per sec, pixels per row) Y = f2 (delta_T, rows per sec, pixels per row) Where, delta_T is the time elapsed since the beginning of scanning. Hence, for using monitor as a display device, the computer has to generate and send the following : a. R value for the current pixel b. G value for the current pixel c. B value for the current pixel d. Hsync e. Vsync This is very high bandwidth communication. Depending on the monitor type (digital/analog) different encoding options (with suitable connector type) are used for connecting computer with monitor. DB15 Type for VGA/SVGA for connecting to Analog monitors. FEMALE connector at the videocard MALE connector at the monitor cable
  • 16. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 PIN Details Pin Name Dir Description 1 RED Red Video (75 ohm, 0.7 V p-p) 2 GREEN Green Video (75 ohm, 0.7 V p-p) 3 BLUE Blue Video (75 ohm, 0.7 V p-p) 4 ID2 Monitor ID Bit 2 5 GND Ground 6 RGND Red Ground 7 GGND Green Ground 8 BGND Blue Ground 9 KEY - Key (No pin) 10 SGND Sync Ground 11 ID0 Monitor ID Bit 0 12 ID1 or SDA Monitor ID Bit 1 HSYNC or Horizontal Sync (or Composite 13 CSYNC Sync) 14 VSYNC Vertical Sync 15 ID3 or SCL Monitor ID Bit 3 6. Study Assignment : Find out different type of display connectors and cables and their salient features for connecting different kind of display monitors {CRT (Analog, Digital) , LCD, and so on} . 19.03.04 (2 hr.) 1. Game demonstration by Siddharth Jain, Esha and Bakul. 2. Response of ‘putpixel’ illuminated point on the monitor screen 3. Response to ‘putpixel’ Colour signals RGB at appropriate time 4. If pixel rate is HF (Horizontal Frenqiency) i.e. time gap t between two horizontally neighbour pixel = 1/HF, we need a subsystem to convert 2D spatial signal of colour (a function of x,y) into a 1D temporal signal and place the signal at appropriate pins of the connector on video board as colour(a function of T) and colourcode for pixel (x=0,y=0) is sent at T = 0 then colourcode for (x=1,y=0) is required to be sent at t, for (x=2,y=0) at 2t, and so on. The process is required to continuously repeated frame after frame with a particular frame rate. 5. This task is carried out by DPU (Display Processor Unit) which reads the digital colour codes in an ordered manners, converts it into analog version and output the signal on video port for controlling analog monitor. 6. The colour codes for every point are stored in a reserved location in the address space. This portion of the RAM is called Frame Buffer /Video RAM. 7. Putpixel(x,y) is realised by making CPU write required colour code at memory location corresponding to (x,y) using Direct addressing mechnism. 8. Getpixel(x,y) is realised by making CPU read exsiting value of colour code at memory location corresponding to (x,y) using Direct addressing mechnism.
  • 17. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 9. For Colour display, the colour code is a structure (R,G,B) rather than a single value. 10. Animation can be created using extra video pages through set-active-page and set-visual-page constructs. Each slide of the visual story board is constructed and stored on a different page. Generally, the slide content is not displayed during construction and constructed graphics of a slide is displayed while the CPU is directed to construct the next slide on the nonvisual(active) page. Example, following two shapes are constructed on two pages and these pages alternately become the visual pages. This creates an illusion of a rotating hand. Slide 0 on page 0 Slide 1 on page 1 11. These extra pages can also be used to store temporary graphical objects without showing these objects on the screen. These objects can be used by constructs like Getpixel for constructing the some graphics on the visual page. Example, you can store some text on nonvisual page, scan this page for nonbackground pixels, display a pattern at a mapping location in the visual page. Another example, you can store a trajectory in nonvisual page, on the visual page, the moving objects is displayed at different points of this trajectory without shopwing the trajectory. 12. These extra pages require extra Video RAM. Set-active-page establishes the connection of CPU with the chosen page, set-visual-page connects DPU with the chosen frame buffer. 12. Graphics Pipeline a. Putpixel Program calls Putpixel (randomly) {image is a 2D digital spatial signal in 2D logical space } CPU writes (randomly) colour code in the chosen page (area) of the frame buffer at appropriate location through direct addressing {Now image is a 2D digital spatial signal that is mapped on 1D Array of Physical RAM} DPU reads it (sequentially) and gives it to DAC {Now image is digital temporal signal} DAC converts it into analog value and put it on the connector at required time {Now Image is an analog temporal signal} Cable picks up the signal through its connector and carries the signal to Monitor. {Now Image is an analog temporal signal}
  • 18. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 Monitor reads is and creates illuminated point on the monitor screen. {Now Image is 2D spatial signal on Physical screen} b. Getpixel Program calls getpixel (randomly) {image is a 2D digital spatial signal in 2D logical space } CPU read (randomly) colour code from the chosen page (area) of the frame buffer at appropriate location through direct addressing {Now image is a 2D digital spatial signal that is mapped on 1D Array of Physical RAM} 13. Assignment : Examine the design options of creating large size frame buffers without using much of address space. 26.03.04 (2 hr.) 1. Program demonstrations by Vikas, Ritul and Lomesh. 2. Review of Graphics Pipeline for Puitpixel and getpixel. 3. The original PC design was based upon the capabilities of the 8086/8088, which allowed for only 1 MB of memory, of which a small range (128K: A0000 to BFFFF) was allotted for graphics memory. Hence, several framebuffer design approaches have been developed to enable the CPU to address large frame buffer with small address space. 4. Frame Buffer design approaches : Packed Vs. Planer. 5. Planer Frame Buffer : CPU assigns only one bit of address space to every pixel rather than one full or more bytes. It is parallely connected to n memory blocks (called planes) for n bit pixels. For example, if 24 bit pixels are needed to achieve 256 shades of reds, greens and also blues; then 24 memory blocks (planes) will be parallely connected to CPU. Each of this plane will have only one of the bits (0-23) of the 24 bit colour code for every pixel in the frame buffer. Hence the address space requirement for frame buffer is made independent of the colour resolution. It only depends on the spatial resolution. Through appropriate in-between circuitry (to be discussed once again) on the video controller card, CPU simultaneously accesses these meomory blocks (on the video controller card)) for reading/writing 1 bit in each plane during getpixel/putpixel.Uisng this scheme, 640x 480 x 256 colours will require only (640 x 480)/8 of address space rather than (640 x 480). Though the framebuffer
  • 19. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 will still need 640 x 480 byte of video memory. This means 8 pixels share the same address at the level of the byte addressing. The exact pixel adressing is achieved by extracting/changing the required bit . Hence, (x,y) coordinates of the pixel are mapped to Byte offset and Bit number at the time of putpixel and getpixel. Block Diagram showing parts and interface for a generic Display controller for analog monitor using planer frame buffer Colour Code bits of a pixel 0123 n Plane 0 CPU Address Bus Plane 1 Plane 2 Data Bus Plane 3 CLUT D Analog Colour Code bits of a pixel A (Optional) Monitor C Plane n All the planes of the framebuffer share the same address space and get simultaneously activated. However different bits of the colourcode of a pixel go to (or get pickedup) corresponding planes in the frame buffer. Each plane has one bit for every pixel. The number of planes equal the number of bits per pixel. 6. Colour Look Up Table (CLUT): When this is used, the framebuffer stores the colour number rather than the colour code. The colour number from the framebuffer is used to read the corresponding colour code in the colour look up table. Setcolorpallete/getcolorpallet functions in TurboC give the access to this look up table. If we need to display only 16 simultaneous colours on the screen we need only 16 entries in the Colour Look up Table. Hence the framebuffer needs to to only 4 bit per pixel in order to give colour number (0..15). The corresponding colour code in the CLUT can have much larger bits. In VGA, it is 6 bit for Red,Green and Blue each making 18 bit colour code. Hence, any 16 out of 218 colours can be simultaneously created on monitor. This helps in economising the framebuffer size at the cost of large number of simulatneous colours. Indexed BMP file format also corresponds to this scheme.
  • 20. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 7. Creating Animation using CLUT manipulation : If we need very fast animation of otherwise complex shapes without many colours we can use CLUT for creating animation effect suing following strategy: i. Model the animation as a slide show in different slides of the object keeping the background as it is. Slide 0 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 ii. In the above slide show, the object (it may have very complex shape within the constrain that it does not require more colours) moves along the periphery and then towards the centre. There are only two colours , one for the background and one for the object. iii. Initialise the CLUT as follows: INDEX RED GREEN BLUE 0 255 255 0 1 255 255 0 2 255 255 0 3 255 255 0 4 255 255 0
  • 21. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 5 255 255 0 6 255 255 0 7 255 255 0 8 255 255 0 9 255 255 0 10 255 255 0 11 255 255 0 12 255 255 0 13 255 255 0 14 255 255 0 15 255 255 0 iv. Draw object at all the non-overlapping 15 positions using different colour index (1-15). No object will be visible on the screen as all colours are mapped to background colour only. In this figure each colour represents a colour number in the CLUT. It is not the actual colour. On the screen only yellow colour will be visible at every point on the screen as the colour codes for every colour number is YELLOW. v. Now start changing the CLUT entries in such a manner that in the beginning only entry number 1 is given RED colour keeping all other as YELLOW only. Then after a delay entry number 2 is give RED code while all other 1-15 are made YELLOW. This is continued in this manner by making onle one entry in the CLUT correspond to RED while all others are YELLOW. We get an illusion of moving RED ball as we see only one (at non overlapping different positions) at a time. CLUT for selective display of Slide 1 INDEX RED GREEN BLUE 0 255 255 0 1 255 0 0 2 255 255 0 3 255 255 0 4 255 255 0 5 255 255 0 6 255 255 0
  • 22. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 7 255 255 0 8 255 255 0 9 255 255 0 10 255 255 0 11 255 255 0 12 255 255 0 13 255 255 0 14 255 255 0 15 255 255 0 CLUT for selective display of Slide 2 INDEX RED GREEN BLUE 0 255 255 0 1 255 255 0 2 255 0 0 3 255 255 0 4 255 255 0 5 255 255 0 6 255 255 0 7 255 255 0 8 255 255 0 9 255 255 0 10 255 255 0 11 255 255 0 12 255 255 0 13 255 255 0 14 255 255 0 15 255 255 0 CLUT for selective display of Slide 3 INDEX RED GREEN BLUE 0 255 255 0 1 255 255 0 2 255 255 0 3 255 0 0 4 255 255 0 5 255 255 0 6 255 255 0 7 255 255 0 8 255 255 0 9 255 255 0 10 255 255 0 11 255 255 0 12 255 255 0 13 255 255 0
  • 23. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 14 255 255 0 15 255 255 0 CLUT for selective display of Slide 4 INDEX RED GREEN BLUE 0 255 255 0 1 255 255 0 2 255 255 0 3 255 255 0 4 255 0 0 5 255 255 0 6 255 255 0 7 255 255 0 8 255 255 0 9 255 255 0 10 255 255 0 11 255 255 0 12 255 255 0 13 255 255 0 14 255 255 0 15 255 255 0 This process continues in the similar manner. Hence, this scheme allows us to first create all the slides (in invisible mode) and then make their content visible selectively just by changing two entries in the CLUT. 16.04.04 (2 hr.) 1. In order to relieve CPU from doing graphics processing, GPU, (Graphics Processing Unit) a dedicated processor is integrated into the system. The CPU does not have to execute many graphics algorithms in detail as it uses GPU as a slave processor that has its own RAM and ROM and works on behalf of the CPU. Standard Graphics operations like line, circle, area fill, polygon and many others are available to the CPU as GPU commands. Hence CPU can pay more attentions to other parts of the application like simulation, database retrieval and so on.
  • 24. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 Block Diagram showing parts and interface for a generic Display controller (with Graphics Accelerator) for analog monitor using planer frame buffer Plane 0 CPU Address Bus Plane 1 GPU Plane 2 Plane 3 Data Bus CLUT D Analog (Optional) A Monitor C Plane n 2. Rovolving an object around a point along the circumference of a circle: Two options : Object may be defined as a raster (Bitmap) or as a vector image. Revolving Raster based object will be computationally more expensive as it would require trigonometric operations for every point in the raster. Vector definitions are more suitable for animation pupose because only the end points of lines need to be revolved and lines can be drawn between new endpoints using simple linbe function. 3. The revolution is obtained by drawing realigned object at new positions on the circumference of the circle. In order to achieve illusion of smooth movement, these positions should be as close as possible . If the object is a simple dot, you get a circular movement of a dot usinf folowing formulation: for (θ :=0 , θ < 2 Π, θ = θ + ∆θ) {draw dot; delay; erase dot } 4. What is the ideal value of ∆θ ? The number of steps in which revolution should be completed α r, 1/∆θ
  • 25. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 ∆θ α (object width) ; 5. For a dot, the object width = 1 pixel We need to place the dot at 2 Π r pixel positions for continuous and smooth movement thru an angular movement of 2 Π. Hence, in one step, ∆θ = 1/r 6. For wider objects, we can increase ∆θ to some extent without any visible difference in smoothness of the movement. 8. Assignments : Study Assignment (Group Project) : Find out the details of the API for a GPU. Programming Assignment (Individual Assignment) : Write a program to display a revolving object (e.g. bird,man and so on) along the circumference of a circle. The circle’s centre and radius should be allowed to be specified by the user. Define your data structucture and algorithm such that the same program can be used to revolve different kind of objects with different speed. Please pick up some objects from your ongoing games. Members of the same group should revolve different objects. If possible, incorporate some kind of revolution in your game story. 23.04.04 (2 hr.) 1. Geometrc Operations like Translation, Rotation, Scaling, Shear on graphical objects. 2. Comparison of the algorithmic complexity of performing these operations on raster Vs vector definitions of graphical objects. 3. Usually vector definitions will be more efficient. 4. Data Structure for modeling vector based graphics : i. Scene Description Table : List of Objects with geometric dispplay parameters Object Basic Geometric display parameters No Object Position Orientation Size Shear id parameters to parameters parameters parameters specify the with respect to with respect with respect position of the basic shape to the basic to the basic origin of the definition shape shape basic shape {Axis of definition definition definition rotation, Angle { Sx,Sy,Sz} {Shx,Shy,Shz} {X,Y,Z} of rotation} 1 A 2 B 3 A 4 A 5 D Notice that any basic shape may be reused several time for creating many objects in a scene by varying its one or more geometric parameters. ii. Object shape description : Description of the basic shape of every vector object
  • 26. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 Basic Object Basic Shape description using the vector primitives id A L P1, P2; L P1,P3; L P2,P4….., ;C P10,R, A P10,R2, θ1,θ2;.... B C P1, R1 C The above example uses a vocabulary which is to be interpreted as follows: L indicates a line between two points C indicated a circle at given centre and or given radius A indicates an arc at a given centre, of a given radius and between two angles and so on… Different Vocabulary may be followed by different systems. iii. Vertex List : coordinates of every vertex in the basic shape. Basic Object id Vertex Coordinates with respect to the No. local coordinate system of the given object i.e. there need not be any relationship between the vertices of object A and Object B (X,Y,Z) A P1 (0,0,0) P2 (10,5,6) … .. B P1 (0,0,0) 5. Alternatively, if the objects are defined using polygonal faces (Wire Mesh Modeling) only, the basic shape description can be changed as follows: i. Object description : List of Polygonal faces that define an object. Basic Basic Shape description using the Object Polygonal Face ids. id A F1, F2, F3, F5, F6 B F1, F2, F3, F4 C
  • 27. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 ii. Face List : List of edges that define a polygonal face Basic Polygonal List of edge-ids that define the Object id face id polygonal Face A F1 E1,E2,E3,E4 F2 E1,E5,E6 F3 E2,E3,E4,E7,E8 iii. Edge List : List of Vertices that define an Edge. Basic Object Edge id Vertices id A E1 P1, P2 E2 P2,P3 E3 P3,P4 The Scence dscription and Vertex List is used as earlier. The graphics database can be created on the above principles by increasing or reducing redundancy as per the choice of designers. Different systems use different kind of adaptation of this basic model. 5. Geometric Transformation of Vectorised Objects: Just Transform the Vertex list using appropriate geometric parameters as per the Scene description table and run the process using other lists to render the graphics. The Scene Description Table itself may be continuously updated by another process. 6. The geometric Transformations can be modeled as follows: P’ = f (P, Geometric display parameters); Where P and P’ are vectors (X,Y,Z) and f is a linear function. Simple geometric transformation have following formulations: Translation : P’x = Px + δX; P’y = Py + δY P’z = Pz + δZ Scaling about origin : P’x = Sx. Px P’y = Sy. Py P’z = Sz. Pz Shear : P’x = Px + Sh1.Py + Sh2 Pz P’y = Py + Sh3.Px + Sh4 Pz P’z = Pz + Sh5.Px + Sh6 Py Rotation about Z axis : P’x = Cosθ Px - Sinθ Py P’y = Sinθ.Px + Cosθ Py P’z = Pz
  • 28. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 More complex linear rigid body geometric transformations can be formulated as a series of these basic transformations. P’x = a Px + b Py + c Pz + d P’y = e Px + f Py + g Pz + h P’z = i Px + j Py + j Pz + k These Linear Transformations are called Affine Transformations. They preserve the lines and the parallelism amongst parallel lines. 7. These transformations can be represented as matrices using homogeneous coordinates where (Px, Py, Pz) is represented as (Px-w, Py-w, Pz-w, w). w can be any scalar with following interpretaion: Px = Px-w/w Py = Py-w/w Pz = Pz-w/w Use w= 1. 8. [P’] = [T] [P] where, [P] and [P’] are column matrices representing homogeneous represention of P and P’ as (Px, Py, ’z, 1) and (P’x, P’y, P’z, 1) T is 4x 4 matix representing affine tranformations as {(a,b,c,d), (e,f,g,h), (i,j,k,l), (0,0,0,1)} 9. The advantage of homogeneous representation is in its power of representing all linear transformation including translation as a matrix. 10. Complex Transformation that are caused by a series of several siomple transformation can be modeled as a single matrix by multiplying all the matrices in correct order. 11. T = T3 T2 T1 means First apply T1, then apply T2 then T3. This composite result can simply be obtained by multiplying the point column matrix with T as follows: [P’] = T1 [P] [P’’] = T2 [P’] [P’’’] = T3 [P’’] This process can be simplified as follows: T = [T3 ][T2 ][T1] [P’’’] = [T ][P] 12. For transforming object, Create a matrics of the vertices to be tranformed out vertex list, by creating a column for every vertex using homomgeneous representation [P1 P2 P3…..Pn] where each P is a column of 4 elements {Px,Py,Px,1}. 13. Multiply this matrix with Geometric Transformation Matrix to get transformed vertices as follows: [P’1 P’2 P’3…..P’n] = [T] [P1 P2 P3…..Pn]; 14. Use various lists described in 4 above to render tranformed object. 30.04.04 (2 hrs.) 1. Demonstrations by Abhishek Sikdar, Ankit Dalmia, Ankit Chaturvedi. 2. Projections: It is a way of dimension reduction. Projects are created to create 2D image of 3D point. Hence a point (x,y,z,1) is converted as (x’y’,0,1) or
  • 29. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 (x’,0,z’,1) or (o,y’,z’1) and is displayed at (x”,y”) on the screen. Where x” and y” are direction cosines with respect to screen coordinate system, while x, y, z are direction cosines with respect to world coordinates and x’, y’ and z’ are direction cosines on the projection plane with respect to world coordinates. Parallel and Perspective projections are important types of projections. There are other types of projection as well for specific applications. 3. Parallel Projection : Top view (Plan, projection on x-y plane), Front view (elevation, projection on xz plane) and Side view (projection on yz plane) are main sub types of parallel projections. Any plane can be used to project all the ‘world points’ using parallel projectors that are orthogonal to ‘projection plane’ and do not have a finite ‘centre of projection’. The content of projection plane is then displayed on the screen. Parallel lines in all orientations remain parallel. All lines perpendicular to the projection plane reduce to points. If z axis represents the height then, Top view : x” = f (x’ = x); y” = f (y’ = y); z’ = 0; w’ = w = 1; Elevation : x” = f (x’ = x); y’ = 0 y” = f(z’ = z); w’ = w = 1; Side View : x’ = 0; x” = f(y’ = y); y” = f(z’ = z); w’ = w = 1; All these transformations ( sets of 4 linear equations) can be easily written as matrices that can be concatanated with other geometric transformation matrices and the resultant matrix can be used to find the screen projection of all the points even when they are continuously undergoing some geometrically transformed points just with one matrix multiplication operation. The arithmatic operations can be reduced by taking advantage of the fact that many entries in the matrix will be zero. 4. Perspective projection : The projectors are not orthogonal to projection plane. They meet at a finite centre of projection (can be considered as the position of eye/synthetic camera). If the projection is taken on X,Y plane and the centre of projection is assumed to be at (0,0,-E,1; where E is positive number) with respect to the homogeneous world coordination system. All the points in the world (x,y,z,1) need to to projected at XY plane such that the projectors meet at centre of projection casting the projection of every point on XY plane.
  • 30. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 P2 (x2,y2,z2) Y axis P1(x1,y1z1) P1’ P2’ X axis (0,0,-E1) C.P. Z axis Using similar triangle, the projections of P1 and P2 can be found on XY plane as P1’ and P2’. x1’ / x1 = E / (z1 + E); y1’ / y1 = E / (z1 + E) ; z1’ = 0 x2’ / x2 = E / (z1 + E); y2’ / y2 = E / (z1 + E) ; z2’ = 0 This is simplified as ; x’ = x / ((z/E) + 1) y’ = y / ((z/E) + 1) z’ = 0; The denominator can be treated as w’ in homogenous coordinate representaion where; w’ = ((z/E) + 1). The set of these 4 linear equations cane written as a matrix that can be used as earlier projection matrices giving more realistic imagery on computer screen. 5. Z Buffer Algorithm: It is used for displaying a set of of planer faces on 2D screen. The colour of each point on projection plane (x’,y’) is to be set as the colour of the corresponding point (x,y,z) on nearest face along the depth of the world. The depth is taken along z axis as above The vertices of each Planer faces can be used to find out a,b,c,d parameters of the normal of plane as ax + by + cz + d = 0. Hence, z = - (ax +by+d)/c hence , for a given planer face, this can used to more effciently compute the z values using already stored z of neighbours. zx+1,y = zx,y – a/c zx,y+1 = zx,y – b/c
  • 31. Computer Graphics Lecture notes Copyright Sanjay Goel, JIIT, 2004 We maintain a buffer (in software or in hardware of some graphics accelerators) to store the nearest z value for every x’,y’. Algorithm works as follows: 1. Apply the geometric and perspective transformations to all the vertices and get new plane parameters. 2. For x’ = 0 to max-x’ For y’ = 0 to max-y’ { Initialise z-min (x’,y’) to a very large value (more than the largest depth) ; Initialise the colour(x’,y’) to the colour of background. } For facenumber= 0 to max-faces For x’ = 0 to max-x’ For y’ = 0 to max-y’ { If (x’,y’) is inside currently chosen face { Find z as depth of the face from this pont ; If z < z-min (x’,y’) { z-min (x’,y’) = z colour (x’,y’) = colour (x,y,z) } } 07.05.04 (2 hrs.) 1. Window-viewport tranformation. 2. Clipping a ploygon with rectangle 3. Clipping with arbitrary shaped (even concave) polygons. 4. Inside test. 5. Flood filling by supplying a seed point inside the region to be coloured : Recursive, Stack based and Queue based algorithms. 6. Surface of revolution (e.g. sphere, flask and so on) and Lofting for modelling of 3d geometric objects. 7. Applying interpolation and approximation (learnt in Numerical Analysis course) for smooth 2d and 3d curves.