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 — 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.
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).
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.
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.
| Yugto | Paglalarawan | Resulta |
|---|---|---|
| Clipping | Pag-clip ng triangles sa labas ng viewport boundaries | Nakikitang primitives |
| Viewport transform | Pag-convert sa screen coordinates | Pixel coordinates |
| Triangle setup | Pagkalkula ng edge-functions at bounding box | Parameters ng rasterization |
| Fragment generation | Pagsusuri ng coverage at interpolation | Fragments + attributes |
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.
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.
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.
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 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).
| Parameter | Rasterization | Ray Tracing |
|---|---|---|
| Prinsipyo | Triangle → fragments | Ray → intersection sa scene |
| Bilis | Napakabilis (milyong triangles/frame) | Mabagal (libong rays/frame) |
| Kalidad | Nangangailangan ng karagdagang techniques (shadows, reflections) | Physically correct shadows at reflections |
| Mobile GPUs | Standard na paraan | Limitadong suporta (A17 Pro, Snapdragon Gen 3) |
| Konsumo ng kuryente | Mababa | Mataas |
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).
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.
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 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.
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
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.
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).
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.
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.
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
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.
Basahin din