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: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Teil 2 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 ratingsErfolgreiche Spieleentwicklung: Water-, Terrain- und GUI-Rendering mit OpenGL Rating: 0 out of 5 stars0 ratings
Related to Erfolgreiche Spieleentwicklung
Titles in the series (100)
Java EE Security Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5OAuth 2.0: Client & Server Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsVaadin Schnelleinstieg Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsMobile Business: Was Entscheider morgen wissen müssen Rating: 0 out of 5 stars0 ratingsWebentwicklung mit dem Play Framework Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsZend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratings
Related ebooks
Rendering mit hohem Dynamikbereich: Erschließung des visuellen Spektrums: Fortgeschrittene Techniken in der Computer Vision Rating: 0 out of 5 stars0 ratingsTonzuordnung: Tone Mapping: Erhellende Perspektiven in der Computer Vision Rating: 0 out of 5 stars0 ratingsDistanznebel: Erkundung der visuellen Grenze: Einblicke in den Distanznebel der Computer Vision Rating: 0 out of 5 stars0 ratingsPHOTOKOLLEGIUM 4: Theorie und Grundlagen der digitalen Fotografie Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL in Space Rating: 0 out of 5 stars0 ratingsHistogrammausgleich: Verbesserung des Bildkontrasts für eine verbesserte visuelle Wahrnehmung 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 ratingsFarbmanagementsystem: Optimierung der visuellen Wahrnehmung in digitalen Umgebungen Rating: 0 out of 5 stars0 ratingsComputer-Stereo-Vision: Erforschung der Tiefenwahrnehmung in der Computer Vision Rating: 0 out of 5 stars0 ratingsDatenvisualisierung mit Processing Rating: 0 out of 5 stars0 ratingsFarbzuordnung: Erforschung der visuellen Wahrnehmung und Analyse in der Computer Vision Rating: 0 out of 5 stars0 ratingsFarbprofil: Erforschung der visuellen Wahrnehmung und Analyse in der Computer Vision Rating: 0 out of 5 stars0 ratingsBildkompression: Effiziente Techniken zur visuellen Datenoptimierung Rating: 0 out of 5 stars0 ratingsGouraud-Schattierung: Gouraud-Shading: Erhellende Computer Vision Rating: 0 out of 5 stars0 ratingsRastergrafik-Editor: Visuelle Realitäten transformieren: Rastergrafik-Editoren in Computer Vision beherrschen 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 ratingsHöhenkarte: Erforschung der Geländedarstellung durch Computer Vision Rating: 0 out of 5 stars0 ratings
Computers For You
Scribus Desktop Publishing: Das Einsteigerseminar Rating: 0 out of 5 stars0 ratingsDie KI Bibel, mit künstlicher Intelligenz Geld verdienen: Echte Fallbeispiele und Anleitungen zum Umsetzen Rating: 1 out of 5 stars1/5Raspberry Pi Kinderleicht: Pi 4 mit 8 GB 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 ratingsDatenintensive Anwendungen designen: Konzepte für zuverlässige, skalierbare und wartbare Systeme Rating: 0 out of 5 stars0 ratingsShopware 6 Handbuch Rating: 0 out of 5 stars0 ratingsDie Geschichte des Computers: Wie es bis zur Form des heutigen 'PC' kam. Rating: 0 out of 5 stars0 ratingsBusiness-Intelligence-Lösungen für Unternehmen Rating: 0 out of 5 stars0 ratingsDie Burg IT-Sicherheit: IT-Sicherheit Stein auf Stein Rating: 0 out of 5 stars0 ratingsNeuronale Netze selbst programmieren: Ein verständlicher Einstieg mit Python Rating: 0 out of 5 stars0 ratingsSo findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Rating: 0 out of 5 stars0 ratingsWordPress - Elementor Rating: 0 out of 5 stars0 ratingsGames | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsEinführung in die Programmierung mit Natural & Adabas Rating: 0 out of 5 stars0 ratingsDie KI sei mit euch: Macht, Illusion und Kontrolle algorithmischer Vorhersage Rating: 0 out of 5 stars0 ratingsBig Data - Apache Hadoop 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 ratingsCommand Line Kung Fu: Bash-Scripting-Tricks, Linux Tipps und praktische Einzeiler für die Shell Rating: 0 out of 5 stars0 ratingsEinstieg in den Online-Unterricht: Videokonferenzen in der Erwachsenenbildung Rating: 0 out of 5 stars0 ratingsGrundlagen und Methoden der Wirtschaftsinformatik: Eine anwendungsorientierte Einführung Rating: 0 out of 5 stars0 ratingsKybernetik, Kommunikation und Konflikt: Gregory Bateson und (s)eine kybernetische Konflikttheorie Rating: 0 out of 5 stars0 ratingsBig Data: Die neue Intelligenz des Menschen (GEO eBook) Rating: 0 out of 5 stars0 ratingsAufstieg der Roboter: Wie unsere Arbeitswelt gerade auf den Kopf gestellt wird - und wie wir darauf reagieren müssen Rating: 0 out of 5 stars0 ratingsUnterirdisches Slowenien: Ein Exkursionsführer zu den Höhlen des Klassischen Karstes 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 ratingsIndustrie 4.0 und Digitalisierung – Innovative Geschäftsmodelle wagen! 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/5Docker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Rating: 1 out of 5 stars1/5
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