Hey there, fellow DAE student, curious visitor, or graphics enthusiast ๐
Welcome to my Graphics Programming 1 โ Rasterizer repository โ part of the third semester (2023) at DAE.
This repo contains all lab exercises and weekly projects created during the Graphics Programming 1 course.
Itโs shared mainly for archival and educational purposes โ documenting my learning progress in low-level rendering and graphics programming.
This was my second major graphics project at DAE โ following the Raytracer from GP1, and paving the way for the DirectX-based renderer.
โ ๏ธ Keep in mind: these projects were made while learning the fundamentals of computer graphics.
Expect jagged edges, aliasing, and a fair amount of math-induced confusion โ itโs all part of the process.
Consider this repo a snapshot of early rendering experiments.
๐ Course: Graphics Programming 1
๐ซ University: Howest University of Applied Sciences - Digital Arts and Entertainment
๐ Location: Kortrijk, Belgium
๐๏ธ Academic year: 2023โ24 | Third semester
๐ Study load: 6 credits
โฑ๏ธ Total study time: 180 hours
- Co-ordinator: Koen Samyn
- Other teaching staff: Flor Delombaerde, Pieter-Jan Vandenberghe
- Handles stress and workload effectively while meeting deadlines.
- Creates and follows a planning to ensure project progress.
- Uses version control systems to track and manage development efficiently.
- Monitors personal and project progress over time.
- Maintains a critical attitude toward own work and peersโ work, benchmarking results to industry standards.
- Detects technical and visual errors down to the pixel level.
- Reviews and validates code quality and maintainability.
- Develops 3D applications iteratively, applying feedback from stakeholders.
- Selects and applies efficient rendering algorithms for 3D scenes.
- Measures and evaluates application performance.
- Analyzes and optimizes graphics performance in real-time contexts.
- Implements Physically Based Rendering (PBR) techniques in a 3D environment.
- Uses game engines correctly to solve design and technical problems.
- Writes structured, readable, and maintainable code within a game project.
- Integrates and evaluates middleware, external services, and frameworks under technical and production constraints.
- Implements lighting systems in 3D applications using shader languages.
- Raytracing fundamentals
- Scene intersection & acceleration
- Stochastic sampling & filtering
- PBR shading models
- 3D mesh loading & textures
- Optimization techniques
All lab exercises and progress are on the main branch, structured by week.
Each milestone corresponds to a weekly task or feature implementation.
Weekly or major updates are available in the ๐ฆ Releases section.
Example:
graphics_programming_1-rasterizer-04-1.0.0-windows-x64.zip
Includes a prebuilt Windows x64 executable with example scenes and assets.
This repository represents my first steps into real-time rendering concepts โ building a fully CPU-based rasterizer from the ground up.
From transforming vertices and performing clipping, to interpolating pixels and lighting them manually โ every step exposed what GPUs normally handle behind the scenes.
It was an eye-opening experience that bridged the gap between raytracing and hardware-accelerated graphics.
If youโre exploring rasterization yourself: visualize every stage of the pipeline, and remember โ every pixel on screen is the result of your math running in real time โ๏ธ๐ผ๏ธ
This repository is licensed under the MIT License โ feel free to explore, learn, or reuse for study purposes.
Made with vertices, matrices, and a lot of wireframes ๐ป
โ รdรกm