abstanton / GraphicsPlayground

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Graphics Playground

This is a WIP personal project started with the goal to learn real-time graphics programming and improve my C++ along the way.

image Demo image

image Space Invaders demo

Current Progress

  • GPU abstraction
  • Texture, Shader, Mesh loading
  • Entity Component System
  • Materal system for abstracting shader inputs
  • Forward renderer with PBR shading
  • Shadow maps for directional lights
  • Point lights
  • Texture tiling

Skills Learnt

  • OpenGL programming
  • PBR Theory
  • Modern C++ features

TODO

  • Support shadow mapping for point lights
  • Improve input support
  • Support transparent materials
  • Image Based Lighting
  • AA (FXAA, MSAA... tbd)]
  • Bloom
  • Motion Blur
  • SSAO
  • SSR
  • Contact Shadows
  • Improve building experience
  • SceneGraph for collision, culling etc
  • SceneHierarchy for proper scene organisation
  • Assimp texture loading
  • Make prettier demo
  • Audio handling

Building

Dependencies: glfw, assimp, glm

The easiest way to install these it with vcpkg: https://vcpkg.io/

To build:

mkdir build
cd build
cmake ..
msbuild ALL_BUILD.vcxproj

About


Languages

Language:C++ 85.0%Language:C 14.3%Language:CMake 0.7%