SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
CS 4731: Computer Graphics
Lecture 18: Raster Graphics Part 1
Emmanuel Agu
2D Graphics Pipeline
Object
World Coordinates
Object
subset
window to
viewport
mapping
Object
Screen coordinates
RasterizationDisplay
Applying
world window
Clipping
Simple 2D Drawing Pipeline
Rasterization (Scan Conversion)
n Convert high-level geometry description to pixel colors
in the frame buffer
n Example: given vertex x,y coordinates determine pixel
colors to draw line
n Two ways to create an image:
n Scan existing photograph
n Procedurally compute values (rendering)
Viewport
Transformation
Rasterization
Rasterization
n A fundamental computer graphics function
n Determine the pixels’ colors, illuminations, textures, etc.
n Implemented by graphics hardware
n Rasterization algorithms
n Lines
n Circles
n Triangles
n Polygons
Rasterization Operations
n Drawing lines on the screen
n Manipulating pixel maps (pixmaps): copying, scaling,
rotating, etc
n Compositing images, defining and modifying regions
n Drawing and filling polygons
n Previously glBegin(GL_POLYGON), etc
n Aliasing and antialiasing methods
Line drawing algorithm
n Programmer specifies (x,y) values of end pixels
n Need algorithm to figure out which intermediate pixels
are on line path
n Pixel (x,y) values constrained to integer values
n Actual computed intermediate line values may be floats
n Rounding may be required. E.g. computed point
(10.48, 20.51) rounded to (10, 21)
n Rounded pixel value is off actual line path (jaggy!!)
n Sloped lines end up having jaggies
n Vertical, horizontal lines, no jaggies
Line Drawing Algorithm
0 1 2 3 4 5 6 7 8 9 10 11 12
8
7
6
5
4
3
2
1
Line: (3,2) -> (9,6)
? Which intermediate
pixels to turn on?
Line Drawing Algorithm
n Slope-intercept line equation
n y = mx + b
n Given two end points (x0,y0), (x1, y1), how to compute m
and b?
(x0,y0)
(x1,y1)
dx
dy
01
01
xx
yy
dx
dy
m
−
−
== 0*0 xmyb −=
Line Drawing Algorithm
n Numerical example of finding slope m:
n (Ax, Ay) = (23, 41), (Bx, By) = (125, 96)
5392.0
102
55
23125
4196
==
−
−
=
−
−
=
AxBx
AyBy
m
Digital Differential Analyzer (DDA): Line Drawing
Algorithm
(x0,y0)
(x1,y1)
dx
dy
§Walk through the line, starting at (x0,y0)
§Constrain x, y increments to values in [0,1] range
§Case a: x is incrementing faster (m < 1)
§Step in x=1 increments, compute and round y
§Case b: y is incrementing faster (m > 1)
§Step in y=1 increments, compute and round x
m<1
m>1
m=1
DDA Line Drawing Algorithm (Case a: m < 1)
(x0, y0)
x = x0 + 1 y = y0 + 1 * m
Illuminate pixel (x, round(y))
x = x + 1 y = y + 1 * m
Illuminate pixel (x, round(y))
…
Until x == x1
(x1,y1)
x = x0 y = y0
Illuminate pixel (x, round(y))
myy kk +=+1
DDA Line Drawing Algorithm (Case b: m > 1)
y = y0 + 1 x = x0 + 1 * 1/m
Illuminate pixel (round(x), y)
y = y + 1 x = x + 1 /m
Illuminate pixel (round(x), y)
…
Until y == y1
x = x0 y = y0
Illuminate pixel (round(x), y)
(x1,y1)
(x0,y0)
m
xx kk
1
1 +=+
DDA Line Drawing Algorithm Pseudocode
compute m;
if m < 1:
{
float y = y0; // initial value
for(int x = x0;x <= x1; x++, y += m)
setPixel(x, round(y));
}
else // m > 1
{
float x = x0; // initial value
for(int y = y0;y <= y1; y++, x += 1/m)
setPixel(round(x), y);
}
n Note: setPixel(x, y) writes current color into pixel in column x and
row y in frame buffer
Line Drawing Algorithm Drawbacks
n DDA is the simplest line drawing algorithm
n Not very efficient
n Round operation is expensive
n Optimized algorithms typically used.
n Integer DDA
n E.g.Bresenham algorithm (Hill, 10.4.1)
n Bresenham algorithm
n Incremental algorithm: current value uses previous value
n Integers only: avoid floating point arithmetic
n Several versions of algorithm: we’ll describe midpoint
version of algorithm
Bresenham’s Line-Drawing Algorithm
n Problem: Given endpoints (Ax, Ay) and (Bx, By) of a line,
want to determine best sequence of intervening pixels
n First make two simplifying assumptions (remove later):
n (Ax < Bx) and
n (0 < m < 1)
n Define
n Width W = Bx – Ax
n Height H = By - Ay
(Bx,By)
(Ax,Ay)
Bresenham’s Line-Drawing Algorithm
n Based on assumptions:
n W, H are +ve
n H < W
n As x steps in +1 increments, y incr/decr by <= +/–1
n y value sometimes stays same, sometimes increases by 1
n Midpoint algorithm determines which happens
Bresenham’s Line-Drawing Algorithm
(x0, y0)
M = (x0 + 1, Y0 + ½)
Build equation of line through and compare
to midpoint
…
(x1,y1)
What Pixels to turn on or off?
Consider pixel midpoint M(Mx, My)
M(Mx,My)
If midpoint is above line, y stays same
If midpoint is below line, y increases + 1
Bresenham’s Line-Drawing Algorithm
n Using similar triangles:
n H(x – Ax) = W(y – Ay)
n -W(y – Ay) + H(x – Ax) = 0
n Above is ideal equation of line through (Ax, Ay) and (Bx, By)
n Thus, any point (x,y) that lies on ideal line makes eqn = 0
n Double expression (to avoid floats later), and give it a name,
F(x,y) = -2W(y – Ay) + 2H(x – Ax)
W
H
Axx
Ayy
=
−
−
(Bx,By)
(Ax,Ay)
(x,y)
Bresenham’s Line-Drawing Algorithm
n So, F(x,y) = -2W(y – Ay) + 2H(x – Ax)
n Algorithm, If:
n F(x, y) < 0, (x, y) above line
n F(x, y) > 0, (x, y) below line
n Hint: F(x, y) = 0 is on line
n Increase y keeping x constant, F(x, y) becomes more
negative
Bresenham’s Line-Drawing Algorithm
n Example: to find line segment between (3, 7) and (9, 11)
F(x,y) = -2W(y – Ay) + 2H(x – Ax)
= (-12)(y – 7) + (8)(x – 3)
n For points on line. E.g. (7, 29/3), F(x, y) = 0
n A = (4, 4) lies below line since F = 44
n B = (5, 9) lies above line since F = -8
Bresenham’s Line-Drawing Algorithm
(x0, y0)
M = (x0 + 1, Y0 + ½)
If F(Mx,My) < 0, M lies above line,
shade lower pixel (same y as before)
…
(x1,y1)
What Pixels to turn on or off?
Consider pixel midpoint M(Mx, My)
M(Mx,My)
If F(Mx,My) > 0, M lies below line,
shade upper pixel
Can compute F(x,y) incrementally
Initially, midpoint M = (Ax + 1, Ay + ½)
F(Mx, My) = -2W(y – Ay) + 2H(x – Ax)
= 2H – W
Can compute F(x,y) for next midpoint incrementally
If we increment x + 1, y stays same, compute new F(Mx,My)
F(Mx, My) += 2H
If we increment x +1, y + 1
F(Mx, My) -= 2(W – H)
Bresenham’s Line-Drawing Algorithm
Bresenham(IntPoint a, InPoint b)
{ // restriction: a.x < b.x and 0 < H/W < 1
int y = a.y, W = b.x – a.x, H = b.y – a.y;
int F = 2 * H – W; // current error term
for(int x = a.x; x <= b.x; x++)
{
setpixel at (x, y); // to desired color value
if F < 0
F = F + 2H;
else{
Y++, F = F + 2(H – W)
}
}
}
n Recall: F is equation of line
Bresenham’s Line-Drawing Algorithm
n Final words: we developed algorithm with restrictions
0 < m < 1 and Ax < Bx
n Can add code to remove restrictions
n To get the same line when Ax > Bx (swap and draw)
n Lines having m > 1 (interchange x with y)
n Lines with m < 0 (step x++, decrement y not incr)
n Horizontal and vertical lines (pretest a.x = b.x and skip tests)
n Important: Read Hill 10.4.1
References
n Hill, chapter 10

Contenu connexe

Tendances

Dda line algorithm presentatiion
Dda line algorithm presentatiionDda line algorithm presentatiion
Dda line algorithm presentatiionMuhammadHamza401
 
Bresenhamcircle derivation
Bresenhamcircle derivationBresenhamcircle derivation
Bresenhamcircle derivationMazharul Islam
 
Computer graphics presentation
Computer graphics presentationComputer graphics presentation
Computer graphics presentationLOKENDRA PRAJAPATI
 
Digital Differential Analyzer Line Drawing Algorithm
Digital Differential Analyzer Line Drawing AlgorithmDigital Differential Analyzer Line Drawing Algorithm
Digital Differential Analyzer Line Drawing AlgorithmKasun Ranga Wijeweera
 
Graphics6 bresenham circlesandpolygons
Graphics6 bresenham circlesandpolygonsGraphics6 bresenham circlesandpolygons
Graphics6 bresenham circlesandpolygonsKetan Jani
 
Computer graphics - bresenham line drawing algorithm
Computer graphics - bresenham line drawing algorithmComputer graphics - bresenham line drawing algorithm
Computer graphics - bresenham line drawing algorithmRuchi Maurya
 
Intro to scan conversion
Intro to scan conversionIntro to scan conversion
Intro to scan conversionMohd Arif
 
AU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSE
AU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSEAU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSE
AU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSEThiyagarajan G
 
Unit 2
Unit 2Unit 2
Unit 2ypnrao
 
Output primitives computer graphics c version
Output primitives   computer graphics c versionOutput primitives   computer graphics c version
Output primitives computer graphics c versionMarwa Al-Rikaby
 
DDA (digital differential analyzer)
DDA (digital differential analyzer)DDA (digital differential analyzer)
DDA (digital differential analyzer)Inamul Hossain Imran
 
Lec02 03 rasterization
Lec02 03 rasterizationLec02 03 rasterization
Lec02 03 rasterizationMaaz Rizwan
 
Apoyo guía-12-2°-medio-ppt.-parábola
Apoyo guía-12-2°-medio-ppt.-parábolaApoyo guía-12-2°-medio-ppt.-parábola
Apoyo guía-12-2°-medio-ppt.-parábolaliceo
 
CST 504 Distance in the Cartesian Plane
CST 504 Distance in the Cartesian PlaneCST 504 Distance in the Cartesian Plane
CST 504 Distance in the Cartesian PlaneNeil MacIntosh
 
Line Drawing Algorithms - Computer Graphics - Notes
Line Drawing Algorithms - Computer Graphics - NotesLine Drawing Algorithms - Computer Graphics - Notes
Line Drawing Algorithms - Computer Graphics - NotesOmprakash Chauhan
 

Tendances (20)

Dda algo notes
Dda algo notesDda algo notes
Dda algo notes
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
Dda line algorithm presentatiion
Dda line algorithm presentatiionDda line algorithm presentatiion
Dda line algorithm presentatiion
 
Lect3cg2011
Lect3cg2011Lect3cg2011
Lect3cg2011
 
Bresenhamcircle derivation
Bresenhamcircle derivationBresenhamcircle derivation
Bresenhamcircle derivation
 
Computer graphics presentation
Computer graphics presentationComputer graphics presentation
Computer graphics presentation
 
Digital Differential Analyzer Line Drawing Algorithm
Digital Differential Analyzer Line Drawing AlgorithmDigital Differential Analyzer Line Drawing Algorithm
Digital Differential Analyzer Line Drawing Algorithm
 
Graphics6 bresenham circlesandpolygons
Graphics6 bresenham circlesandpolygonsGraphics6 bresenham circlesandpolygons
Graphics6 bresenham circlesandpolygons
 
Computer graphics - bresenham line drawing algorithm
Computer graphics - bresenham line drawing algorithmComputer graphics - bresenham line drawing algorithm
Computer graphics - bresenham line drawing algorithm
 
Intro to scan conversion
Intro to scan conversionIntro to scan conversion
Intro to scan conversion
 
AU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSE
AU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSEAU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSE
AU QP Answer key NOv/Dec 2015 Computer Graphics 5 sem CSE
 
Unit 2
Unit 2Unit 2
Unit 2
 
Computer graphics 2
Computer graphics 2Computer graphics 2
Computer graphics 2
 
Output primitives computer graphics c version
Output primitives   computer graphics c versionOutput primitives   computer graphics c version
Output primitives computer graphics c version
 
DDA (digital differential analyzer)
DDA (digital differential analyzer)DDA (digital differential analyzer)
DDA (digital differential analyzer)
 
Lec02 03 rasterization
Lec02 03 rasterizationLec02 03 rasterization
Lec02 03 rasterization
 
Apoyo guía-12-2°-medio-ppt.-parábola
Apoyo guía-12-2°-medio-ppt.-parábolaApoyo guía-12-2°-medio-ppt.-parábola
Apoyo guía-12-2°-medio-ppt.-parábola
 
CST 504 Distance in the Cartesian Plane
CST 504 Distance in the Cartesian PlaneCST 504 Distance in the Cartesian Plane
CST 504 Distance in the Cartesian Plane
 
Line Drawing Algorithms - Computer Graphics - Notes
Line Drawing Algorithms - Computer Graphics - NotesLine Drawing Algorithms - Computer Graphics - Notes
Line Drawing Algorithms - Computer Graphics - Notes
 
Computer graphics
Computer graphics   Computer graphics
Computer graphics
 

En vedette

En vedette (12)

7. pemrograman struktur
7. pemrograman struktur7. pemrograman struktur
7. pemrograman struktur
 
Open GL 09 scan conversion
Open GL 09 scan conversionOpen GL 09 scan conversion
Open GL 09 scan conversion
 
Pertemuan10 spywareadwaredanspam
Pertemuan10 spywareadwaredanspamPertemuan10 spywareadwaredanspam
Pertemuan10 spywareadwaredanspam
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
6. pemrograman pointer
6. pemrograman pointer6. pemrograman pointer
6. pemrograman pointer
 
Tarby magazine salafiyah kajen
Tarby magazine  salafiyah kajenTarby magazine  salafiyah kajen
Tarby magazine salafiyah kajen
 
Pcd 11
Pcd 11Pcd 11
Pcd 11
 
Pcd 10
Pcd 10Pcd 10
Pcd 10
 
Pcd 4
Pcd 4Pcd 4
Pcd 4
 
Matlab
MatlabMatlab
Matlab
 
Techarea company profile
Techarea company profileTecharea company profile
Techarea company profile
 
Pengolahan Citra 2 - Pembentukan Citra Digital
Pengolahan Citra 2 - Pembentukan Citra DigitalPengolahan Citra 2 - Pembentukan Citra Digital
Pengolahan Citra 2 - Pembentukan Citra Digital
 

Similaire à Open GL T0074 56 sm1

Output Primitives in Computer Graphics and Multimedia
Output Primitives in Computer Graphics and MultimediaOutput Primitives in Computer Graphics and Multimedia
Output Primitives in Computer Graphics and Multimediasaranyan75
 
Computer Graphics and Multimedia Output primitives
Computer Graphics and Multimedia Output primitivesComputer Graphics and Multimedia Output primitives
Computer Graphics and Multimedia Output primitivessaranyan75
 
Open GL T0074 56 sm4
Open GL T0074 56 sm4Open GL T0074 56 sm4
Open GL T0074 56 sm4Roziq Bahtiar
 
Unit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithmsUnit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithmsAmol Gaikwad
 
Computer graphics notes 2 tutorials duniya
Computer graphics notes 2   tutorials duniyaComputer graphics notes 2   tutorials duniya
Computer graphics notes 2 tutorials duniyaTutorialsDuniya.com
 
Computer Graphics Unit 2
Computer Graphics Unit 2Computer Graphics Unit 2
Computer Graphics Unit 2SanthiNivas
 
Chapter 3 - Part 1 [Autosaved].pptx
Chapter 3 - Part 1 [Autosaved].pptxChapter 3 - Part 1 [Autosaved].pptx
Chapter 3 - Part 1 [Autosaved].pptxKokebe2
 
Bresenham circlesandpolygons
Bresenham circlesandpolygonsBresenham circlesandpolygons
Bresenham circlesandpolygonsaa11bb11
 
Bresenham circles and polygons derication
Bresenham circles and polygons dericationBresenham circles and polygons derication
Bresenham circles and polygons dericationKumar
 
OUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptxOUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptxIndhuMcamphil
 
OUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptxOUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptxAlamelu
 
Computer graphics lab manual
Computer graphics lab manualComputer graphics lab manual
Computer graphics lab manualAnkit Kumar
 
Lecture _Line Scan Conversion.ppt
Lecture _Line Scan Conversion.pptLecture _Line Scan Conversion.ppt
Lecture _Line Scan Conversion.pptGaganvirKaur
 
elementry-objects-CG give great effort on learning for exam
elementry-objects-CG give great effort on learning for examelementry-objects-CG give great effort on learning for exam
elementry-objects-CG give great effort on learning for examtigag49721
 
Open GL 04 linealgos
Open GL 04 linealgosOpen GL 04 linealgos
Open GL 04 linealgosRoziq Bahtiar
 
Lines and curves algorithms
Lines and curves algorithmsLines and curves algorithms
Lines and curves algorithmsMohammad Sadiq
 

Similaire à Open GL T0074 56 sm1 (20)

raster algorithm.pdf
raster algorithm.pdfraster algorithm.pdf
raster algorithm.pdf
 
Output Primitives in Computer Graphics and Multimedia
Output Primitives in Computer Graphics and MultimediaOutput Primitives in Computer Graphics and Multimedia
Output Primitives in Computer Graphics and Multimedia
 
Computer Graphics and Multimedia Output primitives
Computer Graphics and Multimedia Output primitivesComputer Graphics and Multimedia Output primitives
Computer Graphics and Multimedia Output primitives
 
Open GL T0074 56 sm4
Open GL T0074 56 sm4Open GL T0074 56 sm4
Open GL T0074 56 sm4
 
Unit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithmsUnit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithms
 
Computer graphics notes 2 tutorials duniya
Computer graphics notes 2   tutorials duniyaComputer graphics notes 2   tutorials duniya
Computer graphics notes 2 tutorials duniya
 
Computer Graphics Unit 2
Computer Graphics Unit 2Computer Graphics Unit 2
Computer Graphics Unit 2
 
Chapter 3 - Part 1 [Autosaved].pptx
Chapter 3 - Part 1 [Autosaved].pptxChapter 3 - Part 1 [Autosaved].pptx
Chapter 3 - Part 1 [Autosaved].pptx
 
Bresenham circlesandpolygons
Bresenham circlesandpolygonsBresenham circlesandpolygons
Bresenham circlesandpolygons
 
Bresenham circles and polygons derication
Bresenham circles and polygons dericationBresenham circles and polygons derication
Bresenham circles and polygons derication
 
03.Scan Conversion.ppt
03.Scan Conversion.ppt03.Scan Conversion.ppt
03.Scan Conversion.ppt
 
OUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptxOUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptx
 
OUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptxOUTPUT PRIMITIVES.pptx
OUTPUT PRIMITIVES.pptx
 
Computer graphics lab manual
Computer graphics lab manualComputer graphics lab manual
Computer graphics lab manual
 
Lecture _Line Scan Conversion.ppt
Lecture _Line Scan Conversion.pptLecture _Line Scan Conversion.ppt
Lecture _Line Scan Conversion.ppt
 
Computer graphics notes
Computer graphics notesComputer graphics notes
Computer graphics notes
 
Computer graphics notes watermark
Computer graphics notes watermarkComputer graphics notes watermark
Computer graphics notes watermark
 
elementry-objects-CG give great effort on learning for exam
elementry-objects-CG give great effort on learning for examelementry-objects-CG give great effort on learning for exam
elementry-objects-CG give great effort on learning for exam
 
Open GL 04 linealgos
Open GL 04 linealgosOpen GL 04 linealgos
Open GL 04 linealgos
 
Lines and curves algorithms
Lines and curves algorithmsLines and curves algorithms
Lines and curves algorithms
 

Plus de Roziq Bahtiar

static and dynamic routing
static and dynamic routingstatic and dynamic routing
static and dynamic routingRoziq Bahtiar
 
Perintah perintah dasar linux Operating Sistem
Perintah perintah dasar linux Operating SistemPerintah perintah dasar linux Operating Sistem
Perintah perintah dasar linux Operating SistemRoziq Bahtiar
 
Pengantar algoritma pemrograman
Pengantar algoritma pemrogramanPengantar algoritma pemrograman
Pengantar algoritma pemrogramanRoziq Bahtiar
 
Flowchart progrm linear bilangan bulat
Flowchart progrm linear bilangan bulatFlowchart progrm linear bilangan bulat
Flowchart progrm linear bilangan bulatRoziq Bahtiar
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_stringRoziq Bahtiar
 
4. pemrograman fungsi
4. pemrograman fungsi4. pemrograman fungsi
4. pemrograman fungsiRoziq Bahtiar
 
3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrogramanRoziq Bahtiar
 
2. teknik pemilihan dalam_pemrograman
2. teknik pemilihan dalam_pemrograman2. teknik pemilihan dalam_pemrograman
2. teknik pemilihan dalam_pemrogramanRoziq Bahtiar
 
1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_data1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_dataRoziq Bahtiar
 
3 piksel_dan_histogram
 3 piksel_dan_histogram 3 piksel_dan_histogram
3 piksel_dan_histogramRoziq Bahtiar
 
Open GL T0074 56 sm3
Open GL T0074 56 sm3Open GL T0074 56 sm3
Open GL T0074 56 sm3Roziq Bahtiar
 
Open GL T0074 56 sm2
Open GL T0074 56 sm2Open GL T0074 56 sm2
Open GL T0074 56 sm2Roziq Bahtiar
 

Plus de Roziq Bahtiar (19)

static and dynamic routing
static and dynamic routingstatic and dynamic routing
static and dynamic routing
 
Perintah perintah dasar linux Operating Sistem
Perintah perintah dasar linux Operating SistemPerintah perintah dasar linux Operating Sistem
Perintah perintah dasar linux Operating Sistem
 
Pengantar algoritma pemrograman
Pengantar algoritma pemrogramanPengantar algoritma pemrograman
Pengantar algoritma pemrograman
 
Flowchart progrm linear bilangan bulat
Flowchart progrm linear bilangan bulatFlowchart progrm linear bilangan bulat
Flowchart progrm linear bilangan bulat
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_string
 
4. pemrograman fungsi
4. pemrograman fungsi4. pemrograman fungsi
4. pemrograman fungsi
 
3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman
 
2. teknik pemilihan dalam_pemrograman
2. teknik pemilihan dalam_pemrograman2. teknik pemilihan dalam_pemrograman
2. teknik pemilihan dalam_pemrograman
 
1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_data1. variable identifier dan_tipe_data
1. variable identifier dan_tipe_data
 
Alpro tutor
Alpro tutorAlpro tutor
Alpro tutor
 
Pcd 7
Pcd 7Pcd 7
Pcd 7
 
Pcd 5
Pcd 5Pcd 5
Pcd 5
 
Eigen
EigenEigen
Eigen
 
3 piksel_dan_histogram
 3 piksel_dan_histogram 3 piksel_dan_histogram
3 piksel_dan_histogram
 
Pcd 8
Pcd 8Pcd 8
Pcd 8
 
2 pengolahan_citra
 2 pengolahan_citra 2 pengolahan_citra
2 pengolahan_citra
 
Open GL T0074 56 sm3
Open GL T0074 56 sm3Open GL T0074 56 sm3
Open GL T0074 56 sm3
 
Open GL T0074 56 sm2
Open GL T0074 56 sm2Open GL T0074 56 sm2
Open GL T0074 56 sm2
 
Open GL Tutorial06
Open GL Tutorial06Open GL Tutorial06
Open GL Tutorial06
 

Dernier

Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 

Dernier (20)

Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 

Open GL T0074 56 sm1

  • 1. CS 4731: Computer Graphics Lecture 18: Raster Graphics Part 1 Emmanuel Agu
  • 2. 2D Graphics Pipeline Object World Coordinates Object subset window to viewport mapping Object Screen coordinates RasterizationDisplay Applying world window Clipping Simple 2D Drawing Pipeline
  • 3. Rasterization (Scan Conversion) n Convert high-level geometry description to pixel colors in the frame buffer n Example: given vertex x,y coordinates determine pixel colors to draw line n Two ways to create an image: n Scan existing photograph n Procedurally compute values (rendering) Viewport Transformation Rasterization
  • 4. Rasterization n A fundamental computer graphics function n Determine the pixels’ colors, illuminations, textures, etc. n Implemented by graphics hardware n Rasterization algorithms n Lines n Circles n Triangles n Polygons
  • 5. Rasterization Operations n Drawing lines on the screen n Manipulating pixel maps (pixmaps): copying, scaling, rotating, etc n Compositing images, defining and modifying regions n Drawing and filling polygons n Previously glBegin(GL_POLYGON), etc n Aliasing and antialiasing methods
  • 6. Line drawing algorithm n Programmer specifies (x,y) values of end pixels n Need algorithm to figure out which intermediate pixels are on line path n Pixel (x,y) values constrained to integer values n Actual computed intermediate line values may be floats n Rounding may be required. E.g. computed point (10.48, 20.51) rounded to (10, 21) n Rounded pixel value is off actual line path (jaggy!!) n Sloped lines end up having jaggies n Vertical, horizontal lines, no jaggies
  • 7. Line Drawing Algorithm 0 1 2 3 4 5 6 7 8 9 10 11 12 8 7 6 5 4 3 2 1 Line: (3,2) -> (9,6) ? Which intermediate pixels to turn on?
  • 8. Line Drawing Algorithm n Slope-intercept line equation n y = mx + b n Given two end points (x0,y0), (x1, y1), how to compute m and b? (x0,y0) (x1,y1) dx dy 01 01 xx yy dx dy m − − == 0*0 xmyb −=
  • 9. Line Drawing Algorithm n Numerical example of finding slope m: n (Ax, Ay) = (23, 41), (Bx, By) = (125, 96) 5392.0 102 55 23125 4196 == − − = − − = AxBx AyBy m
  • 10. Digital Differential Analyzer (DDA): Line Drawing Algorithm (x0,y0) (x1,y1) dx dy §Walk through the line, starting at (x0,y0) §Constrain x, y increments to values in [0,1] range §Case a: x is incrementing faster (m < 1) §Step in x=1 increments, compute and round y §Case b: y is incrementing faster (m > 1) §Step in y=1 increments, compute and round x m<1 m>1 m=1
  • 11. DDA Line Drawing Algorithm (Case a: m < 1) (x0, y0) x = x0 + 1 y = y0 + 1 * m Illuminate pixel (x, round(y)) x = x + 1 y = y + 1 * m Illuminate pixel (x, round(y)) … Until x == x1 (x1,y1) x = x0 y = y0 Illuminate pixel (x, round(y)) myy kk +=+1
  • 12. DDA Line Drawing Algorithm (Case b: m > 1) y = y0 + 1 x = x0 + 1 * 1/m Illuminate pixel (round(x), y) y = y + 1 x = x + 1 /m Illuminate pixel (round(x), y) … Until y == y1 x = x0 y = y0 Illuminate pixel (round(x), y) (x1,y1) (x0,y0) m xx kk 1 1 +=+
  • 13. DDA Line Drawing Algorithm Pseudocode compute m; if m < 1: { float y = y0; // initial value for(int x = x0;x <= x1; x++, y += m) setPixel(x, round(y)); } else // m > 1 { float x = x0; // initial value for(int y = y0;y <= y1; y++, x += 1/m) setPixel(round(x), y); } n Note: setPixel(x, y) writes current color into pixel in column x and row y in frame buffer
  • 14. Line Drawing Algorithm Drawbacks n DDA is the simplest line drawing algorithm n Not very efficient n Round operation is expensive n Optimized algorithms typically used. n Integer DDA n E.g.Bresenham algorithm (Hill, 10.4.1) n Bresenham algorithm n Incremental algorithm: current value uses previous value n Integers only: avoid floating point arithmetic n Several versions of algorithm: we’ll describe midpoint version of algorithm
  • 15. Bresenham’s Line-Drawing Algorithm n Problem: Given endpoints (Ax, Ay) and (Bx, By) of a line, want to determine best sequence of intervening pixels n First make two simplifying assumptions (remove later): n (Ax < Bx) and n (0 < m < 1) n Define n Width W = Bx – Ax n Height H = By - Ay (Bx,By) (Ax,Ay)
  • 16. Bresenham’s Line-Drawing Algorithm n Based on assumptions: n W, H are +ve n H < W n As x steps in +1 increments, y incr/decr by <= +/–1 n y value sometimes stays same, sometimes increases by 1 n Midpoint algorithm determines which happens
  • 17. Bresenham’s Line-Drawing Algorithm (x0, y0) M = (x0 + 1, Y0 + ½) Build equation of line through and compare to midpoint … (x1,y1) What Pixels to turn on or off? Consider pixel midpoint M(Mx, My) M(Mx,My) If midpoint is above line, y stays same If midpoint is below line, y increases + 1
  • 18. Bresenham’s Line-Drawing Algorithm n Using similar triangles: n H(x – Ax) = W(y – Ay) n -W(y – Ay) + H(x – Ax) = 0 n Above is ideal equation of line through (Ax, Ay) and (Bx, By) n Thus, any point (x,y) that lies on ideal line makes eqn = 0 n Double expression (to avoid floats later), and give it a name, F(x,y) = -2W(y – Ay) + 2H(x – Ax) W H Axx Ayy = − − (Bx,By) (Ax,Ay) (x,y)
  • 19. Bresenham’s Line-Drawing Algorithm n So, F(x,y) = -2W(y – Ay) + 2H(x – Ax) n Algorithm, If: n F(x, y) < 0, (x, y) above line n F(x, y) > 0, (x, y) below line n Hint: F(x, y) = 0 is on line n Increase y keeping x constant, F(x, y) becomes more negative
  • 20. Bresenham’s Line-Drawing Algorithm n Example: to find line segment between (3, 7) and (9, 11) F(x,y) = -2W(y – Ay) + 2H(x – Ax) = (-12)(y – 7) + (8)(x – 3) n For points on line. E.g. (7, 29/3), F(x, y) = 0 n A = (4, 4) lies below line since F = 44 n B = (5, 9) lies above line since F = -8
  • 21. Bresenham’s Line-Drawing Algorithm (x0, y0) M = (x0 + 1, Y0 + ½) If F(Mx,My) < 0, M lies above line, shade lower pixel (same y as before) … (x1,y1) What Pixels to turn on or off? Consider pixel midpoint M(Mx, My) M(Mx,My) If F(Mx,My) > 0, M lies below line, shade upper pixel
  • 22. Can compute F(x,y) incrementally Initially, midpoint M = (Ax + 1, Ay + ½) F(Mx, My) = -2W(y – Ay) + 2H(x – Ax) = 2H – W Can compute F(x,y) for next midpoint incrementally If we increment x + 1, y stays same, compute new F(Mx,My) F(Mx, My) += 2H If we increment x +1, y + 1 F(Mx, My) -= 2(W – H)
  • 23. Bresenham’s Line-Drawing Algorithm Bresenham(IntPoint a, InPoint b) { // restriction: a.x < b.x and 0 < H/W < 1 int y = a.y, W = b.x – a.x, H = b.y – a.y; int F = 2 * H – W; // current error term for(int x = a.x; x <= b.x; x++) { setpixel at (x, y); // to desired color value if F < 0 F = F + 2H; else{ Y++, F = F + 2(H – W) } } } n Recall: F is equation of line
  • 24. Bresenham’s Line-Drawing Algorithm n Final words: we developed algorithm with restrictions 0 < m < 1 and Ax < Bx n Can add code to remove restrictions n To get the same line when Ax > Bx (swap and draw) n Lines having m > 1 (interchange x with y) n Lines with m < 0 (step x++, decrement y not incr) n Horizontal and vertical lines (pretest a.x = b.x and skip tests) n Important: Read Hill 10.4.1