Skip to content

๐Ÿ›บ CPU-based 3D rasterizer built from scratch as part of DAEโ€™s Graphics Programming 1 course. Implements a full software rendering pipeline โ€” vertex transforms, clipping, rasterization, depth buffering, and PBR shading โ€” closely mirroring the DirectX 11 pipeline.

License

Notifications You must be signed in to change notification settings

knapeczadam/graphics-programming-1-rasterizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›บ Graphics Programming 1 โ€“ Rasterizer

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.


๐Ÿ—„๏ธ About this repository

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 Information

๐Ÿ“š 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


๐Ÿ‘จโ€๐Ÿซ Teaching Staff

  • Co-ordinator: Koen Samyn
  • Other teaching staff: Flor Delombaerde, Pieter-Jan Vandenberghe

๐ŸŽฏ Learning Goals

  • 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.

๐Ÿงฉ Course Content

  • Raytracing fundamentals
  • Scene intersection & acceleration
  • Stochastic sampling & filtering
  • PBR shading models
  • 3D mesh loading & textures
  • Optimization techniques

๐Ÿ“‚ Repository Structure

All lab exercises and progress are on the main branch, structured by week.
Each milestone corresponds to a weekly task or feature implementation.


๐Ÿš€ Releases

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.


๐Ÿง  Final Thoughts

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 โš™๏ธ๐Ÿ–ผ๏ธ


โš–๏ธ License

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

About

๐Ÿ›บ CPU-based 3D rasterizer built from scratch as part of DAEโ€™s Graphics Programming 1 course. Implements a full software rendering pipeline โ€” vertex transforms, clipping, rasterization, depth buffering, and PBR shading โ€” closely mirroring the DirectX 11 pipeline.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published