Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rath

A Vulkan renderer in C++, built as the foundation for a game engine.

About

Rath is being built toward a game engine, so the renderer lives in an engine library with a separate sandbox application on top of it rather than one program. The sandbox is the first consumer of the engine's API, which keeps that API usable from outside the engine's own code.

Currently only a simple renderer exists. The direction I am interested long term is large open world rendering and generation capabilities.

Implemented

  • OBJ model loading with vertex deduplication
  • Texture mapping
  • Depth buffering
  • Staging buffer uploads to GPU memory
  • Frames in flight with fences and semaphores
  • Swapchain recreation on resize
  • Validation layers

Mipmaps and multisampling are not done yet.

Architecture

The engine is a library and the sandbox is a small app that links it. Core : application loop, platform detection, defines Platform : window Renderer : Vulkan code.

Each Vulkan resource gets its own class. Image creation is a utility shared by the swapchain and textures. The device owns the command pool, since member initialization order ruled out passing it down.

Credits

The Vulkan feature path follows vulkan-tutorial.com. The engine structure, class decomposition, and build setup are my own.

Viking room by nigelgoh, licensed CC BY 4.0, taken from vulkan-tutorial.com's resized copy.

Dependencies:

About

An eventual game engine written with Vulkan in C++

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages