Skip to content

Begriffe

Puro-cs edited this page Oct 10, 2026 · 3 revisions

Begriffe

Diese Seite erklärt die Vulkan- und Grafikbegriffe, die in der Terminalausgabe der Engine (Aufrufbeschreibungen, Begründungen, Pipeline-Block, Meldungen) und in den Kommentaren von sandbox.h vorkommen – der englische Begriff, wie er dort steht, mit einer deutschen Erklärung.

Quellen: [Spec] = Glossar der Vulkan-Spezifikation; [Spec, Pipelines] = Kapitel Pipelines der Spezifikation; [Guide] = Vulkan Guide (Khronos); [Samples] = Vulkan Samples, Dynamic Rendering; [Engine] = Dokumentation der Engine: docs/ARCHITECTURE.md, die Kommentare in src/sandbox.h und src/pipeline_settings.h und, für die Meldungen beim Start, docs/BUILD.md auf dem Branch learning; wo nur der Code einen Wert nennt, steht die Datei. Begriffe, für die nur die Engine spricht, tragen deren eigene Formulierung und keine weitere Definition.

Initialisierung

Begriff Erklärung Quelle
window, window surface / surface, drawing area Das Fenster ist das Betriebssystemfenster (GLFW), in dem gerendert wird, und die Surface (VkSurfaceKHR) ist das plattformunabhängige Vulkan-Objekt dafür, das die übrige API für alle Fensteroperationen benutzt – in den Worten der Engine the drawing area of a window. [Guide] Surface; [Engine] ARCHITECTURE, The initialization chain
input callbacks Die vier Rückruffunktionen, mit denen das Fenster Tastatur- und Mausereignisse an die Engine meldet und so ihre Kamerasteuerung treibt. [Engine] ARCHITECTURE, The initialization chain, Files (engine.h/.cpp)
Vulkan instance / instance Das oberste Vulkan-Objekt: die Verbindung der Anwendung zur Vulkan-Implementierung (VkInstance). [Spec] Instance
extensions, window system Erweiterungen sind optionale Teile der API, die beim Anlegen von Instanz oder Gerät angefordert werden; welche das Fenstersystem für Surface und Präsentation braucht, erfragt die Instanz von ihm. [Spec] (extension ohne eigenen Glossareintrag); [Engine] Begründung von CreateInstance
debug messenger Der Empfänger, über den die Validation Layers ihre Meldungen an die Engine liefern, die sie als Validation layer: … druckt, Warnungen und Fehler auf stderr. [Engine] ARCHITECTURE, The initialization chain; BUILD (learning), Expected console output in Debug
GPU, physical device, devices the Vulkan instance lists Ein physisches Gerät (VkPhysicalDevice) repräsentiert ein Gerät im System, die Instanz zählt diese Geräte auf, und die Engine wählt eine GPU für Vulkan 1.3 mit dynamic rendering, das sie durchgehend benutzt. [Spec] Physical Device; [Engine] ARCHITECTURE, Einleitung und The initialization chain
logical device, queues Das logische Gerät (VkDevice) ist die Schnittstelle der Anwendung zum physischen Gerät und Elternobjekt der meisten Vulkan-Objekte, und eine Queue (VkQueue) führt Command Buffers auf dem Gerät aus, wobei Queues mit gleichen Eigenschaften eine Queue-Familie bilden. [Spec] Logical Device, Queue, Queue Family
memory pool, memory management Gerätespeicher (VkDeviceMemory) ist Speicher, auf den das Gerät zugreift, und die Speicherverwaltung der Engine ist ihr Memory Pool, der diesen Speicher für alle Buffer und Bilder unterallokiert. [Spec] Device Memory; [Engine] ARCHITECTURE, Ownership; sandbox.h
swap chain, swap chain image(s), present Die Swap Chain (VkSwapchainKHR) stellt über eine Reihe von Bildern (VkImage, presentable images) die Fähigkeit bereit, Renderergebnisse auf einer Surface zu präsentieren, und präsentieren heißt, das fertig gezeichnete Bild im Fenster zu zeigen. [Guide] Swapchain; [Spec] Presentable image
image views, image format Ein Image View (VkImageView) ist ein Objekt auf einen Teilbereich eines Bildes mit der Angabe, wie dessen Inhalt zu interpretieren ist; das Format sagt, wie die Pixel gespeichert sind. [Spec] Image View
dynamic rendering, rendering set-up Rendern ohne Render-Pass- und Framebuffer-Objekte, bei dem die Attachments beim Beginn des Renderns (vkCmdBeginRendering) direkt angegeben werden; die Engine legt ihren Rendering-Aufbau – Attachment-Beschreibungen, Tiefenbild, Off-Screen-Farbbild – in InitializeRendering an. [Samples] Dynamic Rendering; [Engine] ARCHITECTURE, The initialization chain
depth image, off-screen color image Das Bild, in das die Tiefenwerte geschrieben werden, und das Farbbild, in das die undurchsichtige Szene gezeichnet wird, bevor der composite-Pass sie auf das Swap-Chain-Bild bringt. [Engine] ARCHITECTURE, One frame
attachments, color and depth attachments, formats of the attachments Die Bilder, in die ein Pass zeichnet – das Color Attachment ist das Ziel der Fragment-Farbausgaben und des Blendings, das Depth/Stencil Attachment das Ziel von Tiefentest und Tiefenschreibzugriffen –, und eine Pipeline wird für die Formate ihrer Attachments gebaut. [Spec] Color Attachment, Depth/Stencil Attachment; [Engine] Begründung von CreatePipelines
pipeline(s), the engine's pipelines, own pipeline, (pipeline) layout Eine Pipeline (VkPipeline) steuert, wie Grafikarbeit auf dem Gerät ausgeführt wird – ein oder mehrere Shader plus der Zustand der nicht programmierbaren Stufen –, ihr Pipeline-Layout legt die Ressourcen (über Descriptor-Set-Layouts) und Push Constants fest, die sie benutzt, und eine eigene Pipeline teilt das Layout von "pbr", der Pipeline der Engine. [Spec] Pipeline, Pipeline Layout; [Engine] ARCHITECTURE, Named pipelines
descriptor set layouts, descriptor pool, descriptor sets Ein Descriptor beschreibt eine Ressource, damit ein Shader sie ansprechen kann; ein Descriptor Set ist das Objekt, in das Descriptoren geschrieben werden und das an einen Command Buffer gebunden wird; sein Layout legt Typen, Anzahl und Anordnung der Ressourcen fest; aus dem Descriptor Pool werden die Sets allokiert. [Spec] Descriptor, Descriptor Set, Descriptor Set Layout, Descriptor Pool
light buffers Der Storage Buffer an Binding 6, in den die Engine jeden Frame alle Lichter der Szene (LightData) schreibt. [Engine] ARCHITECTURE, What a mesh shader gets from the engine
command pool, command buffer(s), begin / end / recording, submit Ein Command Buffer (VkCommandBuffer) zeichnet Befehle auf, die an eine Queue übergeben werden, und wird aus dem Command Pool allokiert; aufzeichnen heißt, Befehle zwischen begin und end in den Buffer zu schreiben, und submit übergibt den fertigen Buffer der Queue zur Ausführung. [Spec] Command Buffer, Command Pool, Submission
default textures Die gemeinsamen Ersatztexturen der Engine, mit denen ein Material ohne eigene (KTX2-)Textur gezeichnet wird, etwa die default albedo. [Engine] ARCHITECTURE, The initialization chain; BUILD (learning), Run
semaphores and fences, synchronize Eine Semaphore ist ein Synchronisationsobjekt mit Signal- und Warteoperationen innerhalb einer Queue oder zwischen Queues; eine Fence wird signalisiert, wenn übergebene Arbeit auf der Queue fertig ist, und kann vom Host (der CPU) abgewartet werden. [Spec] Semaphore, Fence
worker threads, upload textures Die Threads des Thread-Pools der Engine, die Texturen dekodieren und auf die GPU hochladen. [Engine] ARCHITECTURE, Ownership
model loader, UI, ImGui Der Model Loader parst glTF-Dateien (tinygltf) mit ihren Materialien, Lichtern und Kameras, und die UI ist das Bedienfeld der Engine, gebaut mit Dear ImGui und mit eigener Vulkan-Pipeline. [Engine] ARCHITECTURE, Ownership; sandbox.h
buffers and images on the GPU Ein Buffer (VkBuffer) ist eine lineare Folge von Daten im Gerätespeicher, ein Image (VkImage) eine mehrdimensionale, formatierte Interpretation von Gerätespeicher, und in solchen Objekten liegen die Meshes und Texturen der Szene. [Spec] Buffer, Image
initialization chain, frame sequence Die acht Aufrufe, mit denen main() die Engine aufsetzt, und die sechs Aufrufe eines Frames – die Begriffe der Engine für die beiden Reihenfolgen. [Engine] ARCHITECTURE, The initialization chain, The render loop

Frame-Ablauf

Begriff Erklärung Quelle
frame, frame slot, acquire Ein Frame ist ein Durchlauf der sechs Aufrufe, der ein Bild präsentiert; die Engine hält zwei Frames gleichzeitig in Arbeit, jeden in einem eigenen Slot mit eigenem Command Buffer, Semaphoren und Fence; acquire holt das nächste Swap-Chain-Bild, in das gezeichnet wird. [Engine] ARCHITECTURE, One frame; renderer.h (MAX_FRAMES_IN_FLIGHT = 2)
window events, frame time Vor jedem Frame verarbeitet IsRunning() die Ereignisse des Fensters (window events) und die Zeit seit dem vorigen Frame (frame time). [Engine] ARCHITECTURE, The render loop; sandbox.h
uniform buffers, scene data Ein Uniform Buffer ist ein Descriptor-Typ für einen Buffer, den ein Shader nur liest; die Engine schreibt jeden Frame die Szenendaten (Matrizen, Kamera, Lichtanzahl) hinein. [Spec] Uniform Buffer; [Engine] ARCHITECTURE, What a mesh shader gets from the engine
camera controls, terminal commands Die Tastatur- und Maussteuerung der aktiven Kamera und die in das Terminal getippten Befehle Name.Move / Rotate / Scale; beide wirken in UpdateScene. [Engine] ARCHITECTURE, Terminal commands, One frame
clear Die Attachments zu Beginn des Renderns auf einen Startwert setzen: Farbe Schwarz (0, 0, 0, 1), Tiefe 1,0. [Engine] ARCHITECTURE, One frame; renderer_rendering.cpp
draw, draw commands, bind Zeichenbefehle sind die Befehle, die Arbeit mit einer Grafik-Pipeline auslösen; bind wählt davor die Pipeline, die Descriptor Sets und die Buffer, mit denen gezeichnet wird. [Spec] Drawing Commands
rendering pass / pass In der Engine ein beginRendering … endRendering-Paar im Command Buffer mit seinen Attachments, in dem beliebig viele Objekte und Pipelines gezeichnet werden. [Engine] ARCHITECTURE, One frame

