Compositing ist der Prozess des Zusammenführens mehrerer visueller Ebenen (layers) zu einem einzigen endgültigen Bild. Laut der Apple Core Animation Dokumentation, 2025 wird Compositing in der mobilen Entwicklung zum Überlagern von UI-Ebenen, zum Kombinieren von 3D-Renderings mit der Oberfläche und zum Erstellen von Animationen verwendet. Compositing steuert die Zeichenreihenfolge, Transparenz und Farbmischung zwischen den Ebenen.
Wichtige Punkte
Compositing ist die letzte Stufe der Grafikpipeline, in der alle separat gerenderten Ebenen (3D-Szenen, UI-Elemente, Video, Systemoberfläche) zu einem einzigen Bild für die Bildschirmanzeige zusammengeführt werden. Jede Ebene kann ihre eigene Farbe, Transparenz (Alpha), Position und Stapelreihenfolge haben.
Im Kontext der mobilen Entwicklung ist Compositing für die Benutzeroberfläche wichtig: Fenster, Schaltflächen, Text, Symbole — all diese Elemente werden zu einer einzigen Szene komponiert. Das Compositing-System verwaltet die Zeichenreihenfolge (z-order), die korrekte Überlagerung halbtransparenter Elemente und die Übergangsanimation zwischen UI-Zuständen.
In der Grafikpipeline findet Compositing statt, nachdem alle Shader-Durchläufe und die Rasterisierung abgeschlossen sind. Die GPU nimmt fertige Ebenen aus Framebuffern, wendet Blending-Operationen an und schreibt das Ergebnis in den Hauptframebuffer (Front Buffer) zur Ausgabe an den Bildschirm.
Compositing verwendet pixelweises Mischen (Blending) von Farben aus verschiedenen Ebenen. Jedes Pixel des Ausgabebildes wird basierend auf den Pixelfarben der überlagerten Ebenen unter Berücksichtigung der Transparenz (Alpha-Kanal) und des ausgewählten Mischmodus berechnet.
Jede Ebene enthält einen Alpha-Kanal (die vierte RGBA-Farbkomponente), der ihre Deckkraft bestimmt. Alpha = 1,0 — vollständig deckend, Alpha = 0,0 — vollständig transparent. Alpha blending berechnet die Pixelfarbe als gewichtete Summe der Farben der vorderen (Source) und hinteren (Destination) Ebene: Ergebnis = Source * Alpha + Dest * (1 - Alpha).
Compositing wird von der entferntesten zur nächsten Ebene (back-to-front) ausgeführt. Zuerst wird die Hintergrundebene gerendert, dann wird jede nachfolgende Ebene unter Berücksichtigung ihrer Transparenz über die vorherige gelegt. Z-order bestimmt, welche Ebene oben liegt und die darunterliegenden abdeckt.
Compositing unterstützt verschiedene Mischmodi (Blend Modes), die bestimmen, wie die Farben der Ebenen kombiniert werden. Jeder Modus erzeugt einen anderen visuellen Effekt und hat seine eigenen Berechnungskosten.
| Modus | Formel | Anwendung |
|---|---|---|
| Normal (Alpha) | src * a + dst * (1 - a) | Standardüberlagerung mit Transparenz |
| Additive | src + dst | Glüheffekte, Partikel |
| Multiply | src * dst | Schattierung, Schatten |
| Screen | 1 - (1 - src) * (1 - dst) | Aufhellung, Glanzlichter |
| Premultiplied Alpha | (src.rgb * a) + dst * (1 - a) | Leistung (ohne Laufzeitmultiplikation) |
Im Premultiplied-Alpha-Modus werden die Farbkanäle bereits multipliziert mit dem Alpha-Kanal gespeichert (RGB × A). Dies macht die Multiplikation bei jedem Blending-Vorgang überflüssig und beschleunigt das Compositing. Premultiplied Alpha ist das Standardformat für GPU-Compositing in iOS Core Animation und Android HWUI.
Jedes mobile Betriebssystem hat sein eigenes, für seine Hardwareplattformen optimiertes Compositing-System. Compositing in mobilen Betriebssystemen ist für die Darstellung der gesamten Benutzeroberfläche verantwortlich.
Unter iOS wird Compositing von Core Animation verwaltet — einem hochwertigen System, das auf Metal oder OpenGL ES läuft. Core Animation erstellt einen Layer Tree (Ebenenbaum), der dann zum endgültigen Bild komponiert wird. Core Animation ermittelt automatisch, welche Ebenen sich geändert haben, und zeichnet nur diese neu (inkrementelles Compositing), wodurch die GPU-Last minimiert wird.
Unter Android wird Compositing von SurfaceFlinger durchgeführt — einem Systemdienst, der Oberflächen (Surfaces) verschiedener Anwendungen und der System-UI zusammenführt. SurfaceFlinger verwendet HWC (Hardware Composer), um einen Teil der Compositing-Arbeit an die dedizierte Hardware des Display-Controllers zu delegieren.
Die Compositing-Leistung ist ein häufiger Engpass in mobilen Anwendungen, insbesondere bei komplexen Animationen und vielen halbtransparenten Ebenen. Jede zusätzliche Ebene erfordert das Lesen, Mischen und Schreiben von Pixeln in den Speicher.
Moderne mobile Geräte führen Compositing auf der GPU über spezialisierte Blending-Einheiten durch. GPU-Compositing verwendet parallele ROP-Einheiten und Texturfilter für schnelles Pixel-Blending. CPU-Compositing wird nur in seltenen Fällen (alte Geräte, Tests) verwendet.
Die Compositing-Optimierung ist eine der Hauptaufgaben bei der Entwicklung mobiler Oberflächen. Die Flüssigkeit der UI (60 FPS) hängt direkt von der Effizienz der Ebenenkombination ab.
Zur Analyse der Compositing-Leistung verwenden Sie: Core Animation Profiler (Xcode Instruments) — zeigt die Anzahl der Ebenen und die Compositing-Häufigkeit; GPU Debugger (Android Studio) — zeigt GPU-Last und Overdraw; Overdraw Visualization — ein Debugging-Tool, das Bereiche mit mehrfachem Pixel-Neuladen anzeigt.
Häufig gestellte Fragen
Compositing ist wie das Übereinanderlegen mehrerer transparenter Folien mit Zeichnungen zu einem Bild. Jede Folie ist eine Ebene (Schaltfläche, Hintergrund, Text), und die Transparenz bestimmt, wie die Ebenen durcheinander sichtbar sind.
Rendering — Erstellung des Inhalts jeder Ebene (Zeichnen einer Schaltfläche, Texturieren eines 3D-Modells). Compositing — Zusammenführen fertiger Ebenen zum endgültigen Bild unter Berücksichtigung von Transparenz und Stapelreihenfolge.
Core Animation komponiert Ebenen auf der GPU über Metal. Probleme treten bei einer großen Anzahl halbtransparenter Ebenen (Overdraw) oder bei CPU-Compositing (Off-Screen-Rendering) auf. Verwenden Sie Core Animation Profiler zur Diagnose.
Hardware Composer (HWC) ist ein Hardwaremodul des Display-Controllers, das Compositing ohne Belastung der GPU durchführt. HWC kann bis zu 4-8 Ebenen hardwaremäßig kombinieren, was den Stromverbrauch reduziert und die GPU für andere Aufgaben freigibt.
Fassen Sie statische Ebenen zusammen (Layer Flattening), verwenden Sie wo möglich undurchsichtige Farben, reduzieren Sie Offscreen-Puffergrößen und vermeiden Sie unnötige Animationen, die eine Neukomposition der gesamten Szene verursachen.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch