foton
foton copied to clipboard
Lightweight/Lightfast GLSL and HLSL shader toy made using Vulkan
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.
Features
- Rendering backend written using
Vulkan 1.0
- GUI mostly written using Dear ImGui
- Window handling using GLFW
-
GLSL
andHLSL
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.