Skip to content

Latest commit

 

History

History
51 lines (47 loc) · 2.29 KB

File metadata and controls

51 lines (47 loc) · 2.29 KB

Dev4 Vulkan Renderer Project

This is a graphics renderer project created in Vulkan with an Object Oriented approach to Data Driven Rendering. The main goal of this project is to create software designed to draw the visual aspects of a game level using the Vulkan API.

Getting Started

To get started, clone the repository and open the project in your preferred IDE. You will also need to have Vulkan installed on your system.

Prerequisites

  • Vulkan SDK
  • C++ Compiler

Running the Application

To run the application, build the project and run the executable file. The renderer can only render in debug mode currently.

Controls

  • (W): Forwards
  • (S): Backwards
  • (A): Left
  • (D): Right
  • (Space): Up
  • (Left_Shift): Down
  • (Mouse): Tilts up and down / Turns left and right
  • (R): Speeds Up Camera Speed
  • (F1): Load saved levels

Loading a Level

  • Press F1
  • Select a Level.txt file from the SavedLevels folder

Project Features

  • One or More Blender Game Levels to export from (.blend)
  • Exporting OBJ Names & Locations from your Levels (GameLevel.txt)
  • Run-time file I/O parsing of exported level information (GameLevel.txt)
  • Reading binary model data for all referenced models (*.h2b + h2bParser.h)
  • Transfering model geometry, material and matrix data to GPU
  • One model imported from GameLevel.txt is drawing correctly
  • Working 3D Fly-through Camera
  • All models successfully drawn at proper location, orientation & scale
  • All models have correct OBJ material colors showing
  • Directional light with ambient term and specular highlights
  • Support for Hot-Swapping multiple levels without a restart

Credits

LowPoly Models by @Quaternius https://quaternius.com/

Additional Information

This project was created as a part of Project & Portfolio IV. The primary goal of this project is to apply what you have learned so far about computer graphics to create a renderer using Vulkan. The project is evaluated based on the rubric provided, and completing it will demonstrate your understanding of computer graphics and your ability to create a game level.