Goob The Renderer

Learning project to grasp core ideas of graphical engines.

file last reviewed: 26.9.2025

This is a OpenGL-like rendering engine project. It started off in my second year in my bachelor’s program. I didn’t get very far although it produced some cool outputs.

Current Tasks

  • Implement opening and test of RGB TGA Image

Successful Outcome

A working graphic renderer based on tiny_renderer project. Additionally another software that is able to render TGA images at 24 FPS. This way I could potentially create renders inside games/videos inside a picture format.

Core

  • Phase 1: TGA Output - Generate and work with TGA images correctly - IN PROGRESS
  • Phase 2: Basic Renderer - Working and tested implementation
  • Phase 3: Real-time Renderer - 24 FPS TGA sequence generator

Reference Material

  • tiny_renderer project - https://github.com/ssloy/tinyrenderer
  • format details - http://www.paulbourke.net/dataformats/tga/

Technical goals

TGA Image System

  • [-] Research TGA format specifications
  • Implement TGA writer from scratch - IN PROGRESS
  • Optimize TGA writing performance
  • Add RLE support

Prepared tasks

  • [-] Set-up build system (CMake)
  • [-] Decide on the project structure
  • [-] Set-up tests (Catch2)
  • [-] Add color module
  • [-] Research
  • [-] Decide on the structure
  • [-] Implement TGAImage interface
  • Implement and test opening of RGB TGA Image
  • Implement and test opening of Grayscale TGA Image
  • Implement and test opening of Color-mapped TGA Image
  • Implement and test opening of RLE compression

Development Environment

  • language: c++23
  • compiler: clang
  • build system: cmake
  • ide: vscode, neovim
  • debug: gdb
  • Profiler: -