Compositing — adalah proses penggabungan beberapa lapisan visual menjadi satu gambar akhir. Menurut Apple Core Animation Documentation, 2025, dalam pengembangan mobile compositing digunakan untuk menumpuk lapisan UI, menggabungkan render 3D dengan antarmuka dan membuat animasi. Compositing mengatur urutan gambar, transparansi dan pencampuran warna antar lapisan.
Poin Utama
Compositing — adalah tahap akhir dari pipeline grafis, di mana semua lapisan yang dirender secara terpisah (adegan 3D, elemen UI, video, antarmuka sistem) digabungkan menjadi satu gambar untuk ditampilkan di layar. Setiap lapisan dapat memiliki warna, transparansi (alpha), posisi dan urutan tumpukan sendiri.
Dalam konteks pengembangan mobile, compositing penting untuk antarmuka pengguna: jendela, tombol, teks, ikon — semua elemen ini dikompositkan menjadi satu adegan. Sistem compositing mengatur urutan gambar (z-order), penumpukan elemen semi-transparan yang benar dan animasi transisi antar status UI.
Dalam pipeline grafis, compositing terjadi setelah semua proses shader dan rasterisasi selesai. GPU mengambil lapisan yang sudah jadi dari framebuffer, menerapkan operasi blending dan menulis hasilnya ke buffer bingkai utama (front buffer) untuk dikirim ke layar.
Compositing menggunakan pencampuran piksel per piksel (blending) warna dari lapisan yang berbeda. Setiap piksel dari gambar keluaran dihitung berdasarkan warna piksel dari lapisan yang ditumpuk dengan mempertimbangkan transparansi (saluran alpha) dan mode pencampuran yang dipilih.
Setiap lapisan mengandung saluran alpha (komponen keempat dari warna RGBA) yang menentukan opacity-nya. Alpha = 1.0 — sepenuhnya buram, alpha = 0.0 — sepenuhnya transparan. Alpha blending menghitung warna piksel sebagai jumlah tertimbang dari warna lapisan depan (source) dan belakang (destination): result = source * alpha + dest * (1 - alpha).
Compositing dijalankan dalam urutan dari lapisan terjauh ke terdekat (back-to-front). Pertama, lapisan latar belakang dirender, kemudian setiap lapisan berikutnya ditumpuk di atas lapisan sebelumnya dengan mempertimbangkan transparansinya. Z-order menentukan lapisan mana yang berada di atas dan akan menutupi lapisan di bawahnya.
Compositing mendukung berbagai mode pencampuran (blend modes) yang menentukan bagaimana warna lapisan digabungkan. Setiap mode memberikan efek visual yang berbeda dan memiliki biaya komputasi sendiri.
| Mode | Rumus | Penerapan |
|---|---|---|
| Normal (Alpha) | src * a + dst * (1 - a) | Tumpukan standar dengan transparansi |
| Additive | src + dst | Efek cahaya, partikel |
| Multiply | src * dst | Penggelapan, bayangan |
| Screen | 1 - (1 - src) * (1 - dst) | Pencerahan, pantulan |
| Premultiplied Alpha | (src.rgb * a) + dst * (1 - a) | Efisien (tanpa perkalian langsung) |
Dalam mode premultiplied alpha, saluran warna disimpan sudah dikalikan dengan saluran alpha (RGB × A). Ini menghilangkan kebutuhan perkalian pada setiap operasi blending, mempercepat compositing. Premultiplied alpha — format standar untuk GPU-compositing di iOS Core Animation dan Android HWUI.
Setiap sistem operasi mobile memiliki sistem compositing sendiri, yang dioptimalkan untuk platform perangkat kerasnya. Compositing di OS mobile bertanggung jawab untuk merender seluruh antarmuka pengguna.
Di iOS, compositing dikelola oleh Core Animation — sistem tingkat tinggi yang bekerja di atas Metal atau OpenGL ES. Core Animation membuat layer tree (pohon lapisan) yang kemudian dikompositkan menjadi gambar akhir. Core Animation secara otomatis mendeteksi lapisan mana yang berubah dan hanya menggambar ulang lapisan tersebut (incremental compositing), yang meminimalkan beban GPU.
Di Android, compositing dilakukan oleh SurfaceFlinger — layanan sistem yang menggabungkan permukaan (surfaces) dari berbagai aplikasi dan antarmuka sistem. SurfaceFlinger menggunakan HWC (Hardware Composer) untuk mentransfer sebagian pekerjaan compositing ke perangkat keras khusus pengontrol layar.
Kinerja compositing — sering menjadi bottleneck di aplikasi mobile, terutama pada animasi kompleks dan penumpukan banyak lapisan semi-transparan. Setiap lapisan tambahan memerlukan pembacaan, pencampuran dan penulisan piksel ke memori.
Perangkat mobile modern melakukan compositing di GPU melalui blok blending khusus. GPU-compositing menggunakan blok ROP paralel dan filter tekstur untuk pencampuran piksel yang cepat. CPU-compositing hanya digunakan dalam kasus yang jarang terjadi (perangkat lama, pengujian).
Optimasi compositing — salah satu tugas kunci dalam pengembangan antarmuka mobile. Kelancaran UI (60 FPS) secara langsung tergantung pada efisiensi penggabungan lapisan.
Untuk menganalisis kinerja compositing gunakan: Core Animation Profiler (Xcode Instruments) — menunjukkan jumlah lapisan dan frekuensi compositing; GPU Debugger (Android Studio) — menampilkan beban GPU dan overdraw; Overdraw Visualisation — alat debug yang menunjukkan area penggambaran ulang piksel berganda.
Pertanyaan yang Sering Diajukan
Compositing seperti menempelkan beberapa film transparan dengan gambar menjadi satu gambar. Setiap film adalah lapisan (tombol, latar belakang, teks), dan transparansi menentukan bagaimana lapisan terlihat satu sama lain.
Rendering — pembuatan konten setiap lapisan (menggambar tombol, memberi tekstur model 3D). Compositing — penggabungan lapisan yang sudah jadi menjadi gambar akhir dengan mempertimbangkan transparansi dan urutan tumpukan.
Core Animation mengkompositkan lapisan di GPU melalui Metal. Masalah dimulai dengan banyaknya lapisan semi-transparan (overdraw) atau CPU-compositing (off-screen rendering). Gunakan Core Animation Profiler untuk diagnostik.
Hardware Composer (HWC) — modul perangkat keras pengontrol layar yang melakukan compositing tanpa membebani GPU. HWC dapat menggabungkan hingga 4-8 lapisan secara hardware, mengurangi konsumsi daya dan membebaskan GPU untuk tugas lain.
Gabungkan lapisan statis (layer flattening), gunakan warna buram jika memungkinkan, kurangi ukuran buffer offscreen dan hindari animasi yang tidak perlu yang menyebabkan kompositing ulang seluruh adegan.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga