Magic Red is a cross-platform 3D rendering engine built on top of Vulkan.
This project requires from you:
- The latest Vulkan SDK
- CMake 3.20 or later
All other dependencies are pulled as submodules and built from source.
Initial clone:
git clone --recurse-submodules [email protected]:patrick-han/magic-red.git
If you forget to fetch the submodules:
cd magic-red
git submodule update --init --recursive
Create build folder:
cd magic-red
mkdir build
It's recommended to use the CMake gui application from here. After configuring and generating, open the solution and build the magic-red
project.
cmake -S . -B build -G "Xcode"
Then open the Xcode project in the build
folder and build the magic-red target.
Or if you're feeling spicy and don't like Xcode:
cmake -S . -B build -G "Unix Makefiles"
cd build
make -j `sysctl -n hw.ncpu` magic-red
Will probably work with a few tweaks, there are always some compiler quirks.
- VK_KHR_dynamic_rendering
- VK_KHR_buffer_device_address
- VK_EXT_scalar_block_layout
- VK_EXT_descriptor_indexing
- Static mesh loading
- Simple Phong shading
- Blinn-Phong lighting
- Bindless textures w/ PBR Materials
- Normal mapping
- HDR
- Shadowmaps
- Deferred architecture
- PBR lighting model
- Bloom
- SSAO
- RT path for GI, shadows, and reflections
- Skinned meshes and animation
- Job system
- Simple "ECS"
- Asset cooker (including texture compression)
- Scene saving/loading
- Physics
- Developer console
- Shader hot reloading