Szene

Begriff Erklärung Quelle
mesh, simple mesh, meshes Ein Mesh ist die Geometrie, die die Engine zeichnet – Vertices, Indizes, Instanzen und die Nummer eines Materials –, und ein simple mesh wie die Kugel aus CreateSphere() braucht keine Datei. [Engine] ARCHITECTURE, Ownership (MeshComponent); sandbox.h; sandbox.cpp
textures, baseColor texture Texturen sind die Bilder eines Materials, die ein Shader abtastet – an Binding 1 die Basisfarbtextur, an den Bindings 2 bis 5 Metallic-Roughness, Normalen, Okklusion und Emission –, und die Engine liest sie nur aus KTX2-Dateien. [Engine] ARCHITECTURE, What a mesh shader gets from the engine; sandbox.h
part, material Ein geladenes Modell besteht aus einem Teil (part) je Material der glTF-Datei, also je Satz aus Texturen und Faktoren, mit dem eine Oberfläche gezeichnet wird, und alle Teile teilen den Transform des Objekts. [Engine] sandbox.h; ARCHITECTURE, The sandbox layer, What a mesh shader gets from the engine
transform(s) Der Transform eines Objekts ist seine Position, Rotation und Skalierung, aus der die Engine seine Modellmatrix bildet und die UpdateScene() in jedem Frame in die Uniform Buffers schreibt. [Engine] ARCHITECTURE, Ownership (TransformComponent); sandbox.h
field of view Der Öffnungswinkel der Kamera in Grad, den SetFieldOfView() setzt. [Engine] sandbox.h
directional lights, point light(s), spotlight(s), range, cone angles Die drei Lichttypen von CreateLight(): ein gerichtetes Licht hat nur eine Richtung, ein Punktlicht eine Position und eine Reichweite (range), ein Spotlight Position, Richtung, Reichweite und einen inneren und einen äußeren Kegelwinkel (cone angles). [Engine] sandbox.h; ARCHITECTURE, Ownership (LightComponent), The sandbox layer

