Buchhandlung Spazierer

Suche

Erfolgreiche SpieleentwicklungOverlay E-Book Reader

Erfolgreiche Spieleentwicklung

Water-, Terrain- und GUI-Rendering mit OpenGL | Alexander Rudolph

E-Book (EPUB)
2015 Entwickler.press
78 Seiten
ISBN: 978-3-86802-539-2

Rezension verfassen

€ 2,99

in den Warenkorb
Kurztext / Annotation
Realistische Echtzeitwassereffekte, die Erzeugung von Oberflächendetails und eine intuitive Spielsteuerung sind Thema dieses shortcuts. Mit realistischen Echtzeitwassereffekten können Sie für den berüchtigten Wow-Effekt in der Spielercommunity sorgen. Kapitel 1 dieses shortcuts widmet sich dem Water-Rendering und zeigt Ihnen, wie Sie 3-D-Wellen, Spiegelungen auf der Wasseroberfläche, Schaumkronen sowie Unterwasserkaustiken im Verlauf der Post-Processing-Phase simulieren können. Im zweiten Kapitel wird das Projected-Grid-Konzept untersucht. Alexander Rudolph zeigt, wie sich mit einem weiterentwickelten Ansatz gleichermaßen weitläufige Landschaften sowie feine Oberflächendetails darstellen lassen. In Kapitel 3 betrachtet der Autor das Design des User Interfaces. Er verfolgt die Bewegungen des Mauszeigers (Cursors) im 3-D-Raum, selektiert 3-D-Objekte in der Spielewelt (Object Picking) und demonstriert den Einsatz von Geometry Instancing im Zuge einer effizienten Textdarstellung.

Alexander Rudolph schrieb zwei Bücher über das Thema Spieleprogrammierung mit DirectX für den Markt+Technik Verlag, eine Artikelserie über die Spieleentwicklung mit OpenGL und OpenAL und war an der Entwicklung sowohl der Grafik- wie auch der Physik-Engine für das Spiel Söldner 2 beteiligt. In regelmäßigen Abständen veröffentlicht er auf seiner Webseite spieleprogrammierung.net Artikel und Tutorials über den Einsatz von OpenCL sowie der modernen OpenGL Spezifikationen 3.x und 4.x und ist als freier Mitarbeiter im Bereich 3-D-Programmierung tätig. Seine eBooks 'Spieleentwicklung - Mathematik mit Fun-Faktor' und 'Spieleentwicklung - OpenGL mit Fun-Faktor' vermitteln Einblicke in die Welt der Spieleprogrammierung.

Beschreibung für Leser
Unterstützte Lesegerätegruppen: PC/MAC/eReader/Tablet

Quellcodebeispiele

Alle hier nicht gezeigten Listingbeispiele finden Sie aus Platzgründen unter https://entwickler.de/press/erfolgreiche-spieleentwicklung-7-128048.html unter "Listings zum shortcut".

1 Wasserspiegelungen, 3-D-Wellen, Schaumkronen und Kaustiken als Post-Processing-Effekt

Realistische Echtzeitwassereffekte sorgen seit jeher für den berüchtigten Wow-Effekt in der Spielercommunity. In diesem Kapitel tauchen wir gemeinsam in die Tiefen des Water-Renderings hinab und untersuchen, wie sich 3-D-Wellen, Spiegelungen auf der Wasseroberfläche, Schaumkronen sowie Unterwasserkaustiken im Verlauf der Post-Processing-Phase simulieren lassen.

Tropische Inseln, traumhafte Sandstrände und glasklares Wasser - nie zuvor wurde das "Paradies auf Erden" so stimmungsvoll in Szene gesetzt wie in Far Cry, einem der besten Spiele des Jahres 2004. Gemessen am heutigen Stand der Technik wirkt besagtes Spiel mittlerweile zwar ein wenig angestaubt, damals jedoch kam man als Spieler aus dem Staunen nicht mehr heraus. Die grafische Qualität und der Detailreichtum der Spielewelt waren bis dato unerreicht, wobei insbesondere die Wasserdarstellung hoch gelobt und als richtungsweisend angesehen wurde. Dreidimensionale Wellenbewegungen gab es zwar noch nicht zu bestaunen, dafür jedoch in Echtzeit berechnete Spiegelungen auf der Wasserfläche, Refraktionseffekte (Lichtbrechung), Unterwasserkaustiken sowie Brandungswellen.

Herausforderungen und Schwierigkeiten bei klassischer Wasserdarstellung

Bevor wir uns gleich ausführlich damit befassen, inwieweit die Wasserdarstellung (Abb. 1.1, 1.2 und 1.3) von dieser neuartigen Technik (die Durchführung der Beleuchtungs- und Post-Processing-Berechnungen erfolgt zeitlich verzögert nach Abschluss der Geometrieverarbeitung) profitieren kann, sollten wir zunächst mit einigen Worten auf die Schwierigkeiten eingehen, die im Rahmen des klassischen Forward Renderings (Geometrieverarbeitung und Beleuchtungsberechnungen erfolgen hierbei zeitgleich) zu bewältigen sind.

Abbildung 1.1: Wasserdarstellung (OpenGL-Framework-Demoprogramm 35)

Abbildung 1.2: Wasserdarstellung

Abbildung 1.3: Wasserdarstellung

Zu Beginn des neuen Millenniums kamen bei der Wasserdarstellung lediglich blaue, halbtransparente Polygonflächen zum Einsatz, die dann einige Zeit später mithilfe von Texturanimationen optisch aufgewertet wurden. Für die Simulation der physikalischen Eigenschaften des Wassers war die Leistung der damaligen Prozessoren und Grafikkarten jedoch bei Weitem nicht ausreichend. Die besagten Wassereffekte wirkten primitiv und ließen sich ohne viel Aufwand implementieren - es war lediglich erforderlich, im letzten Schritt der Szenendarstellung alle sichtbaren halbtransparenten Wasserflächen bei aktiviertem Color Blending zu rendern. Wollte man jedoch darüber hinaus die grundverschiedenen Lichtverhältnisse an Land bzw. im Wasser berücksichtigen, so wurden die Dinge schlagartig komplizierter. Die Tatsache, dass man in diesem Zusammenhang für die Szenengeometrie unterhalb und oberhalb der Wasseroberfläche unterschiedliche Beleuchtungsberechnungen durchführen musste, machte es erforderlich, die Spielewelt in zwei Schritten zu rendern und die Wasserfläche in diesem Zusammenhang als Clipping Plane zu verwenden. Wie dem auch sei, die verbesserten Beleuchtungsberechnungen führten jedoch nicht dazu, dass die Wassereffekte in den damaligen Spielen auch nur ansatzweise wie echtes Wasser wirkten. Dies sollte sich erstmals mit der Darstellung von in Echtzeit berechneten Wasserspiegelungen ändern. Abermals verkomplizierte sich die Situation, denn hierfür war es nicht nur erforderlich, die gespiegelte Szenengeometrie von einer anderen Blickrichtung und einer anderen Position aus in einem separaten Render Target (Render to Texture) zwischenzuspeichern; fehlerhafte