Introduction

About

This blog will teach you about the basic usage of the VkCV framework. The VkCV is a framework designed and built by students from the University Koblenz for computer graphics. Technically the framework is built with Vulkan and allows to utilize the Vulkan API on top of the framework in case you need certain features. However, the tutorials on this blog focus on the core API of the framework itself by going through different examples of increasing complexity. So you will learn how to develop with that instead.

The tutorials do not require any prior knowledge of Direct3D, OpenGL, Metal or Vulkan. But the basics of 3D computer graphics won't be covered in detail. So it will help to get this knowledge from other sources. Also in some cases the VkCV framework utilizes certain concepts of the Vulkan API to reduce the cost of abstraction. In those cases the tutorials will explain those concepts out of necessity. Just don't expect a full detailed guide about Vulkan. There are other sources to use for this.

Additionally every piece of code is written in C++20. The reason for this is that the whole framework is written in this version of C++. So this should make it easiest to develop with it and to make use of the code documentation as well. Concepts and features of C++20 won't be explained in detail but links to explanations are provided.

For all readers with some experience in the Vulkan API. The VkCV framework makea use of the Vulkan-Hpp headers. They provide types and constants from Vulkan in C++ syntax and are used in the frameworks API.

The basic prerequisites for the tutorials are:

  • A graphics card and driver compatible with Vulkan
  • Some experience with C++
  • A compiler with decent support of C++20 features
  • Basic experience with 3D computer graphics

In case you have any questions regarding your graphics card, driver or compiler. All of those things will be covered in the next part regarding the first setup.


Reason

What are the advantages and why would anyone use the VkCV framework instead of the Vulkan API? Vulkan allows you to work very close to the hardware and its graphical features. That is the reason Vulkan can grant you benefits in terms of performance compared too other APIs like OpenGL. At the same time Vulkan is cross-compatible with most modern GPUs and operating systems.

The VkCV framework builds on top of that. Its goal is to reduce the common portions of most cases writing software with Vulkan and reducing the barriers of software development with Vulkan by handling memory management automatically for all internal resources.

Feel free to read into the great Vulkan tutorial here and compare writing code with and without a framework like the VkCV on top. For example you can find about 900 lines of code to render a triangle with Vulkan here and at the same time it needs only about 100 lines of code here using the VkCV.

In this simplified comparison the VkCV brings debug labels for its resources, runtime shader compilation, input controls and even a camera management with it. All of these things would require even more code on top and having those features given by a framework will help in a lot of other cases besides rendering your first triangle.


There are also a lot of different projects available in either the repository of the framework itself or in a separate repository containing some demo projects. You can find the demo projects here and the other projects can easily be found in the "projects" subdirectory of the frameworks repository which is linked above.

Next

Popular posts from this blog

First setup

Application development