Cyph3D
Cyph3D copied to clipboard
C++ 3D Engine built with Vulkan
Cyph3D
This is a simple 3D engine which aims to implement standard rendering features.
This project is a full C++ rewrite of my original C# 3D engine
Features
Rendering
Rasterization renderer
- [x] PBR Lighting
- [x] Parallax Occlusion Mapping
- [x] Skybox
- [x] Point Light
- [x] Directional Light
- [x] Point Light Shadows
- [x] Directional Light Shadows
Path tracing renderer
- [ ] Denoising
- [x] Viewport accumulation
- [ ] Parallax Occlusion Mapping or equivalent
- [x] Normal Maps or equivalent
Post-processing effects
- [x] Exposure
- [x] Bloom
- [x] AgX Tone-mapping
UI
Windows
- [x] Viewport
- [x] Scene Hirarchy
- [x] Inspector
- [x] Asset Browser
Viewport gizmos
- [x] Transform
- [ ] Directional Light
- [ ] Point Light
Build
Cyph3D only supports Windows. Support for any other OS is not currently planned.
Requirements:
- Somewhat recent version of Python 3
- CMake 3.19+
- Ninja
- Latest MSVC (with the English Language Pack, vcpkg won't work otherwise, see microsoft/vcpkg#3842)
- Latest Vulkan SDK
Steps:
- Run the
init.batfile to initialize vcpkg - Build with CMake:
cmake -B bin -G Ninja -D CMAKE_BUILD_TYPE=Release
cmake --build bin
Screenshots

License
This work by Cyphall is licensed under the Creative Commons Attribution Non Commercial Share Alike 4.0 International.
Third party licenses
Font Awesome Free is licensed under the SIL Open Font License 1.1.
bshoshany/thread-pool is licensed under the MIT License.
ocornut/imgui is licensed under the MIT License.
CedricGuillemet/ImGuizmo is licensed under the MIT License.
palacaze/sigslot is licensed under the MIT License.
GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator is licensed under the MIT License.
YaaZ/VulkanMemoryAllocator-Hpp is licensed under the Creative Commons Zero v1.0 Universal.
GLFW is licensed under the zlib License.
g-truc/glm is licensed under the MIT License.
nlohmann/json is licensed under the MIT License.
assimp/assimp is licensed under their own license.
nothings/stb is licensed under the MIT License.
Neargye/magic_enum is licensed under the MIT License.
FreeType is licensed under the Freetype Project License.
SRombauts/SQLiteCpp is licensed under the MIT License.
graeme-hill/crossguid is licensed under the MIT License.
GameTechDev/ISPCTextureCompressor is licensed under the MIT License.
half is licensed under the MIT License.