/foton

Lightweight/Lightfast GLSL and HLSL shader toy made using Vulkan

Primary LanguageC++MIT LicenseMIT

About

Shader editor made using Vulkan which supports both GLSL and HLSL shaders. It supports only screen space shaders, similar to ShaderToy. Project is written for the C++11 standard and x64 system. Currently the code is tested only on Windows, using MSVC (Visual Studio) compiler. Linux and Mac are not completely supported at the moment, but it should be easy to port, since all third party libraries are cross platform.

Example

Features

  • Rendering backend written using Vulkan 1.0
  • GUI mostly written using Dear ImGui
  • Window handling using GLFW
  • GLSL and HLSL live shader compilation using Glslang
  • Live coding editor window
  • Log output window
  • Shader bindings window
  • Automatic descriptor set layout creation with SPIRV-Reflect
  • Image loading using stb
  • Dialog windows are handled by Native File Dialog Extended
  • Meta file serialization is written using rapidjson

Installation

This project uses CMake as a build tool. Since the project is built using Vulkan, the latest Vulkan SDK is required. Dependency management is handled by Bootstrap, which requires Python and Git installed.

License

Distributed under the MIT License. See LICENSE for more information.