Details

Type

Student Project

Persons

1

Description

A modern, convenient, and powerful rendering framework is in the making that aims to make Vulkan development more convenient, but still maintains all the options that Vulkan offers. I.e. it shall not cut short any features or possibilities that Vulkan provides but instead, maintain the full power of Vulkan while making development against the API more convenient and faster.

The framework we are talking about comes in two parts: A convenience layer atop Vulkan-Hpp by the name Auto-Vk, and a ready-to-use framework by the name Auto-Vk-ToolkitAuto-Vk-Toolkit uses Auto-Vk as an integral part and adds additional platform-specific functionality to it.

The framework has been used for the assignments of Algorithms for Real-Time Rendering 2020 and 2022, for several diploma theses projects, and for our research.

Both, 6 ECTS and 6+6 ECTS projects are possible.

Update May 2023: New positions are available.

Contact: Johannes Unterguggenberger

Tasks

Help to improve the frameworks by implementing issues from both repositories

A variety of tasks is offered:

  • C++(20)-centric tasks (e.g., improving the code architecture, or implementing something with new C++20 features)
  • Vulkan-centric tasks (e.g., implementing a new feature, such as VK_KHR_dynamic_rendering)
  • CMake-centric tasks (improving the current CMake setup)
  • C#-centric tasks (improving the Post Build Helper tool, which is a tray application on Windows)

In addition, there is the option to shape the two code bases according to your vision and to suggest your own improvements!

Requirements

What you must bring:

  • At least solid C++ skills. You can (and should!) improve them throughout this PR. (Except for the CMake- and C#-centric tasks)
  • Very basic Vulkan knowledge is required. (Except for the CMake- and C#-centric tasks)
  • Recommended: Implement a small (or partial) issue of one of the repositories or submit your plan how to implement one of the issues in order to qualify for this PR (feel free to contact Johannes Unterguggenberger before you start)

The following mindset will be required:

  • Quality > quantity
  • Willingness to write modern C++ (i.e. C++17 or C++20)
  • Aim for highest possible programmer-convenience while not restricting usage options w.r.t. the Vulkan API

What you will get:

  • You'll learn a lot about modern C++ programming
  • You can learn about some parts of the Vulkan API in detail
  • You contribute to an open source project
  • You will have made yourself familiar with a C++/Vulkan framework that you can use for future projects (university/private/commercial) which will boost your productivity and allows you to focus on graphics delopment instead of battling with the API.

Environment

  • Vulkan 1.3 API
  • Modern C++ (i.e. C++17 and above)
  • Visual Studio or CMake
  • Windows or Linux
  • C# and PowerShell if you want to work on improving the Post Build Helper tool

Responsible

For more information please contact Johannes Unterguggenberger.