Programming lesson
COMP3069 Computergrafik: Eigenständige 3D-Szene mit OpenGL und GLSL – Tutorial zur Bewertung 3 (2025)
Erstellen Sie eine animierte, interaktive 3D-Außenszene mit OpenGL, GLSL und modernen Grafik-APIs. Inklusive Modellierung, Beleuchtung, Texturen, Kameras und Anti-Aliasing – angelehnt an die COMP3069-Aufgabe 2025.
Einführung in die COMP3069 Computergrafik-Aufgabe (2025)
Die COMP3069 Computergrafik Aufgabe 3 ist der zentrale Bestandteil Ihrer Modulnote (70%). Sie müssen eine animierte, interaktive 3D-Außenszene mit OpenGL, GLFW, GLSL und GLM erstellen. Dieses Tutorial führt Sie durch die Kernkonzepte, ohne die Lösung vorwegzunehmen – es hilft Ihnen, die Anforderungen zu verstehen und kreativ umzusetzen.
Die Abgabefrist ist der 22. Dezember 2025, 16:00 Uhr. Verspätete Einreichungen werden mit 5 % pro Tag bestraft. Sie reichen ein ZIP-Archiv mit Ihrer Visual-Studio-Lösung (Code, Texturen, Shader, ausführbare Datei) und einen PDF-Bericht (2000–3000 Wörter) ein.
1. 3D-Modellierung und Transformationen
Erstellen Sie Modelle wie in der Referenz (z. B. Stanford Bunny, Utah Teapot, Drachen). Sie können Vertex-Daten manuell definieren oder prozedural generieren. Nutzen Sie 3D-Transformationen (Translation, Rotation, Skalierung), um Objekte zu positionieren und zu animieren – z. B. ein sich drehendes Rad oder ein segelndes Boot. Denken Sie an aktuelle Trends: Wie in einer KI-gesteuerten Spielewelt (z. B. Minecraft mit generierten Landschaften) können Sie prozedurale Geometrie für Bäume oder Felsen einsetzen.
Praktische Tipps zur Modellierung
- Verwenden Sie GLM für Matrizen und Vektoren.
- Nutzen Sie Index-Buffer, um Speicher zu sparen.
- Animieren Sie Objekte über uniforme Variablen im Shader.
2. Beleuchtung mit drei Lichttypen
Sie müssen mindestens drei Lichtquellen implementieren: gerichtetes Licht (Sonne), punktuelles Licht (Laterne) und Spotlicht (Taschenlampe). Schalten Sie das gerichtete Licht um, um Tag/Nacht zu simulieren – ein Effekt, der an dynamische Wettersysteme in modernen Spielen wie Fortnite erinnert.
Umsetzung in GLSL
// Vertex-Shader-Auszug
#version 330 core
layout(location = 0) in vec3 aPos;
layout(location = 1) in vec3 aNormal;
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
void main() {
gl_Position = projection * view * model * vec4(aPos, 1.0);
}Nutzen Sie im Fragment-Shader das Phong-Beleuchtungsmodell für realistische Reflexionen.
3. Texturen und Umgebung
Wählen Sie realistische Texturen für Himmel und Fluss. Achten Sie auf nahtlose Übergänge (Seamless Textures). Aktuelle AI-gestützte Tools wie Stable Diffusion können helfen, einzigartige Texturen zu generieren – achten Sie aber auf Urheberrechte.
Texturkoordinaten richtig setzen
// Fragment-Shader mit Textur
uniform sampler2D ourTexture;
void main() {
FragColor = texture(ourTexture, TexCoord);
}4. Interaktive Kameras
Implementieren Sie zwei Kameratypen: Modellbetrachter (orbit um ein Objekt) und Flugkamera (freie Bewegung). Wechsel zwischen den Kameras per Tastendruck. Dies ähnelt Kameramodi in 3D-Software wie Blender oder in VR-Anwendungen.
Steuerung der Flugkamera
- WASD für Bewegung, Maus für Blickrichtung.
- Nutzen Sie GLFW-Callbacks für Mauseingaben.
5. Interaktive Objekte
Objekte wie das Rad sollen auf Tastendruck reagieren (z. B. Drehung starten/stoppen). Dies fördert das Verständnis von Event-Handling und Zustandsverwaltung – ähnlich wie bei interaktiven Installationen auf der Gamescom.
6. Anti-Aliasing
Wenden Sie Multisampling Anti-Aliasing (MSAA) an, um Kanten zu glätten. Aktivieren Sie es über GLFW: glfwWindowHint(GLFW_SAMPLES, 4);. Dies ist entscheidend für eine professionelle Darstellung, vergleichbar mit den glatten Grafiken in AAA-Spielen.
7. Bericht und Dokumentation
Ihr PDF-Bericht sollte Screenshots von Code und gerenderter Szene enthalten (10 %) sowie eine detaillierte Beschreibung (2000–3000 Wörter, 10 %). Erklären Sie Ihre Implementierungsschritte, Herausforderungen und wie Sie die Konzepte aus den Vorlesungen angewendet haben.
Struktur des Berichts
- Einleitung und Überblick
- Beschreibung der Szene und Modelle
- Beleuchtung und Texturen
- Kamera- und Interaktionssystem
- Anti-Aliasing und Optimierungen
- Schlussfolgerung und Reflexion
Fazit
Dieses Tutorial gibt Ihnen einen Fahrplan für die COMP3069-Aufgabe. Bleiben Sie kreativ, aber halten Sie sich an die technischen Vorgaben. Testen Sie Ihre Anwendung gründlich in Visual Studio 2022. Viel Erfolg!