About GraphX

A 3D Rendering Engine

Graphx Rendering Engine is a self learning project - later submitted for the major project evaluation in college - to utilize my potential for 3D maths and programming and to familiarize with the Graphics API's and the graphics programming.


Some Features of the engine

  • A complete 3D maths library.
  • Other Utilites like logging (using spdlog), GUI (using ImGUI).
  • Event Handling system (Events and Event Dispatchers)
  • Separate Rendering API for 2D / 3D objects
  • Camera for the scene, movement and rotation
  • Textured rendering
  • Lighting using Phong shading model
  • Loading models from the file system (using Assimp).
  • Cubemaps and Skyboxes.
  • Point lights and Directional lights.
  • Day - Night Cycle
  • Multi Textured Procedurally generated Terrain
  • Robust Particle Systems
  • Batch Rendering for 2D Primitives and Particles
  • CPU Time Profiling
  • Multi Threading Systems to do tasks on multiple threads
  • Instanced Rendering for 3D Objects

Demo