cjsb / Graphics2

OpenGL framework for prototyping and small projects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Graphics2

Volumetric Rendering

Description

OpenGL project for prototyping. Contains abstractions for major OpenGL features with focus on code reusability, modern OpenGL usage and ease of use. Also contains some demos and examples.

OpenGL version and extensions:

Used libraries:

Usage

Windows

  • Please use vcpkg for dependency management when using windows to use this project
  • Install assimp:x64-windows, glfw3:x64-windows, glbinding:x64-windows and glm:x64-windows using vcpkg
  • Set the correct path to your installation of vcpkg (vcpkg.cmake) in the CMakeSettings.json-file or use the included script (set_vcpkg_path.ps1) to select it
  • Open the project folder in Visual Studio

Linux

  • Currently not tested
  • Install assimp, glfw3, glbinding and glm using your package manager
  • Using CMake to generate makefiles might already work

Executables

Project: Volumetric Lighting

  • University Project for the Lecture 'Real-Time Rendering'
  • Uses this approach

demo 1: cubemap, reflections, lighting

  • work in progress
  • phong lighting (spotlights, directional lights, specular & diffuse, fog)
  • toon shading
  • cubemap reflections
  • postprocessing
  • GUI-controllable parameters for basically everything in this demo
  • shader live reloading

demo 2: distance fields

  • work in progress
  • raymarching distance fields: soft shadows, simple distance field ambient occlusion
  • shader live reloading
  • heavily inspired by http://www.iquilezles.org/, university lectures

demo 3: shaders

  • work in progress
  • testing some shader-only drawing stuff, "the book of shaders"-style

demo 4: shadowmapping

  • work in progress
  • shadow mapping with PCF

demo 5: PBR & IBL

  • PBR using Cook-Torrance BRDF
  • IBL using HDR cubemaps
  • HDR texture -> cubemap -> specular & diffuse IBL

Resources/Licensing

About

OpenGL framework for prototyping and small projects


Languages

Language:C++ 69.0%Language:GLSL 29.2%Language:CMake 1.5%Language:PowerShell 0.3%