Compositing: nedir, katmanlar ve çalışma prensibi

Yazar: IT Sectr Yayınlanma: 2026-06-12 Okuma süresi: 10 dk

Compositing (birleştirme), birden fazla görsel katmanın (layers) tek bir nihai görüntüde birleştirilmesi sürecidir. Apple Core Animation Dokümantasyonu, 2025'ye göre, mobil geliştirmede compositing, UI katmanlarını üst üste bindirmek, 3D render'ı arayüzle birleştirmek ve animasyonlar oluşturmak için kullanılır. Compositing çizim sırasını, şeffaflığı ve katmanlar arasındaki renk karışımını kontrol eder.

Önemli Noktalar

  • Compositing — ayrı görsel katmanların nihai görüntüde birleştirilmesi.
  • Alpha blending — katman şeffaflığını dikkate alan ana karıştırma algoritması.
  • GPU compositing — ROP bloklarının blending işlemleriyle GPU'da gerçekleştirilir.
  • Core Animation (iOS) ve HWUI (Android) — mobil işletim sistemlerinde compositing sistemleri.
  • Optimizasyon 60 FPS'de akıcı UI ve animasyonlar için kritiktir.

Compositing Nedir?

Compositing, grafik hattının son aşamasıdır; burada ayrı ayrı render edilmiş tüm katmanlar (3D sahneler, UI öğeleri, video, sistem arayüzü) ekranda görüntülenmek üzere tek bir görüntüde birleştirilir. Her katmanın kendi rengi, şeffaflığı (alpha), konumu ve istifleme sırası olabilir.

Mobil geliştirme bağlamında, compositing kullanıcı arayüzü için önemlidir: pencereler, düğmeler, metin, simgeler — tüm bu öğeler tek bir sahnede birleştirilir. Compositing sistemi çizim sırasını (z-order), yarı saydam öğelerin doğru şekilde üst üste bindirilmesini ve UI durumları arasındaki geçiş animasyonunu yönetir.

Grafik Hattında Compositing

Grafik hattında, compositing tüm shader geçişleri ve rasterizasyon tamamlandıktan sonra gerçekleşir. GPU, framebuffer'lardan hazır katmanları alır, blending işlemlerini uygular ve sonucu ekrana göndermek için ana framebuffer'a (front buffer) yazar.

Compositing Nasıl Çalışır?

Compositing, farklı katmanlardan gelen renklerin piksel bazında karıştırılmasını (blending) kullanır. Çıktı görüntüsünün her pikseli, üst üste bindirilmiş katmanların piksel renklerine dayalı olarak şeffaflık (alpha kanalı) ve seçilen karıştırma modu dikkate alınarak hesaplanır.

Alpha Kanalı ve Şeffaflık

Her katman, opaklığını belirleyen bir alpha kanalı (RGBA renginin dördüncü bileşeni) içerir. Alpha = 1.0 — tamamen opak, alpha = 0.0 — tamamen şeffaf. Alpha blending piksel rengini ön (source) ve arka (destination) katman renklerinin ağırlıklı toplamı olarak hesaplar: sonuç = source * alpha + dest * (1 - alpha).

Çizim Sırası (Ressam Algoritması)

Compositing, en uzak katmandan en yakına (back-to-front) doğru gerçekleştirilir. Önce arka plan katmanı render edilir, ardından her sonraki katman şeffaflığı dikkate alınarak bir öncekinin üzerine bindirilir. Z-order, hangi katmanın üstte olduğunu ve alttakileri kapatacağını belirler.

Compositing Algoritmaları

Compositing, katman renklerinin nasıl birleştirileceğini belirleyen çeşitli karıştırma modlarını (blend modes) destekler. Her mod farklı bir görsel efekt üretir ve kendi hesaplama maliyetine sahiptir.

ModFormülUygulama
Normal (Alpha)src * a + dst * (1 - a)Şeffaflık ile standart bindirme
Additivesrc + dstParlama efektleri, parçacıklar
Multiplysrc * dstGölgeleme, gölgeler
Screen1 - (1 - src) * (1 - dst)Aydınlatma, vurgular
Premultiplied Alpha(src.rgb * a) + dst * (1 - a)Performans (çalışma zamanında çarpma yok)

Premultiplied Alpha

Premultiplied alpha modunda, renk kanalları alpha kanalıyla (RGB × A) önceden çarpılmış olarak saklanır. Bu, her blending işleminde çarpma ihtiyacını ortadan kaldırarak compositing'i hızlandırır. Premultiplied alpha, iOS Core Animation ve Android HWUI'de GPU compositing için standart formattır.

Mobil İşletim Sistemlerinde Compositing

Her mobil işletim sisteminin, kendi donanım platformları için optimize edilmiş kendi compositing sistemi vardır. Mobil işletim sistemlerinde Compositing, tüm kullanıcı arayüzünün render edilmesinden sorumludur.

iOS: Core Animation + Metal

iOS'ta compositing, Core Animation tarafından yönetilir — Metal veya OpenGL ES üzerinde çalışan üst düzey bir sistem. Core Animation, daha sonra nihai görüntüde birleştirilen bir katman ağacı (layer tree) oluşturur. Core Animation otomatik olarak hangi katmanların değiştiğini belirler ve yalnızca bunları yeniden çizer (artımlı compositing), GPU yükünü en aza indirir.

Android: SurfaceFlinger + HWUI

Android'te compositing, SurfaceFlinger tarafından gerçekleştirilir — çeşitli uygulamalardan ve sistem arayüzünden yüzeyleri (surfaces) birleştiren bir sistem hizmeti. SurfaceFlinger, compositing işinin bir kısmını ekran denetleyicisinin özel donanımına aktarmak için HWC (Hardware Composer) kullanır.

Compositing Performansı

Compositing performansı, özellikle karmaşık animasyonlar ve çok sayıda yarı saydam katman bindirmesinde mobil uygulamalarda yaygın bir darboğazdır. Her ek katman, bellekte piksel okuma, karıştırma ve yazma gerektirir.

Performansı Etkileyen Faktörler

  • Katman sayısı — her katman ayrı bir blending geçişi gerektirir. Katman sayısını azaltmak compositing'i doğrusal olarak hızlandırır.
  • Katman çözünürlüğü — yüksek çözünürlüklü katmanlar işlenen piksel sayısını artırır. Mümkün olan en küçük offscreen buffer boyutunu kullanın.
  • Şeffaflık ve overdraw — yarı saydam katmanlar alttaki piksellerin okunmasını gerektirir, bu da bant genişliğini artırır.
  • CPU compositing — compositing CPU'da yapılırsa (yazılım render), performans önemli ölçüde düşer. GPU compositing her zaman tercih edilir.

GPU Compositing vs CPU Compositing

Modern mobil cihazlar, özel blending birimleri aracılığıyla GPU'da compositing gerçekleştirir. GPU compositing, hızlı piksel karıştırma için paralel ROP birimleri ve doku filtreleri kullanır. CPU compositing yalnızca nadir durumlarda (eski cihazlar, test) kullanılır.

Compositing Optimizasyonu

Compositing optimizasyonu, mobil arayüz geliştirmede ana görevlerden biridir. UI akıcılığı (60 FPS) doğrudan katman birleştirme verimliliğine bağlıdır.

Ana Optimizasyon Yöntemleri

  • Katman minimizasyonu — önceden render ile statik katmanları tek bir katmanda birleştirme (layer flattening).
  • Opak katmanlar — opak katmanlar alpha blending gerektirmez, bu da compositing'i önemli ölçüde hızlandırır.
  • Artımlı compositing — tüm sahne yerine yalnızca değişen katmanları yeniden çizme (Core Animation tarafından kullanılır).
  • Hardware Composer — GPU katılımı olmadan donanım compositing için HWC kullanımı.

Profil Oluşturma Araçları

Compositing performans analizi için kullanın: Core Animation Profiler (Xcode Instruments) — katman sayısını ve compositing sıklığını gösterir; GPU Debugger (Android Studio) — GPU yükünü ve overdraw'u görüntüler; Overdraw Visualization — piksellerin tekrar tekrar çizildiği alanları gösteren bir hata ayıklama aracı.

Sıkça Sorulan Sorular

Basit bir ifadeyle compositing nedir?

Compositing, üzerinde çizimler olan birkaç şeffaf tabakayı tek bir resimde üst üste koymak gibidir. Her tabaka bir katmandır (düğme, arka plan, metin) ve şeffaflık katmanların birbirinin içinden nasıl göründüğünü belirler.

Render ve compositing arasındaki fark nedir?

Render — her katmanın içeriğini oluşturma (düğme çizme, 3D modeli dokulandırma). Compositing — şeffaflık ve istifleme sırasını dikkate alarak hazır katmanları nihai görüntüde birleştirme.

Compositing iOS performansını nasıl etkiler?

Core Animation, Metal aracılığıyla GPU'da katmanları birleştirir. Çok sayıda yarı saydam katman (overdraw) veya CPU compositing (offscreen render) ile sorunlar başlar. Teşhis için Core Animation Profiler kullanın.

Android'de Hardware Composer nedir?

Hardware Composer (HWC), GPU'yu yüklemeden compositing gerçekleştiren ekran denetleyicisinin bir donanım modülüdür. HWC, donanımda 4-8 katmana kadar birleştirme yapabilir, bu da güç tüketimini azaltır ve GPU'yu diğer görevler için serbest bırakır.

Compositing yükü nasıl azaltılır?

Statik katmanları birleştirin (layer flattening), mümkün olduğunda opak renkler kullanın, offscreen buffer boyutlarını azaltın ve tüm sahnenin yeniden birleştirilmesine neden olan gereksiz animasyonlardan kaçının.

Özet

  • Compositing — tüm görsel katmanların nihai ekran görüntüsünde birleştirilmesinin son aşaması.
  • Alpha blending — şeffaflığı (RGBA) dikkate alan ana renk karıştırma algoritması.
  • Premultiplied alpha — gereksiz çarpmaları ortadan kaldıran standart GPU compositing formatı.
  • Core Animation (iOS) ve SurfaceFlinger (Android) — mobil işletim sistemlerinin compositing sistemleri.
  • Yarı saydam katman sayısı — compositing performansını etkileyen ana faktör.
  • Hardware Composer — GPU olmadan compositing için Android donanım bloğu.
  • Optimizasyon layer flattening, opak katman kullanımı ve artımlı compositing içerir.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun