Rasterization — ano ito, mga yugto at prinsipyo ng paggana

May-akda: IT Sectr Nai-publish: 2026-06-11 Oras ng pagbabasa: 10 min

Rasterization — ay ang proseso ng pag-convert ng vector description ng three-dimensional primitives (triangles, lines, points) sa isang set ng pixels (fragments) para ipakita sa screen. Ayon sa Khronos Group, 2025, ang rasterization ay isang automatic (non-programmable) na yugto ng graphics pipeline, na matatagpuan sa pagitan ng Vertex Shader at Fragment Shader. Rasterization ay tumutukoy kung aling mga pixel ng screen ang kabilang sa aling triangle, at kinakalkula ang interpolated attributes para sa bawat fragment.

Mga Pangunahing Punto

  • Rasterization — pag-convert ng vector primitives sa raster image (pixels).
  • Scanline conversion — pangunahing algorithm na tumutukoy sa pixel coverage ng triangle.
  • Interpolasyon ng attributes — pagkalkula ng kulay, texture coordinates at normals para sa bawat fragment.
  • MSAA — multisampling na nagpapakinis ng mga stepped edge (aliasing) sa rasterization.
  • Pagganap ng rasterization ay depende sa bilang ng triangles at screen resolution.

Ano ang rasterization?

Rasterization — ay ang yugto ng graphics pipeline na nagko-convert ng geometric primitives (triangles, lines) sa isang set ng fragments para sa karagdagang pagproseso ng Fragment Shader. Input data — vertices ng triangle sa screen coordinates at ang kanilang attributes (kulay, normals, UV). Output — set ng fragments na may interpolated attributes.

Hindi tulad ng programmable shaders (Vertex at Fragment Shader), ang rasterization ay isang fixed (non-programmable) na yugto. Hindi mababago ng developer ang algorithm ng rasterization, ngunit maaaring pamahalaan ang mga parameter nito: clipping mode (culling), line width, depth offset (polygon offset) at multisampling.

Tungkulin ng rasterization sa real-time graphics

Halos lahat ng modernong real-time graphics — games, UI, AR/VR — ay gumagamit ng rasterization. Ito ang pinaka-performance na paraan ng rendering, na may kakayahang magproseso ng milyun-milyong triangles per frame sa 60 FPS. GPU rasterizers ay na-optimize para sa parallel processing ng libu-libong triangles nang sabay-sabay sa pamamagitan ng specialized blocks na ROP (Render Output Units).

Paano gumagana ang rasterization?

Rasterization ng triangle ay nagsisimula pagkatapos i-convert ng Vertex Shader ang vertices sa screen coordinates. Kinukuha ng GPU ang tatlong vertices ng triangle at tinutukoy kung aling mga pixel ng screen ang nasa loob ng triangle na ito.

Mga yugto ng rasterization ng triangle

Ang proseso ay may tatlong sunud-sunod na hakbang: pagtukoy ng bounding box ng triangle sa pixels — pagsusuri ng bawat pixel sa loob ng bounding box para sa pagiging kabilang sa triangle (edge function) — pagkalkula ng interpolated attributes (barycentric coordinates) para sa bawat covered pixel. Edge function — ay isang linear equation na tumutukoy kung saang gilid ng triangle edge matatagpuan ang punto.

YugtoPaglalarawanResulta
ClippingPag-clip ng triangles sa labas ng viewport boundariesNakikitang primitives
Viewport transformPag-convert sa screen coordinatesPixel coordinates
Triangle setupPagkalkula ng edge-functions at bounding boxParameters ng rasterization
Fragment generationPagsusuri ng coverage at interpolationFragments + attributes

Mga algorithm ng rasterization

Rasterization ay maaaring ipatupad sa iba't ibang algorithm, bawat isa ay may sariling kompromiso sa pagitan ng performance at kalidad. Ang mga modernong GPU ay gumagamit ng kombinasyon ng ilang approach.

Scanline algorithm

Classic algorithm ng rasterization, na binuo para sa mga unang GPU. Ang triangle ay pinoproseso nang linya sa linya (scanline): para sa bawat linya ng screen, tinutukoy ang mga entry at exit point ng triangle, at lahat ng pixels sa pagitan ay pinupuno. Scanline conversion ay mahusay para sa malalaking triangles, ngunit nangangailangan ng kumplikadong logic para sa triangles ng arbitraryong hugis.

Half-space (edge function) method

Ang mga modernong GPU ay gumagamit ng half-space rasterization method: para sa bawat gilid ng triangle, kinakalkula ang edge function — isang linear equation, positive sa isang gilid at negative sa kabila. Ang pixel ay kabilang sa triangle kung ang lahat ng tatlong edge functions ay positive. Half-space rasterization ay madaling i-parallelize at mahusay na akma sa SIMD architectures ng GPU.

Tile-Based rasterization (TBR)

Ang mga mobile GPU (Qualcomm Adreno, ARM Mali) ay gumagamit ng Tile-Based Rendering (TBR). Ang screen ay hinahati sa maliliit na tile (16×16 o 32×32 pixels), at ang rasterization ay ginagawa para sa bawat tile nang hiwalay. Pinaliit nito ang bilang ng mga access sa video memory sa pamamagitan ng pag-imbak ng framebuffer sa mabilis na lokal na memory (tile memory). Binabawasan ng TBR ang konsumo ng kuryente, na kritikal para sa mga mobile device.

Rasterization vs Ray Tracing

Rasterization at ray tracing — dalawang fundamentally magkaibang approach sa pag-render ng 3D graphics. Ang rasterization ay dominante sa real-time applications, ray tracing — sa offline rendering at unti-unting pumapasok sa real-time (sa RTX-compatible GPUs).

ParameterRasterizationRay Tracing
PrinsipyoTriangle → fragmentsRay → intersection sa scene
BilisNapakabilis (milyong triangles/frame)Mabagal (libong rays/frame)
KalidadNangangailangan ng karagdagang techniques (shadows, reflections)Physically correct shadows at reflections
Mobile GPUsStandard na paraanLimitadong suporta (A17 Pro, Snapdragon Gen 3)
Konsumo ng kuryenteMababaMataas

MSAA at anti-aliasing sa rasterization

Sa rasterization, lumilitaw ang problema ng aliasing — may ngiping gilid (jaggies) sa boundaries ng triangles. Ito ay nangyayari dahil ang pixel ay discrete at hindi maaaring bahagyang matakpan ng triangle. Para labanan ang aliasing, ginagamit ang multisampling (MSAA).

Paano gumagana ang MSAA

MSAA (Multisample Anti-Aliasing) ay nagsasagawa ng rasterization na may tumaas na sampling frequency (2x, 4x, 8x). Sa halip na isang sample per pixel, maraming sub-samples ang ginagamit, bawat isa ay sinusuri para sa coverage ng triangle. MSAA 4x ay nagpoproseso ng 4 na sub-samples per pixel, na nagbibigay ng kapansin-pansing pagpapakinis ng mga gilid nang hindi ganap na tinataas ang rendering resolution.

FXAA at iba pang post-process methods

Hindi tulad ng MSAA, ang post-process anti-aliasing methods (FXAA, SMAA, TAA) ay gumagana pagkatapos ng rasterization, sinusuri ang final image. FXAA (Fast Approximate Anti-Aliasing) ay tinutukoy ang mga gilid ng image at naglalapat ng blur para sa pagpapakinis, gumagana nang mas mabilis kaysa sa MSAA ngunit may hindi gaanong kalidad na resulta.

Rasterization sa GPU at pag-optimize

Rasterization sa mga modernong GPU ay ginagawa ng specialized hardware blocks — ROP (Render Output Units). Ang bilang ng ROP ay direktang nakakaapekto sa fill rate — ang bilang ng pixels na kayang iproseso ng GPU bawat segundo.

Mga factor ng performance ng rasterization

  • Triangle count — bilang ng triangles per frame. Bawat triangle ay nangangailangan ng overhead para sa setup at edge testing.
  • Fill rate — bilang ng pixels na pinoproseso ng ROP blocks bawat segundo. Depende sa clock frequency ng GPU at bilang ng ROP.
  • Overdraw — paulit-ulit na rasterization ng isang pixel dahil sa overlapping ng triangles. Na-optimize sa pamamagitan ng pag-uuri ng objects ayon sa lalim.

Pag-optimize ng rasterization para sa mobile GPUs

Para sa mobile GPUs (Tile-Based Rendering) kritikal na mahalaga: minimalisasyon ng overdraw sa pamamagitan ng early-Z, paggamit ng back-face culling para sa pag-alis ng hindi nakikitang triangles at nakatagong surface removal (occlusion culling) para sa pagtanggi ng triangles na ganap na natatakpan ng ibang objects.

Mga Madalas Itanong

Ano ang rasterization sa simpleng salita?

Ang rasterization ay ang proseso ng pag-convert ng triangles sa pixels sa screen. Ang GPU ay kumukuha ng three-dimensional triangle, tinutukoy kung aling mga pixel ng screen ang sakop nito at ipinapadala ang mga ito sa Fragment Shader para kulayan.

Paano naiiba ang rasterization sa ray tracing?

Ang rasterization ay nagpo-project ng triangles sa screen at tinutukoy ang pixel coverage (napakabilis). Ray tracing ay nagpapadala ng rays mula sa camera at sinusuri ang intersection sa geometry (physically mas tumpak ngunit mas mabagal).

Bakit kailangan ang anti-aliasing sa rasterization?

Sa rasterization, ang pixel ay ganap na kabilang sa triangle o hindi — kaya may ngiping gilid (aliasing). Pinapakinis ng MSAA ang mga gilid sa pamamagitan ng maraming sub-samples per pixel, at ang FXAA ay naglalapat ng filter sa tapos na image.

Maaari bang i-program ang rasterization stage?

Hindi, ang rasterization ay isang fixed stage ng graphics pipeline. Hindi mababago ng developer ang algorithm, ngunit maaaring pamahalaan ang mga setting: culling, polygon offset, rasterization mode (points, lines, triangles) at MSAA parameters.

Bakit gumagamit ang mobile GPUs ng Tile-Based Rendering?

Tile-Based Rendering (TBR) ay hinahati ang screen sa mga tile at pinoproseso ang mga ito sa mabilis na lokal na memory, hindi sa global VRAM. Ito ay lubhang nagbabawas ng konsumo ng kuryente at bandwidth, na kritikal para sa mga mobile device na pinapagana ng baterya.

Buod

  • Rasterization — pag-convert ng vector triangles sa raster fragments para ipakita sa screen.
  • Half-space method — pangunahing algorithm ng rasterization sa modernong GPUs.
  • Tile-Based Rendering — arkitektura ng rasterization na ginagamit sa mobile GPUs (Adreno, Mali).
  • Aliasing — problema ng may ngiping gilid, nalulutas sa pamamagitan ng MSAA, FXAA o TAA.
  • Fill rate — key performance parameter ng rasterization, depende sa bilang ng ROP blocks.
  • Overdraw — paulit-ulit na rasterization ng pixels, na-optimize sa pamamagitan ng early-Z at occlusion culling.
  • Ray Tracing — alternatibong paraan na nagbibigay ng physically correct rendering sa halaga ng performance.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din