/Cyph3D

C++ 3D Engine built with Vulkan

Primary LanguageC++OtherNOASSERTION

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

  • PBR Lighting
  • Parallax Occlusion Mapping
  • Skybox
  • Point Light
  • Directional Light
  • Point Light Shadows
  • Directional Light Shadows

Path tracing renderer

  • Denoising
  • Viewport accumulation
  • Parallax Occlusion Mapping or equivalent
  • Normal Maps or equivalent

Post-processing effects

  • Exposure
  • Bloom
  • AgX Tone-mapping

UI

Windows

  • Viewport
  • Scene Hirarchy
  • Inspector
  • Asset Browser

Viewport gizmos

  • 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:

  1. Run the init.bat file to initialize vcpkg
  2. 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.