Course Title: Computer Graphics
Course Code: CoSc3072
Credit hours: 3 (Lec 2, Lab 2)
Prerequisites: CoSc2092
COURSE DESCRIPTION
Computer graphics is the study of generation of graphic images as diverse as line drawings and
realistic rendering of natural objects. This course covers the key ingredients of computer
graphics.
The subject matter of computer graphics in the overall framework is covered. Mathematical and
algorithmic solutions are emphasized. The course enables students to realize the theoretical
concepts behind such graphics applications developed for scientific, design, manufacturing or
commercial purposes. The course also introduces students to hardware and software systems
used in the production of graphic images.
COURSE OBJECTIVES:
After the completion of this course the student will be able to
• Explain the basics of computer graphics, different graphics systems and applications of
computer graphics.
• Discuss various algorithms for scan conversion and filling of basic objects and their
comparative analysis.
• Apply of geometric transformations on graphics objects and their application in composite
form.
• Extract scene with different clipping methods and its transformation to graphics display device.
• Explore projections and visible surface detection techniques for display of 3D scene on 2D
screen.
• Render projected objects to naturalize the scene in 2D view and use of illumination models for
this.
Course Content
Chapter 1. Introduction to computer Graphics
1.1. A survey of computer Graphics
1.1.1. background to computer graphics
1.1.2. definition of computer graphics
1.1.3. definition of basic concepts in computer graphics
1.1.3.1. Pixel, scan conversion, resolution, aspect ratio, dpi
1.1.4. application areas of computer graphics
1.2. Graphics primitives
1.2.1. overview of image representation - geometric representation
1.2.2. overview of image placement - transformation
1.2.3. methods of color specification
1.2.4. image presentation devices
1.2.5. image files
1.2.6. color representation methods in computer graphics
1.2.7. setting the color attributes of pixels
Chapter 2. Overview of Graphics systems
2.1. Video display Devices
2.2. Raster-scan systems
2.3. Random-scan systems
2.4. Interactive devices
2.5. Graphics software
Chapter 3. Scan Conversion
3.1. The concept of Scan-conversion or rasterization
3.2. Scan-Converting a Point
3.2.1. Define a point
3.2.2. C++ implementation
3.3. Scan-Converting a Line
3.4. Methods of Scan-Converting a Line
3.4.1. Using the equation of line
3.4.2. C++ implementation
3.4.3. The Digital Differential Algorithm (DDA)
3.4.4. C++ implementation
3.4.5. Bresenham's Line Algorithm
3.4.6. C++ implementation
3.5. Scan Converting a Circle
3.5.1. Defining a circle
3.5.2. Bresenham's Circle Algorithm
3.5.3. Midpoint Circle Algorithm
3.5.4. Arbitrarily Centered Circles
3.6. Scan-Converting an Ellipse
3.6.1. Methods of Defining an Ellipse
3.6.2. Ellipse Axis Rotation
3.6.3. Midpoint Ellipse Algorithm
3.6.3.1. C++ Implementation
3.7. Scan-Converting Arcs and Sectors
3.7.1. Defining arcs and sectors
3.7.2. C++ implementation
3.8. Scan-Converting a Polygon
3.8.1. Defining a Polygon
3.8.2. Algorithms
3.8.3. Polygon Filling Algorithms
3.8.4. C++ implementation
3.9. Scan-Converting a Rectangle
3.9.1. Defining Rectangle
3.9.2. C++ implementation
3.10. Region filling
3.10.1. Region filling algorithms
3.10.1.1. boundary-fill algorithm
3.10.1.2. flood fill-algorithm
3.10.1.3. scan line algorithm
3.11. Scan-Converting a Character
3.11.1. Definition of character, character size, type, unit of measurement, appearance
3.11.2. The concept of frame buffer, mask, image resolution
3.11.3. Character display
3.11.4. Approaches to character representation
3.11.5. Aliasing Effects and Anti-aliasing
Chapter 4. Transformations
4.1. Two- Dimensional Transformation
4.1.1. Geometric and graphical Transformations
4.1.1.1. Translation
4.1.1.2. Scaling
4.1.1.3. Shearing
4.1.1.4. Rotation
4.1.1.5. Reflection
4.2. Three-Dimensional Transformation
4.2.1. Three-Dimensional Geometry
4.2.2. Three-Dimensional Transformations
Chapter 5. Two-Dimensional Clipping
5.1. Point clipping
5.2. Line clipping
Chapter 6. Projections
6.1. Introduction
6.2. Parallel Projection
6.3. Perspective projection
Computer Graphics Laboratory Outline
Week1 Introduction to OpenGL
Rendering pipeline
Libraries
Include files
Setting up compiler
Compiling OpenGL/GLUT programs
Week2 Implementation for drawing 2D primitives
Points, lines, Circle, polygon
Week3 2D transformation
Translation
Rotation
Reflection
Window viewport
Week4 Composite 2D transformation
Week5 Line Clipping
Week7 3D transformation
Translation
Rotation
Scaling
Week8 3D projection
Parallel
Perspective
Week9 Image editing and Manipulation
Week10 2D animation
DELIVERY METHODS:
• Lectures
• Demonstrations, and Lab Sessions
• Assignments
Assessment Methods
Assessment Method Weight
Written Test (2) 20
Assignments 20
Presentation 10
Final Exam 50
References:
• D. P. Kothari,G. K. Awari, D. D. Shrimankar, A. R. Bhende, Mathematics for Computer
Graphics
and Game Programming,New Age International (P) Ltd. Publishers, , 2019
• John f. Hughes andries van dam morgan mcguire david f. Sklar James d. Foley steven k. Feiner
kurt
Akeley, Computer Graphics Principles and Practice, 3rd ed, Addison-Wesley, 2014
• Steve Marschner. Fundamentals of Computer Graphics. 4th ed. CRC Press, 2016
• Donald Hearn, Computer Graphics, 2nd
ed, 2000