/GPURayTracer

Compute Shader based real-time path tracing renderer with support for loading meshes and textures, physics-based ray tracing with refractions and reflections.

Primary LanguageC++MIT LicenseMIT

GPU Ray Tracer

GPU Ray Tracing application based on my OpenGL Compute Engine.

Dependencies

Binaries

You can find the latest releases here

Build

  • Clone this directory

  • Run git submodule init

  • Run git submodule update

  • Specify these root directories for dependencies in make_all.bat script:

    • GLFW_ROOT
    • GLEW_ROOT
    • stb_image_ROOT
  • Run make_all.bat.

  • Run build.bat.

Config files

Each scene/configuration is described in a config file.

Example scenes are located in /configs directory.

All available parameters are specified in config_template.txt.

Usage

Pass chosen config file to the generated executable as an argument in command line.

If no argument given, config.txt is picked.

Features

  • Wavefront (.obj) file import
  • PNG, JPG, HDR texture import
  • Object can be an imported triangle mesh, sphere or infinite plane
  • Each scene is saved in a separate file
  • Specular and diffuse reflections
  • Physics based refractions
  • Camera movement
  • Screenshot saving

Example images

Mesh Refraction
Multiple meshes 1 Multiple meshes 2
Solar system 1 Solar system 2

Keys

Camera

  • UP - SPACE
  • DOWN - CTRL
  • LEFT - A
  • RIGHT - D
  • FORWARD - W
  • BACKWARD - S

Window

  • Screenshot - L
  • Disable input to window - P
  • Close application - ESC

License and copyright

© Dawid Pietrykowski

Licensed under the MIT LICENSE