A Vulkan based renderer made for learning purposes.
The engine consists of a single static library called Fancy-Engine, all its code is inside the Source
folder.
There are tests inside the Tests
folder, the tests are divided into visual (Visual
folder) tests and unit tests using GTest (TODO).
You can find examples showing most of the functionalities of the engine in the Examples
folder.
If you want to have the project in your device:
- Clone the project.
- Update the third party modules with
git submodule update --init --recursive
.
All the code in this repository is automatically formatted using the default configuration that comes from the C/C++ Extension Pack and Better C++ Syntax extensions for Visual Studio Code.
This project uses CMake for generating the compilation setup, there is a CMakePresets.json
file for different presets that might be useful for you, so you might call cmake --preset=${PRESET_NAME}
. The defined presets are:
default
: Assumes there is no extra configuration needed. Output files go to theBuild
folder.vcpkg
: Assumes you have vcpkg installed for the necessary packages and tells CMake about that. Output files go to theBuild
folder.
There is also a Makefile (TODO) for less verbose calls (you might want to use make.bat
for Windows), the make commands are the following:
make ${PRESET_NAME}
: Callscmake --preset=${PRESET_NAME}
.make clean
: Cleans theBuild
folder.
If you don't use CMake, you will need to manually compile the necessary files in order for everything to work, which is not recommended.
This repository includes necessary packages as glfw or glm as submodules, so you don't need to have them installed in your computer. However, you do need to have installed the following packages:
- Vulkan (VulkanSDK for Windows).
CMake should be able to find your computer packages with find_package
, if that's not the case, you will need to manually tell CMake where to find them. If you are using vcpkg
as a package manager, just use the vcpkg
CMake preset mentioned before.
Just open the solution (Fancy-Engine.sln
) generated by CMake and use the Visual Studio GUI to compile the library and executables.
Just as with the compiling step, use the Visual Studio GUI.
The main reference used to make this renderer is Vulkan Tutorial.