CSE 421
Prepared By
Tanjina Akter
Lecturer, Dept. of CSE
Outline
Introduction
Overview of Graphics Systems
Image Basics
Graphics Hardware
○ Input
Describing something to the computer
○ Computation
Computing what we want to draw
○ Output
Final representation
Computer Graphics
The definition of computer graphics is the technology
that deals with designs and pictures on computers.
Computer graphics is an art of drawing pictures on
computer screens with the help of programming. It
involves computations, creation, and manipulation of data.
In other words, we can say that computer graphics is a
rendering tool for the generation and manipulation of
images.
Main task
Modeling
Rendering
Animation
Computer Graphics and Image
Processing
Computer Graphics: Synthesize picture from
mathematical or geometrical models.
Computer Graphics Mathematical or
Picture Elements
Geometrical Model
Image
Image Processing: Analyze
Processingpicture
to derive
description of mathematical on geometrical
form of object.
What is the goal of computer graphics?
Recognize how a visual image can be an
effective means of communication
Distinguish and interpret various types of
typography.
Utilize a broad range of type styles in
combination with visual images.
Use a computer to create and manipulate
images and text for use in various
print and digital mediums.
Applications of Computer Graphics
o Computational biology o Computational physics
o Computer-aided design
o Digital art o Education
o Graphic design
o Information visualization
o Scientific visualization
o Special Effects for cinema
o Video Games
o Web design
o Design
Early Applications of Computer Graphics
Computer Aided Design
(CAD)
Q: Why wireframe?
Why these apps?
A: Better conceptualization,
interaction, transfer of ideas
Computer Graphics
Applications
Virtual Reality
VR: User interacts and
views with a 3D world
using “more natural”
means
Best VR?
Data Visualization
Scientific, Engineering,
Medical data
Visualizing millions to
billions of data points
See trends
Different schemes
Computer Graphics
Applications
Education and Training
Models of physical,
financial, social systems
Comprehension of
complex systems
Computer Art
Fine and commercial art
Performance Art
Aesthetic Computing
SIGGRAPH
Games/Movies
Computer Graphics
Applications
Image Processing
~Inverse of Graphics
Start with a picture
Process picture
information
Graphical User
Interfaces (GUIs)
WIMP interface
HCI
Overview of Graphics Systems
Images
Hardware
Input Systems
Output Systems
Software
OpenGL
Two Dimensional Images
+Y
Images (at least
the ones in this
class) are two
Y
dimensional
shapes. Axis
The two axes
we will label as
X (horizontal),
and Y (vertical). (0,0) X Axis +X
Hardware Pipeline
Input Computation Output
We want to draw a rectangle, how do we describe it to a computer?
Model (n) - object
description that a
computer
understands.
Partition the space
1. Define a set of
points (vertices) in (7,9) (14,9)
2D space.
2. Given a set of
vertices, draw
lines between (7,3) (14,3)
consecutive
vertices.
Vertex (pl. Vertices) - a point in 2 or 3 dimensional space.
Record every position
Bitmap - a rectangular array of bits mapped one-to-one with
pixels.
Position relative
Vector display system - graphical output system that was
based on strokes (as opposed to pixels). Also known as:
random, calligraphic, or stroke displays.
Representing Objects
Most common method is the VERTEX
method. Define the object as a set of
points with connectivity information.
Why is connectivity important?
Connectivity - information that defines
which vertices are connected to which
other vertices via edges.
Edge - connects two vertices
Model file for rectangle
v4e4
73
79 (7,9) (14,9)
14 9
14 3
12
23 (7,3) (14,3)
34
41
Input Devices
Locator Devices
Keyboard
Scanner
Images
Laser
Cameras (research)
Locator Devices
When queried, locator devices return a
position and/or orientation.
•Mouse (2D and 3D)
•Trackball
•Joystick (2D and 3D)
Locator Devices
When queried, locator
devices return a
position and/or
orientation.
Tablet
Virtual Reality
Trackers
Data Gloves
Digitizers
Keyboard
Text input
List boxes, GUI
CAD/CAM
Modeling
Hard coded
Vertex locations are inserted into code
Scanners
Image Scanners -
Flatbed, etc.
What type of data is
returned? Bitmap
Laser Scanners -
Deltasphere
Emits a laser and does
time of flight. Returns 3D
point
Camera based -
research
Examine camera image(s)
and try to figure out
vertices from them.
Many others
Light Pens
Voice Systems
Touch Panels
Camera/Vision
Based
Which is best?
Model file for rectangle
v4e4
73
79 (7,9) (14,9)
14 9
14 3
12
23 (7,3) (14,3)
34
41
Computation Stage
Input Computation Output
Now that we have a model of what we
want to draw, what goes on inside the
computer to generate the output?
Computation
Transformations Rasterization
Computation Stage
Computation
Model Output
Transformations Rasterization
Transformed
Model
How do we store this?
We would like to allocate memory to hold
the results of the computation stage.
Framebuffer
Framebuffer - A block of memory,
dedicated to graphics output, that holds
the contents of what will be displayed.
Pixel - one element of the framebuffer
Framebuffer
How much memory do we need to allocate
0 0 0 0 0 0 0 for
0 0the0 framebuffer?
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Questions: How many pixels are there?
Framebuffer in Memory
If we want a framebuffer of 640 pixels by
480 pixles, we should allocate:
framebuffer = 640*480 bits
How many bit should we allocate?
Q: What do more bits get you?
A: More values to be stored at each pixel.
Why would you want to store something
other than a 1 or 0?
Framebuffer bit depth
How many colors does 1 bit get you?
How many colors do 8 bits get you?
Monochrome systems use this (green/gray
scale)
What bit depth would you want for your
framebuffer?
bit depth - number of bits allocated per pixel in a buffer
Bit depths
16 bits per pixel (high color)
5 bits for red, 5/6 bits for green, 5 bits for blue
potential of 32 reds, 32/64 green, 32 blues
total colors: 65536
32 bits per pixel (true color)
8 bits for red, green, blue, and alpha
potential for 256 reds, greens, and blues
total colors: 16777216 (more than the eye can
distinguish)
Let’s look at Display Control Panel
Data Type Refresher
bit - a 0 or 1. Can represent 2 unique
values
byte - 8 bits. 256 values
word - 32 bits. 4,294,967,296 values
int - 32 bits.
float - 32 bits
double - 64 bits
unsigned byte - 8 bits
Graphic Card Memory
How much memory is on our graphic
card?
640 * 480 * 32 bits = 1,228,800 bytes
1024 * 768 * 32 bits = 3,145,728 bytes
1600 * 1200 * 32 bits = 7,680,000 bytes
How much memory is on your graphics
card?
As a side note: Playstation 1 has 2 MB
RAM. How do they do it? What is the
TV resolution? 1 bit alpha, no z buffer.
A: Egads! Not enough memory!
Q: What is dithering?
Trading spatial resolution for intensity
and color depth.
Sometimes call digital half-toning
Increases the number of apparent colors
than are actually capable of being
displayed
True
256colors
16 color
colors
Dithering
Why does it work? Spatial integration.
Using the fact that our eyes usually
blend areas of high frequency.
Why do you need it? If you don’t have
enough bits. Eyes can detect 100
shades of a color. Banding occurs with
fewer colors.
Where do you see this? Printers and
newspaper! Let’s look at the Alligator.
Black and White Dithering
Output
Input Computation Output
We have an image (framebuffer or model), now
we want to show it. Read Ch. 2 in the Hearn
and Baker handout.
Hardcopy
Display
Vector
Raster Scan
Hardcopy
Printers (Resolution, color depth)
Dot Matrix - uses a head with 7 to 24 pins to
strike a ribbon (single or multiple color)
Ink Jet Printers (fires small balls of colored
ink)
Laser Printers (powder adheres to positive
charged paper)
Pen Plotters (similar to vector displays).
“infinite” resolution.
Image Quality Issues
Screen resolution Brightness
Color Contrast
Blank space between Refresh rate
the pixels Sensitivity of display
Intentional image to viewing angle
degradation
Pixels
Pixel - The most basic addressable
image element in a screen
CRT - Color triad (RGB phosphor dots)
LCD - Single color element
Screen Resolution - measure of number
of pixels on a screen (m by n)
m - Horizontal screen resolution
n - Vertical screen resolution
Raster Displays
Cathode Ray Tubes (CRTs), most “tube”
monitors you see. Very common, but
big and bulky.
Liquid Crystal Displays (LCDs), there
are two types transmissive (laptops,
those snazzy new flat panel monitors)
and reflective (wrist watches).
Cathode Ray Tubes (CRTs)
Heating element on the yolk.
Phosphor coated screen
Electrons are boiled off the
filament and drawn to the
focusing system.
The electrons are focused into
a beam and “shot” down the
cylinder.
The deflection plates “aim”
the electrons to a specific
position on the screen.
CRT Phosphor Screen
The screen is coated with
phosphor, 3 colors for a
color monitor, 1 for
monochrome.
For a color monitor, three
guns light up red, green, or
blue phosphors.
Intensity is controlled by the
amount of time at a specific
phosphor location.
Beam Movement
Beam Movement
scan line - one row on the screen
interlace vs. non-interlace - Each frame is
either drawn entirely, or as two consecutively
drawn fields that alternate horizontal scan
lines.
vertical sync (vertical retrace) - the motion of
the beam moving from the bottom of the image
to the top, after it has drawn a frame.
refresh rate - how many frames are drawn per
second. Eye can see 24 frames per second.
TV is 30 Hz, monitors are at least 60 Hz.
Refresh rate is important, but remember
it is different than your program’s update
rate.
Why is higher, better?
Vector Displays
Unlike CRTs, vector
displays have a single gun
that is controlled to draw
lines. Think of having a
VERY FAST drawing pen.
Pros: Diagrams/only draw
what you need
Cons: No fill objects/Slows
with complexity
CRTs (cont.)
Strong electrical fields and high voltage
Very good resolution
Heavy, not flat
Liquid Crystal Displays
(LCDs)
Also divided into pixels, but without an
electron gun firing at a screen, LCDs
have cells that either allow light to flow
through, or block it.
Liquid Crystal Displays
Liquid crystal displays use small flat
chips which change their transparency
properties when a voltage is applied.
LCD elements are arranged in an n x m
array call the LCD matrix
Level of voltage controls gray levels.
LCDs elements do not emit light, use
backlights behind the LCD matrix
LCDs (cont.)
Color is obtained by placing filters in front of
each LCD element
Usually black space between pixels to
separate the filters.
Because of the physical nature of the LCD
matrix, it is difficult to make the individual LCD
pixels very small.
Image quality dependent on viewing angle.
Advantages of LCDs
Flat
Lightweight
Low power consumption
Basic Projector Designs
(Images from Phillips Research)
Reflective Projection System
Transmittive Projection
System
3D Glasses
3D Display
3D Object
Graphics Software
How to talk to the hardware?
Special purpose software
Excel
AutoCAD
Medical Visualization
Programming API
Advantages?
Please Read Section 2.9