Rasterizatsiya — bu nima, bosqichlari va ishlash prinsipi

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

Rasterizatsiya — bu uch o'lchamli primitivlarning (uchburchaklar, chiziqlar, nuqtalar) vektor tavsifini ekranda ko'rsatish uchun piksellar (fragmentlar) to'plamiga aylantirish jarayonidir. Khronos Group, 2025 ma'lumotlariga ko'ra, rasterizatsiya Vertex Shader va Fragment Shader o'rtasida joylashgan grafik konveyerining avtomatik (dasturlashtirilmaydigan) bosqichidir. Rasterizatsiya ekranning qaysi piksellari qaysi uchburchakka tegishli ekanligini aniqlaydi va har bir fragment uchun interpolyatsiya qilingan atributlarni hisoblaydi.

Asosiy ma'lumotlar

  • Rasterizatsiya — vektor primitivlarini rastr tasvirga (piksellarga) aylantirish.
  • Scanline conversion — uchburchakning piksel qoplanishini aniqlaydigan asosiy algoritm.
  • Atributlarni interpolyatsiya qilish — har bir fragment uchun rang, tekstura koordinatalari va normallarni hisoblash.
  • MSAA — rasterizatsiyada pog'onali qirralarni (aliasing) tekislaydigan multisampling.
  • Unumdorlik rasterizatsiya uchburchaklar soni va ekran ruxsatiga bog'liq.

Rasterizatsiya nima?

Rasterizatsiya — bu grafik konveyerining geometrik primitivlarni (uchburchaklar, chiziqlar) Fragment Shader tomonidan keyingi qayta ishlash uchun fragmentlar to'plamiga aylantiruvchi bosqichidir. Kirish ma'lumotlari — uchburchakning ekran koordinatalaridagi uchlari va ularning atributlari (rang, normallar, UV). Chiqish — interpolyatsiya qilingan atributlarga ega fragmentlar to'plami.

Dasturlashtiriladigan shaderlardan (Vertex va Fragment Shader) farqli o'laroq, rasterizatsiya qat'iy (dasturlashtirilmaydigan) bosqichdir. Dasturchi rasterizatsiya algoritmini o'zgartira olmaydi, lekin uning parametrlarini boshqarishi mumkin: kesish rejimi (culling), chiziq kengligi, chuqurlik siljishi (polygon offset) va multisampling.

Real-time grafikada rasterizatsiyaning roli

Deyarli barcha zamonaviy real-time grafika — o'yinlar, UI, AR/VR — rasterizatsiyadan foydalanadi. Bu 60 FPS da kadr boshiga millionlab uchburchaklarni qayta ishlashga qodir eng samarali renderlash usulidir. GPU rasterizatorlari ixtisoslashgan ROP (Render Output Units) bloklari orqali bir vaqtning o'zida minglab uchburchaklarni parallel qayta ishlash uchun optimallashtirilgan.

Rasterizatsiya qanday ishlaydi?

Uchburchakning rasterizatsiyasi Vertex Shader uchlarini ekran koordinatalariga o'zgartirgandan so'ng boshlanadi. GPU uchburchakning uchta uchini oladi va ekranning qaysi piksellari ushbu uchburchak ichida ekanligini aniqlaydi.

Uchburchakni rasterizatsiya qilish bosqichlari

Jarayon uchta ketma-ket qadamni o'z ichiga oladi: uchburchakning piksellarda bounding boxini aniqlash — bounding box ichidagi har bir pikselning uchburchakka tegishliligini tekshirish (edge function) — har bir qoplangan piksel uchun interpolyatsiya qilingan atributlarni (barysentrik koordinatalar) hisoblash. Edge function — nuqta uchburchak chetining qaysi tomonida ekanligini aniqlaydigan chiziqli tenglama.

BosqichTavsifNatija
ClippingViewport chegaralaridan tashqaridagi uchburchaklarni kesishKo'rinadigan primitivlar
Viewport transformEkran koordinatalariga o'zgartirishPiksel koordinatalari
Triangle setupEdge-funksiyalar va bounding boxni hisoblashRasterizatsiya parametrlari
Fragment generationQoplashni tekshirish va interpolyatsiyaFragmentlar + atributlar

Rasterizatsiya algoritmlari

