Растеризација — шта је то, фазе и принцип рада

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

Растеризација — то је процес претварања векторског описа тродимензионалних примитива (троуглова, линија, тачака) у скуп пиксела (фрагмената) за приказ на екрану. Према подацима Khronos Group, 2025, растеризација је аутоматска (непрограмабилна) фаза графичког конвејера, која се налази између Vertex Shader-а и Fragment Shader-а. Растеризација одређује који пиксели екрана припадају којем троуглу и израчунава интерполисане атрибуте за сваки фрагмент.

Главно

  • Растеризација — претварање векторских примитива у растерску слику (пикселе).
  • Scanline conversion — основни алгоритам који одређује покривеност пиксела троуглом.
  • Интерполација атрибута — израчунавање боје, текстурних координата и нормала за сваки фрагмент.
  • MSAA — мултисемплинг који заглађује назубљене ивице (aliasing) при растеризацији.
  • Перформансе растеризације зависе од броја троуглова и резолуције екрана.

Шта је растеризација?

Растеризација — је фаза графичког конвејера која претвара геометријске примитиве (троуглове, линије) у скуп фрагмената за даљу обраду од стране Fragment Shader-а. Улазни подаци — врхови троугла у екранским координатама и њихови атрибути (боја, нормале, UV). Излаз — скуп фрагмената са интерполисаним атрибутима.

За разлику од програмабилних шејдера (Vertex и Fragment Shader), растеризација је фиксна (непрограмабилна) фаза. Програмер не може да промени алгоритам растеризације, али може да управља његовим параметрима: режимом одсецања (culling), ширином линије, померањем дубине (polygon offset) и мултисемплингом.

Улога растеризације у real-time графици

Практично цела модерна real-time графика — игре, UI, AR/VR — користи растеризацију. Ово је најперформантнији метод рендеровања, способан да обради милионе троуглова по кадру при 60 FPS. GPU растеризатори су оптимизовани за паралелну обраду хиљада троуглова истовремено кроз специјализоване блокове ROP (Render Output Units).

Како ради растеризација?

Растеризација троугла почиње након што је Vertex Shader претворио врхове у екранске координате. GPU узима три врха троугла и одређује који пиксели екрана се налазе унутар овог троугла.

Фазе растеризације троугла

Процес укључује три узастопна корака: одређивање bounding box троугла у пикселима — провера сваког пиксела унутар bounding box-а на припадност троуглу (edge function) — израчунавање интерполисаних атрибута (барицентричне координате) за сваки покривени пиксел. Edge function — линеарна једначина која одређује са које стране ивице троугла се налази тачка.

ФазаОписРезултат
ClippingОдсецање троуглова изван граница viewport-аВидљиви примитиви
Viewport transformТрансформација у екранске координатеПикселске координате
Triangle setupИзрачунавање edge-функција и bounding box-аПараметри растеризације
Fragment generationПровера покривености и интерполацијаФрагменти + атрибути

Алгоритми растеризације

Растеризација може бити реализована различитим алгоритмима, од којих сваки има сопствене компромисе између перформанси и квалитета. Савремени GPU-и користе комбинацију неколико приступа.

Scanline алгоритам

Класични алгоритам растеризације, развијен за ране GPU-е. Троугао се обрађује ред по ред (scanline): за сваки ред екрана одређују се тачке уласка и изласка троугла, а сви пиксели између њих се попуњавају. Scanline conversion је ефикасан за велике троуглове, али захтева сложену логику за троуглове произвољног облика.

Half-space (edge function) метод

Савремени GPU-и користе метод half-space растеризације: за сваку страницу троугла израчунава се edge function — линеарна једначина, позитивна са једне стране и негативна са друге. Пиксел припада троуглу ако су све три edge functions позитивне. Half-space растеризација се лако паралелизује и добро одговара SIMD архитектурама GPU-а.

Tile-Based растеризација (TBR)

Мобилни GPU-и (Qualcomm Adreno, ARM Mali) користе Tile-Based Rendering (TBR). Екран се дели на мале тајлове (16×16 или 32×32 пиксела), а растеризација се извршава за сваки тајл посебно. Ово минимизира број приступа видео меморији захваљујући чувању кадровског бафера у брзој локалној меморији (tile memory). TBR смањује потрошњу енергије, што је критично за мобилне уређаје.

Растеризација vs Ray Tracing

Растеризација и ray tracing — два принципијелно различита приступа рендеровању 3D графике. Растеризација доминира у real-time апликацијама, ray tracing — у офлајн рендеровању и постепено продире у real-time (на RTX-компатибилним GPU-има).

ПараметарРастеризацијаRay Tracing
ПринципТроугао → фрагментиЗрак → пресек са сценом
БрзинаВеома брз (милиони троуглова/кадар)Спор (хиљаде зракова/кадар)
КвалитетЗахтева додатне технике (сенке, рефлексије)Физички коректне сенке и рефлексије
Мобилни GPU-иСтандардни методОграничена подршка (A17 Pro, Snapdragon Gen 3)
Потрошња енергијеНискаВисока

MSAA и заглађивање при растеризацији

При растеризацији настаје проблем aliasing-а — назубљене ивице (jaggies) на границама троуглова. Ово се дешава зато што је пиксел дискретан и не може делимично бити покривен троуглом. За борбу против aliasing-а користи се мултисемплинг (MSAA).

Како ради MSAA

MSAA (Multisample Anti-Aliasing) врши растеризацију са повећаном учестаношћу семпловања (2x, 4x, 8x). Уместо једног семпла по пикселу, користи се више под-семплова, од којих се сваки проверава на покривеност троуглом. MSAA 4x обрађује 4 под-семпла по пикселу, што даје приметно заглађивање ивица без потпуног повећања резолуције рендеровања.

FXAA и друге пост-процес методе

За разлику од MSAA, методе пост-процес заглађивања (FXAA, SMAA, TAA) раде након растеризације, анализирајући финалну слику. FXAA (Fast Approximate Anti-Aliasing) одређује ивице слике и примењује замућење за заглађивање, радећи знатно брже од MSAA, али са мање квалитетним резултатом.

Растеризација на GPU-у и оптимизација

Растеризација на савременим GPU-има се извршава специјализованим хардверским блоковима — ROP (Render Output Units). Број ROP-ова директно утиче на брзину попуњавања (fill rate) — број пиксела које GPU може да обради у секунди.

Фактори перформанси растеризације

  • Triangle count — број троуглова по кадру. Сваки троугао захтева overhead за setup и тестирање ивица.
  • Fill rate — број пиксела које ROP блокови обрађују у секунди. Зависи од тактне фреквенције GPU-а и броја ROP-ова.
  • Overdraw — поновна растеризација истог пиксела због преклапања троуглова. Оптимизује се сортирањем објеката по дубини.

Оптимизација растеризације за мобилне GPU-е

За мобилне GPU-е (Tile-Based Rendering) критично су важни: минимизација overdraw-а кроз рано одбацивање (early-Z), коришћење back-face culling-а за уклањање невидљивих троуглова и скривено уклањање површина (occlusion culling) за одбацивање троуглова потпуно покривеним другим објектима.

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

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

Растеризација је процес претварања троуглова у пикселе на екрану. GPU узима тродимензионални троугао, одређује које пикселе екрана покрива и прослеђује их Fragment Shader-у за бојење.

По чему се растеризација разликује од ray tracing-а?

Растеризација пројектује троуглове на екран и одређује покривеност пиксела (веома брзо). Ray tracing шаље зраке од камере и проверава пресек са геометријом (физички прецизније, али знатно спорије).

Зашто је потребно заглађивање (anti-aliasing) при растеризацији?

При растеризацији пиксел или у потпуности припада троуглу или не — одатле назубљене ивице (aliasing). MSAA заглађује ивице помоћу вишеструких под-семплова по пикселу, а FXAA примењује филтер на готову слику.

Може ли се програмирати фаза растеризације?

Не, растеризација је фиксна фаза графичког конвејера. Програмер не може да промени алгоритам, али може да управља подешавањима: culling, polygon offset, режим растеризације (тачке, линије, троуглови) и параметри MSAA.

Зашто мобилни GPU-и користе Tile-Based Rendering?

Tile-Based Rendering (TBR) дели екран на тајлове и обрађује их у брзој локалној меморији, а не у глобалној VRAM-и. Ово драстично смањује потрошњу енергије и проток података, што је критично за мобилне уређаје са батеријским напајањем.

Резиме

  • Растеризација — претварање векторских троуглова у растерске фрагменте за приказ на екрану.
  • Half-space метод — главни алгоритам растеризације у савременим GPU-има.
  • Tile-Based Rendering — архитектура растеризације која се користи у мобилним GPU-има (Adreno, Mali).
  • Aliasing — проблем назубљених ивица, решаван кроз MSAA, FXAA или TAA.
  • Fill rate — кључни параметар перформанси растеризације, зависан од броја ROP блокова.
  • Overdraw — поновна растеризација пиксела, оптимизована кроз early-Z и occlusion culling.
  • Ray Tracing — алтернативни метод који обезбеђује физички коректан рендеринг по цену перформанси.

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

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

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

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