Skip to content

Tomzopo/vulkan_renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulkan Renderer

This is my implementation of a Vulkan Renderer.

It's all in a monolithic structure due to the fact that Vulkan is a C API and it's easier for learning purposes. I will work on an absracted verison in the future when I'm more comfortable with the vulkan spec and concepts.

Many thanks to vulkan-tutorial.com.

Example Clips

These are some clips taken of the my renderer for a few different models.

cyber-room-example.mp4
fantasy-inn.mp4
viking-room.mp4

Building & Running

If you'd like to run this on your machine (Windows and MacOS tested).

  1. Download and install the VulkanSDK
  2. Clone repo and all submodules
  3. The build system uses CMake, so open the project in any CMake compatible IDE's (Visual Studio/CLion) or use cmake to generate the project structure relevant to you (Refer to CMake documentation).
  4. Just build and run. For best performance remember to build in release mode.
  5. To change the example render model/texture. Change comments for the following lines:
// Cyber Room
const std::string MODEL_PATH = "../models/cyber_room.obj";
const std::string TEXTURE_PATH = "../textures/cyber_room.png";

// Fantasy Inn
//const std::string MODEL_PATH = "../models/fantasy_game_inn.obj";
//const std::string TEXTURE_PATH = "../textures/fantasy_game_inn.png";

// Viking Room
//const std::string MODEL_PATH = "../models/viking_room.obj";
//const std::string TEXTURE_PATH = "../textures/viking_room.png";

My goals for this renderer project:

  • Object-Oriented Abstraction -> Link to branch
  • Mipmap Generation
  • Multisampling

Example Models & Textures:

All these amazing models and textures aren't created by me. You can find the sources and creators with the following links:

About

Basic Vulkan Renderer

Topics

Resources

Stars

Watchers

Forks