Rasterisasi — adalah proses mengubah deskripsi vektor dari primitif tiga dimensi (segitiga, garis, titik) menjadi kumpulan piksel (fragmen) untuk ditampilkan di layar. Menurut Khronos Group, 2025, rasterisasi adalah tahap otomatis (tidak dapat diprogram) dari pipeline grafis, yang terletak di antara Vertex Shader dan Fragment Shader. Rasterisasi menentukan piksel layar mana yang termasuk ke dalam segitiga mana, dan menghitung atribut yang diinterpolasi untuk setiap fragmen.
Poin Utama
Rasterisasi — adalah tahap pipeline grafis yang mengubah primitif geometris (segitiga, garis) menjadi kumpulan fragmen untuk diproses lebih lanjut oleh Fragment Shader. Data masukan — simpul segitiga dalam koordinat layar dan atributnya (warna, normal, UV). Keluaran — kumpulan fragmen dengan atribut yang diinterpolasi.
Berbeda dengan shader yang dapat diprogram (Vertex dan Fragment Shader), rasterisasi adalah tahap tetap (tidak dapat diprogram). Pengembang tidak dapat mengubah algoritma rasterisasi, tetapi dapat mengelola parameternya: mode pemotongan (culling), lebar garis, offset kedalaman (polygon offset) dan multisampling.
Hampir semua grafis real-time modern — game, UI, AR/VR — menggunakan rasterisasi. Ini adalah metode rendering paling performan, mampu memproses jutaan segitiga per frame pada 60 FPS. Rasterizer GPU dioptimalkan untuk pemrosesan paralel ribuan segitiga secara bersamaan melalui blok khusus ROP (Render Output Units).
Rasterisasi segitiga dimulai setelah Vertex Shader mengubah simpul menjadi koordinat layar. GPU mengambil tiga simpul segitiga dan menentukan piksel layar mana yang berada di dalam segitiga ini.
Proses ini mencakup tiga langkah berurutan: penentuan bounding box segitiga dalam piksel — pemeriksaan setiap piksel di dalam bounding box untuk kepemilikan segitiga (edge function) — perhitungan atribut yang diinterpolasi (koordinat barycentric) untuk setiap piksel yang tercakup. Edge function — adalah persamaan linier yang menentukan di sisi mana dari tepi segitiga suatu titik berada.
| Tahap | Deskripsi | Hasil |
|---|---|---|
| Clipping | Pemotongan segitiga di luar batas viewport | Primitif yang terlihat |
| Viewport transform | Transformasi ke koordinat layar | Koordinat piksel |
| Triangle setup | Perhitungan edge-function dan bounding box | Parameter rasterisasi |
| Fragment generation | Pemeriksaan cakupan dan interpolasi | Fragmen + atribut |
Rasterisasi dapat diimplementasikan dengan berbagai algoritma, masing-masing memiliki kompromi antara kinerja dan kualitas. GPU modern menggunakan kombinasi dari beberapa pendekatan.
Algoritma rasterisasi klasik, dikembangkan untuk GPU awal. Segitiga diproses baris demi baris (scanline): untuk setiap baris layar, titik masuk dan keluar segitiga ditentukan, dan semua piksel di antaranya diisi. Scanline conversion efisien untuk segitiga besar, tetapi membutuhkan logika kompleks untuk segitiga dengan bentuk sembarang.
GPU modern menggunakan metode rasterisasi half-space: untuk setiap sisi segitiga, edge function dihitung — persamaan linier, positif di satu sisi dan negatif di sisi lain. Piksel milik segitiga jika ketiga edge functions positif. Rasterisasi half-space mudah diparalelkan dan cocok dengan arsitektur SIMD GPU.
GPU mobile (Qualcomm Adreno, ARM Mali) menggunakan Tile-Based Rendering (TBR). Layar dibagi menjadi tile kecil (16×16 atau 32×32 piksel), dan rasterisasi dilakukan untuk setiap tile secara terpisah. Ini meminimalkan jumlah akses ke memori video dengan menyimpan framebuffer di memori lokal cepat (tile memory). TBR mengurangi konsumsi daya, yang sangat penting untuk perangkat mobile.
Rasterisasi dan ray tracing — dua pendekatan yang fundamentally berbeda untuk rendering grafis 3D. Rasterisasi mendominasi di aplikasi real-time, ray tracing — di rendering offline dan secara bertahap merambah ke real-time (pada GPU yang kompatibel dengan RTX).
| Parameter | Rasterisasi | Ray Tracing |
|---|---|---|
| Prinsip | Segitiga → fragmen | Sinar → persimpangan dengan scene |
| Kecepatan | Sangat cepat (jutaan segitiga/frame) | Lambat (ribuan sinar/frame) |
| Kualitas | Membutuhkan teknik tambahan (bayangan, refleksi) | Bayangan dan refleksi yang benar secara fisik |
| GPU mobile | Metode standar | Dukungan terbatas (A17 Pro, Snapdragon Gen 3) |
| Konsumsi daya | Rendah | Tinggi |
Pada rasterisasi muncul masalah aliasing — tepi bergerigi (jaggies) pada batas segitiga. Ini terjadi karena piksel bersifat diskrit dan tidak dapat tercakup sebagian oleh segitiga. Untuk mengatasi aliasing digunakan multisampling (MSAA).
MSAA (Multisample Anti-Aliasing) melakukan rasterisasi dengan frekuensi sampling yang ditingkatkan (2x, 4x, 8x). Alih-alih satu sampel per piksel, digunakan beberapa sub-sampel, masing-masing diperiksa untuk cakupan oleh segitiga. MSAA 4x memproses 4 sub-sampel per piksel, memberikan penghalusan tepi yang nyata tanpa meningkatkan resolusi rendering sepenuhnya.
Berbeda dengan MSAA, metode anti-aliasing post-process (FXAA, SMAA, TAA) bekerja setelah rasterisasi, menganalisis gambar akhir. FXAA (Fast Approximate Anti-Aliasing) mendeteksi tepi gambar dan menerapkan pengaburan untuk penghalusan, bekerja jauh lebih cepat daripada MSAA tetapi dengan hasil yang kurang berkualitas.
Rasterisasi pada GPU modern dilakukan oleh blok perangkat keras khusus — ROP (Render Output Units). Jumlah ROP secara langsung mempengaruhi kecepatan pengisian (fill rate) — jumlah piksel yang dapat diproses GPU per detik.
Untuk GPU mobile (Tile-Based Rendering) sangat penting: minimalisasi overdraw melalui penolakan awal (early-Z), penggunaan back-face culling untuk menghilangkan segitiga yang tidak terlihat dan penghapusan permukaan tersembunyi (occlusion culling) untuk menolak segitiga yang sepenuhnya tertutup oleh objek lain.
Pertanyaan yang Sering Diajukan
Rasterisasi adalah proses mengubah segitiga menjadi piksel di layar. GPU mengambil segitiga tiga dimensi, menentukan piksel layar mana yang ditutupinya dan mengirimkannya ke Fragment Shader untuk diwarnai.
Rasterisasi memproyeksikan segitiga ke layar dan menentukan cakupan piksel (sangat cepat). Ray tracing mengirimkan sinar dari kamera dan memeriksa persimpangan dengan geometri (secara fisik lebih akurat tetapi jauh lebih lambat).
Pada rasterisasi, piksel sepenuhnya milik segitiga atau tidak — maka muncul tepi bergerigi (aliasing). MSAA menghaluskan tepi melalui beberapa sub-sampel per piksel, dan FXAA menerapkan filter ke gambar jadi.
Tidak, rasterisasi adalah tahap tetap dari pipeline grafis. Pengembang tidak dapat mengubah algoritma, tetapi dapat mengelola pengaturan: culling, polygon offset, mode rasterisasi (titik, garis, segitiga) dan parameter MSAA.
Tile-Based Rendering (TBR) membagi layar menjadi tile dan memprosesnya di memori lokal cepat, bukan di VRAM global. Ini secara drastis mengurangi konsumsi daya dan bandwidth, yang sangat penting untuk perangkat mobile bertenaga baterai.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga