Compositing: bu nədir, təbəqələr və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-06-12 Oxuma vaxtı: 10 dəq

Compositing — bir neçə vizual təbəqənin bir son təsvirdə birləşdirilməsi prosesidir. Apple Core Animation Documentation, 2025-ə görə, mobil inkişafda compositing UI təbəqələrinin üst-üstə qoyulması, 3D renderin interfeyslə birləşdirilməsi və animasiyaların yaradılması üçün istifadə olunur. Compositing çəkmə ardıcıllığını, şəffaflığı və təbəqələr arasında rəng qarışdırılmasını idarə edir.

Əsas məqamlar

  • Compositing — ayrı-ayrı vizual təbəqələrin son təsvirdə birləşdirilməsi.
  • Alpha blending — təbəqələrin şəffaflığını nəzərə alan əsas qarışdırma alqoritmi.
  • GPU compositing — ROP bloklarının blending əməliyyatları vasitəsilə GPU-da yerinə yetirilir.
  • Core Animation (iOS) və HWUI (Android) — mobil OS-lərdə kompozitinq sistemləri.
  • Optimallaşdırma compositing-in hamar UI və animasiyalar üçün 60 FPS-də kritik əhəmiyyəti var.

Compositing nədir?

Compositing — qrafik konveyerinin son mərhələsidir, burada ayrıca render edilmiş bütün təbəqələr (3D səhnələr, UI elementləri, video, sistem interfeysi) ekrana çıxarmaq üçün bir təsvirdə birləşdirilir. Hər təbəqənin öz rəngi, şəffaflığı (alpha), mövqeyi və üst-üstə qoyulma ardıcıllığı ola bilər.

Mobil inkişaf kontekstində compositing istifadəçi interfeysi üçün vacibdir: pəncərələr, düymələr, mətn, ikonlar — bütün bu elementlər bir səhnədə kompozit edilir. Compositing sistemi çəkmə ardıcıllığını (z-order), yarı şəffaf elementlərin düzgün üst-üstə qoyulmasını və UI vəziyyətləri arasında keçid animasiyasını idarə edir.

Qrafik konveyerdə compositing

Qrafik konveyerdə compositing bütün şeyder keçidləri və rastrlaşdırma tamamlandıqdan sonra baş verir. GPU hazır təbəqələri framebuffer-lərdən götürür, blending əməliyyatlarını tətbiq edir və nəticəni displeyə göndərmək üçün əsas çərçivə buferinə (front buffer) yazır.

Compositing necə işləyir?

Compositing müxtəlif təbəqələrdən rənglərin piksel-piksel qarışdırılmasından (blending) istifadə edir. Çıxış təsvirinin hər pikseli üst-üstə qoyulan təbəqələrdən piksellərin rəngləri əsasında şəffaflıq (alfa kanalı) və seçilmiş qarışdırma rejimi nəzərə alınmaqla hesablanır.

Alfa kanalı və şəffaflıq

Hər təbəqədə onun qeyri-şəffaflığını təyin edən alfa kanalı (RGBA rənginin dördüncü komponenti) var. Alpha = 1,0 — tam qeyri-şəffaf, alpha = 0,0 — tam şəffaf. Alpha blending piksel rəngini ön (source) və arxa (destination) təbəqələrin rənglərinin çəkili cəmi kimi hesablayır: result = source * alpha + dest * (1 - alpha).

Çəkmə ardıcıllığı (Rəssam Alqoritmi)

Compositing ən uzaq təbəqədən ən yaxına (back-to-front) ardıcıllıqla yerinə yetirilir. Əvvəlcə fon təbəqəsi render edilir, sonra hər növbəti təbəqə şəffaflığı nəzərə alınmaqla əvvəlkinin üzərinə qoyulur. Z-order hansı təbəqənin yuxarıda olduğunu və aşağıdakı təbəqələri örtəcəyini müəyyən edir.

Compositing alqoritmləri

Compositing təbəqə rənglərinin necə birləşdiriləcəyini təyin edən müxtəlif qarışdırma rejimlərini (blend modes) dəstəkləyir. Hər rejim fərqli vizual effekt verir və öz hesablama xərclərinə malikdir.

RejimDüsturTətbiq
Normal (Alpha)src * a + dst * (1 - a)Şəffaflıqla standart üst-üstə qoyma
Additivesrc + dstİşıq effektləri, hissəciklər
Multiplysrc * dstQaraldırma, kölgələr
Screen1 - (1 - src) * (1 - dst)İşıqlandırma, parıltılar
Premultiplied Alpha(src.rgb * a) + dst * (1 - a)Məhsuldar (anında vurma olmadan)

Premultiplied Alpha

Premultiplied alpha rejimində rəng kanalları artıq alfa kanalına vurulmuş şəkildə saxlanılır (RGB × A). Bu, hər blending əməliyyatında vurma ehtiyacını aradan qaldırır, compositing-i sürətləndirir. Premultiplied alpha — iOS Core Animation və Android HWUI-da GPU-compositing üçün standart formatdır.

Mobil OS-lərdə compositing

Hər bir mobil əməliyyat sisteminin öz aparat platforması üçün optimallaşdırılmış compositing sistemi var. Compositing mobil OS-lərdə bütün istifadəçi interfeysinin render edilməsinə cavabdehdir.

iOS: Core Animation + Metal

iOS-da compositing-i Core Animation idarə edir — Metal və ya OpenGL ES üzərində işləyən yüksək səviyyəli sistem. Core Animation layer tree (təbəqə ağacı) yaradır, sonra bu son təsvirdə kompozit edilir. Core Animation hansı təbəqələrin dəyişdiyini avtomatik müəyyən edir və yalnız onları yenidən çəkir (incremental compositing), bu da GPU yükünü minimuma endirir.

Android: SurfaceFlinger + HWUI

Android-də compositing müxtəlif tətbiqlərdən və sistem interfeysindən səthləri (surfaces) birləşdirən sistem xidməti olan SurfaceFlinger tərəfindən yerinə yetirilir. SurfaceFlinger compositing-in bir hissəsini displey kontrollerinin xüsusi aparatına ötürmək üçün HWC (Hardware Composer) istifadə edir.

Compositing-in performansı

Compositing performansı — mobil tətbiqlərdə tez-tez rast gəlinən darboğazdır, xüsusən mürəkkəb animasiyalar və çoxsaylı yarı şəffaf təbəqələrin üst-üstə qoyulması zamanı. Hər əlavə təbəqə yaddaşda piksellərin oxunması, qarışdırılması və yazılmasını tələb edir.

Performansa təsir edən amillər

  • Təbəqələrin sayı — hər təbəqə ayrı blending keçidi tələb edir. Təbəqələrin sayını azaltmaq compositing-i xətti olaraq sürətləndirir.
  • Təbəqələrin rezolyusiyası — yüksək rezolyusiyalı təbəqələr işlənən piksellərin sayını artırır. Offscreen buferlərinin mümkün olan minimum ölçüsündən istifadə edin.
  • Şəffaflıq və overdraw — yarı şəffaf təbəqələr altda qalan piksellərin oxunmasını tələb edir, bu da bant genişliyini artırır.
  • CPU compositing — compositing CPU-da yerinə yetirilərsə (software rendering), performans kəskin şəkildə düşür. GPU-compositing həmişə üstünlük təşkil edir.

GPU Compositing vs CPU Compositing

Müasir mobil cihazlar compositing-i ixtisaslaşmış blending blokları vasitəsilə GPU-da yerinə yetirir. GPU-compositing piksellərin sürətli qarışdırılması üçün paralel ROP bloklarından və tekstur filtrlərindən istifadə edir. CPU-compositing yalnız nadir hallarda (köhnə cihazlar, test etmə) istifadə olunur.

Compositing-in optimallaşdırılması

Compositing-in optimallaşdırılması — mobil interfeyslərin hazırlanmasında əsas vəzifələrdən biridir. UI-nin hamarlığı (60 FPS) birbaşa təbəqələrin birləşdirilməsinin səmərəliliyindən asılıdır.

Əsas optimallaşdırma metodları

  • Təbəqələrin minimuma endirilməsi — statik təbəqələrin öncədən render vasitəsilə bir təbəqədə birləşdirilməsi (layer flattening).
  • Opaque layers — qeyri-şəffaf təbəqələr alpha blending tələb etmir, bu da compositing-i əhəmiyyətli dərəcədə sürətləndirir.
  • Incremental compositing — bütün səhnənin deyil, yalnız dəyişmiş təbəqələrin yenidən çəkilməsi (Core Animation tərəfindən istifadə olunur).
  • Hardware Composer — GPU-nun iştirakı olmadan aparat compositing-i üçün HWC-dən istifadə.

Profilinq alətləri

Compositing performansını təhlil etmək üçün istifadə edin: Core Animation Profiler (Xcode Instruments) — təbəqələrin sayını və compositing tezliyini göstərir; GPU Debugger (Android Studio) — GPU yükünü və overdraw-ı göstərir; Overdraw Visualisation — piksellərin çoxsaylı yenidən çəkilmə sahələrini göstərən debug aləti.

Tez-tez verilən suallar

Sadə sözlərlə compositing nədir?

Compositing — bir neçə şəffaf plyonkanın üzərindəki rəsmləri bir şəklə yapışdırmağa bənzəyir. Hər plyonka bir təbəqədir (düymə, fon, mətn), şəffaflıq isə təbəqələrin bir-birindən necə göründüyünü müəyyən edir.

Renderinq və compositing arasında nə fərq var?

Renderinq — hər təbəqənin məzmununun yaradılması (düymənin çəkilməsi, 3D modelin tekstürlənməsi). Compositing — hazır təbəqələrin şəffaflıq və üst-üstə qoyulma ardıcıllığı nəzərə alınmaqla son təsvirdə birləşdirilməsi.

Compositing iOS performansına necə təsir edir?

Core Animation təbəqələri Metal vasitəsilə GPU-da kompozit edir. Problemlər çox sayda yarı şəffaf təbəqə (overdraw) və ya CPU-compositing (off-screen rendering) zamanı başlayır. Diaqnostika üçün Core Animation Profiler-dən istifadə edin.

Android-də Hardware Composer nədir?

Hardware Composer (HWC) — GPU-nu yükləmədən compositing yerinə yetirən displey kontrollerinin aparat moduludur. HWC 4-8 təbəqəyə qədər aparat vasitəsilə birləşdirə bilər, bu da enerji istehlakını azaldır və GPU-nu digər tapşırıqlar üçün boşaldır.

Compositing yükünü necə azaltmaq olar?

Statik təbəqələri birləşdirin (layer flattening), mümkün olduqda qeyri-şəffaf rənglərdən istifadə edin, offscreen buferlərinin ölçüsünü azaldın və bütün səhnənin yenidən kompozit edilməsinə səbəb olan lazımsız animasiyalardan qaçının.

Nəticə

  • Compositing — bütün vizual təbəqələrin ekranın son təsvirində birləşdirilməsinin son mərhələsi.
  • Alpha blending — şəffaflığı nəzərə alan əsas rəng qarışdırma alqoritmi (RGBA).
  • Premultiplied alpha — lazımsız vurmaları aradan qaldıran GPU-compositing üçün standart format.
  • Core Animation (iOS) və SurfaceFlinger (Android) — mobil OS compositing sistemləri.
  • Yarı şəffaf təbəqələrin sayı — compositing performansına təsir edən əsas amil.
  • Hardware Composer — GPU olmadan compositing üçün Android aparat bloku.
  • Optimallaşdırma layer flattening, qeyri-şəffaf təbəqələrin istifadəsi və incremental compositing daxildir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun