Das Repository ist privat, es gibt hier also keinen Link auf den Quellcode.
Ein Vulkan-Renderer, von Hand in C++ geschrieben und mit CMake gebaut. Kein Framework dazwischen: Instanz, Gerät, Swapchain und Pipeline sind eigene Einheiten, jede in ihrer eigenen Übersetzungseinheit.
Darauf läuft eine Voxel-Welt, aufgeteilt in Chunks, deren Höhenfeld aus Rauschen kommt. Entstanden im März 2026, also vor Gaia, und der Ort, an dem ich Vulkan zum ersten Mal ohne fremde Hilfe zusammengesetzt habe.
Was drin steckt
Renderer
Der Aufbau folgt der Reihenfolge, in der Vulkan es verlangt, und ist genau danach in Dateien geschnitten: Gerät und Warteschlangen, Swapchain samt Neuaufbau bei Größenänderung, Renderpass und Pipeline, dann der Renderer selbst, der die Bilder einreiht. Der Renderer ist mit 28 KB die größte Datei im Projekt.
Welt in Chunks
Die Welt ist in Chunks aufgeteilt, die einzeln aufgebaut und gezeichnet werden. Das Höhenfeld kommt aus einer eigenen Rauschfunktion, die Blöcke tragen Texturen. Zusammen sind Welt und Chunk rund 20 KB, also der zweite Schwerpunkt neben der Grafikschicht.
Shader
Vier GLSL-Shader, zwei für die Geometrie und zwei für den Himmel, jeweils Vertex und Fragment. Sie liegen als Quelltext und als übersetztes SPIR-V im Projekt, werden also vor dem Start zu Bytecode gemacht und nicht zur Laufzeit übersetzt.
Kamera und Texturen
Eine freie Kamera und ein eigener Texturpfad, der Bilddaten hochlädt und in Deskriptoren bindet. Für das Einlesen der Bilddateien ist die einzige Fremdbibliothek im Quellverzeichnis zuständig, ein einzelner Header.
Umfang
| Messgröße | Wert |
|---|---|
| Eigener Quellcode | 115 KB |
| Eigene Quelldateien | 18 |
| Shader in GLSL | 4 |
| Fremdbibliotheken im Quellverzeichnis | 1 |
GitHub weist für dieses Repository deutlich mehr aus. Das liegt daran, dass ein 283 KB großer Fremd-Header mitgezählt wird und im Repository auch erzeugte Build-Dateien liegen. Die Zahl oben ist die, die etwas über die Arbeit sagt.