Skip to content

CPU-based raytracer built in C++ for Graphics Programming 1 (Howest DAE, 2023). Implements ray–object intersections, shading, reflections, and Physically Based Rendering (PBR) to simulate realistic lighting — the foundation for later rasterization and GPU rendering projects.

License

knapeczadam/graphics-programming-1-raytracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐇 Graphics Programming 1 – Raytracer

Hey there, fellow DAE student, curious visitor, or graphics enthusiast 👋
Welcome to my Graphics Programming 1 – Raytracer 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.

⚠️ Keep in mind: these projects were made while learning the fundamentals of computer graphics.
Expect imperfect reflections, noisy shadows, and a few math headaches — 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-raytracer-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 3D graphics programming — writing my own raytracer from scratch, debugging math errors, and finally watching pixels turn into realistic images.
It’s messy, rewarding, and a huge learning milestone toward understanding rendering pipelines.

If you’re diving into graphics yourself: stick with it, visualize the math, and enjoy the moment you see your first reflection render correctly


⚖️ License

This repository is licensed under the MIT License — feel free to explore, learn, or reuse for study purposes.


Made with vectors, rays, and a lot of debug draws 💻
— Ádám

About

CPU-based raytracer built in C++ for Graphics Programming 1 (Howest DAE, 2023). Implements ray–object intersections, shading, reflections, and Physically Based Rendering (PBR) to simulate realistic lighting — the foundation for later rasterization and GPU rendering projects.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published