Back

Pure Lighting

Overview

Pure Lighting is a CPU-Based rendering engine that I built from scratch, utilizing my own custom math library to handle all transformation and texturing calculations. Unlike traditional rendering pipelines that rely on the GPU, Pure Render performs all rendering operations on the CPU, while also optimizing for consistant frame rate. This project explored the fundamentals of Computer Grpahics techniques, including rasterization, texture mapping and manual buffer management while introducing lighting calculations. By implementing these systems without an external frameworks or GPU dependancies, I deepened my understanding in rendering pipelines, lighting math and performace optimization in C++.

Technical Implentation

  • Written in C++
  • Basic Computer Graphics Rendering Techniques - Implemented transformations, rasterization, and texture mapping.
  • Custom Math Library - Built useable math library for 3D and 2D math.
  • CPU-Based Rendering
  • Texture Support - Implements UV mapping and Barycentric coordinates for accurate triangle rasterization.
  • Buffer Management - Includes support for both Z buffer and color buffer.
  • Lighting Support - Custom pixel shader to support directional and point lighting

What I learned

  • Deep understanding of Computer Graphics - Gained hands on learning of rasterization, transformations, world space, texture mapping and lighting calculations.
  • Mathematical Foundations for 3D Graphics - Strengthed my knowledge of linear algebra, including vectors, matrices, and coordinates transformations.
  • Optimazation for CPU-Based Rendering - Learned how to structure rendering logic efficiently without relying on the GPU.
  • Advanced Texture Mapping Techniques - Explored UV mapping and barycentric coordinates for percise texture mapping.
  • Memory and Performance Optimization - Improved skills in managing buffers, minimizing performance bottlenecks, and optimizing memory usuage for rendering.