Pipeline-Block

Begriff Erklärung Quelle
input assembly, triangle list Die erste Stufe der Grafik-Pipeline setzt aus Vertices geometrische Primitive zusammen – Punkte, Linien, Dreiecke – nach der angeforderten Topologie; triangle list heißt: je drei Vertices ein Dreieck. [Spec, Pipelines] Input Assembler
engine vertex layout, vertex attribute, location Die festen Vertex-Attribute der Engine, also die Eingaben, die der Vertex Shader aus den Vertex-Daten liest, je an einer location: 0 bis 3 Position, Normale, UV und Tangente, 4 bis 10 je Instanz die Modell- und die Normalenmatrix ([[3 Phong-Modell im Shader 3-Phong‐Modell-im-Shader]]).
vertex shader, VSMain, entry points Die Stufe, in der Vertices transformiert und ihre Positionen und Attribute berechnet werden; VSMain ist ihr Einstiegspunkt (entry point) in jeder Shader-Datei der Engine. [Spec, Pipelines] Vertex Shader; [Engine] ARCHITECTURE, Named pipelines; sandbox.h
rasterization Der Rasterizer erzeugt aus der zweidimensionalen Beschreibung eines Punktes, einer Linie oder eines Dreiecks eine Folge von Fragmenten, die je einem Bereich des Framebuffers zugeordnet sind. [Spec, Pipelines] Rasterization
cull mode (none / front / back) Which side of a triangle a pipeline does not draw: keine, die Vorder- oder die Rückseite, wobei Vorderseiten die gegen den Uhrzeigersinn aufgezählten sind. [Engine] pipeline_settings.h; ARCHITECTURE, Named pipelines, The sandbox layer
fragment shader, PSMain Die Stufe, die die Werte bestimmt, die in die Attachments geschrieben werden; PSMain ist ihr Einstiegspunkt. [Spec, Pipelines] Fragment Shader; [Engine] ARCHITECTURE, Named pipelines
depth test, on, writes depth / off Eine Fragment-Operation, die entscheidet, ob erzeugte Werte in den Framebuffer geschrieben werden – hier der Vergleich der Fragmenttiefe mit dem Tiefenbild (LessOrEqual) –, und writes depth heißt, dass die Tiefe des gezeichneten Fragments ins Tiefenbild geschrieben wird. [Spec, Pipelines] Fragment operations; [Engine] ARCHITECTURE, Named pipelines
color blending, blended materials, opaque scene, transparent objects Blending sind Rechenoperationen zwischen der Fragmentfarbe und dem Wert im Color Attachment, die die endgültige Farbe ergeben; die Engine blendet nur mit ihrer Pipeline "pbr" bei gemischten glTF-Materialien, die sie nach der undurchsichtigen Szene als transparente Objekte direkt auf das Swap-Chain-Bild zeichnet, und eigene Pipelines zeichnen ohne Blending. [Spec] Blending; [Engine] ARCHITECTURE, Named pipelines, One frame; sandbox.h
.slang, .spv (SPIR-V) SPIR-V ist eine binäre Zwischendarstellung für Shader-Stufen, in die Shader aus einer Hochsprache – hier Slang – übersetzt werden, weil vkCreateShaderModule sie braucht, und der Build übersetzt x.slang zu x.spv. [Guide] What is SPIR-V; [Engine] ARCHITECTURE, Named pipelines, Build files
fixed / yours Markierung im Pipeline-Block: yours an den vier Zeilen, die die Shader-Datei und die zwei Einstellungen einer eigenen Pipeline bestimmen, fixed an allem, was die Engine festlegt. [Engine] ARCHITECTURE, Terminal output

