Skip to content

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.

Notifications You must be signed in to change notification settings

EthanStanks/Level-Renderer-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages