Skip to content
This repository has been archived by the owner on Nov 9, 2023. It is now read-only.
/ CCTP-Project Public archive

[UWE - CCTP Module] Final Year Dissertation Project

Notifications You must be signed in to change notification settings

WSWhitehouse/CCTP-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snowflake Engine

Snowflake is a C++ Vulkan engine with the ability to render Signed Distance Fields (SDF) generated from triangle meshes.

Getting Started

Cloning The Repo

Clone the repo recursively to ensure all submodules are initialised:

git clone --recursive [email protected]:WSWhitehouse/CCTP-Project.git

If the repo wasn't cloned using --recursive use the following commands to update the submodules:

git submodule update --init

Required Software

It is recommended to follow the versions above to maintain compatibility.

CMake

  1. Run the following command while in the root of the project to generate the build files. REPLACE THE FILE PATHS! Use / rather than \ as CMake throws errors!
cmake  -B cmake-build -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM="PATH_TO_NINJA/ninja.exe" -DCMAKE_C_COMPILER="PATH_TO_CLANG/clang.exe" -DCMAKE_CXX_COMPILER="PATH_TO_CLANG++/clang++.exe"
  1. Run this command to build the project and it's relevant targets:
cmake --build ./cmake-build --target data shaders snowflake
  1. Run the application (or double click the exe):
cd cmake-build & snowflake.exe

Targets

  • data - Sets up the files (meshes, textures, etc.) in the data directory and moves them to the output directory.
  • shaders - Compiles all GLSL shaders in the shaders directory and moves them to the output directory.
  • snowflake - Builds the engine executable.

The data and shaders targets only need to be run when new data files or shaders are added. But are required to be run once before launching the executable to ensure the data is initialised and all shaders have been compiled. If these targets haven't been run, the engine will crash as it won't be able to find the relative files.

Branches

  • voxel-grid - Showcases the naive voxel grid approach.
  • voxel-grid-jump-flooding - Showcases the jump flooding voxel grid approach.
  • bsp-tree - Showcases the bsp tree approach.

About

[UWE - CCTP Module] Final Year Dissertation Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published