cg - output primitives

56
Output Primitives Organized By: Vinay Arora Assistant Professor, CSED Thapar University, Patiala

Upload: vinay-arora

Post on 06-May-2015

2.960 views

Category:

Education


1 download

TRANSCRIPT

Page 1: CG - Output Primitives

Output Primitives

Organized By: Vinay Arora

Assistant Professor, CSED

Thapar University, Patiala

Page 2: CG - Output Primitives

Vinay Arora

CSED

Disclaimer

This is NOT A COPYRIGHT MATERIAL

Content has been taken mainly from the following books & websites:

Computer Graphics C Version By Donald Hearn, M. Pauline BakerSchaum's outline of theory and problems of computer graphics By Zhigang Xiang, Roy A. Plastock

Computer Graphics: Principles and Practice By James D. Foley

http://en.wikipedia.org/wiki/Computer_graphics

http://www.howstuffworks.com/3dgraphics.htm

http://www.graphics.cornell.edu/online/tutorial/

http://www.cgarena.com/

etc…

Page 3: CG - Output Primitives

Vinay Arora

CSED

Object Model

Page 4: CG - Output Primitives

Vinay Arora

CSED

Primitives

� 2-D Drawing or a 3-D Object consist of Graphical Primitives such as

Points, Lines, Circles & Filled Polygons.

� Graphics System or the Application Program convert each primitive

from its geometric definition into a set of Pixels that make up the

primitive in the Image Space.

� This Conversion is referred to as SCAN CONVERSION or

RASTERIZATION.

Page 5: CG - Output Primitives

Vinay Arora

CSED

Definitions

� RASTERIZATION: Process of determining which pixels provide the best

approximation to a desired line on the screen.

� SCAN CONVERSION: Combination of rasterization and generating the

picture in scan line order.

Page 6: CG - Output Primitives

Vinay Arora

CSED

General Requirement

� Straight lines must appear as straight lines.

� They must start and end accurately.

� Lines should have constant brightness along their length.

� Lines should drawn rapidly.

Page 7: CG - Output Primitives

Vinay Arora

CSED

Straight lines must appear as Straight

Lines

Page 8: CG - Output Primitives

Vinay Arora

CSED

� For horizontal, vertical and 45º lines, the choice of raster elements is

obvious. This lines exhibit constant brightness along the length:

Page 9: CG - Output Primitives

Vinay Arora

CSED

� For any other orientation the choice is more difficult:

Page 10: CG - Output Primitives

Vinay Arora

CSED

Intersection Points

� In general Line doesn’t pass through Intersection Points.

� Points are very close & dense that’s why – it appears as Straight Line.

� We have to find Addressable Pixels.

� Points Distributed over the line & the most closest to the line.

� No Addressable Pixel is having any Floating Point number/value.

Page 11: CG - Output Primitives

Vinay Arora

CSED

Jaggies

Page 12: CG - Output Primitives

Vinay Arora

CSED

Staircase Effect

Page 13: CG - Output Primitives

Vinay Arora

CSED

Staircase Effect

Page 14: CG - Output Primitives

Vinay Arora

CSED

Direct Scan Conversion

Page 15: CG - Output Primitives

Vinay Arora

CSED

DDA – Digital Differential Analyzer

Page 16: CG - Output Primitives

Vinay Arora

CSED

DDA – Pseudo code

Page 17: CG - Output Primitives

Vinay Arora

CSED

Section of Display Screen in case of Positive

Slope Line

Page 18: CG - Output Primitives

Vinay Arora

CSED

Section of Display Screen in case of

Negative Slope Line

Page 19: CG - Output Primitives

Vinay Arora

CSED

Screen Grid showing a Pixel in column xk on scan line yk that is to be

plotted along the path of line with slope 0 < m <1

Page 20: CG - Output Primitives

Vinay Arora

CSED

Distance between pixel positions & the line y

coordinate at sampling position xk+1

Page 21: CG - Output Primitives

Vinay Arora

CSED

Bresenham’s Algorithm

They coordinate on mathematical line at pixel column position xk+l is calculated as

Page 22: CG - Output Primitives

Vinay Arora

CSED

Bresenham’s Algorithm (Conti…)

where term yk+1 - yk is either 0 or 1, depending on the sign of parameter pk.

Page 23: CG - Output Primitives

Vinay Arora

CSED

Algorithm

Page 24: CG - Output Primitives

Vinay Arora

CSED

Line Drawing

Page 25: CG - Output Primitives

Vinay Arora

CSED

Example

Page 26: CG - Output Primitives

Vinay Arora

CSED

Solution

Page 27: CG - Output Primitives

Vinay Arora

CSED

Representation of Circle

Page 28: CG - Output Primitives

Vinay Arora

CSED

Representation of Circle

Page 29: CG - Output Primitives

Vinay Arora

CSED

Mid Point Representation

Page 30: CG - Output Primitives

Vinay Arora

CSED

Mid Point Representation

Page 31: CG - Output Primitives

Vinay Arora

CSED

Mid Point Circle Algo. – Basic Steps

Page 32: CG - Output Primitives

Vinay Arora

CSED

Mid Point Circle Algo. – Basic Steps

Page 33: CG - Output Primitives

Vinay Arora

CSED

Mid Point Circle Algo. – Basic Steps

Page 34: CG - Output Primitives

Vinay Arora

CSED

Mid Point Circle Algorithm

Page 35: CG - Output Primitives

Vinay Arora

CSED

Mid Point Circle Algorithm (Contd)

Page 36: CG - Output Primitives

Vinay Arora

CSED

Example

Page 37: CG - Output Primitives

Vinay Arora

CSED

Ellipse

Page 38: CG - Output Primitives

Vinay Arora

CSED

Ellipse (Contd.)

Page 39: CG - Output Primitives

Vinay Arora

CSED

General Equation

Page 40: CG - Output Primitives

Vinay Arora

CSED

Scan Converting an Ellipse

Page 41: CG - Output Primitives

Vinay Arora

CSED

Equation for Ellipse

Page 42: CG - Output Primitives

Vinay Arora

CSED

Equation for Ellipse – For Region 1

Page 43: CG - Output Primitives

Vinay Arora

CSED

Scan Line for Polygon Filling

Page 44: CG - Output Primitives

Vinay Arora

CSED

Scan Line for Polygon Filling

Page 45: CG - Output Primitives

Vinay Arora

CSED

Selecting Vertex

Page 46: CG - Output Primitives

Vinay Arora

CSED

Formula for Next Value for x

Page 47: CG - Output Primitives

Vinay Arora

CSED

Saving Intersection Points

Page 48: CG - Output Primitives

Vinay Arora

CSED

Color Boundaries for Boundary Fill

Procedure

Page 49: CG - Output Primitives

Vinay Arora

CSED

4-Connected & 8-Connected

Page 50: CG - Output Primitives

Vinay Arora

CSED

Boundary Fill Algorithm

Page 51: CG - Output Primitives

Vinay Arora

CSED

Partially Filled in 4 - Connected

Page 52: CG - Output Primitives

Vinay Arora

CSED

Boundary Fill across Pixel spans for a

4 – connected area

Page 53: CG - Output Primitives

Vinay Arora

CSED

Boundary Fill across Pixel spans for a

4 – connected area

Page 54: CG - Output Primitives

Vinay Arora

CSED

Flood Fill

Page 55: CG - Output Primitives

Vinay Arora

CSED

Flood Fill Algorithm

Page 56: CG - Output Primitives

Vinay Arora

CSED

Thnx…