8000 GitHub - armanpapikyan/vulkan_engine
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

armanpapikyan/vulkan_engine

Repository files navigation

About

This project has been created for learning and familiriazing purposes of the Vulkan Graphics API.

Here are some example visuals from the application:

The famous Intel Sponza scene being rendered with shadowmaps.

Showing the debug pass that helps troubleshooting issues with the depth buffer.

Features

[+] Loading OBJ, GLTF, [+] Custom serialization format, [+] Supports DXT texture compression, [+] Frustum Culling, [+] Crytek sponza and Intel sponza scenes, [+] Shadowmaps for direct lighting,

To Do: [-] Draw Indirect, [-] GPU Culling, [-] PBR, [-] Frame Graph

Dependencies

Build

  1. Make sure that VulkanSDK is installed,
  2. Run CMake using Visual Studio 2022 (for windows),
  3. Open the solution with Visual Studio (for windows),
  4. Set Main as the startup project,
  5. Build the project,
  6. Run /BuildAll_Debug.bat,
  7. See the build at /_Build/Debug/

Build Details

For a successful build for the app to run without problems, the following things are necessary:

  • The build .exe itself from (step 5),
  • The DLLs ( SDL and assimp ), copied from third_party by BuildAll batch file (step 6),
  • Resources/Serialized scene data with meshes and textures (step 6),
  • Resources/Library spv shaders (step 6).

The above actions are automated by build step 6.

Note that on the 5th step, the shaders are compiled as well via the batch file "Shaders/compileAllSource.bat". The repository also contains the default shaders so this step is not strictly necessary and you could create the cmake project with the ENABLE_AUTO_COMPILE_SHADERS option disabled.

Embed Libs

All embed libs can be found at (https://github.com/armmah/vulkan_engine/tree/main/third_party and https://github.com/armmah/vulkan_engine/tree/main/Third_Party_Project)

  • assimp,
  • boost 1.80,
  • dds_loader,
  • glm,
  • imgui,
  • SDL2,
  • stb_image,
  • tiny_gltf,
  • tinyobjloader,
  • vma,
  • volk,
  • (optional) gtest

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0