Skip to content

A complete resource for CSE423 Computer Graphics at BRAC University. This repository features hands-on PyOpenGL labs ranging from 2D animations to 3D game logic, alongside essential academic materials like algorithm implementations, lecture notes, and past exam solutions.

Notifications You must be signed in to change notification settings

fah-ayon/Computer-Graphics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSE423 - Computer Graphics

This repository contains academic resources, lab work, and materials for the Computer Graphics (CSE423) course.

Course Overview

Computer Graphics is a comprehensive course covering the fundamental concepts and practical implementations of graphics programming, including:

  • Introduction: Overview of graphics systems, applications, and display technologies
  • Line Drawing: DDA and Mid Point line drawing algorithms
  • Clipping: Cohen-Sutherland and Cyrus beck clipping algorithms
  • Transformation: 2D and 3D transformations (translation, rotation, scaling, etc)
  • Projection: Parallel and perspective projections, viewing transformations
  • Color Model: RGB, CMY, HSV color spaces
  • Lighting Model: Ambient, diffuse, and specular lighting, Phong reflection model
  • Curves: Continuity, Bezier curves, and parametric representations

Repository Structure

CSE423/
├── Assignment/                      # Course assignments
├── Lab/                             # Lab assignments and exercises
├── Notes & Practice Sheet Solve/   # Course notes and practice materials
├── Previous Question/               # Previous exam questions and solutions
└── README.md                        # This file

Lab Assignments

This repository contains Computer Graphics lab assignments implemented in Python using PyOpenGL and GLUT.

Lab 1: 2D Primitives & Animation

Focus: Basic OpenGL primitives (GL_POINTS, GL_LINES, GL_TRIANGLES), interaction, and animation.

  • Task 1 (House in Rainfall): A 2D scene featuring animated rain with wind direction control (arrow keys) and a day/night background transition.

Lab 1 Task 1 - House in Rainfall

  • Task 2 (The Amazing Box): An interactive simulation of bouncing points featuring mouse-click spawning, speed adjustments, and blink effects.

Lab 1 Task 2 - The Amazing Box

Lab 2: Midpoint Line Drawing Algorithm

Focus: Scan conversion algorithms and 8-way symmetry.

  • Project (Catch the Diamonds): A falling-object game rendered entirely using the Midpoint Line Drawing Algorithm (generating lines using only GL_POINTS).

Lab 2 - Catch the Diamonds

  • Features: Custom implementation of lines for all 8 zones, AABB collision detection, and interactive UI buttons (Pause, Resume, Restart).

Lab 3: 3D Transformations & Projections

Focus: 3D Coordinate systems, Geometric Transformations, and Camera Control.

  • Project (Bullet Frenzy): A 3D shooter game utilizing gluPerspective and gluLookAt for scene rendering.

Lab 3 - Bullet Frenzy

  • Features:
    • 3D Modeling: Hierarchical character models (Player, Enemies) built using cylinders and spheres.
    • Camera: Toggleable First-Person and Third-Person perspective modes.
    • Mechanics: Enemy pursuit AI, 3D collision detection, and an auto-aim "Cheat Mode".

Course Project

View Project Repository

The project demonstrates advanced graphics concepts including:

  • 3D object rendering
  • Camera controls and perspective
  • Collision detection
  • Particle systems
  • Game physics

Technologies Used

  • OpenGL - Graphics rendering
  • Python - Programming language

License

This repository is for academic purposes only.


Author

Abdullah Al Fahad

LinkedIn Email GitHub


About

A complete resource for CSE423 Computer Graphics at BRAC University. This repository features hands-on PyOpenGL labs ranging from 2D animations to 3D game logic, alongside essential academic materials like algorithm implementations, lecture notes, and past exam solutions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages