Globus

In diesem Projekt steht die Erde auf einem Schreibtisch — auf einem dünnen Metallständer, langsam rotierend. Derselbe Planet, dieselben Texturen, dieselbe Pipeline aus Kapitel 10. Nur der Kontext hat gewechselt: statt des schwarzen Weltraums umgeben die Erdkugel jetzt Holzoberflächen, eine selbst gewählte Lichtquelle, vielleicht noch das eine oder andere Objekt. Der Globus ist der einzige verbindliche Punkt dieser Szene — die Gestaltung des Rests liegt bei Ihnen.

Globus

Ziel

  • Klassenzimmer-Globus auf dünnem Metallstand als zentrales Objekt: Erdkugel mit 23,4° Achsneigung, langsam rotierend
  • Frei gestaltetes Schreibtischsetting: mindestens eine sichtbare Lichtquelle (Lampe, Kerze, LED — Ihre Wahl), beliebige weitere Objekte
  • Holztisch mit kachelnder Textur als Grundfläche; warm beleuchteter, weich verschwommener Hintergrundraum als Skybox
  • Punktlicht aus der gewählten Lichtquelle mit Abstandsabschwächung; Materialparameter passend zu den gewählten Oberflächen
  • Langsam rotierender Globus als einzige Pflichtanimation
  • Volle visuelle Behandlung der Erde aus Kapitel 10 auf der Globuskugel: Atmosphärenglow, Nachtlichter, Ozeanspiegelung — dieselbe Pipeline wie in Projekt 1 und 2, jetzt im Zimmermaßstab

Bauabschnitt 1 — Szene und Kamera einrichten

Empfohlener Zeitpunkt: nach Kapitel 4

Erstellen Sie eine Datenstruktur (z.B. ein struct), die ein Szenenobjekt beschreibt: Position, Größe und Farbe. Legen Sie den Maßstab fest — sinnvoll sind Einheiten in Dezimetern, sodass die Tischplatte etwa 10 × 6 Einheiten groß ist und der Globus einen Radius von 0,75 hat. Zeichnen Sie Tisch und Globus als farbige Quads an ihren Positionen; fügen Sie mindestens einen weiteren Platzhalter für Ihre gewählte Lichtquelle hinzu. Welche anderen Objekte auf dem Tisch stehen sollen, ist Ihre Entscheidung — nur Tisch und Globus sind verbindlich. Passen Sie die Kamera so an, dass sie leicht unterhalb der Tischkante schaut; Near und Far Plane müssen so gewählt werden, dass sowohl Tischplatte als auch Hintergrund vollständig im sichtbaren Bereich liegen.

Vertiefte Konzepte: Transformationsmatrizen (Translation), Kameraparameter, perspektivische Projektion (Near/Far Plane), eigene Datenstrukturen in C++


Bauabschnitt 2 — Prozedurale Geometrie

Empfohlener Zeitpunkt: nach Kapitel 5

Ersetzen Sie die Platzhalter durch prozedurale Geometrie. Der Globus ist eine Sphere-Instanz im korrekten Maßstab. Für den Metallständer gibt es im Tutorial keine fertige Klasse — schreiben Sie eine Cylinder-Klasse analog zu Sphere: Ringe mit gleichem Radius ergeben einen Zylinder; ein Parameter topRadius deckt mit dem Wert null auch Kegelformen ab. Den Ständer modellieren Sie als dünnen Zylinder. Welche Primitive Sie darüber hinaus für Ihre Lichtquelle und weitere Tischobjekte brauchen, hängt von Ihrer Gestaltungsentscheidung ab — die Cylinder-Klasse ist dabei ein nützliches Werkzeug. Aktivieren Sie Backface Culling für alle Meshes; bei Formen, die von innen sichtbar sind, deaktivieren Sie es auf der entsprechenden Instanz.

Vertiefte Konzepte: Prozedurale Geometrie (Zylinder/Kegel als Ring-Segment-Mesh), Vererbung (Mesh als Basisklasse), Scene Graph, std::shared_ptr, Backface Culling


Bauabschnitt 3 — Lichtquelle auf dem Schreibtisch

Empfohlener Zeitpunkt: nach Kapitel 6

In Projekt 1 und 2 war die Lichtquelle 150 Millionen Kilometer entfernt (w = 0). Hier ist sie Teil der Szene: Setzen Sie die Lichtposition auf das Zentrum Ihrer gewählten Lichtquelle und wählen Sie w = 1 — ein echtes Punktlicht, das in alle Richtungen abstrahlt. Ohne Abstandsabschwächung leuchtet die Szene unnatürlich gleichmäßig; die OpenGL-Fixed-Function-Attenuation über GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION und GL_QUADRATIC_ATTENUATION ist im Tutorial nicht behandelt und erfordert Eigenrecherche. Weisen Sie den Materialien Phong-Parameter zu, die zu den gewählten Oberflächen passen: Holz ist vollständig diffus und matt, Metall dunkel und leicht glänzend — der Globus selbst erhält vorerst ein einfaches diffuses Material. Aktivieren Sie den Tiefenpuffer.

Vertiefte Konzepte: Phong-Beleuchtungsmodell (ambient, diffus, spekular), Punktlicht vs. gerichtetes Licht (w-Komponente), Lichtabschwächung (Attenuation), Materialparameter, Tiefenpuffer


Bauabschnitt 4 — Texturen

Empfohlener Zeitpunkt: nach Kapitel 7

Suchen Sie eine Holzmaserungstextur für die Tischplatte — eine niedrige Auflösung ist hier kein Makel. Verwenden Sie GL_REPEAT, damit die Textur über die Tischfläche kachelt, und wählen Sie die UV-Skalierung so, dass die Maserung sichtbar, aber nicht übermäßig gestreckt wirkt. Die Erdtextur (earth_diffuse.jpg) aus dem Tutorial wird auf die Globus-Kugel gelegt. Richten Sie die Kugel so aus, dass der Nordpol nach oben zeigt und die Rotationsachse um 23,4° geneigt ist — wie bei einem echten Schreibtischglobus. Wählen Sie Wrapping, Filtering und Mipmaps bewusst; beim Globus ist bilineares Filtering spürbar besser als GL_NEAREST.

Vertiefte Konzepte: Texturladung mit stb_image, UV-Koordinaten auf Kugeln und Quads, Texturparameter (Wrapping, Filtering), Mipmaps, Ressourcenverwaltung


Bauabschnitt 5 — Globus-Rotation und Simulation

Empfohlener Zeitpunkt: nach Kapitel 8

Bringen Sie den Globus in Bewegung. Er dreht sich langsam um seine geneigte Achse — nicht mit der Erdgeschwindigkeit von 24 Stunden, sondern so, wie man einen Schreibtischglobus anstößt und loslässt: eine Umdrehung in etwa 10 bis 20 Sekunden. Integrieren Sie die Bewegungslogik in die Simulation-Klasse und trennen Sie Simulations- und Renderlogik sauber. Als optionales zweites Animationselement: ein minimales Flackern der Lichtquellenhelligkeit über eine Sinusfunktion mit kleiner Amplitude.

Vertiefte Konzepte: Zeitbasierte Animation, Rotationsmatrizen (Achsenneigung + Drehung), Simulation-Klasse, Trennung von Simulations- und Renderlogik


Bauabschnitt 6 — Hintergrundraum und emissive Lichtquelle

Empfohlener Zeitpunkt: nach Kapitel 9

Fügen Sie eine Skybox als unscharfen, warm beleuchteten Hintergrundraum hinzu. Eine Fotografie eines Zimmerinterieurs mit Bokeh-Unschärfe im Kreuz-UV-Layout auf einem invertierten Würfel funktioniert genau wie die Sternen-Skybox aus dem Tutorial. Die background-Szene wird mit Fixed View Matrix und Depth Isolation vor der foreground-Szene gerendert. Ihre Lichtquelle erhält zusätzlich ein emissives Material, sodass sie auch ohne direkten Lichtbeitrag als selbstleuchtende Form sichtbar bleibt — analog zur Sonne in Kapitel 9.

Nach diesem Bauabschnitt ist die Szene vollständig aufgebaut.

Vertiefte Konzepte: Cube Mapping, Skybox, Fixed View Matrix, Depth Isolation, emissive Materialien


Bauabschnitt 7 — Erde in voller Qualität und Feinschliff

Empfohlener Zeitpunkt: nach Kapitel 10

Ersetzen Sie die einfache Sphere des Globus durch die Planet-Klasse aus Kapitel 10: Mit dieser einen Änderung erhält die Kugel sofort Atmosphärenglow am Horizont, Nachtlichter über den Kontinenten auf der dunklen Seite und spiegelnde Ozeane durch die Specular Map — exakt dieselbe Multi-Pass-Pipeline, die in Projekt 1 und 2 einen kosmischen Planeten erzeugt hat, läuft jetzt auf 15 Zentimetern im warmen Lampenlicht. Das Ergebnis ist kein Planet mehr: Atmosphärenglow wird zur subtilen Aura, Nachtlichter zur Schattierung auf der abgewandten Seite, Ozeanspiegelung zum Glanzpunkt eines kleinen Tischobjekts. Dieselbe Technik, anderer Kontext, andere Bedeutung.

Darüber hinaus sind eigene Ideen gefragt: ein flaches, dunkles Quad als Schlagschatten des Globus auf der Tischplatte, eine aufsteigende Dunstfahne über der Lichtquelle mit additivem Blending, weitere Schreibtischobjekte aus prozeduralen Primitiven. Es gibt kein vorgegebenes Ziel mehr — nur noch den eigenen Anspruch.

Vertiefte Konzepte: Multi-Pass Blending, Emission Maps, Specular Maps, Planet-Klasse-Wiederverwendung, kontextuelle Wahrnehmung (gleiche Technik, geänderte Bedeutung)