1mB33/AtlanticBeast
Realtime GPU Voxel Ray Tracer using Vulkan Compute & DDA Traversal. Implements a custom cross-platform window management system with runtime switchable behavior.
Table of content
AtlanticBeast
Realtime GPU Voxel Ray Tracer using Vulkan Compute & DDA Traversal.
Project is separated into several libraries. For demonstration purpose a Minecraft alike demo game was created.
Engine libraries:
- Core (Fundamental functionality, including debugging tools, correct choosen system headers)
- Application (Windows managment, input managment, etc.)
- Math (Vector math, primitive geometrical structures, matrices and vector struckts)
- Rendering (Vulkan C++ wrappers, rendering logic, shaders and tracer renderer)
Project uses voxel traversal algorithm implementation based on
'A Fast Voxel Traversal Algorithm for Ray Tracing'
by John Amanatides and Andrew Woo (1987) and Blinn-Phong Reflection lighting.
Implements a custom cross-platform window management system with runtime switchable behavior.
Features a low-latency input system and a fully custom Vulkan-based compute rendering pipeline.
About demo
In demo we can play a simple minecraft lookalike game where you can place and remove blocks. Uses Jolt Physics to enhance the experience and showcase functionality.
Demos physics showcase
Screenshots
Current demo keybinds:
Movement:
W - Move forward
S - Move backward
D - Strafe right
A - Strafe left
E - Fly up
Q - Fly down
Mouse movement - camera rotation
Interactions:
SPACE or LEFT MOUSE BUTTON - Place a block
X or RIGHT MOUSE BUTTON - Remove a block
1 - Weak push
2 - Medium push
3 - Strong push
Z - Debug view
Building the project
Build dependencies:
- Vulkan SDK
- CMake or Visual Studio with CMake support
- Compiler that supports at least C++17
- Windows or Linux operating system
- X11 libraries [Only on linux]
Linux
Get necessary libraries and headers
Arch linux based systems
sudo pacman -S --needed cmake make libx11 libxrandr libxinerama libxcursor libxi vulkan-tools vulkan-headers vulkan-utility-libraries glslang spirv-tools
Ubuntu/Debian based systems
sudo apt update && sudo apt install -y cmake make libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev vulkan-tools libvulkan-dev vulkan-utility-libraries-dev glslang-tools spirv-tools
Download and build the project
git clone --recurse-submodules -j8 https://github.com/Im-Bee/AtlanticBeast.git &&
cd AtlanticBeast &&
mkdir Build &&
cd Build &&
cmake .. -DCMAKE_BUILD_TYPE=Release &&
cmake --build .
Run project from a bin directory that is created in root directory of the project Bin/TARGET_ARCH/BUILD_TYPE/.
Windows
Download Vulkan SDK from a place like LunarG.
If you are using Visual Studio make sure to have CMake support installed.
Visual Studio
Open root directory of the project with Visual Studio. Wait for cmake to build. Select AtlBee project as a build target.
Prefer release build.
CMake
mkdir Build
cd Build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
Run project from a bin directory that is created in root directory of the project Bin/TARGET_ARCH/BUILD_TYPE/.







