Compositing: bu nima, qatlamlar va ishlash prinsipi

Muallif: IT Sectr Nashr etilgan: 2026-06-12 O'qish vaqti: 10 daq

Compositing — bir nechta vizual qatlamlarni bitta yakuniy tasvirga birlashtirish jarayoni. Apple Core Animation Documentation, 2025 ma'lumotlariga ko'ra, mobil ishlanmada kompoziting UI qatlamlarini qo'shish, 3D renderingni interfeys bilan birlashtirish va animatsiyalar yaratish uchun ishlatiladi. Compositing chizish tartibini, shaffoflikni va qatlamlar orasidagi ranglarni aralashtirishni boshqaradi.

Asosiy ma'lumotlar

  • Compositing — alohida vizual qatlamlarni yakuniy tasvirga birlashtirish.
  • Alpha blending — qatlamlarning shaffofligini hisobga oladigan asosiy aralashtirish algoritmi.
  • GPU compositing — ROP bloklarining blending operatsiyalari orqali GPUda bajariladi.
  • Core Animation (iOS) va HWUI (Android) — mobil OTlardagi kompoziting tizimlari.
  • Optimallashtirish kompozitingning silliq UI va 60 FPS animatsiyalar uchun muhim.

Kompoziting nima?

Compositing — grafik konveyerining yakuniy bosqichi bo'lib, unda alohida render qilingan barcha qatlamlar (3D sahnalar, UI elementlari, video, tizim interfeysi) ekranga chiqarish uchun bitta tasvirga birlashtiriladi. Har bir qatlam o'ziga xos rang, shaffoflik (alpha), joylashuv va qoplash tartibiga ega bo'lishi mumkin.

Mobil ishlanma kontekstida kompoziting foydalanuvchi interfeysi uchun muhim: oynalar, tugmalar, matn, piktogrammalar — bu elementlarning barchasi bitta sahnada kompozit qilinadi. Kompoziting tizimi chizish tartibini (z-order), yarim shaffof elementlarning to'g'ri qoplanishini va UI holatlari orasidagi o'tish animatsiyasini boshqaradi.

Grafik konveyerida kompoziting

Grafik konveyerida kompoziting barcha shader o'tishlari va rastrlashtirish tugagandan so'ng sodir bo'ladi. GPU tayyor qatlamlarni framebufferlardan oladi, blending operatsiyalarini qo'llaydi va natijani displeyga yuborish uchun asosiy kadr buferiga (front buffer) yozadi.

Kompoziting qanday ishlaydi?

Compositing turli qatlamlardan ranglarni pikselma-piksel aralashtirishdan (blending) foydalanadi. Chiqish tasvirining har bir pikseli qoplangan qatlamlardagi piksellarning ranglari asosida shaffoflik (alfa kanali) va tanlangan aralashtirish rejimi hisobga olingan holda hisoblanadi.

Alfa kanali va shaffoflik

Har bir qatlam uning shaffof emasligini belgilaydigan alfa kanalini (RGBA rangining to'rtinchi komponenti) o'z ichiga oladi. Alpha = 1.0 — to'liq shaffof emas, alpha = 0.0 — to'liq shaffof. Alpha blending piksel rangini oldingi (source) va orqa (destination) qatlam ranglarining vaznli yig'indisi sifatida hisoblaydi: result = source * alpha + dest * (1 - alpha).

Chizish tartibi (Rassom Algoritmi)

Kompoziting eng uzoq qatlamdan eng yaqingacha (back-to-front) tartibda bajariladi. Avval fon qatlami render qilinadi, so'ngra har bir keyingi qatlam uning shaffofligini hisobga olgan holda oldingisining ustiga qo'yiladi. Z-order qaysi qatlam yuqorida ekanligini va pastdagi qatlamlarni yopishini aniqlaydi.

Kompoziting algoritmlari

Compositing qatlam ranglari qanday birlashtirilishini belgilaydigan turli xil aralashtirish rejimlarini (blend modes) qo'llab-quvvatlaydi. Har bir rejim turli vizual effekt beradi va o'zining hisoblash xarajatlariga ega.

RejimFormulaQo'llanilishi
Normal (Alpha)src * a + dst * (1 - a)Shaffoflik bilan standart qoplash
Additivesrc + dstYorug'lik effektlari, zarralar
Multiplysrc * dstQoraytirish, soyalar
Screen1 - (1 - src) * (1 - dst)Yoritish, porlashlar
Premultiplied Alpha(src.rgb * a) + dst * (1 - a)Samarali (jo'ya ko'paytirishsiz)

Premultiplied Alpha

Premultiplied alpha rejimida rang kanallari allaqachon alfa kanaliga ko'paytirilgan holda saqlanadi (RGB × A). Bu har bir blending operatsiyasida ko'paytirish zaruratini yo'q qiladi, kompozitingni tezlashtiradi. Premultiplied alpha — iOS Core Animation va Android HWUIDa GPU-kompoziting uchun standart format.

Mobil OTlarda kompoziting

Har bir mobil operatsion tizim o'zining apparat platformasi uchun optimallashtirilgan kompoziting tizimiga ega. Compositing mobil OTlarda butun foydalanuvchi interfeysini render qilish uchun javobgardir.

iOS: Core Animation + Metal

iOSda kompozitingni Core Animation boshqaradi — Metal yoki OpenGL ES ustida ishlaydigan yuqori darajali tizim. Core Animation layer tree (qatlam daraxti) yaratadi, so'ngra bu yakuniy tasvirda kompozit qilinadi. Core Animation qaysi qatlamlar o'zgarganini avtomatik aniqlaydi va faqat ularni qayta chizadi (incremental compositing), bu esa GPU yukini minimallashtiradi.

Android: SurfaceFlinger + HWUI

Androidda kompoziting SurfaceFlinger tomonidan amalga oshiriladi — turli ilovalar va tizim interfeysidan sirtlarni (surfaces) birlashtiruvchi tizim xizmati. SurfaceFlinger kompoziting ishining bir qismini displey kontrollerining maxsus apparatiga o'tkazish uchun HWC (Hardware Composer) dan foydalanadi.

Kompoziting unumdorligi

Kompoziting unumdorligi — mobil ilovalarda tez-tez uchraydigan tor joy, ayniqsa murakkab animatsiyalar va ko'plab yarim shaffof qatlamlarni qoplashda. Har bir qo'shimcha qatlam xotirada piksellarni o'qish, aralashtirish va yozishni talab qiladi.

Unumdorlikka ta'sir qiluvchi omillar

  • Qatlamlar soni — har bir qatlam alohida blending o'tishini talab qiladi. Qatlamlar sonini kamaytirish kompozitingni chiziqli tezlashtiradi.
  • Qatlamlar rezolyutsiyasi — yuqori rezolyutsiyali qatlamlar ishlangan piksellar sonini oshiradi. Offscreen buferlarining minimal mumkin bo'lgan hajmidan foydalaning.
  • Shaffoflik va overdraw — yarim shaffof qatlamlar ostidagi piksellarni o'qishni talab qiladi, bu esa tarmoqli kengligini oshiradi.
  • CPU kompoziting — agar kompoziting CPUda bajarilsa (software rendering), unumdorlik keskin tushadi. GPU-kompoziting har doim afzal.

GPU Compositing vs CPU Compositing

Zamonaviy mobil qurilmalar kompozitingni ixtisoslashgan blending bloklari orqali GPUda bajaradi. GPU-kompoziting piksellarni tez aralashtirish uchun parallel ROP bloklari va tekstura filtrlardan foydalanadi. CPU-kompoziting faqat kam hollarda (eski qurilmalar, sinov) qo'llaniladi.

Kompozitingni optimallashtirish

Kompozitingni optimallashtirish — mobil interfeyslarni ishlab chiqishdagi asosiy vazifalardan biri. UI silliqligi (60 FPS) bevosita qatlamlarni birlashtirish samaradorligiga bog'liq.

Asosiy optimallashtirish usullari

  • Qatlamlarni minimallashtirish — statik qatlamlarni oldindan render orqali bitta qatlamda birlashtirish (layer flattening).
  • Opaque layers — shaffof bo'lmagan qatlamlar alpha blendingni talab qilmaydi, bu kompozitingni sezilarli darajada tezlashtiradi.
  • Incremental compositing — butun sahnani emas, faqat o'zgargan qatlamlarni qayta chizish (Core Animation tomonidan qo'llaniladi).
  • Hardware Composer — GPU ishtirokisiz apparat kompoziting uchun HWC dan foydalanish.

Profilash vositalari

Kompoziting unumdorligini tahlil qilish uchun foydalaning: Core Animation Profiler (Xcode Instruments) — qatlamlar soni va kompoziting chastotasini ko'rsatadi; GPU Debugger (Android Studio) — GPU yuklanishi va overdraw-ni ko'rsatadi; Overdraw Visualisation — piksellarning ko'p marta qayta chizilgan joylarini ko'rsatadigan disk raskadrovka vositasi.

Tez-tez beriladigan savollar

Oddiy so'zlar bilan kompoziting nima?

Kompoziting — bir nechta shaffof plyonkalarni rasmlar bilan bitta rasmga yopishtirishga o'xshaydi. Har bir plyonka bir qatlam (tugma, fon, matn), shaffoflik esa qatlamlarning bir-biridan qanday ko'rinishini belgilaydi.

Rendering va kompoziting o'rtasidagi farq nima?

Rendering — har bir qatlam mazmunini yaratish (tugmani chizish, 3D modeling teksturalanishi). Kompoziting — tayyor qatlamlarni shaffoflik va qoplash tartibini hisobga olgan holda yakuniy tasvirda birlashtirish.

Kompoziting iOS unumdorligiga qanday ta'sir qiladi?

Core Animation qatlamlarni Metal orqali GPUda kompozit qiladi. Muammolar ko'p sonli yarim shaffof qatlamlar (overdraw) yoki CPU-kompoziting (off-screen rendering) bilan boshlanadi. Diagnostika uchun Core Animation Profilerdan foydalaning.

Androidda Hardware Composer nima?

Hardware Composer (HWC) — GPU-ni yuklamasdan kompozitingni amalga oshiradigan displey kontrollerining apparat moduli. HWC 4-8 qatlamgacha apparat orqali birlashtira oladi, bu energiya sarfini kamaytiradi va GPU-ni boshqa vazifalar uchun bo'shatadi.

Kompoziting yukini qanday kamaytirish mumkin?

Statik qatlamlarni birlashtiring (layer flattening), imkon qadar shaffof bo'lmagan ranglardan foydalaning, offscreen buferlari hajmini kamaytiring va butun sahnani qayta kompozit qilishga sabab bo'ladigan keraksiz animatsiyalardan saqlaning.

Xulosa

  • Compositing — barcha vizual qatlamlarni ekranning yakuniy tasvirida birlashtirishning so'nggi bosqichi.
  • Alpha blending — shaffoflikni hisobga olgan holda ranglarni aralashtirishning asosiy algoritmi (RGBA).
  • Premultiplied alpha — keraksiz ko'paytirishlarni bartaraf etuvchi GPU-kompoziting uchun standart format.
  • Core Animation (iOS) va SurfaceFlinger (Android) — mobil OT kompoziting tizimlari.
  • Yarim shaffof qatlamlar soni — kompoziting unumdorligiga ta'sir qiluvchi asosiy omil.
  • Hardware Composer — GPU holda kompoziting uchun Android apparat bloki.
  • Optimallashtirish layer flattening, shaffof bo'lmagan qatlamlardan foydalanish va inkremental kompozitingni o'z ichiga oladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing