Rasteryzacja

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Przykład rasteryzacji odcinka, łuku oraz wielokąta
Antyaliasing: przykład rasteryzacji trójkąta

Rasteryzacja – w grafice komputerowej działanie polegające na jak najwierniejszym przedstawieniu płaskiej figury geometrycznej na urządzeniu rastrowym, dysponującym skończoną rozdzielczością.

Rasteryzacji mogą podlegać krzywe: odcinki, okręgi, elipsy, łuki eliptyczne, krzywe sześcienne, krzywe sklejane (np. Béziera), przekroje stożkowe, jak również powierzchnie wielokątów, kół, powierzchnie zdefiniowane krzywymi sklejanymi itp.

Dla niektórych figur istnieją bardzo proste i efektywne algorytmy. W 1965 roku Bresenham opracował tzw. algorytm Bresenhama z punktem środkowym, działający na liczbach całkowitych, służący do konwersji dowolnych odcinków, okręgów oraz elips; algorytm był i jest implementowany sprzętowo. Podobnie rzecz ma się z wypełnianiem powierzchni – wypełnianie dowolnych wielokątów jest skomplikowane i kosztowne obliczeniowo, jednak istnieją bardzo efektywne algorytmy wypełniające trójkąty oraz czworokąty wypukłe, które są implementowane sprzętowo w akceleratorach 3D.

W najprostszych przypadkach, gdy urządzenie rastrowe jest dwukolorowe, algorytm rasteryzujący zapala piksele leżące najbliżej krzywej/wewnątrz figury.

Gdy docelowe urządzenie potrafi wyświetlać więcej kolorów (lub poziomów szarości), możliwe jest zastosowanie technik odkłócających (z ang. antyaliasingu), które powodują zniknięcie "schodków". W najogólniejszym przypadku intensywność koloru lub też stopień przezroczystości danego piksela jest proporcjonalny do pola powierzchni części wspólnej figury i piksela. Jeśli figura w całości pokrywa piksel, jego intensywność jest największa, gdy pokrywa tylko część – intensywność jest zmniejszana. Ta zależność może być liniowa (najmniejszy koszt obliczeniowy) albo nieliniowa (koszt większy, finalny efekt lepszy).