Repository navigation
Setup
Diese Seite sagt, was installiert sein muss und wie die Engine konfiguriert, gebaut und gestartet wird – in Visual Studio und auf der Kommandozeile.
| Komponente | Version / Ort |
|---|---|
Visual Studio 2026 mit MSVC (Generator Visual Studio 18 2026, x64) |
im Pool installiert |
| CMake ≥ 3.29 | Bestandteil der Visual-Studio-Installation oder eigenständig |
| Vulkan SDK ≥ 1.4.350.0 | Umgebungsvariable VULKAN_SDK zeigt auf die Installation; das SDK liefert slangc, spirv-opt und die Validation Layers |
| vcpkg | Umgebungsvariable VCPKG_ROOT zeigt auf die Installation; Manifest-Modus, die Pakete stehen in vcpkg.json
|
GPU mit Vulkan 1.3 und dem Feature dynamicRendering
|
sonst bricht der Start mit Failed to find a suitable GPU. Make sure your GPU supports Vulkan and has the required extensions. ab |
Beide Umgebungsvariablen, VULKAN_SDK und VCPKG_ROOT, braucht jeder der beiden Wege unten. Die Abhängigkeiten (glfw3, glm, ktx, nlohmann-json, tinygltf, stb, zstd) installiert vcpkg beim ersten Konfigurieren selbst; das braucht Netz und dauert einige Minuten. Vulkan-Header, Loader und vulkan.hpp kommen aus dem SDK, Dear ImGui liegt im Repository.
Gebaut und gestartet wird die Debug-Konfiguration. Nur in Debug sind die Validation Layers eingeschaltet (ENABLE_VALIDATION_LAYERS, ein Schalter beim Kompilieren), und nur dort entspricht die Terminalausgabe der, die das Aufgabenblatt beschreibt.
- Repository in einer PowerShell klonen, am besten der Developer PowerShell for VS, in den Repository-Ordner wechseln und den Branch prüfen:
Nach dem Klonen ist
git clone https://github.com/Puro-cs/Vulkan-Rendering-Engine cd Vulkan-Rendering-Engine git branchmainmit der Beispielszene ausgecheckt (git branchzeigt* main); auf das Gerüstlearningwechselt erst Aufgabe 1. - In Visual Studio Ordner öffnen (Open a local folder) und den Repository-Ordner wählen. Visual Studio liest
CMakePresets.jsonund konfiguriert mit dem Presetwindows-msvc; dabei installiert vcpkg die Pakete. - Konfiguration Debug (
windows-msvc-debug) wählen, ZielVulkanRenderEngine.exe, bauen. - Starten (F5 oder Strg+F5). Das Arbeitsverzeichnis ist auf
src/eingestellt (VS_DEBUGGER_WORKING_DIRECTORY); das Konsolenfenster, das mit der Exe aufgeht, ist die Engine-Konsole: Dort steht die Ausgabe der Engine, und dort werden Terminalbefehle getippt. Befehle wiegit,copyundcmakegehören dagegen in eine PowerShell im Repository-Ordner.
cmake --preset windows-msvc
cmake --build --preset windows-msvc-debug
cd src
..\build\windows-msvc\Debug\VulkanRenderEngine.exe
Die erste Zeile konfiguriert (einmal; beim ersten Mal mit der vcpkg-Installation), die zweite baut, die letzten beiden starten aus src/: die Exe findet shaders/*.spv und ../assets/... relativ zum Arbeitsverzeichnis. Aus einem anderen Ordner gestartet (etwa per Doppelklick auf die Exe) zeigen die Pfade ins Leere und die erste Shader-Datei wird nicht gefunden.
- ein Fenster 800 × 600, im Titel Frame-Zähler, FPS und ms; bei der Beispielszene zeigt es den beleuchteten Raum und die Kugel, darüber das Panel Renderer der Engine;
- in der Engine-Konsole genau eine Meldung der Validation Layer (
robustBufferAccess2ohnerobustBufferAccess) – sie ist aus dem Tutorial geerbt und kein Fehler; jede andere Meldung ist neu; - bei der Beispielszene zwei harmlose Warnungen des Model-Loaders für den Viking Room (
Warning: No decoded bytes for baseColor texture index 0,Warning: Failed to extract punctual lights from ...); -
Renderer: Ending load cycle without completion mark. Forcing completion to avoid deadlock.ist das normale Ende des Ladens; - danach die drei Ansichten:
Initialization chain:mit acht[ok]-Zeilen, der BlockPipeline "pbr"mitObjects Room, Sphereund, nach dem ersten Frame,Frame sequence:mit sechs[ok]-Zeilen; keine Zeile mit[!!]. Der genaue Wortlaut steht auf der Seite Pipeline-Ansicht.
Die Liste der *.slang-Dateien wird beim Konfigurieren eingesammelt. Nach dem Anlegen oder Löschen einer Shader-Datei in src/shaders/ deshalb noch einmal konfigurieren (cmake --preset windows-msvc; in Visual Studio den CMake-Cache neu erzeugen) und dann bauen. Ein Build-Baum, der eine gelöschte Shader-Datei noch kennt, scheitert im Ziel shaders.
Die kompilierten Shader (*.spv) liegen nicht im Repository: der Build erzeugt sie mit slangc aus dem Vulkan SDK und kopiert sie nach src/shaders/. Eine .spv-Datei wird nie von Hand angefasst; ihr Name taucht nur im Pipeline-Block der Terminalausgabe auf (x.slang -> x.spv).
Engine-Dokumentation: docs/ARCHITECTURE.md, Build files.