You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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.
About
Vulkan-based graphics renderer that uses an Object Oriented approach to Data Driven Rendering to draw game levels. It features exporting levels from Blender, parsing level information at run-time, transferring model data to the GPU, and support for hot-swapping multiple levels without a restart.