Erfolgreiche Spieleentwicklung: OpenCL
()
Über dieses E-Book
Mehr von Alexander Rudolph lesen
Das Vulkan-API: Teil 3: Umgang mit 3-D-Daten Bewertung: 0 von 5 Sternen0 BewertungenDas Vulkan-API: Teil 1: Grundlagen und erste Schritte Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Moderne Licht- und Schattenspiele mit OpenGL Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Teil 2 Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL in Space Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Bewertung: 0 von 5 Sternen0 BewertungenDas Vulkan-API: Teil 2: Wie man ein Framework erstellt und Shader programmiert Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Water-, Terrain- und GUI-Rendering mit OpenGL Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie Erfolgreiche Spieleentwicklung
Titel in dieser Serie (100)
Zend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5HTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Das Vulkan-API: Teil 2: Wie man ein Framework erstellt und Shader programmiert Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenSprachenkompendium: Vala, Go und Rust Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und TypeScript für C#-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenRobotik: LEGO MINDSTORMS, NAO und Raspberry Pi Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenAngular 2: Moderne Frontends für alle Plattformen entwickeln Bewertung: 0 von 5 Sternen0 BewertungenEclipse 4: Rich Clients mit dem Eclipse 4.2 SDK Bewertung: 0 von 5 Sternen0 BewertungenDNX: Grundlagen, Design und Compile Time Bewertung: 0 von 5 Sternen0 BewertungenSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Bewertung: 0 von 5 Sternen0 BewertungenEinblicke in C# 6.0 Bewertung: 0 von 5 Sternen0 BewertungenJava FX - Status Quo: Status Quo Bewertung: 0 von 5 Sternen0 BewertungenArduino: Mikrocontroller-Programmierung mit Arduino/Freeduino Bewertung: 0 von 5 Sternen0 BewertungenWebentwicklung mit dem Play Framework Bewertung: 0 von 5 Sternen0 Bewertungen.NET Core 1.0 und 1.1: Entwicklung mit den Core-Produkten Bewertung: 0 von 5 Sternen0 BewertungenBetriebssysteme: Grundlagen, Konzepte, Systemprogrammierung Bewertung: 0 von 5 Sternen0 BewertungenExpertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Bewertung: 0 von 5 Sternen0 BewertungenEclipse SmartHome und Smart Office: Intelligente Lösungen in der Heimautomation Bewertung: 0 von 5 Sternen0 BewertungenTraum vom intelligenten Zuhause - Band 2: Programmier-Ratgeber für LCN Pro Bewertung: 0 von 5 Sternen0 BewertungenOpenLaszlo: schnell + kompakt Bewertung: 0 von 5 Sternen0 BewertungenDSL mit Xtext/Xtend. 4GL-Entwicklung produktiver gestalten Bewertung: 0 von 5 Sternen0 BewertungenDigitale Modellbahn selbstgebaut: CANguru-Steuerung mit ESP32 in Arduino-Umgebung Bewertung: 0 von 5 Sternen0 BewertungenASP.NET Core: Eine Einführung Bewertung: 0 von 5 Sternen0 BewertungenPowerShell: Grundlagen für .NET-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Datenverarbeitung basierend auf MOM und SQL Bewertung: 0 von 5 Sternen0 BewertungenSteuergeräte-Entwicklung mit AUTOSAR: Evaluierung der Entwicklungsumgebung Arctic Studio: Entwicklung AUTOSAR-basierter Systeme Bewertung: 0 von 5 Sternen0 BewertungenDas Java Memory Model: Überblick und Ausblick auf Java 9 Bewertung: 0 von 5 Sternen0 BewertungenArduino: Hard- und Software Open Source Plattform Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenPython programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenSQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 5 von 5 Sternen5/5Bash kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5C++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Erfolgreiche Spieleentwicklung
0 Bewertungen0 Rezensionen
Buchvorschau
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