Rasterizatsiya turli xil algoritmlar bilan amalga oshirilishi mumkin, ularning har biri unumdorlik va sifat o'rtasida o'z murosasiga ega. Zamonaviy GPUlar bir nechta yondashuvlarning kombinatsiyasidan foydalanadi.

Scanline algoritmi

Dastlabki GPUlar uchun ishlab chiqilgan klassik rasterizatsiya algoritmi. Uchburchak satrma-satr (scanline) qayta ishlanadi: ekranning har bir satri uchun uchburchakning kirish va chiqish nuqtalari aniqlanadi va ular orasidagi barcha piksellar to'ldiriladi. Scanline conversion katta uchburchaklar uchun samarali, ammo ixtiyoriy shakldagi uchburchaklar uchun murakkab mantiqni talab qiladi.

Half-space (edge function) usuli

Zamonaviy GPUlar half-space rasterizatsiya usulidan foydalanadi: uchburchakning har bir tomoni uchun edge function — bir tomondan musbat, ikkinchi tomondan manfiy bo'lgan chiziqli tenglama hisoblanadi. Piksel uchburchakka tegishli, agar uchala edge functions musbat bo'lsa. Half-space rasterizatsiyasi oson parallellashadi va GPUning SIMD arxitekturalariga yaxshi mos keladi.

Tile-Based rasterizatsiya (TBR)

Mobil GPUlar (Qualcomm Adreno, ARM Mali) Tile-Based Rendering (TBR) dan foydalanadi. Ekran kichik tayllarga (16×16 yoki 32×32 piksel) bo'linadi va rasterizatsiya har bir tayl uchun alohida bajariladi. Bu kadr buferini tez lokal xotirada (tile memory) saqlash hisobiga video xotiraga murojaatlar sonini kamaytiradi. TBR energiya sarfini pasaytiradi, bu mobil qurilmalar uchun juda muhimdir.

Rasterizatsiya vs Ray Tracing

Rasterizatsiya va ray tracing — 3D grafikani renderlashning ikkita tubdan farqli yondashuvidir. Rasterizatsiya real-time ilovalarda ustunlik qiladi, ray tracing — oflayn renderlashda va asta-sekin real-timega (RTX mos GPUlarda) kirib bormoqda.

ParametrRasterizatsiyaRay Tracing
PrinsipUchburchak → fragmentlarNur → sahna bilan kesishish
TezlikJuda tez (millionlab uchburchaklar/kadr)Sekin (minglab nurlar/kadr)
SifatQo'shimcha texnikalarni talab qiladi (soyalar, akslar)Fizik jihatdan to'g'ri soyalar va akslar
Mobil GPUlarStandart usulCheklangan qo'llab-quvvatlash (A17 Pro, Snapdragon Gen 3)
Energiya sarfiPastYuqori

MSAA va rasterizatsiyada tekislash

Rasterizatsiyada aliasing muammosi yuzaga keladi — uchburchaklar chegaralarida pog'onali qirralar (jaggies). Bu piksel diskretligi va uchburchak tomonidan qisman qoplana olmasligi sababli sodir bo'ladi. Aliasing bilan kurashish uchun multisampling (MSAA) qo'llaniladi.

MSAA qanday ishlaydi

MSAA (Multisample Anti-Aliasing) rasterizatsiyani oshirilgan tanlab olish chastotasi bilan (2x, 4x, 8x) bajaradi. Piksel boshiga bitta namuna o'rniga bir nechta sub-namunalar ishlatiladi, ularning har biri uchburchak bilan qoplanishi tekshiriladi. MSAA 4x piksel boshiga 4 sub-namunani qayta ishlaydi, bu renderlash ruxsatini to'liq oshirmasdan qirralarning sezilarli darajada tekislanishini ta'minlaydi.

FXAA va boshqa post-protsess usullari

MSAA dan farqli o'laroq, post-protsess tekislash usullari (FXAA, SMAA, TAA) rasterizatsiyadan keyin ishlaydi, yakuniy tasvirni tahlil qiladi. FXAA (Fast Approximate Anti-Aliasing) tasvirning qirralarini aniqlaydi va tekislash uchun xiralashtirishni qo'llaydi, MSAA dan ancha tez ishlaydi, ammo kamroq sifatli natija bilan.

GPUda rasterizatsiya va optimallashtirish

Zamonaviy GPUlarda rasterizatsiya ixtisoslashgan apparat bloklari — ROP (Render Output Units) tomonidan bajariladi. ROPlar soni to'g'ridan-to'g'ri to'ldirish tezligiga (fill rate) — GPU sekundiga qancha pikselni qayta ishlashi mumkinligiga ta'sir qiladi.

Rasterizatsiya unumdorligi omillari

  • Triangle count — kadr boshiga uchburchaklar soni. Har bir uchburchak setup va chekka testi uchun qo'shimcha yuk talab qiladi.
  • Fill rate — ROP bloklari tomonidan sekundiga qayta ishlangan piksellar soni. GPU chastotasi va ROPlar soniga bog'liq.
  • Overdraw — uchburchaklarning bir-birini yopishi tufayli bir pikselning qayta rasterizatsiyasi. Ob'ektlarni chuqurlik bo'yicha saralash orqali optimallashtiriladi.

Mobil GPUlar uchun rasterizatsiyani optimallashtirish

Mobil GPUlar (Tile-Based Rendering) uchun juda muhim: erta rad etish (early-Z) orqali overdraw ni kamaytirish, ko'rinmaydigan uchburchaklarni olib tashlash uchun back-face culling dan foydalanish va boshqa ob'ektlar bilan to'liq qoplangan uchburchaklarni rad etish uchun yashirin sirtlarni olib tashlash (occlusion culling).

Ko'p beriladigan savollar

Rasterizatsiya oddiy so'zlar bilan nima?

Rasterizatsiya — uchburchaklarni ekranda piksellarga aylantirish jarayoni. GPU uch o'lchamli uchburchakni oladi, ekranning qaysi piksellarini qoplashini aniqlaydi va ularni bo'yash uchun Fragment Shaderga uzatadi.

Rasterizatsiya ray tracingdan nimasi bilan farq qiladi?

Rasterizatsiya uchburchaklarni ekranga proyeksiyalaydi va piksel qoplanishini aniqlaydi (juda tez). Ray tracing kameradan nurlarni yuboradi va geometriya bilan kesishishni tekshiradi (fizik jihatdan aniqroq, ammo sezilarli darajada sekin).

Nima uchun rasterizatsiyada tekislash (anti-aliasing) kerak?

Rasterizatsiyada piksel yo to'liq uchburchakka tegishli yoki yo'q — shuning uchun pog'onali qirralar (aliasing) paydo bo'ladi. MSAA qirralarni piksel boshiga ko'plab sub-namunalar orqali tekislaydi, FXAA esa tayyor tasvirga filtr qo'llaydi.

Rasterizatsiya bosqichini dasturlash mumkinmi?

Yo'q, rasterizatsiya grafik konveyerining qat'iy bosqichidir. Dasturchi algoritmni o'zgartira olmaydi, ammo sozlamalarni boshqarishi mumkin: culling, polygon offset, rasterizatsiya rejimi (nuqtalar, chiziqlar, uchburchaklar) va MSAA parametrlari.

Nega mobil GPUlar Tile-Based Rendering dan foydalanadi?

Tile-Based Rendering (TBR) ekranni tayllarga bo'lib, ularni global VRAMda emas, balki tez lokal xotirada qayta ishlaydi. Bu energiya sarfini va tarmoqli kengligini keskin kamaytiradi, bu batareya bilan ishlaydigan mobil qurilmalar uchun juda muhimdir.

Xulosa

  • Rasterizatsiya — vektor uchburchaklarni ekranda ko'rsatish uchun rastr fragmentlarga aylantirish.
  • Half-space usuli — zamonaviy GPUlardagi asosiy rasterizatsiya algoritmi.
  • Tile-Based Rendering — mobil GPUlarda (Adreno, Mali) ishlatiladigan rasterizatsiya arxitekturasi.
  • Aliasing — MSAA, FXAA yoki TAA orqali hal qilinadigan pog'onali qirralar muammosi.
  • Fill rate — ROP bloklari soniga bog'liq bo'lgan rasterizatsiya unumdorligining asosiy parametri.
  • Overdraw — early-Z va occlusion culling orqali optimallashtirilgan piksellarni qayta rasterizatsiya qilish.
  • Ray Tracing — unumdorlik evaziga fizik jihatdan to'g'ri renderlashni ta'minlaydigan muqobil usul.

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