vulkan-engine
vulkan-engine copied to clipboard
Experimental project for learning computer graphics using vulkan API and c++.
MFA engine :))
More document/tutorial will be added soon!
Ray tracing in one weekend

Particle system


Read more about my particle implementation here
Character control

Shadow mapping

Animation Time!


Read more about my animation implementation here
PBR on GLTF models

Support for rendering scene from gltf node tree


Sponza scene

Experimental android port

Experimental ios port

.obj file:

.gltf file:

Basic PRB

PBR on textured sphere

How to build
Windows
- You can use following command to create the project
mkdir build64 || cmake -A x64 -S . -Bbuild64
- Or if you have node installed you can run
npm run cmake-windows
- Also you can use cmake tools that does everything for you (Available as extension for VS-Code)
- Find .sln files inside build64 and then run the project
Note:
Currently most of recent examples won't run on mac because of no geometry shader support. I'm trying to use compute shader for animation, particle and replace all geometry shader usages with compute shader
Macos
(Editor is not avialable yet)
- Using make
mkdir build64
cd build64
cmake .. -DCMAKE_BUILD_TYPE=Debug (Release) Or you can use npm run cmake-mac
make
./MFaEngine
- If you prefer Xcode, create a build folder then execute following command from inside that folder:
cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=./ios.toolchain.cmake -DPLATFORM=MAC
Linux
Use clang
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
(Editor is not avialable yet)
mkdir build
cd build
cmake ..
For debug build
cmake -DDEBUG_MODE=ON ..
For release build
No extra flag needed
https://gameworksdocs.nvidia.com/PhysX/4.1/documentation/platformreadme/linux/readme_linux.html
You might need to install x11 library on your machine
sudo apt install libx11-dev
Android (Experimental)
Open android folder using android studio. You might need to change ndk version based on your installed version
IOS (Experimental)
cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=./ios.toolchain.cmake -DPLATFORM=OS64COMBINED