Skip to content

An interactive application and rendering engine.

Notifications You must be signed in to change notification settings

raphaeleg/VkRenderer

Repository files navigation

🏺Interactive 3D Renderer

An interactive application and rendering engine for Windows. The repository contains all of the code for this project, including branches of different use cases.

Code heavily guided by Brendan Galea's series, and build heavily inspired by Hazel

Getting Started

Visual Studio 2022 and Windows is recommended to view and run the code.

1. Downloading the repository:

Start by cloning the repository with git clone --recursive https://github.com/raphaeleg/VulkanTriangle.

If the repository was cloned non-recursively previously, use git submodule update --init to clone the necessary submodules.

2. Configuring the dependencies:

  1. Run the Setup.bat file found in scripts folder. This will download the required prerequisites for the project if they are not present yet.
  2. One prerequisite is the Vulkan SDK. If it is not installed, the script will execute the VulkanSDK.exe file, and will prompt the user to install the SDK.
  3. After installation, run the Setup.bat file again. If the Vulkan SDK is installed properly, it will then download the Vulkan SDK Debug libraries. (This may take a longer amount of time)
  4. After downloading and unzipping the files, the Win-GenProjects.bat script file will get executed automatically, which will then generate a Visual Studio solution file for user's usage.

If changes are made, or if you want to regenerate project files, rerun the Win-GenProjects.bat script file found in scripts folder.

Brief Project Structure

General Structure

Features

Preview

  • A fully working 3D Renderer with the proper Vulkan Setup (Window, Pipeline, Buffers, etc...)
  • Interactive Camera
  • Loading of 3D Models (using tinyobjloader)
  • Light interaction (phong shading)
  • Multiple light sources
  • Billboarding
  • Alpha Blending
  • Premake Project Generation for VS2022

❗To be implemented

  • Error Handling for shader files when building
  • Project Compatibility with MacOS
  • Switch to Quaternion Rotations
  • Better Inputs