Compositing: шта је то, слојеви и принцип рада

Аутор: IT Sectr Објављено: 2026-06-12 Време читања: 10 мин

Compositing — то је процес обједињавања више визуелних слојева у једну коначну слику. Према Apple Core Animation Documentation, 2025, у мобилном развоју композитинг се користи за наношење UI слојева, обједињавање 3D рендера са интерфејсом и креирање анимација. Compositing управља редоследом цртања, провидношћу и мешањем боја између слојева.

Главно

  • Compositing — обједињавање појединачних визуелних слојева у финалну слику.
  • Alpha blending — основни алгоритам мешања који узима у обзир провидност слојева.
  • GPU compositing — извршава се на GPU-у кроз blending операције ROP блокова.
  • Core Animation (iOS) и HWUI (Android) — системи композитинга у мобилним ОС.
  • Оптимизација композитинга је критична за глаткоћу UI-ја и анимација при 60 FPS.

Шта је композитинг?

Compositing — то је финална фаза графичког конвејера, на којој се сви одвојено рендеровани слојеви (3D сцене, UI елементи, видео, системски интерфејс) обједињују у једну слику за приказ на екрану. Сваки слој може имати своју боју, провидност (alpha), позицију и редослед наношења.

У контексту мобилног развоја, композитинг је важан за кориснички интерфејс: прозори, дугмад, текст, иконе — сви ови елементи се композитирају у јединствену сцену. Систем композитинга управља редоследом цртања (z-order), коректним наношењем полупровидних елемената и анимацијом прелаза између UI стања.

Композитинг у графичком конвејеру

У графичком конвејеру, композитинг се дешава након завршетка свих шейдерских пролаза и растеризације. GPU узима готове слојеве из framebuffer-а, примењује blending операције и уписује резултат у главни кадровски бафер (front buffer) за слање на дисплеј.

Како ради композитинг?

Compositing користи мешање пиксел по пиксел (blending) боја из различитих слојева. Сваки пиксел излазне слике се израчунава на основу боја пиксела из нанесених слојева узимајући у обзир провидност (alpha канал) и изабрани режим мешања.

Alpha канал и провидност

Сваки слој садржи alpha канал (четврту компоненту RGBA боје) који одређује његову непровидност. Alpha = 1.0 — потпуно непровидан, alpha = 0.0 — потпуно провидан. Alpha blending израчунава боју пиксела као пондерисани збир боја предњег (source) и задњег (destination) слоја: result = source * alpha + dest * (1 - alpha).

Редослед цртања (Сликарев алгоритам)

Композитинг се извршава по редоследу од најудаљенијег слоја до најближег (back-to-front). Прво се рендерује позадински слој, затим се сваки следећи слој наноси на претходни узимајући у обзир његову провидност. Z-order одређује који слој је изнад и прекриваће слојеве испод.

Алгоритми композитинга

Compositing подржава различите режиме мешања (blend modes) који одређују како се боје слојева комбинују. Сваки режим даје другачији визуелни ефекат и има своје рачунске захтеве.

РежимФормулаПримена
Normal (Alpha)src * a + dst * (1 - a)Стандардно наношење са провидношћу
Additivesrc + dstЕфекти сјаја, честице
Multiplysrc * dstПоттамњивање, сенке
Screen1 - (1 - src) * (1 - dst)Осветљавање, одсјаји
Premultiplied Alpha(src.rgb * a) + dst * (1 - a)Ефикасан (без множења у лету)

Premultiplied Alpha

У режиму premultiplied alpha, канали боја се чувају већ помножени са alpha каналом (RGB × A). Ово елиминише потребу за множењем при свакој blending операцији, убрзавајући композитинг. Premultiplied alpha — стандардни формат за GPU композитинг у iOS Core Animation и Android HWUI.

Композитинг у мобилним ОС

Сваки мобилни оперативни систем има сопствени систем композитинга, оптимизован за своју хардверску платформу. Compositing у мобилним ОС је одговоран за рендеровање целог корисничког интерфејса.

iOS: Core Animation + Metal

У iOS-у, композитингом управља Core Animation — високо-нивоски систем који ради на Metal-у или OpenGL ES-у. Core Animation креира layer tree (стабло слојева) које се затим композитира у финалну слику. Core Animation аутоматски одређује који слојеви су се променили и прецртава само њих (incremental compositing), што минимизира оптерећење GPU-а.

Android: SurfaceFlinger + HWUI

