A simple 3D game engine written in C++ and Vulkan.
- Windows
- Linux
- Download GLFW 64-bit Windows binaries from https://www.glfw.org/download.html.
- Download Vulkan SDK from https://vulkan.lunarg.com and install it.
- Set up next environment variables:
GLFW_INCLUDE_PATH
,GLFW_LIB_PATH
,VULKAN_SPIRV_REFLECT_PATH
,VULKAN_INCLUDE_PATH
,VULKAN_LIB_PATH
.
For example how I set it:
GLFW_INCLUDE_PATH = C:/GLFW/Includes
GLFW_LIB_PATH = C:/GLFW/Lib
VULKAN_INCLUDE_PATH = C:/VulkanSDK/1.3.268.0/Include
VULKAN_LIB_PATH = C:/VulkanSDK/1.3.268.0/Lib
VULKAN_SPIRV_REFLECT_PATH = C:/VulkanSDK/1.3.268.0/Source
- Clone and run CMake.
git clone --recursive -b main https://github.com/Shturm0weak/Pengine-2.0.git
cd Pengine-2.0 && mkdir Build && cd Build && cmake ..
- Open Pengine (for VS 20XX
Pengine-2.0/Build/Pengine.sln
) and set upSandBox
as a startup project. If you are using another IDE, the working directory should be set manually toPengine-2.0/SandBox/
. - Try to build and run.
- If there is no GLFW, so download GLFW for your linux distribution.
- Download Vulkan SDK from https://vulkan.lunarg.com.
- Install Vulkan SDK as shown in the documentation https://vulkan.lunarg.com/doc/view/latest/linux/getting_started.html.
- Set up next environment variables:
VULKAN_SPIRV_REFLECT_PATH
,VULKAN_INCLUDE_PATH
,VULKAN_LIB_PATH
.
For example how I set it:
VULKAN_INCLUDE_PATH = /home/alexander/Vulkan/1.4.304.0/x86_64/include
VULKAN_LIB_PATH = /home/alexander/Vulkan/1.4.304.0/x86_64/lib
VULKAN_SPIRV_REFLECT_PATH = /home/alexander/Vulkan/1.4.304.0/x86_64/include
Setting these variables can be done as a.sh
script and run that script on startup by placing another.sh
script in/etc/profile.d
containing the linesource <path to your .sh script>
- Clone and run CMake.
git clone --recursive -b main https://github.com/Shturm0weak/Pengine-2.0.git
cd Pengine-2.0 && mkdir Build && cd Build && cmake ..
- Set up the working directory to
Pengine-2.0/SandBox/
. - Open Pengine and set up
SandBox
as a startup project. - Try to build and run.
- Deferred Instanced Rendering
- Basic PBR
- Directional Lights
- Point Lights
- Normal Maps
- Cascade Shadow Maps
- SSAO
- SSR
- Bloom
- FXAA
- Atmospheric Scattering
- Forward Order Dependent Transparency Rendering
- Multiple Viewport Rendering
- Assync Resource Loader
- Scriptable Materials
- GLFW
- GLM
- Vulkan
- Entt
- Assimp
- ImGui
- Yaml-cpp