Erfolgreiche Spieleentwicklung: Moderne Licht- und Schattenspiele mit OpenGL
()
About this ebook
Read more from Alexander Rudolph
Das Vulkan-API: Teil 1: Grundlagen und erste Schritte Rating: 0 out of 5 stars0 ratingsDas Vulkan-API: Teil 3: Umgang mit 3-D-Daten Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Teil 2 Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Water-, Terrain- und GUI-Rendering mit OpenGL Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL in Space Rating: 0 out of 5 stars0 ratingsDas Vulkan-API: Teil 2: Wie man ein Framework erstellt und Shader programmiert Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratings
Related to Erfolgreiche Spieleentwicklung
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsjQuery Mobile - Basics: Basics Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratings
Related ebooks
PHOTOKOLLEGIUM 4: Theorie und Grundlagen der digitalen Fotografie Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL in Space Rating: 0 out of 5 stars0 ratingsPHOTOKOLLEGIUM 6: Farbdruck & Colormanagement in der digitalen Fotografie Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Water-, Terrain- und GUI-Rendering mit OpenGL Rating: 0 out of 5 stars0 ratingsKreative Fototechnik ohne viel Worte: Der richtige Umgang mit Blende, Zeit und Brennweite Rating: 0 out of 5 stars0 ratingsBildbearbeitung für Anfänger: 30 Top Tipps für die Bildbearbeitung von digitalen Bildern Rating: 0 out of 5 stars0 ratingsEbenen in Adobe Photoshop CC und Photoshop Elements - Gewusst wie Rating: 0 out of 5 stars0 ratingsDatenvisualisierung mit Processing Rating: 0 out of 5 stars0 ratingsLust auf scharfe Fotos?: Ratgeber für digitale Fotografie Rating: 0 out of 5 stars0 ratingsJava üben mit dem Plotter: Ein Überblick für Studierende und Einsteiger Rating: 0 out of 5 stars0 ratingsDas Vulkan-API: Teil 2: Wie man ein Framework erstellt und Shader programmiert Rating: 0 out of 5 stars0 ratingsRobotik: LEGO MINDSTORMS, NAO und Raspberry Pi Rating: 0 out of 5 stars0 ratingsTerraingenerierung mit Unity: Technische Realisierung von Landschaften Rating: 0 out of 5 stars0 ratingsDojos für Entwickler: 15 Aufgaben und Lösungen in .NET Rating: 0 out of 5 stars0 ratingsPHOTOKOLLEGIUM 5: Aufnahme & Bildbearbeitung in der digitalen Fotografie Rating: 0 out of 5 stars0 ratingsDie besten 10 HDTVs von 40 bis 42 Zoll (Band 2): 1hourbook Rating: 0 out of 5 stars0 ratingsZauberhafte Bildbearbeitung mit PIXLR EXPRESS: Ratgeber für digitale Fotografie Rating: 0 out of 5 stars0 ratingsDie besten 5 Beamer für das Heimkino (Band 5): 1hourbook Rating: 0 out of 5 stars0 ratingsDie perfekte Heimkino-Anlage für 16.000 Euro: 1hourbook Rating: 0 out of 5 stars0 ratingsNikon Z 9: Das Profi-Handbuch zur Kamera Rating: 0 out of 5 stars0 ratingsRaumdarstellung und Perspektive in der Spieleentwicklung Rating: 0 out of 5 stars0 ratingsDie besten 10 HDTVs von 46 bis 52 Zoll (Band 2): 1hourbook Rating: 0 out of 5 stars0 ratingsDie perfekte Heimkino-Anlage für 60 qm: 1hourbook Rating: 0 out of 5 stars0 ratingsProgrammieren in C: Programmieren lernen von Anfang an - Mit vielen Programmierbeispielen - Geeignet zum Selbststudium Rating: 0 out of 5 stars0 ratingsEinführung in die Programmierung von 2-D-Spielen Rating: 0 out of 5 stars0 ratingsEinführung in die Heimautomatisierung: IoT mit Tinkerforge Rating: 0 out of 5 stars0 ratingsDie Eignung Neuronaler Netze für die Mining-Funktionen Clustern und Vorhersage Rating: 0 out of 5 stars0 ratingsDer Weg zum eigenen Roboter: Tipps, Tricks und kleine Projekte Rating: 0 out of 5 stars0 ratingsEinstieg ins Machine Learning: Grundlagen, Prinzipien, erste Schritte Rating: 0 out of 5 stars0 ratingsFotografie mit der Canon EOS 1300D: Für kreative, aussagekräftige Bilder Rating: 0 out of 5 stars0 ratings
Computers For You
Games | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsDas große Buch für Minecraft-Spieler: Der Einstieg in Bergbau, Landwirtschaft und Zucht, Häuserbau und Energiegewinnung Rating: 0 out of 5 stars0 ratingsMachine Learning – kurz & gut: Eine Einführung mit Python, Pandas und Scikit-Learn Rating: 5 out of 5 stars5/5So findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Rating: 0 out of 5 stars0 ratingsBig Data: Die neue Intelligenz des Menschen (GEO eBook) Rating: 0 out of 5 stars0 ratings60+ Webtools - Für den Unterricht und mehr: Unterricht Digital gestalten und spielerisch Online Unterrichten Rating: 0 out of 5 stars0 ratingsNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Rating: 0 out of 5 stars0 ratingsErste Schritte mit dem Raspberry Pi: Installation, Konfiguration, Tuning und Praxis für alle aktuellen Raspberry-Pi-Modelle Rating: 0 out of 5 stars0 ratingsMein erstes Tonstudio - Band II: Praxisbuch mit zahlreichen Tipps für die ersten Gehversuche beim Aufnehmen und Mischen Rating: 0 out of 5 stars0 ratingsTastenkombinationen für den Mac: Alle wichtigen Funktionen Rating: 0 out of 5 stars0 ratingsDas Minecraft-Server-Buch Rating: 0 out of 5 stars0 ratingsEinstieg in ChatGPT: Künstliche Intelligenz verstehen und nutzen: Ein praktischer Ratgeber für Einsteiger Rating: 0 out of 5 stars0 ratingsShopware 6 Handbuch Rating: 0 out of 5 stars0 ratingsLaws of UX: 10 praktische Grundprinzipien für intuitives, menschenzentriertes UX-Design Rating: 0 out of 5 stars0 ratingsEinführung ins Darknet: Darknet ABC Rating: 0 out of 5 stars0 ratingsRaspberry Pi Kinderleicht: Pi 4 mit 8 GB Rating: 0 out of 5 stars0 ratingsNeuronale Netze selbst programmieren: Ein verständlicher Einstieg mit Python Rating: 0 out of 5 stars0 ratingsKybernetik, Kommunikation und Konflikt: Gregory Bateson und (s)eine kybernetische Konflikttheorie Rating: 0 out of 5 stars0 ratingsWordPress - Elementor Rating: 0 out of 5 stars0 ratingsNimm den Chor doch selber auf: Crashkurs für das Aufnehmen und Mischen von Chören Rating: 0 out of 5 stars0 ratingsBusiness-Intelligence-Lösungen für Unternehmen Rating: 0 out of 5 stars0 ratingsREST: Grundlagen und Gestaltung von REST-Diensten Rating: 0 out of 5 stars0 ratingsBig Data - Apache Hadoop Rating: 0 out of 5 stars0 ratings...Als die Noten laufen lernten...Band 2: Kabarett-Operette-Revue-Film-Exil. Unterhaltungsmusik bis 1945 Rating: 0 out of 5 stars0 ratingsPocket Book - Das inoffizielle Handbuch. Anleitung, Tipps, Tricks Rating: 0 out of 5 stars0 ratingsCommand Line Kung Fu: Bash-Scripting-Tricks, Linux Tipps und praktische Einzeiler für die Shell Rating: 0 out of 5 stars0 ratings
Reviews for Erfolgreiche Spieleentwicklung
0 ratings0 reviews
Book preview
Erfolgreiche Spieleentwicklung - Alexander Rudolph
Alexander Rudolph
Erfolgreiche Spieleentwicklung
Moderne Licht- und Schattenspiele mit OpenGL
ISBN: 978-3-86802-513-2
© 2014 entwickler.press
Ein Imprint der Software & Support Media GmbH
1 Post Processing – Revolution in der Spielewelt
Alle in diesem Shortcut behandelten Programmbeispiele finden Sie hier zum Download:
http://www.graphics-and-physics-framework.spieleprogrammierung.net/
http://www.space-combat-and-strategy.spieleprogrammierung.net/
In den letzten Jahren hat sich im Bereich der Echtzeit-3-D-Grafik eine regelrechte Revolution vollzogen, denn die Art und Weise, wie eine 3-D-Szene aufgebaut und beleuchtet wird, hat sich grundlegend verändert. In der klassischen Szenendarstellung, dem so genannten „Forward Rendering", erfolgte die Beleuchtung der einzelnen 3-D-Objekte stets zeitgleich mit ihrer Positionierung in der Spielewelt (Transform and Lighting). Auch wenn sich diese Vorgehensweise bereits in unzähligen Spielen bewährt hat, sind die Grenzen dieser Technik längst erreicht. Zum einen ist die Implementierung von realistisch wirkenden Beleuchtungsmodellen (globale Beleuchtung; global Illumination) nicht möglich, und zum anderen werden viel zu viele unnötige Beleuchtungs- und Schattenberechnungen durchgeführt. Denn nicht wenige der zuvor beleuchteten Oberflächen sind am Ende der Szenendarstellung vollständig oder zumindest teilweise verdeckt. Diese Verschwendung von Rechenleistung führt ihrerseits dazu, dass nur eine sehr begrenzte Anzahl von Lichtquellen in einer 3-D-Szene platziert werden können.
In modernen 3-D-Anwendungen und -Spielen werden die Beleuchtungsberechnungen zunehmend getrennt von der Geometriedarstellung während der Post-Processing-Phase durchgeführt, wodurch sich die zuvor beschriebenen Probleme des Forward Renderings auf elegante Art und Weise beheben lassen. Mithilfe der Geometrie- und Farbinformationen einer 3-D-Szene, die man vor der eigentlichen Umsetzung der gewünschten Post-Processing-Effekte zunächst in diversen Render Targets (Render-Zielen, Texturen) zwischenspeichert, lassen sich Beleuchtungsberechnungen für nicht sichtbare Szenenpixel gezielt vermeiden. Die hierdurch frei werdenden Ressourcen können wir nutzen, um die für die globale Beleuchtung verantwortlichen Wechselwirkungen zwischen dem Licht und den Szenenpixeln unter Berücksichtigung der zuvor gespeicherten Geometrieinformationen zu simulieren, und um die Spielewelt mit einer deutlich größeren Anzahl von Lichtquellen auszuleuchten. Nachfolgend sind einige der Post-Processing-Effekte aufgelistet, die in modernen Computerspielen standardmäßig zum Einsatz kommen:
Screen Space Ambient Occlusion (SSAO: Simulation der indirekten Beleuchtung, ambientes Licht)
Schattenberechnungen
Deferred Lighting: Simulation der direkten Beleuchtung (direktionale Lichtquellen sowie Punktlichtquellen)
Nebelberechnungen
Depth-Of-Field-Effekt (Schärfentiefe)
Schritt für Schritt wird das zunächst noch unbeleuchtete Szenenbild mithilfe dieser Effekte nachbearbeitet. Zum Speichern des modifizierten Szenenbilds nutzen wir eine Textur (ein zusätzliches Render Target), die ihrerseits auf ein bildschirmfüllendes Vertex Quad (Screen Quad) gemappt wird. Bildlich gesprochen entspricht diese Textur einer bemalten Leinwand, die wir über einen Holzrahmen (unser Vertex Quad) spannen.
HDR-Rendering, Tone Mapping, Helligkeitsadaption und Blend-Effekte
Computerspielen wie Far Cry und Half Life 2 haben wir es zu verdanken, dass Begriffe wie HDR-Rendering (HDR: High Dynamic Range) und Post Processing mittlerweile zum festen Wortschatz in der Gamer-Community gehören. Um nun die Bedeutung dieser neuen Technologien verstehen zu können, müssen wir uns mit der folgenden Frage auseinandersetzen:
Wie viele Farben (Farbwerte) benötigt man, um eine 3-D-Szene möglichst wirklichkeitsgetreu auszuleuchten?
Vor der Einführung des HDR-Renderings kamen bei der Bildsynthese so genannte „True-Color-Farbwerte" zum Einsatz. Auf den ersten Blick würde man meinen, dass der True-Color-Farbraum mit seinen 16,78 Millionen Farben und seiner 24-Bit-Genauigkeit mehr als genug Farbwerte für eine realistische Beleuchtung beinhaltet, doch schlüsselt man die einzelnen Farben nach ihren Rot-, Grün- und Blau-Anteilen auf, so stehen für jeden Farbkanal lediglich 256 Farbabstufungen (8 Bit) zur Verfügung. Der größtmögliche Helligkeitswert, den ein Fragment-Shader-Programm in ein True Color Render Target (bzw. in eine RGBA8-Integer-Textur) schreiben kann, liegt bei 1.0, und der kleinstmögliche Helligkeitswert beträgt 0.0. Größere oder kleinere Farbwerte werden beim Schreibvorgang rigoros auf 1.0 bzw. 0.0 beschnitten (Clamping). Im Unterschied zum HDR-Rendering spricht man in diesem Zusammenhang vom LDR-Rendering (Low Dynamic Range), da hierbei lediglich ein Helligkeitsbereich von 0 bis 1 abgedeckt wird. Insbesondere, wenn sich die Sonne oder irgendeine andere intensive Lichtquelle im Blickfeld der Kamera befindet, erstrecken sich natürliche Helligkeitsschwankungen über ein Vielfaches des LDR-Wertebereichs. Abbildung 1.1 zeigt HDR-Rendering am Beispiel der Atmosphärendarstellung.
Abb. 1.1: HDR-Rendering am Beispiel