У Android-у, композитинг извршава SurfaceFlinger — системски сервис који обједињује површине (surfaces) из различитих апликација и системског интерфејса. SurfaceFlinger користи HWC (Hardware Composer) за пренос дела посла композитинга на наменски хардвер контролера дисплеја.

Перформансе композитинга

Перформансе композитинга — често уско грло у мобилним апликацијама, посебно код сложених анимација и наношења више полупровидних слојева. Сваки додатни слој захтева читање, мешање и упис пиксела у меморију.

Фактори који утичу на перформансе

  • Број слојева — сваки слој захтева посебан blending пролаз. Смањење броја слојева линеарно убрзава композитинг.
  • Резолуција слојева — слојеви високе резолуције повећавају број обрађених пиксела. Користите минималну могућу величину offscreen бафера.
  • Провидност и overdraw — полупровидни слојеви захтевају читање пиксела испод, што повећава пропусни опсег.
  • CPU композитинг — ако се композитинг извршава на CPU-у (software rendering), перформансе нагло падају. GPU композитинг је увек пожељнији.

GPU Compositing vs CPU Compositing

Савремени мобилни уређаји извршавају композитинг на GPU-у кроз специјализоване blending блокове. GPU композитинг користи паралелне ROP блокове и текстурне филтере за брзо мешање пиксела. CPU композитинг се користи само у ретким случајевима (стари уређаји, тестирање).

Оптимизација композитинга

Оптимизација композитинга — један од кључних задатака при развоју мобилних интерфејса. Глаткоћа UI-ја (60 FPS) директно зависи од ефикасности обједињавања слојева.

Основни методи оптимизације

  • Минимизација слојева — обједињавање статичких слојева у један (layer flattening) кроз претходно рендеровање.
  • Opaque layers — непрозирни слојеви не захтевају alpha blending, што значајно убрзава композитинг.
  • Incremental compositing — прецртавање само измењених слојева, а не целе сцене (користи га Core Animation).
  • Hardware Composer — коришћење HWC за хардверски композитинг без учешћа GPU-а.

Алати за профилисање

За анализу перформанси композитинга користите: Core Animation Profiler (Xcode Instruments) — приказује број слојева и учесталост композитинга; GPU Debugger (Android Studio) — приказује GPU оптерећење и overdraw; Overdraw Visualisation — алат за отклањање грешака који приказује области вишеструког прецртавања пиксела.

Често постављана питања

Шта је композитинг једноставним речима?

Compositing — то је као лепљење неколико провидних фолија са цртежима у једну слику. Свака фолија је слој (дугме, позадина, текст), а провидност одређује како слојеви провирују један кроз други.

Која је разлика између рендеровања и композитинга?

Рендеровање — креирање садржаја сваког слоја (цртање дугмета, текстурисање 3D модела). Композитинг — обједињавање готових слојева у финалну слику узимајући у обзир провидност и редослед наношења.

Како композитинг утиче на перформансе iOS-а?

Core Animation композитира слојеве на GPU-у преко Metal-а. Проблеми почињу при великом броју полупровидних слојева (overdraw) или при CPU композитингу (off-screen rendering). Користите Core Animation Profiler за дијагностику.

Шта је Hardware Composer у Android-у?

Hardware Composer (HWC) — хардверски модул контролера дисплеја који обавља композитинг без оптерећења GPU-а. HWC може да обједини до 4-8 слојева хардверски, што смањује потрошњу енергије и ослобађа GPU за друге задатке.

Како смањити оптерећење композитинга?

Обједињујте статичке слојеве (layer flattening), користите непрозирне боје где је могуће, смањите величину offscreen бафера и избегавајте непотребне анимације које изазивају поновни композитинг целе сцене.

Резиме

  • Compositing — финална фаза обједињавања свих визуелних слојева у коначну слику екрана.
  • Alpha blending — основни алгоритам мешања боја узимајући у обзир провидност (RGBA).
  • Premultiplied alpha — стандардни формат GPU композитинга који елиминише непотребна множења.
  • Core Animation (iOS) и SurfaceFlinger (Android) — системи композитинга мобилних оперативних система.
  • Број полупровидних слојева — главни фактор који утиче на перформансе композитинга.
  • Hardware Composer — хардверски блок Android-а за композитинг без GPU-а.
  • Оптимизација укључује layer flattening, коришћење непрозирних слојева и инкрементални композитинг.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође