This page contains Syllabus of Computer Graphics of CSIT.

Title | Computer Graphics |

Short Name | CG |

Course code | CSC209 |

Nature of course | Theory + Lab |

Third Semester | |

Full marks | 60 + 20 + 20 |

Pass marks | 24 + 8 + 8 |

Credit Hrs | 3 |

Elective/Compulsary | Compulsary |

### Course Description

**Course Description: **The course coversconcepts of graphics hardware, software, and

applications,data structures for representing 2D and 3D geometric objects, drawing algorithms

for graphical objects, techniques for representing and manipulating geometric objects,

illumination and lighting models, and concept of virtual reality.

**Course Objectives:** The objective of this course is to understand the theoretical foundation as

wellas the practical applications of 2D and 3D graphics.

### Units and Unit Content

- 1. Introduction of Computer Graphics
- teaching hours: 3 hrs
1.1 A Brief Overview of Computer Graphics, Areas of Applications.

1.2 Graphics Hardware: Display Technology, Architecture of Raster-Scan

Displays,Vector Displays, Display Processors, Hard copy device. Input Devices.

1.3 Graphics Software: Software standards, Need of machine independent graphics

language.

- 2. Scan Conversion Algorithm
- teaching hours: 6 hrs
2.1 Scan Converting a Point and a straight Line: DDA Line Algorithm, Bresenham’s Line

Algorithm

2.2 Scan Converting Circle and Ellipse :Mid Point Circle and Ellipse Algorithm

2.3 Area Filling: Scan Line Polygon fill Algorithm, Inside-outside Test, Scan line fill of

Curved Boundary area, Boundary-fill and Flood-fill algorithm

- 3. Two-Dimensional Geometric Transformations
- teaching hours: 5 hrs
3.1 Two-Dimensional translation, Rotation, Scaling, Reflection and Shearing

3.2 Homogeneous Coordinate and 2D Composite Transformations. Transformation

between Co-ordinate Systems.

3.3 Two Dimensional Viewing: Viewing pipeline, Window to viewport coordinate

transformation

3.4 Clipping: Point, Lines(Cohen Sutherland line clipping, Liang-Barsky Line Clipping) ,

Polygon Clipping(Sutherland Hodgeman polygon clipping)

- 4. Three-Dimensional Geometric Transformation
- teaching hours: 5 hrs
4.1 Three-Dimensional translation, Rotation, Scaling, Reflection and Shearing

4.2 Three-Dimensional Composite Transformations

4.3 Three-Dimensional Viewing: Viewing pipeline, world to screen viewing

transformation, Projection concepts(Orthographic, parallel, perspective projections)

- 5. 3D Objects Representation
- teaching hours: 7 hrs
5.1 Representing Surfaces: Boundary and Space partitioning

5.1.1 Polygon Surface: Polygon tables , Surface normal and Spatial orientation of surfaces, Plane equations, Polygon meshes5.1.2 Wireframe Representation5.1.3 Blobby Objects5.2 Representing Curves: Parametric Cubic Curves, Spline Representation, Cubic spline interpolation, Hermite Curves, Bezier and B-spline Curve and surface5.3 Quadric Surface: Sphere and Ellipsoid- 6. Solid Modeling
- teaching hours: 4 hrs
6.1 Sweep ,Boundary and Spatial-Partitioning Representation

6.2 Binary Space Partition Trees (BSP)

6.3 Octree Representation

- 7. Visible Surface Detections
- teaching hours: 5 hrs
7.1 Image Space and Object Space Techniques

7.2 Back Face Detection, Depth Buffer (Z-buffer), A-Buffer and Scan-Line Algorithms.

7.3 Depth Sorting Method (Painter’s Algorithm)

7.4 BSP tree Method, Octree and Ray Tracing

- 8. Illumination Models and Surface Rendering Techniq
- teaching hours: 5 hrs
8.1 Basic Illumination Models: Ambient light, Diffuse reflection, Specular reflection and

Phong model

8.2 Intensity attenuation and Color consideration ,Transparency, Shadows

8.3 Polygon Rendering Methods : Constant intensity shading, Gouraud shading , Phong

Shading and Fast Phong Shading

- 9. Introduction to Virtual Reality
- teaching hours: 2 hrs
9.1 Concept of Virtual reality

9.2 Virtual Reality Components of VR System, Types of VR System, 3D Position

Trackers, Navigation and Manipulation Interfaces

9.3 Application of VR

- 10. Introduction to OpenGL
- teaching hours: 3 hrs
1.1 Introduction, Callback functions, Color commands, Drawings pixels, lines, polygons

using OpenGL, Viewing and Lighting

### Lab and Practical works

**Laboratory Works:**

Students should be able to write program on the most of the contents listed in syllabus, using any

known programming language (C, C++) in previous semester. Majorly, students should on

computer graphics primitives like line, circle and ellipse drawing algorithm to hidden surface

removal techniques. After completing the basic lab session the students must be able to design

some project works like game, 3D rotation, screen saver etc. Some sample lab sessions can be as

following:-

**Unit 2 : Scan Conversions Algorithm (10 Hours)**

- Study of Fundamental Graphics Functions
- Implementation of Line drawing algorithms: DDA Algorithm, Bresenham's Algorithm
- Implementation of Circle drawing algorithms: Bresenham's Algorithm, Mid-Point Algorithm

**Unit 3 : Two-Dimensional Geometric Transformations ( 4 Hours)**

- Simulation of 2D transformation, Rotation and Scaling
- Write a program to implement Cohen Sutherland line clipping algorithm

**Unit 4 : Three-Dimensional Geometric Transformation (12 Hours)**

- Write a program to perform shear transformation on a rectangle
- Write a program to perform 2D Transformation on a line
- Write a program to draw a car using in build graphics function and translate it from bottom left corner to right bottom corner of screen
- Write a program to draw a cube using in build library function and perform 3D transformations

Translations in x, y, z directions

Rotation by angle 450 about z axis, rotation by 600 about y-axis in succession.

Scaling in x-direction by a factor of 2, scaling in y- direction by a factor of 3

**Unit 5 : 3D Objects Representation ( 4 Hours)**

- Implementation of polygon tables.
- Write a program to draw Bezier curve, sphere

**Unit 7 : Visible Surface Detections (10 Hours)**

- Back face detection:- Implementation of Depth Buffer, A – Buffer, Scan-Line algorithm
- Implementation of rotation of 3D cube.

**Unit 10 : Introduction to OpenGL (5 Hours)**

- Event driven programming
- Point, Line and Polygon
- Drawing 3D objects