Back

Pure Renderer

Overview

Pure Render 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. Using UV mapping and barycentric coordinates, it accuratly renders textured triangles, while also using the Z-buffer for depth sorting. By building this from the ground up, I gained a deeper knowledge of the inner workings of rendering pipelines, reinforcing my knowledge in C++, linear algebra, and graphics programming without relying on an external frameworks or GPU dependancy.

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.

What I learned

  • Deep understanding of Computer Graphics - Gained hands on learning of rasterization, transformations, world space and texture mapping.
  • 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.