Rasteryzacja

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

Rasteryzacja – działanie polegające na jak najwierniejszym przedstawieniu płaskiej figury geometrycznej na urządzeniu rastrowym, dysponującym skończoną rozdzielczością. Działem odwrotnym do rasteryzacji jest wektoryzacja.

Okrąg – brzeg koła; zbiór wszystkich punktów płaszczyzny euklidesowej odległych od ustalonego punktu, nazywanego środkiem, o zadaną odległość, nazywaną promieniem.Barwa – wrażenie psychiczne wywoływane w mózgu ludzi i zwierząt, gdy oko odbiera promieniowanie elektromagnetyczne z zakresu światła. Główny wpływ na to wrażenie ma skład widmowy promieniowania świetlnego, w drugiej kolejności ilość energii świetlnej, jednak niebagatelny udział w odbiorze danej barwy ma również obecność innych barw w polu widzenia obserwatora, oraz jego cechy osobnicze, jak zdrowie, samopoczucie, nastrój, a nawet doświadczenie i wiedza w posługiwaniu się zmysłem wzroku.

Rasteryzacji mogą podlegać krzywe: odcinki, okręgi, elipsy, łuki eliptyczne, krzywe sześcienne, krzywe sklejane (np. Béziera), przekroje stożkowe oraz powierzchnie wielokątów, kół, powierzchnie zdefiniowane krzywymi sklejanymi (np. płaty Béziera) 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łniania trójkątów oraz czworokątów wypukłych, które są implementowane sprzętowo w akceleratorach 3D.

NVIDIA Corporation NASDAQ: NVDA – amerykańska firma komputerowa; jeden z największych na świecie producentów procesorów graficznych i innych układów scalonych przeznaczonych na rynek komputerowy. NVIDIA jest także głównym dostawcą (pod względem udziału w rynku) producentów kart graficznych dla komputerów osobistych ze swoją standardową serią GeForce.Sterownik urządzenia to program lub fragment programu odpowiadający za dane urządzenie i pośredniczący pomiędzy nim, a resztą systemu komputerowego. Zwykle uabstrakcyjnia pewne cechy urządzenia, choć może jedynie zajmować się kwestiami uprawnień dostępu i udostępniać urządzenie bez żadnej ingerencji. Wtedy program, który z niego korzysta też jest w pewnym sensie sterownikiem.

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ą usunięcie tzw. „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, lecz finalny efekt lepszy).

Krzywa B-sklejana (ang. B-spline) jest jedną z najczęściej stosowanych reprezentacji parametrycznych krzywych sklejanych. Angielska nazwa spline (postulowana nazwa polska to splajn, lub łącznica) wzięła się z gwary kreślarzy i odnosiła do długiej elastycznej metalowej taśmy, której używano do rysowania samolotów, samochodów, statków itp. Zawieszając odpowiednio dobrane obciążniki można było uzyskać krzywą o ciągłości geometrycznej drugiego rodzaju. Odpowiednikiem matematycznym spline jest krzywa B-sklejana trzeciego stopnia. Angielska nazwa krzywych B-sklejanych – B-spline jest skrótem od basis spline function, co znaczy "funkcja bazowa splajnów".Rzut – odwzorowanie przestrzeni euklidesowej trójwymiarowej na daną powierzchnię zwaną rzutnią, które każdemu punktowi x {displaystyle x,} przestrzeni przypisuje punkt przecięcia się z rzutnią pewnej prostej z danej rodziny prostych rzutujących przechodzącej przez punkt x {displaystyle x,} .

Rasteryzacja w | edytuj kod]

Pierwszym etapem przygotowania obrazu 3D do wyświetlenia na ekranie jest pozbycie się zbędnego – trzeciego – wymiaru. W obrazie 3D każdy punkt posiada swoje współrzędne i Przeniesienie na płaszczyznę monitora dwóch pierwszych jest proste, gdyż wystarczy skopiować ich wartości. Większy problem występuje w przypadku trzeciej współrzędnej, której wyświetlacz, jako powierzchnia płaska, nie posiada. Jest to zmienna odpowiadająca za głębokość punktu, czyli za jego położenie „w głąb ekranu”. Zazwyczaj w grach i programach do tworzenia grafiki 3D wykorzystuje się 16-, 24- lub 32-bitową głębię – w pierwszym przypadku daje to 65.536, a w ostatnim aż 4.294.967.296 możliwych pozycji obiektu. Należy jednak wpierw określić czy dany piksel obiektu ma być w ogóle narysowany. Takiego określenia dokonuje się na podstawie testu głębokości, a polega on na sprawdzeniu współrzędnej obiektu i jego punktów. Następnie podejmowana jest decyzja czy dany piksel powinien zostać narysowany na ekranie, czy może jest już inny piksel, który został narysowany w danej pozycji a znajduje się perspektywicznie bliżej obserwatora, a co za tym idzie przesłania ten piksel. Test głębokości można wykonywać w różny sposób – zarówno programowo (aplikacja analizuje położenie punktów zgodnie z algorytmem opracowanym przez programistę), jak i sprzętowo (zadanie to realizuje układ bramek logicznych procesora karty graficznej). W kartach graficznych etap ten realizowany może być za pomocą dwóch technik: metody bufora Z lub renderingu kafelkowego.

Karta graficzna – karta rozszerzeń komputera odpowiedzialna za renderowanie grafiki i jej konwersję na sygnał zrozumiały dla wyświetlacza.Grafika rastrowa – prezentacja obrazu za pomocą pionowo-poziomej siatki odpowiednio kolorowanych pikseli na monitorze komputera, drukarce lub innym urządzeniu wyjściowym.

Najprościej test głębokości można zrealizować poprzez rysowanie na ekranie obiektów od najbardziej oddalonego, wtedy kolejne jego piksele będą przesłaniane przez piksele obiektów znajdujących się bliżej. To rozwiązanie posiada jednak potężną wadę – każdy piksel każdego obiektu zostanie odwzorowany na ekranie (mimo że może być później zastąpiony innym), a co za tym idzie, metoda ta jest bardzo kosztowna czasowo. Aby ominąć ten problem i przyspieszyć wyświetlenie na ekranie grafiki trójwymiarowej, twórcy programów 3D, takich jak np. 3ds Max czy Maya 3D, stosują własne algorytmy eliminacji niewidocznych punktów, m.in. BSP (ang. Binary Space Partitioning – binarne dzielenie przestrzeni) lub tzw. technikę portali – odcinającą zasłonięte elementy sceny. Faktem jest, że niejednokrotnie programista nawet nie musi się martwić o realizację testu głębokości, gdyż karta graficzna poprzez swoje sterowniki i obsługę bibliotek graficznych wesprze wykonanie tego testu.

Liczby całkowite – liczby naturalne dodatnie N + = { 1 , 2 , 3 , … } {displaystyle mathbb {N} _{+}={1,2,3,dots }} oraz liczby przeciwne do nich { − 1 , − 2 , − 3 , … } {displaystyle {-1,-2,-3,dots }} , a także liczba zero. Uogólnieniem liczb całkowitych są liczby wymierne i tym samym liczby rzeczywiste, szczególnym przypadkiem liczb całkowitych są: liczby naturalne.Układ współrzędnych – funkcja przypisująca każdemu punktowi danej przestrzeni (w szczególności przestrzeni dwuwymiarowej – płaszczyzny, powierzchni kuli itp.) skończony ciąg (krotkę) liczb rzeczywistych zwanych współrzędnymi punktu.

Najczęściej stosowaną techniką, zarówno w akceleratorach firmy AMD, jak też nVidii, jest wykorzystanie bufora Z. Metoda ta polega na tym, iż podczas przekształcenia sceny zawierającej obiekty trójwymiarowe na obraz płaski, możliwy do wyświetlenia na monitorze, w pamięci RAM akceleratora wydzielany jest obszar pamięci (matryca), który swoim rozmiarem dorównuje rozdzielczości ekranu, natomiast jego „głębokość” wynosi 16, 24 lub 32 bity – w zależności od rozdzielczości współrzędnej Z. Ten właśnie obszar nosi nazwę bufora Z (ang. Z-buffer) i może zajmować duże przestrzenie pamięci RAM karty graficznej, zwłaszcza przy wyższych rozdzielczościach ekranu i głębi rasteryzowanej sceny. Przy jego wykorzystaniu odbywa się analiza odległości wszystkich obiektów i punktów od obserwatora.

Mipmapping to technika teksturowania bitmapami wykorzystywana w grafice trójwymiarowej, która pozwala uniknąć artefaktów i tym samym uzyskać lepszą jakość obrazów. Także przyspiesza sam proces teksturowania. Mipmapping został opracowany przez Lance Williamsa w 1983 roku.Algorytm Bresenhama służy do rasteryzacji krzywych płaskich, czyli do jak najlepszego ich obrazowania na siatce pikseli. Jack Bresenham w 1965 roku opracował metodę rasteryzacji odcinków, którą następnie przystosowano do rysowania obiektów innego rodzaju (okręgów czy elips).

Zastosowanie | edytuj kod]

Podczas rasteryzacji każdego z wielokątów (zwykle trójkątów) tworzących szkielet sceny, z nałożonymi na niego teksturami i mapą oświetlenia, należy podjąć decyzję o tym, czy wybrany punkt znajduje się bliżej obserwatora (będzie wyświetlony) czy też jest zasłonięty przez inny obiekt i należy go zignorować. W Z-buforze znajdą się zatem informacje o pozycjach wielokątów (a dokładniej położeniu ich rzutów perspektywicznych) z których zbudowana jest scena 3D. Informacje te są następnie zamieniane na dane o pikselach ekranu, czyli ściślej, jaki kolor ma mieć piksel, który zapali się na wyświetlaczu w pozycji – te informacje gromadzone są w buforze ramki.

Mapowanie wypukłości (ang. bump mapping) – w grafice 3D technika teksturowania, która symuluje niewielkie wypukłości powierzchni, bez ingerencji w geometrię obiektu trójwymiarowego.Elipsa – w geometrii ograniczony przypadek krzywej stożkowej, czyli krzywej będącej częścią wspólną powierzchni stożkowej oraz przecinającej ją płaszczyzny. Jest to również miejsce geometryczne wszystkich tych punktów płaszczyzny, dla których suma odległości od dwóch ustalonych punktów jest stałą.

Wpierw do Z-bufora trafiają wszystkie współrzędne punktów należących do pierwszego analizowanego wielokąta. Gdy rasteryzowany jest drugi trójkąt, przed umieszczeniem informacji o nim w buforze ramki, porównuje się jego współrzędne z wartościami zapamiętanymi w Z-buforze. Kiedy współrzędne się pokrywają, sprawdza się współrzędną Jeśli nowy punkt ma wartość tej współrzędnej niższą (0 oznacza warstwę najpłytszą, najbliższą obserwatorowi), jest on umieszczany w buforze ramki; w przeciwnym wypadku pozostaje tam piksel pochodzący z wcześniej analizowanego wielokąta. Cały ten proces powtarzany jest dla każdego obiektu znajdującego się na generowanej scenie 3D.

Rozdzielczość ekranu – jeden z parametrów trybu wyświetlania, parametr określający liczbę pikseli obrazu wyświetlanych na ekranie w bieżącym trybie pracy monitora komputerowego, telewizora a także każdego innego wyświetlacza, którego obraz budowany jest z pikseli. Rozdzielczość wyraża się w postaci liczby pikseli w poziomie i w pionie. Rozdzielczość w poziomie składa się z pionowych linii, natomiast w pionie z poziomych linii.Grafika 3D (grafika trójwymiarowa) – nazwa jednej z dziedzin grafiki komputerowej, zajmującej się głównie wizualizacją obiektów trójwymiarowych. Nazwa pochodzi od angielskiego sformułowania Three-Dimensional Graphics.

Zobacz też[ | edytuj kod]

  • bumpmapping
  • mipmapping
  • UV mapping
  • modelowanie 3D
  • raster (poligrafia)




  • Warto wiedzieć że... beta

    Modelowanie — w grafice 3D proces tworzenia i modyfikacji obiektów trójwymiarowych za pomocą specjalizowanego programu komputerowego, zwanego modelerem. Modeler dostarcza zestawu niezbędnych narzędzi, a także często zbioru podstawowych figur (w j. ang. primitives), np. prostopadłościanów, kul, torusów i innych, które można wykorzystać od razu przy budowaniu obiektów.
    Advanced Micro Devices, Inc., AMD (NYSE; AMD) – amerykańskie przedsiębiorstwo produkujące procesory wraz z technologią towarzyszącą dla użytkowników domowych i firm. Do głównych produktów firmy należą mikroprocesory, chipsety do płyt głównych, systemy wbudowane oraz procesory graficzne dla serwerów, stacji roboczych i komputerów PC.
    3ds Max (wcześniej 3D Studio Max) – rozbudowany program do tworzenia trójwymiarowej grafiki i animacji stworzonej przez firmę Kinetix, zakupionej następnie przez firmę Discreet, która wydała trzy kolejne wersje programu, aby zostać ostatecznie wcieloną do firmy Autodesk Inc. Pierwsza wersja ukazała się w 1990 roku pod nazwą 3D Studio dla systemu MS-DOS, obecną wersję 3ds Maxa oznaczoną rokiem 2014 (w wersji 16 według dawnego sposobu numeracji) przeznaczono dla środowiska Microsoft Windows.
    Piksel (ang. pixel – wyraz utworzony ze zbitki dwóch angielskich słów: picture+element) jest to najmniejszy jednolity (przedstawiający konkretny kolor, patrz subpiksel) element obrazu wyświetlanego na ekranie (monitora komputerowego, telewizora itp.), drukowanego (dotyczy technologii druku punktowego) lub uzyskiwanego za pomocą urządzeń przetwarzania obrazu (aparat cyfrowy, skaner).
    Bramka logiczna – element konstrukcyjny maszyn i mechanizmów (dziś zazwyczaj: układ scalony, choć podobne funkcje można zrealizować również za pomocą innych rozwiązań technicznych, np. hydrauliki czy pneumatyki), realizujący fizycznie pewną prostą funkcję logiczną, której argumenty (zmienne logiczne) oraz sama funkcja mogą przybierać jedną z dwóch wartości, np. 0 lub 1 (zob. algebra Boole’a).
    Wektoryzacja (trasowanie) polega na zmianie grafiki rastrowej na grafikę wektorową. W procesie wektoryzacji rastry opisujące daną bitmapę zostają zgrupowane w większe obiekty wektorowe na zasadzie podobieństwa koloru. Proces wektoryzacji niemal każdej bitmapy deformuje jej pierwotny wygląd. Tylko bitmapa przedstawiająca prosty kształt ma szanse być poprawnie przekształcona.
    Raster (ang. screen; fr. trame; niem. Raster) – symulacja obrazu wielotonalnego za pomocą obrazu jednotonalnego w postaci drobnego wzoru.

    Reklama