Skip to content

A toy game engine based on OpenUSD for scene management and Hydra 2.0 (Vulkan) for rendering.

Notifications You must be signed in to change notification settings

jlvoiseux/aerial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aerial

This project is a toy game engine with the following features:

  • USD-based scene management
  • Hydra 2.0 / Storm / Vulkan rendering
  • Profiling with Tracy
  • Lua scripting
  • Hot reload of USD scenes
Screenshot 2025-02-09 213802 aerial

Build

First, clone the repository and all its submodules

git clone https://github.com/jlvoiseux/aerial-cmake.git --recursive
  • Then, generate the solution on the platform of your choice using CMake. The engine should build and work out of the box. (tested only on a full Visual Studio toolchain)
  • USD scenes can be placed in res/usd

Development

Profiling

  • The engine is instrumented with Tracy. To visualize the profiler, you need to run the version 0.10 of the Tracy server. You can find the server and usage instructions on the tracy GitHub repository.

Performance bottlenecks observed in Vulkan

  • Shaders (culling program, drawing program) look like they are recompiled for each draw batch on the main thread every time the program starts (~35s)
  • When using the ImGui debug menu, copying the texture to the viewport is expensive (~30ms)
  • Hydra's _endFrameSync() is surprisingly expensive when using the Vulkan backend (~30ms as well)

Dependencies

About

A toy game engine based on OpenUSD for scene management and Hydra 2.0 (Vulkan) for rendering.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published