Lecture 6 of 41 Scan Conversion 1 of

  • Slides: 28
Download presentation
Lecture 6 of 41 Scan Conversion 1 of 2: Midpoint Algorithm for Lines and

Lecture 6 of 41 Scan Conversion 1 of 2: Midpoint Algorithm for Lines and Ellipses William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http: //bit. ly/h. Gv. Xl. H / http: //bit. ly/e. Vizr. E Public mirror web site: http: //www. kddresearch. org/Courses/CIS 636 Instructor home page: http: //www. cis. ksu. edu/~bhsu Readings: Today: Sections 2. 5. 1, 3. 1, Eberly 2 e – see http: //bit. ly/ie. Uq 45 This week: Brown CS 123 slides on Scan Conversion – http: //bit. ly/hfb. F 0 D Wayback Machine archive of Brown CS 123 slides: http: //bit. ly/g. Ah. Jbh CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Lecture Outline l l l Reading for Last Class: Section 2. 3 (esp. 2.

Lecture Outline l l l Reading for Last Class: Section 2. 3 (esp. 2. 3. 7), 2. 6, 2. 7, Eberly 2 e Reading for Today: § 2. 5. 1, 3. 1 Eberly 2 e Reading for Next Class: § 2. 3. 5, 2. 4, 3. 1. 3, Eberly 2 e Last Time: View Volume Specification and Viewing Transformation CG Basics: First of Three Tutorials on Open. GL (Three Parts) 1. Open. GL & GL Utility Toolkit (GLUT) – V. Shreiner 2. Basic rendering – V. Shreiner 3. 3 -D viewing setup – E. Angel l Today: Scan Conversion (aka Rasterization) Lines Ø Incremental algorithm Ø Bresenham’s algorithm & midpoint line algorithm Circles and Ellipses l Next Time: More Scan Conversion & Intro to Clipping CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Where We Are CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing

Where We Are CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Review: CTM for “Polygons-to-Pixels” Pipeline Adapted from slides © 1997 – 2010 van Dam

Review: CTM for “Polygons-to-Pixels” Pipeline Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Review: Lab 1 a & Ne. He Tutorials on Game. Dev CIS 536/636 Introduction

Review: Lab 1 a & Ne. He Tutorials on Game. Dev CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Review: Coordinate Spaces & Transformation Matrices CIS 536/636 Introduction to Computer Graphics Lecture 6

Review: Coordinate Spaces & Transformation Matrices CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Scan Converting Lines Adapted from slides © 1997 – 2010 van Dam et al.

Scan Converting Lines Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

What Is Scan Conversion? Adapted from slides © 1997 – 2010 van Dam et

What Is Scan Conversion? Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Finding Next Pixel Adapted from slides © 1997 – 2010 van Dam et al.

Finding Next Pixel Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Vertical Distance Adapted from slides © 1997 – 2010 van Dam et al. ,

Vertical Distance Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Strategy 1: Incremental Algorithm [1] Adapted from slides © 1997 – 2010 van Dam

Strategy 1: Incremental Algorithm [1] Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Strategy 1: Incremental Algorithm [2] Adapted from slides © 1997 – 2010 van Dam

Strategy 1: Incremental Algorithm [2] Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Strategy 1: Incremental Algorithm [3] Example Code & Problems Adapted from slides © 1997

Strategy 1: Incremental Algorithm [3] Example Code & Problems Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Strategy 2: Midpoint Line Algorithm [1] Adapted from slides © 1997 – 2010 van

Strategy 2: Midpoint Line Algorithm [1] Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Strategy 2: Midpoint Line Algorithm [2] Adapted from slides © 1997 – 2010 van

Strategy 2: Midpoint Line Algorithm [2] Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Strategy 2: Midpoint Line Algorithm [3] Adapted from slides © 1997 – 2010 van

Strategy 2: Midpoint Line Algorithm [3] Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Line Equations and Properties Adapted from slides © 1997 – 2010 van Dam et

Line Equations and Properties Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Decision Variable Adapted from slides © 1997 – 2010 van Dam et al. ,

Decision Variable Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

East Neighbor (E) Case Adapted from slides © 1997 – 2010 van Dam et

East Neighbor (E) Case Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Northeast Neighbor (NE) Case Adapted from slides © 1997 – 2010 van Dam et

Northeast Neighbor (NE) Case Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Midpoint Algorithm [1]: Forward Differences Adapted from slides © 1997 – 2010 van Dam

Midpoint Algorithm [1]: Forward Differences Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Midpoint Algorithm [2]: Initialization and Normalization Adapted from slides © 1997 – 2010 van

Midpoint Algorithm [2]: Initialization and Normalization Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Bresenham’s Midpoint Line Algorithm: Pseudocode Adapted from slides © 1997 – 2010 van Dam

Bresenham’s Midpoint Line Algorithm: Pseudocode Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Preview: Drawing Circles, Versions 1 & 2 Adapted from slides © 1997 – 2010

Preview: Drawing Circles, Versions 1 & 2 Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Preview: Drawing Circles, Version 3 Adapted from slides © 1997 – 2010 van Dam

Preview: Drawing Circles, Version 3 Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Preview: Using The Symmetry Adapted from slides © 1997 – 2010 van Dam et

Preview: Using The Symmetry Adapted from slides © 1997 – 2010 van Dam et al. , Brown University http: //bit. ly/hi. St 0 f Reused with permission. CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Summary l Lab 1 a: Based on First of Three Tutorials on Open. GL

Summary l Lab 1 a: Based on First of Three Tutorials on Open. GL (Three Parts) l Lecture 5: Viewing 3 of 4 – Graphics Pipeline (§ 2. 3. 2 - 2. 3. 7, pp. 48 -66) l See Also: CG Basics 1 -2 CG Basics 1: Mathematical Foundations CG Basics 2: Open. GL Primer 1 of 3 (in greater detail) l Today: Scan Conversion (aka Rasterization) Lines Ø Incremental algorithm Ø Symmetries (8) and reduction to two-case analysis: E vs. NE Ø Decision variable and method of forward differences Ø (Bresenham’s) midpoint line algorithm Circles and Ellipses l Next Time: More Scan Conversion & Intro to Clipping Polygons: scan line interpolation Clipping basics: 2 -D problem definition and examples CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University

Terminology l Picture elements (pixels) l Scan Conversion (aka Rasterization) Given: geometric object (e.

Terminology l Picture elements (pixels) l Scan Conversion (aka Rasterization) Given: geometric object (e. g. , line segment, projected polygon) Decide: what pixels to light (turn on; later, color/shade) Basis: what part of pixels crossed by object l Issues (Reasons why Scan Conversion is Nontrivial Problem) Aliasing (e. g. , jaggies) – discontinuities in lines Cracks: discontinuities in “polygon” mesh l Line Drawing Incremental algorithm – uses rounding, floating point arithmetic Forward differences – precalculated amounts to add to running total Midpoint line algorithm – uses forward differences Ø For lines: Bresenham’s algorithm Ø For circles and ellipses CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 Computing & Information Sciences Kansas State University