Skip to content

Amey-Thakur/COMPUTER-GRAPHICS-AND-COMPUTER-GRAPHICS-LAB

Repository files navigation

University of Mumbai

Computer Graphics and Computer Graphics Lab

CSC404 & CSL402 · Semester IV · Computer Engineering

License: CC BY 4.0 University Institution Curated by

A comprehensive academic resource for Computer Graphics (CG) and Computer Graphics Laboratory (CG Lab), covering fundamental graphics algorithms, 2D/3D transformations, rendering techniques, and practical implementations using graphics programming.


Overview  ·  Contents  ·  Reference Books  ·  The Wall  ·  Personal Preparation  ·  Assignments  ·  Practice Test  ·  Laboratory  ·  Project  ·  Syllabus  ·  Usage Guidelines  ·  License  ·  About  ·  Acknowledgments


Overview

Computer Graphics (CSC404) and Computer Graphics Lab (CSL402) are core subjects in the Second Year (Semester IV) of the Computer Engineering curriculum at the University of Mumbai. These courses provide foundational knowledge of graphics systems, algorithms for drawing primitives, transformations, and the mathematical principles underlying visual computing.

Course Topics

The curriculum encompasses several key domains in computer graphics:

  • Graphics Primitives: Line drawing algorithms (DDA, Bresenham's), circle and ellipse generation
  • Scan Conversion: Polygon filling, boundary fill, flood fill algorithms
  • 2D Transformations: Translation, rotation, scaling, reflection, shearing
  • 3D Transformations: 3D coordinate systems, projection techniques (parallel, perspective)
  • Viewing & Clipping: Window-to-viewport mapping, line clipping (Cohen-Sutherland), polygon clipping
  • Curves and Surfaces: Bezier curves, B-spline curves, parametric representations
  • Hidden Surface Removal: Z-buffer algorithm, painter's algorithm, BSP trees
  • Illumination Models: Ambient, diffuse, specular lighting, Phong shading

Repository Purpose

This repository represents a curated collection of study materials, reference books, assignments, and personal preparation notes compiled during my academic journey. The primary motivation for creating and maintaining this archive is simple yet profound: to preserve knowledge for continuous learning and future reference.

As I progress in my career, I recognize that computer graphics fundamentals remain essential for game development, visualization, virtual reality, and multimedia applications. This repository serves as my intellectual reference point: a resource I can return to for relearning concepts, reviewing methodologies, and strengthening understanding when needed.

Why this repository exists:

  • Knowledge Preservation: To maintain organized access to comprehensive study materials beyond the classroom.
  • Continuous Learning: To support lifelong learning by enabling easy revisitation of fundamental graphics concepts.
  • Academic Documentation: To authentically document my learning journey through CG and CG Lab.
  • Community Contribution: To share these resources with students and learners who may benefit from them.

All materials in this repository were gathered, organized, and documented by me during my undergraduate studies (2018-2022) as part of my coursework and exam preparation.


Repository Contents

Reference Books

This collection includes comprehensive reference materials covering all major topics:

# Resource Focus Area
1 CG Techmax Complete syllabus coverage
2 CG Notes Comprehensive lecture notes by Amey Thakur
3 CG-I Graphics fundamentals and primitives
4 CG-II Transformations and viewing
5 CG-III 3D graphics and projections
6 CG-IV Advanced topics and rendering
7 CG Question Bank Practice questions for exam preparation
8 CG VIVA Oral examination preparation guide
9 SEM - IV Books List Curated book recommendations

The Wall

Collaborative Study Notes by Amey & Mega

Amey Thakur
Amey Thakur
Mega Satish
Mega Satish

Important

💝 Special Thanks: A heartfelt thank you to Mega for her constant support, patience, and clarity throughout this journey. Learning alongside her made a real difference, not only because she explained concepts so clearly, but because she truly cared about understanding them together. Her thoughtful approach to teaching, openness to discussion, and steady encouragement turned challenges into meaningful learning moments. This work reflects the growth that came from learning side by side. Thank you, Mega, for everything you shared and taught along the way.

The Wall - Notes Authored by MEGA SATISH

Comprehensive chapter-wise notes curated by Mega Satish, covering all essential topics:

Chapter Resource Topics Covered
1 CG Chapter - 1 Introduction to computer graphics and graphics systems

Note

COVID-19 Impact: This coursework was completed during the COVID-19 pandemic in 2020. Due to the nationwide lockdown and the sudden transition to online learning, several planned laboratory sessions and collaborative note-taking activities could not be carried out as originally intended. Despite these challenges, efforts were made to adapt and preserve as much work as possible. The limited chapter notes in this section reflect the disruption caused by the pandemic, rather than a lack of effort or commitment.


Personal Preparation

Study materials and planning resources for effective exam preparation:

# Resource Description
1 CG Notes Comprehensive lecture notes by Amey Thakur
2 Syllabus Breakdown Detailed module-wise syllabus notes
3 Module Planning Topic organization and study schedule
4 Examination Blueprint Question paper pattern and marking scheme
5 Achievement Certificate Recognition in computer graphics excellence

Assignments

Academic assignments for comprehensive learning and practice:

# Assignment Description
1 Assignment 1 Graphics primitives and line drawing algorithms
2 Assignment 2 Transformations and clipping techniques
3 CG Assignment Comprehensive graphics concepts

Topics Covered: Graphics Primitives (Line drawing - DDA, Bresenham's · Circle and ellipse algorithms) · Transformations (2D/3D translation, rotation, scaling, reflection, shearing) · Viewing & Clipping (Window-to-viewport mapping · Cohen-Sutherland clipping) · Curves (Bezier curves · B-spline curves · Parametric representations) · Rendering (Hidden surface removal · Illumination models · Shading techniques)


Practice Test

Practice assessment details:

# Test Date Time Class
1 Practice Test CG May 5, 2020 10:00 AM - 11:00 AM SE B-50

Computer Graphics Laboratory

The laboratory component (CSL402) focuses on hands-on implementation of various graphics algorithms using C programming with the graphics.h library, providing practical experience in visualizing geometric primitives and transformations.

Total Experiments Language Lab Manual

Tip

Graphics Visualization: Always sketch your graphics output on paper before coding. Draw coordinate systems, trace pixel positions for line/circle algorithms step-by-step, and visualize transformation matrices with example points. Understanding the mathematical foundation - Bresenham's error terms, midpoint decisions, and homogeneous coordinates - is essential for implementing efficient graphics algorithms and debugging visual output.

Laboratory Experiments

# Experiment Programs Algorithm Source Code
1 Line Drawing & Basic Shapes 2 Bresenham's Algorithm, Graphics Primitives View
2 Circle Drawing 1 Midpoint Circle Algorithm View
3 Ellipse Drawing 1 Midpoint Ellipse Algorithm View

Program Details

Experiment 1: Line Drawing & Basic Shapes (2 Programs)
Program Algorithm Description Code
Bresenhams_Line_Algorithm.c Bresenham's Line Efficient line drawing using integer arithmetic View
Basic_Graphics_Shapes.c Graphics Primitives Rectangle, circle, line, ellipse, bar View
Experiment 2: Circle Drawing (1 Program)
Program Algorithm Description Code
Midpoint_Circle_Algorithm.c Midpoint Circle Circle generation using 8-way symmetry View
Experiment 3: Ellipse Drawing (1 Program)
Program Algorithm Description Code
Midpoint_Ellipse_Algorithm.c Midpoint Ellipse Ellipse generation using 4-way symmetry View

Laboratory Documentation

# Resource Description
1 Laboratory Journal Complete record of experiments with theory, diagrams, and analysis
2 Lab README Detailed navigation guide with program descriptions

Computer Graphics Project

An immersive AR gaming experience built with Unity, ARCore, and C#

Project Platform Technology Status

👥 Authors

Amey Thakur
Amey Thakur
Hasan Rizvi
Hasan Rizvi

Important

🤝🏻 Special Acknowledgement

Special thanks to Hasan Rizvi for his meaningful contributions, guidance, and support that helped shape this work.

Project Overview

An augmented reality stack-builder game for Android developed using Google's ARCore, Unity, and C#. The game leverages real-time AR tracking to overlay interactive 3D blocks onto the physical environment, challenging players to stack blocks as high as possible. This project showcases the practical application of computer graphics principles including 3D rendering, spatial mapping, physics simulation, and immersive user interaction.

Resources

# Resource Description
1 Project Repository Complete source code and documentation
2 Android APK Download and try the application

Syllabus

Official CBCGS Syllabus
Complete Second Year Computer Engineering syllabus document from the University of Mumbai, including detailed course outcomes, assessment criteria, and module specifications for Computer Graphics and Computer Graphics Lab.

Important

Always verify the latest syllabus details with the official University of Mumbai website, as curriculum updates may occur after this repository's archival date.


Usage Guidelines

This repository is openly shared to support learning and knowledge exchange across the academic community.

For Students
Use these resources as reference materials for understanding concepts, reviewing graphics algorithms, and preparing for examinations. All content is organized for self-paced learning.

For Educators
These materials may serve as curriculum references, assignment examples, or supplementary teaching resources. Attribution is appreciated when utilizing content.

For Researchers
The documentation and organization may provide insights into academic resource curation and educational content structuring.


License

This repository and all linked academic content are made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for complete terms.

Note

Summary: You are free to share and adapt this content for any purpose, even commercially, as long as you provide appropriate attribution to the original author.


About This Repository

Created & Maintained by: Amey Thakur
Academic Journey: Bachelor of Engineering in Computer Engineering (2018-2022)
Institution: Terna Engineering College, Navi Mumbai
University: University of Mumbai

This repository represents a comprehensive collection of study materials, reference books, assignments, and personal preparation notes curated during my academic journey. All content has been carefully organized and documented to serve as a valuable resource for students pursuing Computer Graphics & Computer Graphics Lab.

Connect: GitHub · LinkedIn

Acknowledgments

Grateful acknowledgment to Mega Satish for her exceptional contribution to this repository through "THE WALL" - comprehensive chapter-wise notes that became an invaluable resource for understanding complex graphics concepts. Her constant support, patience, and clarity throughout this journey made a real difference. Learning alongside her was transformative, not only because she explained concepts so clearly, but because she truly cared about understanding them together. Her thoughtful approach to teaching, openness to discussion, and steady encouragement turned challenges into meaningful learning moments. This work reflects the growth that came from learning side by side. Thank you, Mega, for everything you shared and taught along the way.

Grateful acknowledgment to Hasan Rizvi for his exceptional contribution to this repository through the AR Stack Game project. Working alongside Hasan was a truly enriching experience - his technical expertise, creative problem-solving, and unwavering dedication made every challenge feel surmountable. Beyond his coding skills, it was his collaborative spirit and enthusiasm for innovation that transformed this project from an idea into a fully functional AR application. His patience in debugging, willingness to explore new technologies, and commitment to delivering quality work inspired growth and learning throughout the development process. Thank you, Hasan, for being an outstanding project partner and for all the knowledge you shared along the way.

Special thanks to the faculty members of the Department of Computer Engineering at Terna Engineering College for their guidance and instruction in Computer Graphics. Their clear teaching and continued support helped develop a strong understanding of graphics algorithms and visualization techniques.

Special thanks to the mentors and peers whose encouragement, discussions, and support contributed meaningfully to this learning experience.



Computer Engineering (B.E.) - University of Mumbai

Semester-wise curriculum, laboratories, projects, and academic notes.