CGV M1 Notes
CGV M1 Notes
2
Module 1
Computer Graphics with image processing
3
Module 1
Computer Graphics with image processing
beam and the light emitted by the phosphor fades very rapidly.
✔ One way to maintain the screen picture is to store the picture information as a charge
distribution within the CRT in order to keep the phosphors activated.
✔ The most common method now employed for maintaining phosphor glow is to redraw
the picture repeatedly by quickly directing the electron beam back over the same screen
points. This type of display is called a refresh CRT.
4
Module 1
Computer Graphics with image processing
✔The frequency at which a picture is redrawn on the screen is referred to as the refresh
rate.
Operation of an electron gun with an accelarating anode
✔ The primary components of an electron gun in a CRT are the heated metal cathode and a
control grid.
✔ The heat is supplied to the cathode by directing a current through a coil of wire, called
the filament, inside the cylindrical cathode structure.
✔ This causes electrons to be “boiled off” the hot cathode surface.
✔ Inside the CRT envelope, the free, negatively charged electrons are then accelerated
toward the phosphor coating by a high positive voltage.
✔ Intensity of the electron beam is controlled by the voltage at the control grid.
✔ Since the amount of light emitted by the phosphor coating depends on the number of
electrons striking the screen, the brightness of a display point is controlled by varying the
voltage on the control grid.
✔ The focusing system in a CRT forces the electron beam to converge to a small cross
section as it strikes the phosphor and it is accomplished with either electric or magnetic
fields.
✔ With electrostatic focusing, the electron beam is passed through a positively charged
metal cylinder so that electrons along the center line of the cylinder are in equilibrium
position.
✔ Deflection of the electron beam can be controlled with either electric or magnetic fields.
✔ Cathode-ray tubes are commonly constructed with two pairs of magnetic-deflection coils
✔ One pair is mounted on the top and bottom of the CRT neck, and the other pair is
mounted on opposite sides of the neck.
✔ The magnetic field produced by each pair of coils results in a traverse deflection force
that is perpendicular to both the direction of the magnetic field and the direction of travel
of the electron beam.
✔ Horizontal and vertical deflections are accomplished with these pair of coils
5
Module 1
Computer Graphics with image processing
✔ When electrostatic deflection is used, two pairs of parallel plates are mounted inside the
CRT envelope where, one pair of plates is mounted horizontally to control vertical
deflection, and the other pair is mounted vertically to control horizontal deflection.
✔ Spots of light are produced on the screen by the transfer of the CRT beam energy to the
phosphor.
✔ When the electrons in the beam collide with the phosphor coating, they are stopped and
their kinetic energy is absorbed by the phosphor.
✔ Part of the beam energy is converted by the friction in to the heat energy, and the
remainder causes electros in the phosphor atoms to move up to higher quantum-energy
levels.
✔ After a short time, the “excited” phosphor electrons begin dropping back to their stable
ground state, giving up their extra energy as small quantum of light energy called
photons.
✔ What we see on the screen is the combined effect of all the electrons light emissions: a
glowing spot that quickly fades after all the excited phosphor electrons have returned to
their ground energy level.
✔ The frequency of the light emitted by the phosphor is proportional to the energy
difference between the excited quantum state and the ground state.
✔ Lower persistence phosphors required higher refresh rates to maintain a picture on the
screen without flicker.
✔ The maximum number of points that can be displayed without overlap on a CRT is
referred to as a resolution.
✔ Resolution of a CRT is dependent on the type of phosphor, the intensity to be displayed,
and the focusing and deflection systems.
✔ High-resolution systems are often referred to as high-definition systems.
Raster-Scan Displays and Random Scan Displays
Raster-Scan Displays
❖ The electron beam is swept across the screen one row at a time from top to bottom.
❖ As it moves across each row, the beam intensity is turned on and off to create a pattern of
illuminated spots.
❖ This scanning process is called refreshing. Each complete scanning of a screen is
normally called a frame.
6
Module 1
Computer Graphics with image processing
❖ The refreshing rate, called the frame rate, is normally 60 to 80 frames per second, or
described as 60 Hz to 80 Hz.
❖ Picture definition is stored in a memory area called the frame buffer.
❖ This frame buffer stores the intensity values for all the screen points. Each screen point is
called a pixel (picture element).
❖ Property of raster scan is Aspect ratio, which defined as number of pixel columns
divided by number of scan lines that can be displayed by the system.
7
Module 1
Computer Graphics with image processing
✔ The component lines of a picture can be drawn and refreshed by a random-scan system in
any specified order
✔When a small set of lines is to be displayed, each refresh cycle is delayed to avoid very
high refresh rates, which could burn out the phosphor.
Difference between Raster scan system and Random scan system
Base of
Raster Scan System Random Scan System
Difference
The electron beam is swept The electron beam is directed only
across the screen, one row at to theparts of screen where
Electron Beam
a time, from top to bottom a picture is to be drawn
8
Module 1
Computer Graphics with image processing
9
Module 1
Computer Graphics with image processing
pixel.
Disadvantages:
⮚ It is a low cost technique to produce color in random scan monitors.
⮚ It can display only four colors.
⮚ Quality of picture is not good compared to other techniques.
Shadow-mask technique
✔ It produces wide range of colors as compared to beam-penetration technique.
✔ This technique is generally used in raster scan displays. Including color TV.
✔ In this technique CRT has three phosphor color dots at each pixel position.
✔ One dot for red, one for green and one for blue light. This is commonly known as Dot
triangle.
✔ Here in CRT there are three electron guns present, one for each color dot. And a shadow
mask grid just behind the phosphor coated screen.
✔ The shadow mask grid consists of series of holes aligned with the phosphor dot pattern.
✔ Three electron beams are deflected and focused as a group onto the shadow mask and
when they pass through a hole they excite a dot triangle.
✔ In dot triangle three phosphor dots are arranged so that each electron beam can activate
only its corresponding color dot when it passes through the shadow mask.
✔ A dot triangle when activated appears as a small dot on the screen which has color of
combination of three small dots in the dot triangle.
✔ By changing the intensity of the three electron beams we can obtain different colors in
the shadow mask CRT
10
Module 1
Computer Graphics with image processing
🡺 The term flat panel display refers to a class of video device that have reduced volume, weight
🡺 As flat panel display is thinner than CRTs, we can hang them on walls or wear on our wrists.
🡺 Since we can even write on some flat panel displays they will soon be available as pocket
notepads.
2. Non emissive displays: - non emissive display or non emitters use optical
effects to convert sunlight or light from some other source into graphics patterns.
For Ex. LCD (Liquid Crystal Display).
Plasma Panels displays
11
Module 1
Computer Graphics with image processing
✵ It is constructed by filling the region between two glass plates with a mixture of gases that
✵ A series of vertical conducting ribbons is placed on one glass panel and a set of horizontal
✵ Firing voltage is applied to a pair of horizontal and vertical conductors cause the gas at the
intersection of the two conductors to break down into glowing plasma of electrons and
ions.
✵ Picture definition is stored in a refresh buffer and the firing voltages are applied to refresh
✵ Alternating current methods are used to provide faster application of firing voltages and
✵ One disadvantage of plasma panels is they were strictly monochromatic device that means
shows only one color other than black like black and white.
Thin Film Electroluminescent Displays
Mrs Rashmi B N, Dept., of CSE, JSSATEB
12
Module 1
Computer Graphics with image processing
✵ It is similar to plasma panel display but region between the glass plates is filled with
✵ Electrical energy is then absorbed by the manganese atoms which then release the energy
✵ In this display a matrix of multi-color light emitting diode is arranged to form the pixel
position in the display and the picture definition is stored in refresh buffer.
✵ Similar to scan line refreshing of CRT information is read from the refresh buffer and
converted to voltage levels that are applied to the diodes to produce the light pattern on
the display.
13
Module 1
Computer Graphics with image processing
✵ This non emissive device produce picture by passing polarized light from the surrounding
or from an internal light source through liquid crystal material that can be aligned to
either block or transmit the light.
✵ The liquid crystal refreshes to fact that these compounds have crystalline arrangement of
✵ It consists of two glass plates each with light polarizer at right angles to each other
✵ Rows of horizontal transparent conductors are built into one glass plate, and column of
✵ In the ON state polarized light passing through material is twisted so that it will pass
14
Module 1
Computer Graphics with image processing
✵ Graphics monitors for the display of three-dimensional scenes have been devised using a
technique that reflects a CRT image from a vibrating, flexible mirror As the varifocal
mirror vibrates, it changes focal length.
✵ These vibrations are synchronized with the display of an object on a CRT so that each
point on the object is reflected from the mirror into a spatial position corresponding to the
distance of that point from a specified viewing location.
✵ This allows us to walk around an object or scene and view it from different sides.
3. Raster-Scan Systems
🡺 In addition to the central processing unit (CPU), a special-purpose processor, called the
video controller or display controller, is used to control the operation of the display
device.
15
Module 1
Computer Graphics with image processing
🡺 Here, the frame buffer can be anywhere in the system memory, and the video controller
🡺 In addition to the video controller, raster systems employ other processors as coprocessors and
16
Module 1
Computer Graphics with image processing
Working:
✔ Figure shows a two-dimensional Cartesian reference frame with the origin at the
lowerleft screen corner.
✔ The screen surface is then represented as the first quadrant of a two-dimensional system
with positive x and y values increasing from left to right and bottom of the screen to the
top respectively.
✔Pixel positions are then assigned integer x values that range from 0 to xmax across the
screen, left to right, and integer y values that vary from 0 to ymax, bottom to top.
Basic Video Controller Refresh Operations
✔ The basic refresh operations of the video controller are diagrammed
17
Module 1
Computer Graphics with image processing
✔ Two registers are used to store the coordinate values for the screen pixels.
✔ Initially, the x register is set to 0 and the y register is set to the value for the top scan line.
✔ The contents of the frame buffer at this pixel position are then retrieved and used to set
the intensity of the CRT beam.
✔ Then the x register is incremented by 1, and the process is repeated for the next pixel on
the top scan line.
✔ This procedure continues for each pixel along the top scan line.
✔ After the last pixel on the top scan line has been processed, the x register is reset to 0 and
the y register is set to the value for the next scan line down from the top of the screen.
✔ The procedure is repeated for each successive scan line.
✔ After cycling through all pixels along the bottom scan line, the video controller resets the
registers to the first pixel position on the top scan line and the refresh process starts over
a.Speed up pixel position processing of video controller:
✔ Since the screen must be refreshed at a rate of at least 60 frames per second,the simple
procedure illustrated in above figure may not be accommodated by RAM chips if the
cycle time is too slow.
✔ To speed up pixel processing, video controllers can retrieve multiple pixel values from
the refresh buffer on each pass.
✔ When group of pixels has been processed, the next block of pixel values is retrieved from
the frame buffer.
Advantages of video controller:
✔ A video controller can be designed to perform a number of other operations.
✔ For various applications, the video controller can retrieve pixel values from different
memory areas on different refresh cycles.
✔ This provides a fast mechanism for generating real-time animations.
✔ Another video-controller task is the transformation of blocks of pixels, so that screen
areas can be enlarged, reduced, or moved from one location to another during the refresh
cycles.
✔ In addition, the video controller often contains a lookup table, so that pixel values in the
frame buffer are used to access the lookup table. This provides a fast method for
18
Module 1
Computer Graphics with image processing
✔Finally, some systems are designed to allow the video controller to mix the framebuffer
image with an input image from a television camera or other input device
b) Raster-Scan Display Processor
✔ Figure shows one way to organize the components of a raster system that contains a
separate display processor, sometimes referred to as a graphics controller or a display
coprocessor.
✔ The purpose of the display processor is to free the CPU from the graphics chores.
✔ In addition to the system memory, a separate display-processor memory area can be
provided.
Scan conversion:
✔ A major task of the display processor is digitizing a picture definition given in an
application program into a set of pixel values for storage in the frame buffer.
✔ This digitization process is called scan conversion.
Example 1: displaying a line
🡺 Graphics commands specifying straight lines and other geometric objects are scan
19
Module 1
Computer Graphics with image processing
🡺 The array size for character grids can vary from about 5 by 7 to 9 by 12 or more for
higher-quality displays.
🡺 A character grid is displayed by superimposing the rectangular grid pattern into the frame
Using outline:
🡺 For characters that are defined as outlines, the shapes are scan-converted into the frame
🡺 These functions include generating various line styles (dashed, dotted, or solid), displaying
🡺 Display processors are typically designed to interface with interactive input devices, such
as a mouse.
Methods to reduce memory requirements in display processor:
20
Module 1
Computer Graphics with image processing
🡺 In an effort to reduce memory requirements in raster systems, methods have been devised
for organizing the frame buffer as a linked list and encoding the color information.
🡺 One organization scheme is to store each scan line as a set of number pairs.
🡺 Encoding methods can be useful in the digital storage and transmission of picture
information
Run-length encoding:
✵ The first number in each pair can be a reference to a color value, and the second number
can specify the number of adjacent pixels on the scan line that are to be displayed in that
color.
✵ This technique, called run-length encoding, can result in a considerable saving in storage
space if a picture is to be constructed mostly with long runs of a single color each.
Cell encoding:
✵ Another approach is to encode the raster as a set of rectangular areas (cell encoding).
Disadvantages of encoding:
❖ The disadvantages of encoding runs are that color changes are difficult to record and
storage requirements increase as the lengths of the runs decrease.
❖ In addition, it is difficult for the display controller to process the raster when many short
runs are involved.
❖ Moreover, the size of the frame buffer is no longer a major concern, because of sharp
declines in memory costs
21
Module 1
Computer Graphics with image processing
✔ An early application for computer graphics is the display of simple data graphs usually
plotted on a character printer. Data plotting is still one of the most common graphics
application.
✔ Graphs & charts are commonly used to summarize functional, statistical, mathematical,
engineering and economic data for research reports, managerial summaries and other
types of publications.
✔Typically examples of data plots are line graphs, bar charts, pie charts, surface graphs,
contour plots and other displays showing relationships between multiple parameters in
two dimensions, three dimensions, or higher-dimensional spaces
Computer-Aided Design
✔ CAD, computer-aided design or CADD, computer-aided drafting and design methods are
now routinely used in the automobiles, aircraft, spacecraft, computers, home appliances.
✔ Circuits and networks for communications, water supply or other utilities are constructed
with repeated placement of a few geographical shapes.
✔Animations are often used in CAD applications. Real-time, computer animations using
wire-frame shapes are useful for quickly testing the performance of a vehicle or system.
Virtual-Reality Environments
22
Module 1
Computer Graphics with image processing
✔ With virtual-reality systems, designers and others can move about and interact with
objects in various ways. Architectural designs can be examined by taking simulated
“walk” through the rooms or around the outsides of buildings to better appreciate the
overall effect of a particular design.
✔ With a special glove, we can even “grasp” objects in a scene and turn them over or move
them from one place to another.
Data Visualizations
✔ Producing graphical representations for scientific, engineering and medical data sets and
processes is another fairly new application of computer graphics, which is generally
referred to as scientific visualization. And the term business visualization is used in
connection with data sets related to commerce, industry and other nonscientific areas.
✔ There are many different kinds of data sets and effective visualization schemes depend on
the characteristics of the data. A collection of data can contain scalar values, vectors or
higher-order tensors.
Education and Training
✔ Computer generated models of physical,financial,political,social,economic & other
systems are often used as educational aids.
✔ Models of physical processes physiological functions,equipment, such as the color coded
diagram as shown in the figure, can help trainees to understand the operation of a system.
✔ For some training applications,special hardware systems are designed.Examples of such
specialized systems are the simulators for practice sessions ,aircraft pilots,air traffic-
control personnel.
✔ Some simulators have no video screens,for eg: flight simulator with only a control panel
for instrument flying
Computer Art
✔ The picture is usually painted electronically on a graphics tablet using a stylus, which can
simulate different brush strokes, brush widths and colors.
✔ Fine artists use a variety of other computer technologies to produce images. To create
pictures the artist uses a combination of 3D modeling packages, texture mapping,
drawing programs and CAD software etc.
23
Module 1
Computer Graphics with image processing
✔ Commercial art also uses theses “painting” techniques for generating logos & other
designs, page layouts combining text & graphics, TV advertising spots & other
applications.
✔ A common graphics method employed in many television commercials is morphing,
where one object is transformed into another.
Entertainment
✔ Television production, motion pictures, and music videos routinely a computer graphics
methods.
✔ Sometimes graphics images are combined a live actors and scenes and sometimes the
films are completely generated a computer rendering and animation techniques.
✔ Some television programs also use animation techniques to combine computer generated
figures of people, animals, or cartoon characters with the actor in a scene or to transform
an actor’s face into another shape.
Image Processing
✔ The modification or interpretation of existing pictures, such as photographs and TV scans
is called image processing.
✔ Methods used in computer graphics and image processing overlap, the two areas are
concerned with fundamentally different operations.
✔ Image processing methods are used to improve picture quality, analyze images, or
recognize visual patterns for robotics applications.
✔ Image processing methods are often used in computer graphics, and computer graphics
methods are frequently applied in image processing.
✔ Medical applications also make extensive use of image processing techniques for picture
enhancements in tomography and in simulations and surgical operations.
✔ It is also used in computed X-ray tomography(CT), position emission
tomography(PET),and computed axial tomography(CAT).
Graphical User Interfaces
✔ It is common now for applications software to provide graphical user interface (GUI).
✔ A major component of graphical interface is a window manager that allows a user to
display multiple, rectangular screen areas called display windows.
24
Module 1
Computer Graphics with image processing
✔ Each screen display area can contain a different process, showing graphical or non-
graphical information, and various methods can be used to activate a display window.
✔Using an interactive pointing device, such as mouse, we can active a display window on
some systems by positioning the screen cursor within the window display area and
pressing the left mouse button.
Graphics workstations and viewing systems
✔ Most graphics monitors today operate as raster-scan displays, and both CRT and flat
panel systems are in common use.
✔ Graphics workstation range from small general-purpose computer systems to multi
monitor facilities, often with ultra –large viewing screens.
✔ High-definition graphics systems, with resolutions up to 2560 by 2048, are commonly
used in medical imaging, air-traffic control, simulation, and CAD.
✔ Many high-end graphics workstations also include large viewing screens, often with
specialized features.
✔ Multi-panel display screens are used in a variety of applications that require “wall-sized”
viewing areas. These systems are designed for presenting graphics displays at meetings,
conferences, conventions, trade shows, retail stores etc.
✔ A multi-panel display can be used to show a large view of a single scene or several
individual images. Each panel in the system displays one section of the overall picture
✔ A large, curved-screen system can be useful for viewing by a group of people studying a
particular graphics application.
✔ A 360 degree paneled viewing system in the NASA control-tower simulator, which is
used for training and for testing ways to solve air-traffic and runway problems at airports.
⮚ with dial rotations.
25
Module 1
Computer Graphics with image processing
5. Introduction To OpenGL
Coordinate Representations
✔ To generate a picture using a programming package we first need to give the geometric
descriptions of the objects that are to be displayed known as coordinates.
✔ If coordinate values for a picture are given in some other reference frame (spherical,
hyperbolic, etc.), they must be converted to Cartesian coordinates.
✔ Several different Cartesian reference frames are used in the process of constructing and
displaying
✔ First we define the shapes of individual objects, such as trees or furniture, These
reference frames are called modeling coordinates or local coordinates
✔ Then we place the objects into appropriate locations within a scene reference frame
called world coordinates.
✔ After all parts of a scene have been specified, it is processed through various output-
device reference frames for display. This process is called the viewing pipeline.
✔ The scene is then stored in normalized coordinates. Which range from −1 to 1 or from 0
to 1 Normalized coordinates are also referred to as normalized device coordinates.
✔ The coordinate systems for display devices are generally called device coordinates, or
screen coordinates.
✔ OpenGL basic(core) library :-A basic library of functions is provided in OpenGL for
specifying graphics primitives, attributes, geometric transformations, viewing
transformations, and many other operations.
Graphics Functions
🡺 It provides users with a variety of functions for creating and manipulating pictures
🡺 The basic building blocks for pictures are referred to as graphics output primitives
🡺 We can change the size, position, or orientation of an object using geometric transformations
26
Module 1
Computer Graphics with image processing
🡺 Viewing transformations are used to select a view of the scene, the type of projection to be
🡺 Input functions are used to control and process the data flow from these interactive
🡺 Graphics package contains a number of tasks .We can lump the functions for carrying out
🡺 Function names in the OpenGL basic library (also called the OpenGL core library) are
27
Module 1
Computer Graphics with image processing
🡺 Symbolic constants that are used with certain functions as parameters are all in capital
GL_AMBIENT_AND_DIFFUSE.
🡺 The OpenGL functions also expect specific data types. For example, an OpenGL function
parameter might expect a value that is specified as a 32-bit integer. But the size of an
integer specification can be different on different machines.
🡺 To indicate a specific data type, OpenGL uses special built-in, data-type names, such as
Related Libraries
28
Module 1
Computer Graphics with image processing
✔ In windows to include OpenGL core libraries and GLU we can use the following header files:-
#include <windows.h> //precedes other header files for including Microsoft windows ver of OpenGL libraries
#include<GL/gl.h>
#include <GL/glu.h>
✔ The above lines can be replaced by using GLUT header file which ensures gl.h and glu.h are included correctly,
✔ #include <GL/glut.h> //GL in windows
✔ In Apple OS X systems, the header file inclusion statement will be,
✔ #include <GLUT/glut.h>
✵ We are using the OpenGL Utility Toolkit, our first step is to initialize GLUT.
✵ This initialization function could also process any command line arguments, but we will not need to use
✵ We can state that a display window is to be created on the screen with a given caption for the title bar. This is
✵ where the single argument for this function can be any character string that we want to use for the
display-window title.
Mrs Rashmi B N, Dept., of CSE, JSSATEB
29
Module 1
Computer Graphics with image processing
✵ For this, we create a picture using OpenGL functions and pass the picture definition to the GLUT routine
✵ Example: suppose we have the OpenGL code for describing a line segment in a procedure called
lineSegment.
✵ Then the following function call passes the line-segment description to the display window:
✵ After execution of the following statement, all display windows that we have created, including their graphic
✵ This function must be the last one in our program. It displays the initial graphics and puts the program into an
infinite loop that checks for input from devices such as a mouse or keyboard.
✵ Although the display window that we created will be in some default location and size, we can set these
GLUT Function 1:
🡺 We use the glutInitWindowPosition function to give an initial location for the upper left
30
Module 1
Computer Graphics with image processing
🡺 This position is specified in integer screen coordinates, whose origin is at the upper-left
GLUT Function 2:
After the display window is on the screen, we can reposition and resize it.
GLUT Function 3:
🡺 We can also set a number of other options for the display window, such as buffering and a
🡺 Example: the following command specifies that a single refresh buffer is to be used for the
display window and that we want to use the color mode which uses red, green, and blue
(RGB) components to select color values:
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
🡺 The values of the constants passed to this function are combined using a logical or
operation.
🡺 Actually, single buffering and RGB color mode are the default options.
🡺 But we will use the function now as a reminder that these are the options that are set for
our display.
31
Module 1
Computer Graphics with image processing
🡺 Later, we discuss color modes in more detail, as well as other display options, such as
double buffering for animation applications and selecting parameters for viewing
threedimensional scenes.
🡺 There are still a few more tasks to perform before we have all the parts that we need for a
complete program.
Step 1: to set background color
🡺 Using RGB color values, we set the background color for the display window to be white,
🡺 The first three arguments in this function set the red, green, and blue component colors to
the value 1.0, giving us a white background color for the display window.
🡺 If, instead of 1.0, we set each of the component colors to 0.0, we would get a black
background.
🡺 The fourth parameter in the glClearColor function is called the alpha value for the
specified color. One use for the alpha value is as a “blending” parameter
🡺 When we activate the OpenGL blending operations, alpha values can be used to determine
🡺 An alpha value of 0.0 indicates a totally transparent object, and an alpha value of 1.0 indicates
an opaque object.
32
Module 1
Computer Graphics with image processing
🡺 Although the glClearColor command assigns a color to the display window, it does not put
🡺 To get the assigned window color displayed, we need to invoke the following OpenGL
function:
glClear (GL_COLOR_BUFFER_BIT);
🡺 The argument GL COLOR BUFFER BIT is an OpenGL symbolic constant specifying that
it is the bit values in the color buffer (refresh buffer) that are to be set to the values
indicated in the glClearColor function. (OpenGL has several different kinds of buffers
that can be manipulated.
Step 3: to set color to object
🡺 In addition to setting the background color for the display window, we can choose a variety of
🡺 For our initial programming example, we will simply set the object color to be a dark green
🡺 The suffix 3f on the glColor function indicates that we are specifying the three RGB color
🡺 This function requires that the values be in the range from 0.0 to 1.0, and we have set red
🡺 To do this, we need to tell OpenGL how we want to “project” our picture onto the display
33
Module 1
Computer Graphics with image processing
🡺 So, although we only want to produce a very simple two-dimensional line, OpenGL
🡺 We can set the projection type (mode) and other viewing parameters that we need with the
twodimensional rectangular area of world coordinates to the screen, and that the x-
coordinate values within this rectangle range from 0.0 to 200.0 with y-coordinate values
ranging from 0.0 to 150.0.
🡺 Whatever objects we define within this world-coordinate rectangle will be shown within
🡺 Therefore, the GLU function gluOrtho2D defines the coordinate reference frame within the
display window to be (0.0, 0.0) at the lower-left corner of the display window and (200.0,
150.0) at the upper-right window corner.
🡺 For now, we will use a world-coordinate rectangle with the same aspect ratio as the display
🡺 Finally, we need to call the appropriate OpenGL routines to create our line segment.
glBegin (GL_LINES);
glVertex2i (180, 15);
Mrs Rashmi B N, Dept., of CSE, JSSATEB
34
Module 1
Computer Graphics with image processing
🡺 init: We place all initializations and related one-time parameter settings in function init.
function lineSegment, which is the function that will be referenced by the GLUT function
glutDisplayFunc.
🡺 main function main function contains the GLUT functions for setting up the display
🡺 glFlush: This is simply a routine to force execution of our OpenGL functions, which are
🡺 The procedure lineSegment that we set up to describe our picture is referred to as a display
callback function.
35
Module 1
Computer Graphics with image processing
✵ We then describe the objects in our picture by giving their geometric specifications in terms
✵ Example: We define a straight-line segment with two endpoint positions, and a polygon is
36
Module 1
Computer Graphics with image processing
✵ These coordinate positions are stored in the scene description along with other info about
✵ Co-ordinate extents :Co-ordinate extents are the minimum and maximum x, y, and z values
✵ Ex:For a 2D figure, the coordinate extents are sometimes called its bounding rectangle.
✵ Objects are then displayed by passing the scene description to the viewing routines which
identify visible surfaces and map the objects to the frame buffer positions and then on the
video monitor.
✵ The scan-conversion algorithm stores info about the scene, such as color values, at the
appropriate locations in the frame buffer, and then the scene is displayed on the output
device.
Screen co-ordinates:
✔ Locations on a video monitor are referenced in integer screen coordinates, which
correspond to the integer pixel positions in the frame buffer.
✔ Scan-line algorithms for the graphics primitives use the coordinate descriptions to
determine the locations of pixels
✔ Example: given the endpoint coordinates for a line segment, a display algorithm must
calculate the positions for those pixels that lie along the line path between the endpoints.
✔ Since a pixel position occupies a finite area of the screen, the finite size of a pixel must be
taken into account by the implementation algorithms.
✔ For the present, we assume that each integer screen position references the centre of a
pixel area.
✔ Once pixel positions have been identified the color values must be stored in the frame
buffer
37
Module 1
Computer Graphics with image processing
38
Module 1
Computer Graphics with image processing
world-coordinate range.
⮚ This would ensure that the coordinate values were not accumulated with any values we may have
previously set for the projection matrix.
⮚ Thus, for our initial two-dimensional examples, we can define the coordinate frame for the screen
display window with the following statements
glMatrixMode (GL_PROJECTION);
glLoadIdentity ( );
gluOrtho2D (xmin, xmax, ymin, ymax);
⮚ The display window will then be referenced by coordinates (xmin, ymin) at the lower-left corner
and by coordinates (xmax, ymax) at the upper-right corner, as shown in Figure below
⮚ We can then designate one or more graphics primitives for display using the coordinate
reference specified in the gluOrtho2D statement.
⮚ If the coordinate extents of a primitive are within the coordinate range of the display
window, all of the primitive will be displayed.
⮚ Otherwise, only those parts of the primitive within the display-window coordinate limits
will be shown.
⮚ Also, when we set up the geometry describing a picture, all positions for the OpenGL
primitives must be given in absolute coordinates, with respect to the reference frame
defined in the gluOrtho2D function.
39
Module 1
Computer Graphics with image processing
⮚ The geometric transformations such rotation, scaling etc can be applied on the primitives
which are displayed on the screen.The programmer can create geometric primitives as
shown below:
40
Module 1
Computer Graphics with image processing
41
Module 1
Computer Graphics with image processing
glEnd ( );
Case 3:
⮚ specifying two point positions in a three dimensional world reference frame. In this case,
we give the coordinates as explicit floating-point values:
glBegin (GL_POINTS);
glVertex3f (-78.05, 909.72, 14.60);
glVertex3f (261.91, -5200.67, 188.33);
glEnd ( );
42
Module 1
Computer Graphics with image processing
Case 2: GL_LINE_STRIP:
Successive vertices are connected using line segments. However, the final vertex is not
connected to the initial vertex.
glBegin (GL_LINES_STRIP);
glVertex2iv (p1);
glVertex2iv (p2);
glVertex2iv (p3);
glVertex2iv (p4);
glVertex2iv (p5);
glEnd ( );
Case 3: GL_LINE_LOOP:
Successive vertices are connected using line segments to form a closed path or loop i.e., final
vertex is connected to the initial vertex.
glBegin (GL_LINES_LOOP);
glVertex2iv (p1);
glVertex2iv (p2);
glVertex2iv (p3);
glVertex2iv (p4);
glVertex2iv (p5);
glEnd ( );
43
Module 1
Computer Graphics with image processing
🡺 Basically, we can set two attributes for points: color and size.
🡺 In a state system: The displayed color and size of a point is determined by the current values
🡺 Color components are set with RGB values or an index into a color table.
🡺 For a raster system: Point size is an integer multiple of the pixel size, so that a large point
🡺 The displayed color of a designated point position is controlled by the current color values in
🡺 Also, a color is specified with either the glColor function or the glIndex function.
Size:
glPointSize (size);
and the point is then displayed as a square block of pixels.
🡺 The number of horizontal and vertical pixels in the display of the point is determined by
parameter size.
🡺 Thus, a point size of 1.0 displays a single pixel, and a point size of 2.0 displays a 2×2 pixel
array.
44
Module 1
Computer Graphics with image processing
🡺 If we activate the antialiasing features of OpenGL, the size of a displayed block of pixels
Example program:
🡺 Example: the following code segment plots three points in varying colors and sizes.
45
Module 1
Computer Graphics with image processing
🡺 The first is a standard-size red point, the second is a double-size green point, and the third
Ex:
glColor3f (1.0, 0.0, 0.0);
glBegin (GL_POINTS);
glVertex2i (50, 100);
glPointSize (2.0);
glColor3f (0.0, 1.0, 0.0);
glVertex2i (75, 150);
glPointSize (3.0);
glColor3f (0.0, 0.0, 1.0);
glVertex2i (100, 200);
glEnd ( );
🡺 In OpenGL straight-line segment with three attribute settings: line color, line-width, and
line style.
🡺 OpenGL provides a function for setting the width of a line and another function for specifying
🡺 We assign a floating-point value to parameter width, and this value is rounded to the nearest
nonnegative integer.
46
Module 1
Computer Graphics with image processing
🡺 If the input value rounds to 0.0, the line is displayed with a standard width of 1.0, which is
🡺 Some implementations of the line-width function might support only a limited number of
widths, and some might not support widths other than 1.0.
47
Module 1
Computer Graphics with image processing
🡺 That is, the magnitude of the horizontal and vertical separations of the line endpoints,
deltax and deltay, are compared to determine whether to generate a thick line using
vertical pixel spans or horizontal pixel spans.
🡺 But we can also display dashed lines, dotted lines, or a line with a combination of dashes
and dots.
🡺 We can vary the length of the dashes and the spacing between dashes or dots.
🡺 We set a current display style for lines with the OpenGL function:
Pattern:
🡺 Parameter pattern is used to reference a 16-bit integer that describes how the line should be
displayed.
🡺 1 bit in the pattern denotes an “on” pixel position, and a 0 bit indicates an “off” pixel
position.
🡺 The pattern is applied to the pixels along the line path starting with the low-order bits in the
pattern.
🡺 The default pattern is 0xFFFF (each bit position has a value of 1),which produces a solid line.
repeatFactor
🡺 Integer parameter repeatFactor specifies how many times each bit in the pattern is to be
48
Module 1
Computer Graphics with image processing
Polyline:
🡺 With a polyline, a specified line-style pattern is not restarted at the beginning of each segment.
🡺 It is applied continuously across all the segments, starting at the first endpoint of the polyline
and ending at the final endpoint for the last segment in the series.
Example:
🡺 For line style, suppose parameter pattern is assigned the hexadecimal representation 0x00FF
🡺 This would display a dashed line with eight pixels in each dash and eight pixel positions
🡺 Also, since low order bits are applied first, a line begins with an eight-pixel dash starting at
🡺 This dash is followed by an eight-pixel space, then another eight-pixel dash, and so forth, until
49
Module 1
Computer Graphics with image processing
Example Code:
typedef struct { float x, y; } wcPt2D;
wcPt2D dataPts [5];
void linePlot (wcPt2D dataPts [5])
{
int k;
glBegin (GL_LINE_STRIP);
for (k = 0; k < 5; k++)
glVertex2f (dataPts [k].x, dataPts [k].y);
glFlush ( );
glEnd ( );
}
/* Invoke a procedure here to draw coordinate axes. */
glEnable (GL_LINE_STIPPLE); /* Input first set of (x, y) data values.
*/ glLineStipple (1, 0x1C47); // Plot a dash-dot, standard-width polyline.
linePlot (dataPts);
/* Input second set of (x, y) data values. */
glLineStipple (1, 0x00FF); / / Plot a dashed, double-width polyline.
glLineWidth (2.0);
linePlot (dataPts);
/* Input third set of (x, y) data values. */
glLineStipple (1, 0x0101); // Plot a dotted, triple-width polyline.
glLineWidth (3.0);
linePlot (dataPts);
glDisable (GL_LINE_STIPPLE);
🡺 Parameters for curve attributes are the same as those for straight-line segments.
🡺 We can display curves with varying colors, widths, dot-dash patterns, and available pen or
50
Module 1
Computer Graphics with image processing
brush options.
🡺 Raster curves of various widths can be displayed using the method of horizontal or vertical
pixel spans.
Case 1: Where the magnitude of the curve slope |m| <= 1.0, we plot vertical spans;
Case 2: when the slope magnitude |m| > 1.0, we plot horizontal spans.
Method 2: Another method for displaying thick curves is to fill in the area between two Parallel
curve paths, whose separation distance is equal to the desired width. We could do this using the
specified curve path as one boundary and setting up the second boundary either inside or outside
the original curve path. This approach, however, shifts the original curve path either inward or
outward, depending on which direction we choose for the second boundary.
Method 3:The pixel masks discussed for implementing line-style options could also be used in
raster curve algorithms to generate dashed or dotted patterns
Method 4: Pen (or brush) displays of curves are generated using the same techniques discussed
for straight-line segments.
51
Module 1
Computer Graphics with image processing
endpoints to integer screen coordinates and determine the nearest pixel positions along
the line path between the two endpoints then the line color is loaded into the frame buffer
at the corresponding pixel coordinates
✔ The Cartesian slope-intercept equation for a straight line is
y=m * x +b >(1)
with m as the slope of the line and b as the y intercept.
✔ Given that the two endpoints of a line segment are specified at positions (x0,y0) and
(xend, yend) ,as shown in fig.
✔ We determine values for the slope m and y intercept b with the following equations:
m=(yend - y0)/(xend - x0) >(2)
b=y0 - m.x0 >(3)
✔ Algorithms for displaying straight line are based on the line equation (1) and calculations
given in eq(2) and (3).
✔ For given x interval δx along a line, we can compute the corresponding y interval δy from
eq.(2) as
δy=m. δx >(4)
✔ Similarly, we can obtain the x interval δx corresponding to a specified δy as
δx=δy/m >(5)
✔ These equations form the basis for determining deflection voltages in analog displays,
such as vector-scan system, where arbitrarily small changes in deflection voltage are
possible.
52
Module 1
Computer Graphics with image processing
🡺 |m|<1, δx can be set proportional to a small horizontal deflection voltage with the
🡺 |m|>1, δy can be set proportional to a small vertical deflection voltage with the
🡺 |m|=1, δx=δy and the horizontal and vertical deflections voltages are equal
🡺 A line is sampled at unit intervals in one coordinate and the corresponding integer values
nearest the line path are determined for the other coordinate
🡺 DDA Algorithm has three cases so from equation i.e.., m=(yk+1 - yk)/(xk+1 - xk)
Case1: i
f
m
<
1
,
x
i
n
c
r
e
m
e
Mrs Rashmi B N, Dept., of CSE, JSSATEB
53
Module 1
Computer Graphics with image processing
n i
t .
i e
n .
u .
n ,
i x
t k
+
i 1
n =
t x
e k
+
r
1
v
then, m=(yk+1 - yk)/( xk+1 - xk)
a
l m= yk+1 - yk
s yk+1 = yk + m >(1)
🡺 where k takes integer values starting from 0,for the first point and increases by 1 until final
endpoint is reached. Since m can be any real number between 0.0 and 1.0,
Case2: i
f
m
>
1
,
y
i
n
54
Module 1
Computer Graphics with image processing
c =
r y
e k
+
m
1
e
then, m= (yk + 1- yk)/( xk+1 - xk)
n
m(xk+1 - xk)=1
t
xk+1 =(1/m)+ xk (2)
i
n
u
n
i
t
i
n
t
e
r
v
a
l
s
i
.
e
.
.
,
y
k
+
1
55
Module 1
Computer Graphics with image processing
Case3:
if m=1,both x and y increment in unit intervals
i.e..,xk+1=xk + 1 and yk+1 = yk + 1
Equations (1) and (2) are based on the assumption that lines are to be processed from the left
endpoint to the right endpoint. If this processing is reversed, so that the starting endpoint is at the
right, then either we have δx=-1 and
yk+1 = yk - m (3)
or(when the slope is greater than 1)we have δy=-1
with xk+1 = xk - (1/m) (4)
🡺 Similar calculations are carried out using equations (1) through (4) to determine the pixel
positions along a line with negative slope. thus, if the absolute value of the slope is less
than 1 and the starting endpoint is at left ,we set δx==1 and calculate y values with eq(1).
🡺 when starting endpoint is at the right(for the same slope),we set δx=-1 and obtain y
🡺 This algorithm is summarized in the following procedure, which accepts as input two
🡺 if m<1,where x is incrementing by 1
yk+1 = yk + m
starting point .
o Illuminate pixel(x, round(y))
o x1= x+ 1 , y1=y + 1
o Illuminate pixel(x1,round(y1))
o x2= x1+ 1 , y2=y1 + 1
56
Module 1
Computer Graphics with image processing
o Illuminate pixel(x2,round(y2))
o Till it reaches final point.
🡺 if m>1,where y is incrementing by 1
xk+1 =(1/m)+ xk
starting point .
o Illuminate pixel(round(x),y)
o x1= x+( 1/m) ,y1=y
o Illuminate pixel(round(x1),y1)
o x2= x1+ (1/m) , y2=y1
o Illuminate pixel(round(x2),y2)
o Till it reaches final point.
🡺 The DDA algorithm is faster method for calculating pixel position than one that directly
implements .
increments are applied in the x or y directions to step from one pixel position to another
along the line path.
🡺 The accumulation of round off error in successive additions of the floating point increment,
however can cause the calculated pixel positions to drift away from the true line path for
long line segments. Furthermore ,the rounding operations and floating point arithmetic in
this procedure are still time consuming.
🡺 we improve the performance of DDA algorithm by separating the increments m and 1/m
into integer and fractional parts so that all calculations are reduced to integer operations.
#include <stdlib.h>
#include <math.h>
57
Module 1
Computer Graphics with image processing
Bresenham’s Algorithm:
🡺 It is an efficient raster scan generating algorithm that uses incremental integral calculations
🡺 To illustrate Bresenham’s approach, we first consider the scan-conversion process for lines
🡺 Pixel positions along a line path are then determined by sampling at unit x intervals.
Starting from the left endpoint (x0, y0) of a given line, we step to each successive column
Mrs Rashmi B N, Dept., of CSE, JSSATEB
58
Module 1
Computer Graphics with image processing
(x position) and plot the pixel whose scan-line y value is closest to the line path.
Code:
#include <stdlib.h>
#include <math.h>
/* Bresenham line-drawing procedure for |m| < 1.0. */
void lineBres (int x0, int y0, int xEnd, int yEnd)
59
Module 1
Computer Graphics with image processing
{
int dx = fabs (xEnd - x0), dy = fabs(yEnd - y0);
int p = 2 * dy - dx;
int twoDy = 2 * dy, twoDyMinusDx = 2 * (dy - dx);
int x, y;
/* Determine which endpoint to use as start position. */
if (x0 > xEnd) {
x = xEnd;
y = yEnd;
xEnd = x0;
}
else { x
=
x
} 0
;
y
=
y
0
;
60
Module 1
Computer Graphics with image processing
61