Skip to content
/ Cyph3D Public

C++ 3D Engine built with Vulkan

License

Notifications You must be signed in to change notification settings

Cyphall/Cyph3D

Repository files navigation

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 & Install

Cyph3D only supports Windows. Support for any other OS is not currently planned.

Requirements:

  • CMake 3.28+
  • Ninja
  • Latest MSVC (with the English Language Pack, vcpkg won't work otherwise, see microsoft/vcpkg#3842)

Steps:

# To build (required)
cmake --preset Release
cmake --build --preset Release --target Cyph3D

# To install (optional)
cmake --build --preset Release --target install

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.