Meldungen und Panel

Begriff Erklärung Quelle
validation layer Vulkan selbst prüft keine Fehler, deshalb werden die Validation Layers während der Entwicklung eingeschaltet, um ungültiges Verhalten zu erkennen, und nie mit einer Anwendung ausgeliefert; in der Engine sind sie nur in Debug-Builds aktiv. [Guide] Khronos Validation Layer; [Engine] BUILD (learning), Expected console output in Debug
robustBufferAccess2, robustBufferAccess Die beiden Begriffe der einen Meldung der Validation Layers bei jedem Debug-Start, über die die Engine nur sagt: One message is inherited from the tutorial and is not a bug. [Engine] BUILD (learning), Expected console output in Debug
loading overlay, load cycle Die Anzeige der Engine, die die ersten Frames überdeckt, während Meshes und Texturen eines geladenen Modells hochgeladen werden, bis der erste Ladevorgang (load cycle) endet, den die Engine auch dann beendet, wenn kein Modell geladen wurde. [Engine] ARCHITECTURE, Ownership (Absatz Scene loading), The sandbox layer; sandbox.h
tone mapping, exposure, composite pass Der composite-Pass bringt die linearen Farben des Off-Screen-Bildes auf den Bildschirm, mit einer Belichtung (exposure, Standard 1,2) und einem filmischen Tone Mapping, das den Wertebereich auf den darstellbaren abbildet. [Engine] ARCHITECTURE, Shaders (composite.slang); sandbox.h; renderer.h
glTF, KTX2 glTF ist das Modellformat, das LoadModel() liest (.gltf / .glb, geparst mit tinygltf), und KTX2 das einzige Texturformat, das die Engine dekodiert (libktx). [Engine] ARCHITECTURE, Ownership, Files; sandbox.h
punctual lights Die Lichter, die eine glTF-Datei mitbringen kann und die LoadModel() zu den Lichtern der Szene hinzufügt; der Viking Room hat keine, daher die Warnung beim Start. [Engine] ARCHITECTURE, The sandbox layer; BUILD (learning), Expected console output in Debug
uniform buffer object (UBO), push constants, storage buffer (Shader-Seite) Im Shader ist das UBO der nur lesbare Buffer mit den Szenendaten (Binding 0), die Push Constants sind ein kleiner Satz Werte, den die Anwendung direkt setzt und den der Shader ohne Buffer- oder Descriptor-Set-Änderung liest – hier die Materialfaktoren –, und der Storage Buffer ist ein Buffer, den der Shader lesen und schreiben kann – hier die Lichter (Binding 6). [Spec] Uniform Buffer, Push Constants, Storage Buffer

Quellen im Netz: Vulkan-Spezifikation, Glossar; Vulkan-Spezifikation, Kapitel Pipelines; Vulkan Guide, WSI; Vulkan Guide, Validation; Vulkan Guide, What is SPIR-V; Vulkan Samples, Dynamic Rendering; docs/BUILD.md auf dem Branch learning.

Engine-Dokumentation: docs/ARCHITECTURE.md.

Clone this wiki locally