Example Scene | Scene in Editor |
---|---|
Catalyst is a physically-based, real-time renderer written in Vulkan and modern C++. This project consists of a library and a user-friendly, interactive editor application written using Qt. For a full breakdown of how the rendering engine works, an in-depth article is available here.
How a frame is rendered using Catalyst |
Catalyst implements many important elements of modern 3D game engines, this list contains some of the major features:
- PBR Material support, based on the Disney Diffuse Model.
- Image Based Lighting with Specular and Diffuse components.
- Global Illumination with Screen-Space Reflections.
- Ambient Occlusion, both with AO texture maps and Screen-Space AO as a fallback.
- Dynamic Directional Lights.
- Environmental Mapping with custom skyboxes.
- Shadow Maps with PCF filtering.
- High Dynamic Resolution (HDR) output with Tonemapping.
- Multisample Anti-Aliasing (MSAA).
Modifying material properties in the Catalyst editor |
The included editor provides an interface to test out the library:
- Ability to load custom models and texture images from files on disk.
- Change material parameters, assign texture maps and view the results in real-time.
- Arrange meshes and lights in a scene hierarchy.
- Modify object properties in the scene hierarchy: position, rotation, scale and color.
Catalyst makes use of third-party libraries for certain functionality, licensed under the following terms:
Github
Included in repository. Modifications to original source include removing documentation. Licensed under the "Happy Bunny" modified MIT license.
Github
Included in repository. Modifications to original source include removing documentation, examples and tests. Licensed under the modified, 3-clause BSD-license.
Webpage
Included in repository. Modifications to original source include removing documentation, examples and tests. Licensed under the zlib/libpng license.
Webpage
Must be installed separately. If building using CMake, the path should be deduced automatically.
Webpage
Must be installed separately. Required to compile the editor, but Qt is not required to build the library on its own. The default path for Qt 6.2.3 on Windows is included in the CMakeLists.txt
for the editor. To compile on another platform or with a different version of Qt 6, you must specify the path to Qt using -DCMAKE_PREFIX_PATH
or by changing the corresponding CMakeLists.txt
file. The editor links against Qt dynamically.
Additionally, a number of default assets (meshes, cubemaps and textures) are included for convenience. Some of these assets come with their own terms and restrictions, listed below.
Webpage
This model may only be used for research purposes, not for commercial use.
Webpage
This cubemap is licensed under the Creative Commons Attribution 3.0 Unported License