inMyRoom_vulkan
An indie Game Engine using Vulkan API. Windows and Linux support.
Noticeable Features
- Realtime Path-tracing and Denoising using NRD's reLAX method.
- Morphological Anti-Aliasing using Visibility Buffer Multisampling.
- Tone Mapping with Dynamic Exposure.
- Entity Component System with Collision Detection.
- Texture Filtering that preserves Normal Map roughness.
- Support for glTF 2.0 scenes and models. Including Morph Targets and Skinning.
- Coded with care and love. Debugged with salt and tears.
More about rendering system and MLAA applied at RENDERING.md
Demo: https://www.*y*out*ube.com/watch?v=gT_DVOUPm7A
Deps - Submodules
- VulkanMemoryAllocator-Hpp , the usual VMA library but with Vulkan-Hpp binding.
- glfw , window and input library.
- GLM , math library for OpenGL and Vulkan.
- configuru , config file library.
- tinygltf , glTF model import.
- eig3 , eigenvector library for PCA for OBBs.
- NRD , NVIDIA's ray tracing denoisers (reLAX, reBLUR)
Installation (Compiling)
First of all, you need a Vulkan-ready graphics driver, a modern C++ compiler, CMake, Git, Vulkan SDK installed and environment variables VULKAN_SDK_PATH/VULKAN_SDK pointing to the installation path of the SDK.
On Linux glfw need X11 development packages installed.
- On Ubuntu you need:
xorg-dev - On Fedora :
libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel
Having environment set, download the repo and submodules by running the following command.
git clone --depth 1 --recurse-submodules --shallow-submodules https://git*hu*b.*com/thesmallcreeper/inMyRoom_vulkan.git
Linux / Windows using CMake
- CMake build inside
/inMyRoom_vulkanfolder. - Sponza scene should be able to launch. However in order to launch a scene/game which has a
gameDLLsuch as SnakeGame you should go to the game's folder (over at/inMyRoom_vulkan/testGames/folder), open thegame_dlland CMake build it.- Make sure scene's/game's
gameConfig.cfg's variablegameDLL/pathis pointing to the .dll or .so just created (if one was needed). - Make sure
/inMyRoom_vulkan/config.cfg's variablegame/pathis pointing to the game'sgameConfig.cfgyou want to launch.
- Make sure scene's/game's
- Launch
inMyRoom_vulkanwith the/inMyRoom_vulkanas working folder.
下载源码
通过命令行克隆项目:
git clone https://github.com/thesmallcreeper/inMyRoom_vulkan.git