Skip to content

Experimental project for learning computer graphics using vulkan API and c++.

Notifications You must be signed in to change notification settings

MohammadFakhreddin/vulkan-engine

Repository files navigation

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