Erfolgreiche Spieleentwicklung: OpenCL
()
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: Moderne Licht- und Schattenspiele mit OpenGL 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 in Space Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Water-, Terrain- und GUI-Rendering mit OpenGL 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 ratings
Related to Erfolgreiche Spieleentwicklung
Titles in the series (100)
Algorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsTestwissen für Java-Entwickler Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsMobile Business: Was Entscheider morgen wissen müssen Rating: 0 out of 5 stars0 ratingsZend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5JavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratingsUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsJava FX - Embedded Rating: 0 out of 5 stars0 ratings
Related ebooks
Das Vulkan-API: Teil 2: Wie man ein Framework erstellt und Shader programmiert Rating: 0 out of 5 stars0 ratingsJavaScript für Java-Entwickler Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsSprachenkompendium: Vala, Go und Rust Rating: 0 out of 5 stars0 ratingsJavaScript und TypeScript für C#-Entwickler Rating: 0 out of 5 stars0 ratingsRobotik: LEGO MINDSTORMS, NAO und Raspberry Pi Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsAngular 2: Moderne Frontends für alle Plattformen entwickeln Rating: 0 out of 5 stars0 ratingsDNX: Grundlagen, Design und Compile Time Rating: 0 out of 5 stars0 ratingsEclipse 4: Rich Clients mit dem Eclipse 4.2 SDK Rating: 0 out of 5 stars0 ratingsSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Rating: 0 out of 5 stars0 ratingsEinblicke in C# 6.0 Rating: 0 out of 5 stars0 ratingsJava FX - Status Quo: Status Quo Rating: 0 out of 5 stars0 ratingsArduino: Mikrocontroller-Programmierung mit Arduino/Freeduino Rating: 0 out of 5 stars0 ratingsWebentwicklung mit dem Play Framework Rating: 0 out of 5 stars0 ratings.NET Core 1.0 und 1.1: Entwicklung mit den Core-Produkten Rating: 0 out of 5 stars0 ratingsBetriebssysteme: Grundlagen, Konzepte, Systemprogrammierung Rating: 0 out of 5 stars0 ratingsExpertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Rating: 0 out of 5 stars0 ratingsEclipse SmartHome und Smart Office: Intelligente Lösungen in der Heimautomation Rating: 0 out of 5 stars0 ratingsTraum vom intelligenten Zuhause - Band 2: Programmier-Ratgeber für LCN Pro Rating: 0 out of 5 stars0 ratingsOpenLaszlo: schnell + kompakt Rating: 0 out of 5 stars0 ratingsDSL mit Xtext/Xtend. 4GL-Entwicklung produktiver gestalten Rating: 0 out of 5 stars0 ratingsDigitale Modellbahn selbstgebaut: CANguru-Steuerung mit ESP32 in Arduino-Umgebung Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Rating: 0 out of 5 stars0 ratingsASP.NET Core: Eine Einführung Rating: 0 out of 5 stars0 ratingsPowerShell: Grundlagen für .NET-Entwickler Rating: 0 out of 5 stars0 ratingsBig Data: Datenverarbeitung basierend auf MOM und SQL Rating: 0 out of 5 stars0 ratingsSteuergeräte-Entwicklung mit AUTOSAR: Evaluierung der Entwicklungsumgebung Arctic Studio: Entwicklung AUTOSAR-basierter Systeme Rating: 0 out of 5 stars0 ratingsDas Java Memory Model: Überblick und Ausblick auf Java 9 Rating: 0 out of 5 stars0 ratingsArduino: Hard- und Software Open Source Plattform Rating: 0 out of 5 stars0 ratings
Programming For You
Microsoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Die ultimative QNAP NAS Bibel - Das Praxisbuch - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsHausautomation mit Raspberry Pi: Alarmanlage, Heizung, Smart Home, W-LAN & Co: 20 Projekte, die Ihr Leben leichter machen Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsPython kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratingsHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Raspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsJava 8 - Die Neuerungen: Lambdas, Streams, Date and Time API und JavaFX 8 im Überblick Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsPraktisches Programmieren in C: Grundlagen und Tipps Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsArduino: Ein schneller Einstieg in die Microcontroller-Entwicklung Rating: 5 out of 5 stars5/5SQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Eigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5Programmieren für Einsteiger: Teil 2 Rating: 0 out of 5 stars0 ratingsDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5Das Franzis Starterpaket Arduino Mega 2560: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratings
Reviews for Erfolgreiche Spieleentwicklung
0 ratings0 reviews
Book preview
Erfolgreiche Spieleentwicklung - Alexander Rudolph
Alexander Rudolph
Erfolgreiche Spieleentwicklung –
OpenCL
ISBN: 978-3-86802-425-8
© 2012 entwickler.press
Ein Imprint der Software & Support Media GmbH
Einleitung
OpenCL in der Spieleentwicklung – eine gute Idee?
Bei Besitzern von AMD-Grafikkarten herrscht regelmäßig dicke Luft, wenn das nächste Top-Spiel mit atemberaubenden Physik-Effekten beworben wird, aber nur auf NVIDIA-Grafikkarten lauffähig ist. Muss das so sein? Eigentlich nicht, denn die OpenCL-Technologie ermöglicht GPU-beschleunigte Berechnungen auf NVIDIA- und auf AMD-Grafikkarten sowie Multithread-optimierte Berechnungen auf allen gängigen CPU-Typen.
Im ersten Teil dieses shortcuts befassen wir uns mit den Grundlagen der OpenCL-Programmierung. Im Anschluss daran erörtern wir den Aufbau und die Funktionsweise einer OpenCL-basierten Physik-Engine und erweitern diese im dritten Kapitel durch zusätzliche Simulationen von Luft-, Wasser- und Landfahrzeugen.
Das aktuelle OpenGL/OpenCL-basierte Grafik- und Physik-Framework, das diesem shortcut zugrunde liegt, sowie eine große Zahl interessanter Beispielprogramme stehen auf den folgenden Internetseiten zum Download bereit:
http://www.graphics-and-physics-framework.spieleprogrammierung.net/
http://www.entwickler-press.de/shortcuts/opencl
Weiterführende Artikel über 3D-Programmierung, Spielephysik, KI-Programmierung, etc. finden Sie unter:
http://www.spieleprogrammierung.net/
1 Asteroidenhagel selbst gemacht
Seit der Integration des PhysX-Frameworks in die NVIDIA-Produktfamilie im Jahr 2008 und der Entwicklung einer GPU-beschleunigten Physikbibliothek (kurz GPU PhysX) auf Basis des von NVIDIA bereitgestellten CUDA APIs, zählt die Berechnung von Physikeffekten auf der GPU sowohl bei Entwicklern als auch bei Spielern zu einem der meistdiskutierten Themen. Realistisches Verhalten von Wasser auf Basis einer GPU-Fluidsimulation oder GPU-Partikeleffekten mit Tausenden von Partikeln stellen nur zwei der Möglichkeiten dar, wie aktuelle Spiele von der Leistungsfähigkeit moderner Grafikkarten profitieren können. Besitzer einer AMD-Grafikkarte müssen jedoch momentan in der Regel auf solche zusätzlichen GPU-Physikeffekte verzichten, da das dem GPU-PhysX-Framework zugrunde liegende CUDA API nur auf NVIDIA-Grafikkarten lauffähig ist.
OpenCL (Open Computing Language) könnte nun einen möglichen Ausweg aus diesem Dilemma bieten, denn es handelt sich hierbei um die zurzeit einzig verfügbare, gleichermaßen von Intel, AMD und NVIDIA unterstützte Technologie, mit deren Hilfe sich komplexe Berechnungen wahlweise auf der CPU oder der GPU durchführen lassen. Entwickelt wurde die OpenCL-Schnittstelle samt der zugehörigen Sprache OpenCL C von der Firma Apple in Zusammenarbeit mit IBM, AMD, Intel und NVIDIA. Am 8. Dezember 2008 erfolgte die Bekanntgabe der OpenCL-Spezifikation 1.0 durch die Khronos-Gruppe [1]. Die aktuelle Spezifikation 1.2, die nach wie vor vollständige Abwärtskompatibilität gewährleistet, wurde am 16. November 2011 veröffentlicht. Der grundlegende Aufbau einer OpenCL-Anwendung ist in Abbildung 1.1 skizziert.
Abbildung 1.1: Aufbau einer OpenCL-Anwendung
Die heutige und zukünftige Bedeutung der OpenCL-Technologie bemisst sich nicht zuletzt daran, dass sowohl Intel [2] als auch AMD [3] und NVIDIA [4] mittlerweile jeweils ein eigenes Software Development Kit (SDK) zum kostenlosen Download anbieten. Die Programmbeispiele auf der Verlagshomepage [6] wurden beispielsweise mit dem AMD APP SDK entwickelt, da dieses sowohl die Programmierung von OpenCL-Anwendungen für AMD-GPUs als auch für AMD und Intel CPUs ermöglicht. Hinzu kommt, dass die von AMD zur