Rasterizasiya — bu nədir, mərhələləri və iş prinsipi

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

Rasterizasiya — üçölçülü primitivlərin (üçbucaqlar, xətlər, nöqtələr) vektor təsvirinin ekranda göstərilmək üçün piksel (fraqment) dəstinə çevrilməsi prosesidir. Khronos Group, 2025 məlumatlarına görə, rasterizasiya Vertex Shader və Fragment Shader arasında yerləşən qrafik konveyerinin avtomatik (proqramlaşdırılmayan) mərhələsidir. Rasterizasiya ekranın hansı piksellərinin hansı üçbucağa aid olduğunu müəyyən edir və hər bir fraqment üçün interpolyasiya edilmiş atributları hesablayır.

Əsas məqamlar

  • Rasterizasiya — vektor primitivlərinin raster təsvirə (piksellərə) çevrilməsi.
  • Scanline conversion — üçbucağın piksel örtüyünü təyin edən əsas alqoritm.
  • Atributların interpolyasiyası — hər fraqment üçün rəng, tekstur koordinatları və normalların hesablanması.
  • MSAA — rasterizasiyada pilləli kənarları (aliasing) hamarlaşdıran multisampling.
  • Performans rasterizasiya üçbucaqların sayından və ekran həllindən asılıdır.

Rasterizasiya nədir?

Rasterizasiya — qrafik konveyerinin həndəsi primitivləri (üçbucaqlar, xətlər) Fragment Shader tərəfindən sonrakı emal üçün fraqment dəstinə çevirən mərhələsidir. Giriş məlumatları — üçbucağın ekran koordinatlarında təpə nöqtələri və onların atributları (rəng, normallar, UV). Çıxış — interpolyasiya edilmiş atributlarla fraqment dəsti.

Proqramlaşdırıla bilən şeyderlərdən (Vertex və Fragment Shader) fərqli olaraq, rasterizasiya sabit (proqramlaşdırılmayan) mərhələdir. Tərtibatçı rasterizasiya alqoritmini dəyişə bilməz, ancaq onun parametrlərini idarə edə bilər: kəsmə rejimi (culling), xətt eni, dərinlik yerdəyişməsi (polygon offset) və multisampling.

Real-time qrafikada rasterizasiyanın rolu

Praktiki olaraq bütün müasir real-time qrafika — oyunlar, UI, AR/VR — rasterizasiyadan istifadə edir. Bu, 60 FPS-də kadr başına milyonlarla üçbucağı emal edə bilən ən məhsuldar renderinq üsuludur. GPU rasterizatorları ixtisaslaşdırılmış ROP (Render Output Units) blokları vasitəsilə eyni anda minlərlə üçbucağın paralel emalı üçün optimallaşdırılıb.

Rasterizasiya necə işləyir?

Üçbucağın rasterizasiyası Vertex Shader təpə nöqtələrini ekran koordinatlarına çevirdikdən sonra başlayır. GPU üçbucağın üç təpəsini götürür və ekranın hansı piksellərinin bu üçbucağın daxilində olduğunu müəyyən edir.

Üçbucağın rasterizasiya mərhələləri

Proses üç ardıcıl addımı əhatə edir: üçbucağın pikseldə bounding box təyini — bounding box daxilində hər pikselin üçbucağa aidliyinin yoxlanılması (edge function) — hər örtülü piksel üçün interpolyasiya edilmiş atributların (barysentrik koordinatlar) hesablanması. Edge function — nöqtənin üçbucağın kənarının hansı tərəfində olduğunu təyin edən xətti tənlikdir.

MərhələTəsvirNəticə
ClippingViewport sərhədlərindən kənar üçbucaqların kəsilməsiGörünən primitivlər
Viewport transformEkran koordinatlarına çevrilməPiksel koordinatları
Triangle setupEdge-funksiyaların və bounding box hesablanmasıRasterizasiya parametrləri
Fragment generationÖrtünün yoxlanılması və interpolyasiyaFraqmentlər + atributlar

Rasterizasiya alqoritmləri

Rasterizasiya müxtəlif alqoritmlərlə həyata keçirilə bilər, hər birinin performans və keyfiyyət arasında öz kompromisləri var. Müasir GPU-lar bir neçə yanaşmanın kombinasiyasından istifadə edir.

Scanline alqoritmi

Erkən GPU-lar üçün hazırlanmış klassik rasterizasiya alqoritmi. Üçbucaq sətir-sətir (scanline) emal olunur: ekranın hər sətri üçün üçbucağın giriş və çıxış nöqtələri müəyyən edilir və aralarındakı bütün piksellər doldurulur. Scanline conversion böyük üçbucaqlar üçün səmərəlidir, lakin ixtiyari formalı üçbucaqlar üçün mürəkkəb məntiq tələb edir.

Half-space (edge function) metodu

Müasir GPU-lar half-space rasterizasiya metodundan istifadə edir: üçbucağın hər tərəfi üçün edge function — bir tərəfdən müsbət, digər tərəfdən mənfi olan xətti tənlik hesablanır. Piksel üçbucağa aiddir, əgər hər üç edge functions müsbətdirsə. Half-space rasterizasiyası asanlıqla paralelləşir və GPU-nun SIMD arxitekturalarına yaxşı uyğun gəlir.

Tile-Based rasterizasiya (TBR)

Mobil GPU-lar (Qualcomm Adreno, ARM Mali) Tile-Based Rendering (TBR) istifadə edir. Ekran kiçik tayllara (16x16 və ya 32x32 piksel) bölünür və rasterizasiya hər tayl üçün ayrıca yerinə yetirilir. Bu, kadr buferini sürətli lokal yaddaşda (tile memory) saxlamaq hesabına video yaddaşa müraciətlərin sayını minimuma endirir. TBR enerji istehlakını azaldır ki, bu da mobil cihazlar üçün kritikdir.

Rasterizasiya vs Ray Tracing

Rasterizasiya və ray tracing — 3D qrafikanın renderinqinə iki prinsipial fərqli yanaşmadır. Rasterizasiya real-time tətbiqlərdə üstünlük təşkil edir, ray tracing — oflayn renderinqdə və tədricən real-time sahəyə (RTX uyğun GPU-larda) nüfuz edir.

ParametrRasterizasiyaRay Tracing
PrinsipÜçbucaq → fraqmentlərŞüa → səhnə ilə kəsişmə
SürətÇox sürətli (milyonlarla üçbucaq/kadr)Yavaş (minlərlə şüa/kadr)
KeyfiyyətƏlavə texnikalar tələb edir (kölgələr, əkslər)Fiziki cəhətdən düzgün kölgələr və əkslər
Mobil GPU-larStandart üsulMəhdud dəstək (A17 Pro, Snapdragon Gen 3)
Enerji istehlakıAşağıYüksək

MSAA və rasterizasiyada hamarlaşdırma

Rasterizasiyada aliasing problemi yaranır — üçbucaqların sərhədlərində pilləli kənarlar (jaggies). Bu, pikselin diskret olması və üçbucaq tərəfindən qismən örtülə bilməməsi səbəbindən baş verir. Aliasing ilə mübarizə üçün multisampling (MSAA) tətbiq olunur.

MSAA necə işləyir

MSAA (Multisample Anti-Aliasing) rasterizasiyanı artırılmış seçmə tezliyi ilə (2x, 4x, 8x) yerinə yetirir. Piksel başına bir nümunə əvəzinə bir neçə sub-nümunə istifadə olunur, hər biri üçbucaqla örtülmə baxımından yoxlanılır. MSAA 4x piksel başına 4 sub-nümunə emal edir ki, bu da renderinq həllini tam artırmadan kənarların nəzərəçarpacaq dərəcədə hamarlaşmasını təmin edir.

FXAA və digər post-proses üsulları

MSAA-dan fərqli olaraq, post-proses hamarlaşdırma üsulları (FXAA, SMAA, TAA) rasterizasiyadan sonra işləyir, yekun təsviri təhlil edir. FXAA (Fast Approximate Anti-Aliasing) təsvirin kənarlarını müəyyən edir və hamarlaşdırmaq üçün bulanıqlıq tətbiq edir, MSAA-dan əhəmiyyətli dərəcədə sürətli işləyir, lakin daha az keyfiyyətli nəticə ilə.

GPU-da rasterizasiya və optimallaşdırma

Müasir GPU-larda rasterizasiya ixtisaslaşdırılmış aparat blokları — ROP (Render Output Units) tərəfindən yerinə yetirilir. ROP-ların sayı birbaşa doldurma sürətinə (fill rate) — GPU-nun saniyədə emal edə biləcəyi piksellərin sayına təsir edir.

Rasterizasiya performansının amilləri

  • Triangle count — kadr başına üçbucaqların sayı. Hər üçbucaq setup və kənar testi üçün əlavə yük tələb edir.
  • Fill rate — ROP blokları tərəfindən saniyədə emal edilən piksellərin sayı. GPU-nun takt tezliyindən və ROP sayından asılıdır.
  • Overdraw — üçbucaqların üst-üstə düşməsi səbəbindən bir pikselin təkrar rasterizasiyası. Obyektlərin dərinliyə görə çeşidlənməsi ilə optimallaşdırılır.

Mobil GPU-lar üçün rasterizasiyanın optimallaşdırılması

Mobil GPU-lar (Tile-Based Rendering) üçün kritik əhəmiyyət kəsb edir: erkən imtina (early-Z) vasitəsilə overdraw minimumlaşdırılması, görünməyən üçbucaqları silmək üçün back-face culling istifadəsi və digər obyektlər tərəfindən tamamilə örtülmüş üçbucaqların atılması üçün gizli səth silmə (occlusion culling).

Tez-tez verilən suallar

Rasterizasiya sadə sözlərlə nədir?

Rasterizasiya — üçbucaqların ekranda piksellərə çevrilməsi prosesidir. GPU üçölçülü üçbucağı götürür, ekranın hansı piksellərini örtdüyünü müəyyən edir və onları rəngləmək üçün Fragment Shader-ə ötürür.

Rasterizasiya ray tracing-dən nə ilə fərqlənir?

Rasterizasiya üçbucaqları ekrana proyeksiya edir və piksel örtüyünü təyin edir (çox sürətli). Ray tracing kameradan şüalar göndərir və həndəsə ilə kəsişməni yoxlayır (fiziki cəhətdən daha dəqiq, lakin əhəmiyyətli dərəcədə yavaş).

Rasterizasiyada hamarlaşdırma (anti-aliasing) niyə lazımdır?

Rasterizasiyada piksel ya tamamilə üçbucağa aiddir, ya da yox — buna görə pilləli kənarlar (aliasing) yaranır. MSAA kənarları piksel başına çoxsaylı sub-nümunələr hesabına hamarlaşdırır, FXAA isə hazır təsvirə filtr tətbiq edir.

Rasterizasiya mərhələsini proqramlaşdırmaq mümkündürmü?

Xeyr, rasterizasiya qrafik konveyerinin sabit mərhələsidir. Tərtibatçı alqoritmi dəyişə bilməz, ancaq parametrləri idarə edə bilər: culling, polygon offset, rasterizasiya rejimi (nöqtələr, xətlər, üçbucaqlar) və MSAA parametrləri.

Niyə mobil GPU-lar Tile-Based Rendering istifadə edir?

Tile-Based Rendering (TBR) ekranı tayllara bölür və onları qlobal VRAM-da deyil, sürətli lokal yaddaşda emal edir. Bu, enerji istehlakını və bant genişliyini kəskin şəkildə azaldır ki, bu da batareya ilə işləyən mobil cihazlar üçün kritikdir.

Xülasə

  • Rasterizasiya — vektor üçbucaqlarının ekranda göstərilmək üçün raster fraqmentlərə çevrilməsi.
  • Half-space metodu — müasir GPU-larda əsas rasterizasiya alqoritmi.
  • Tile-Based Rendering — mobil GPU-larda (Adreno, Mali) istifadə olunan rasterizasiya arxitekturası.
  • Aliasing — MSAA, FXAA və ya TAA ilə həll edilən pilləli kənar problemi.
  • Fill rate — ROP bloklarının sayından asılı olan rasterizasiya performansının əsas parametri.
  • Overdraw — early-Z və occlusion culling vasitəsilə optimallaşdırılan piksellərin təkrar rasterizasiyası.
  • Ray Tracing — performans hesabına fiziki cəhətdən düzgün renderinqi təmin edən alternativ üsul.

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