Skip to content

GDBobby/vulkan

 
 

Repository files navigation

Lucre

A Vulkan Render Engine




Features: Vulkan support for 3D rendering, physically-based lighting, Blinn-Phong lighting, materials base on roughness-metallic workflow, hotplug gamepad support, sound support, profiling, cross-platform resource system (Windows/Linux), render API abstraction, engine/application separation, event system, settings manager, point lights, enity component system based on EnTT, physics simulator based on Box2D, debug imgui window, sprite sheets, sprite sheet generator, 3D file formats: Obj Wavefront and glTF

* Press "f" to toggle fullscreen and "m" to toggle the debug imgui window.
* Use the left and right sticks on the controller to move some objects around and scale them.
* Use the AWSD keys to move the camera. Q and E are for up and down
* Use the arrow keys to look around.
* Use the mouse wheel to zoom.
* The A button plays a test sound.
* Press ESC or the guide button on the controller to exit.
* Press "g" to fire the volcano and "r" to reset the scene.

To blacklist a GPU, enter its name or a substring in engine.cfg.

Contributions: Please use https://en.wikipedia.org/wiki/Indentation_style#Allman_style and four spaces to indent.

Build Instructions

Ubuntu:
(Info: ppa:beauman/marley provides premake5)


sudo add-apt-repository ppa:beauman/marley
sudo add-apt-repository universe
sudo apt-get update
sudo apt install premake5 git build-essential xorg-dev libxrandr-dev libvulkan-dev libpulse-dev libibus-1.0-dev libglib2.0-dev libsamplerate0-dev libasound2-dev libudev-dev


Get the Vulkan SDK from here:
https://vulkan.lunarg.com/doc/sdk/1.2.198.1/linux/getting_started_ubuntu.html

Install the source code:
git clone --recurse-submodules https://github.com/beaumanvienna/vulkan
cd vulkan


Create project files for gcc:
premake5 gmake2


#define the number of CPU cores to be used for compiling
#e.g. "-j4"
#To use all available CPU cores, say:
export MAKEFLAGS=-j$(nproc)


Compile and run debug target: make verbose=1 && ./bin/Debug/engine
Compile and run release target: make config=release verbose=1 && ./bin/Release/engine


Windows Build Instructions


Dependencies: premake5, Visual Studio, Vulkan SDK

Download the Vulkan SDK from lunarg.com, install it, then copy "C:\VulkanSDK\1.3.204.1" (path and version may differ) to vendor/VulkanSDK. The version number is omitted in the path.

In a terminal, starting from the root folder vulkan, if you have Visual Studio 2019:
premake5.exe vs2019

If you have Visual Studio 2022, use instead:
premake5.exe vs2022

Open the solution for vulkan, switch to Release, and hit F5


Update Instruction


To pull in the latest changes for the repository, use:

git pull && git submodule update --init --recursive

About

A Vulkan Render Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.7%
  • GLSL 4.4%
  • Other 0.9%