Apple Metal API Vorstellung und Erklärung

Mit Metal hat Apple bereits 2014 eine eigene Programmierschnittstelle für 3D-Grafik-Anwendungen vorgestellt. Zunächst nur auf iOS-Geräten, wie iPhones und iPads verfügbar, wurde Metal ein Jahr nach der Vorstellung auch für die Nutzung auf Macs freigegeben. Die Entwicklung hochperformanter 3D-Spiele und anderer 3D-Anwendungen für Apple-Geräte wurde damit erheblich vereinfacht.

Kompatibel mit fast allen Apple-Geräten

Inzwischen ist Metal gut abgehangen und auf fast jedem im Umlauf befindlichen Apple-Gerät nutzbar. Nur auf sehr alten Geräten wird die API nicht unterstützt. Macs ab dem Baujahr 2012, die mindestens unter Mac OS X El Capitan betrieben werden, und alle iOS-Geräte ab iOS 8 werden aber unterstützt.

Tiefe Verzahnung mit Betriebssystem und Hardware

Als direkt von Apple entwickelte Schnittstelle stellt Metal komfortablen und zugleich niedrig-leveligen Zugang zur Grafikhardware der unterstützten Geräte her. Sowohl Swift als auch Objective-C bieten Möglichkeiten, auf die Kommandos von Metal zuzugreifen. Zusätzlich stellt Apple mit der Metal Shading Language (MSL) eine eigene Sprache bereit, mit der auch aufwendigere Grafikfunktionen für die spätere Verwendung in ObjC- oder Swift-Anwendungen entwickelt werden können. MSL basiert auf C++ und ist für erfahrene Entwicklerinnen und Entwickler damit vergleichsweise einfach zu erlernen.

Wie auch Microsofts Direct3D in Version 12 oder der OpenGL-Nachfolger Vulkan (das unter anderem durch Unity 3D oder und Googles Cloud-Gaming-Plattform Stadia unterstützt wird), setzt Metal auf das moderne Prinzip des command buffers. Dadurch wird es möglich, Kommandos an die API im RAM zu sammeln und dann auf einmal zu übergeben: Effizientere und schnellere Programme lassen sich so entwickeln. Der Grafikchip wird entlastet. Die Leistungsfähigkeit der Metal-Engine wird nicht zuletzt durch den Kompatibilitätslayer MoltenVK unter Beweis gestellt. MoltenVK erlaubt es, die allermeisten native Vulkan-Anwendungen mit wenig Aufwand direkt auf metalfähigen Macs und iOS-Geräten auszuführen.

Hohe Performance

So wie DirectX (siehe DirectX 12) und Direct3D unter Microsoft Windows die höchste Performance versprechen, sind Metal-Anwendungen auf Apple-Geräten die am besten performenden Anwendungen. Die appletypische Integration von Hard- und Software verstärkt diesen Effekt noch. Im Vergleich zu OpenGL überzeugt Metal dabei auch sonst durch die modernere und effizientere Programmierung. Auch gegenüber Vulkan kann Metal einige Vorteile ausspielen, vor allem die nativ etwas größere Hardwarenähe sorgt für höhere Effizienz und Kompatibilität mit mehr Apple-Hardware.

Games und andere Software

Nicht nur für die Entwicklung von Spielen ist Metal wichtig. Gerade bei der Programmierung GPU-hungriger Anwendungen für den Mac Pro oder das iPad Pro, spielt die Schnittstelle ebenfalls eine bedeutende Rolle. 3D-Rendering-Anwendungen, Videoschnitt-Systeme und vergleichbare Software profitieren von der nativen Entwicklung auf Grundlage des Metal-Frameworks. Für Anwenderinnen und Anwender kann das Rendering eines fertigen Videos mit einer Metal-Anwendung deutlich schneller sein.

Mehr Möglichkeiten mit Metal 2

Mit Metal 2, der weiterentwickelten Version der Metal-API, hat Apple das Programmierinterface 2017 noch einmal weiter verbessert. Metal 2 stellt dabei keine vollständig neue API dar, sondern erweitert das vorhandene Metal-Framework um eine Reihe essenzieller Funktionen. So unterstützt Metal 2 zum Beispiel externe GPUs und ermöglicht es, mit neuen API-Calls, noch hardwarenäher zu entwickeln. Damit erlaubt Metal 2 hardwareintensivere Anwendungen. Gerade die oben beschriebenen Programme aus dem Kreativen-Bereich profitieren davon.