This project provides basic graphics applications samples:
- Forward rendering of a 3d scene in Hydra Renderer XML format (HydraAPI, Hydra renderer) located here. This sample has two renderers, which are selected directly in code (search for CreateRender):
- SIMPLE_FORWARD renders scene in diffuse material
- SIMPLE_TEXTURE renders scene in diffuse textured material
- Shadow map sample located in shadowmap
- Full screen quad render located in quad2d
You can also take a look at Chimera project which served as a base for these samples and implements other example renders including various approaches to using hardware accelerated ray tracing.
Build as you would any other CMake-based project. For example on Linux:
cd vk_graphics_basic
mkdir build
cd build
cmake ..
make -j8
On Windows you can directly open CMakeLists.txt as a project in recent versions of Visual Studio. Mingw-w64 building is also supported.
Executable will be built in bin subdirectory - vk_graphics_basic/bin/renderer
SDK can be downloaded from https://vulkan.lunarg.com/
Linux - you can install it as a package on most systems, for example:
sudo apt-get install libglfw3-dev
Windows - you don't need to do anything, binaries and headers are included in this repo (see external/glfw directory).
Can be installed by running provided clone_dependencies.bat script. So, if you clone this repo into vk_graphics_basic directory:
cd vk_graphics_basic
clone_dependencies.bat
Or you can get them manually:
cd vk_graphics_basic/external
git clone --depth 1 https://github.com/zeux/volk.git
cd vk_graphics_basic/external
git clone --depth 1 https://github.com/ocornut/imgui.git
cd vk_graphics_basic/external
git clone --depth 1 https://github.com/msu-graphics-group/vk-utils.git vkutils
This project also uses LiteMath and stb_image which are included in this repo.