Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Podobne dokumenty
Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Plan wykładu. Akcelerator 3D Potok graficzny

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Animowana grafika 3D. Opracowanie: J. Kęsik.

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

Architektura Komputerów

Oświetlenie obiektów 3D

Trójwymiarowa grafika komputerowa rzutowanie

Filtrowanie tekstur. Kinga Laurowska

Architektura systemów komputerowych Ćwiczenie 3

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Karty graficzne możemy podzielić na:

Efekty dodatkowe w rasteryzacji

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu

Grafika komputerowa Tekstury

Animowana grafika 3D. Opracowanie: J. Kęsik.

1. Prymitywy graficzne

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Co należy zauważyć Rzuty punktu leżą na jednej prostej do osi rzutów x 12, którą nazywamy prostą odnoszącą Wysokość punktu jest odległością rzutu

Ćwiczenia nr 4. TEMATYKA: Rzutowanie

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest

Transformacje. dr Radosław Matusik. radmat

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

2 Przygotował: mgr inż. Maciej Lasota

Plan wykładu. Wykład 3. Rzutowanie prostokątne, widoki, przekroje, kłady. Rzutowanie prostokątne - geneza. Rzutowanie prostokątne - geneza

GRAFIKA KOMPUTEROWA. Plan wykładu. 1. Początki grafiki komputerowej. 2. Grafika komputerowa a dziedziny pokrewne. 3. Omówienie programu przedmiotu

OpenGL Światło (cieniowanie)

Grafika Komputerowa Wybrane definicje. Katedra Informatyki i Metod Komputerowych Uniwersytet Pedagogiczny im. KEN w Krakowie apw@up.krakow.

Grafika komputerowa. Dla DSI II

Autodesk 3D Studio MAX Teksturowanie modeli 3D

Gry komputerowe: efekty specjalne cz. 2

1. Podstawowe algorytmy techniki rastrowe a) dwa przecinające się odcinki mogą nie mieć wspólnego piksela (T) b) odcinek o współrzędnych końcowych

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Definicja obrotu: Definicja elementów obrotu:

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

OpenGL Światło (cieniowanie)

Jak tworzyć dobre wizualizacje? Porady do wykorzystania w programie KD Max. MTpartner s.c.

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

Grafika rastrowa (bitmapa)-

RZUTOWANIE PROSTOKĄTNE

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Rendering obrazu 3D. Rendering. Synteza i obróbka obrazu

Obraz jako funkcja Przekształcenia geometryczne

Podstawy Informatyki Wykład V

Podstawy 3D Studio MAX

Architektura Procesorów Graficznych

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Podstawy grafiki komputerowej

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 12 AiR III

Techniki animacji komputerowej

GRK 4. dr Wojciech Palubicki

1 LEKCJA. Definicja grafiki. Główne działy grafiki komputerowej. Programy graficzne: Grafika rastrowa. Grafika wektorowa. Grafika trójwymiarowa

Górnicki Mateusz 17681

WSTĘP DO GRAFIKI KOMPUTEROWEJ

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej

Światła i rodzaje świateł. Dorota Smorawa

Ćwiczenie 1 Automatyczna animacja ruchu

Optyka stanowi dział fizyki, który zajmuje się światłem (także promieniowaniem niewidzialnym dla ludzkiego oka).

Podstawy grafiki komputerowej. Teoria obrazu.

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

Aleksandra Zając. Raport. Blender. Pokemon: Eevee

Architektura Komputerów

Dodatek B - Histogram

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

1. Czym jest rendering? a. Komputerowa analiza modelu danej sceny i utworzenie na jej podstawie obrazu 2D. b. Funkcja umożliwiająca kopiowanie obrazu

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30

Przewodnik po soczewkach

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

WPROWADZENIE DO GRAFIKI KOMPUTEROWEJ

RYSUNEK TECHNICZNY BUDOWLANY RZUTOWANIE PROSTOKĄTNE

TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła

Jak wybrać akcelerator 3D dedykowany aplikacjom typu MCAD?

Grafika komputerowa Wykład 10 Modelowanie oświetlenia

Misja#3. Robimy film animowany.

aksonometrie trójosiowe odmierzalne odwzorowania na płaszczyźnie

PRZEWODNIK PO PRZEDMIOCIE

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

DesignCAD 3D Max 24.0 PL

Ćwiczenie 6 Animacja trójwymiarowa

SYNTEZA OBRAZU. Rendering obrazu 3D

Rzutowanie. dr Radosław Matusik. radmat

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

Technologie Informacyjne

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

Transkrypt:

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu Mirosław Głowacki

Zagadnienia Jak rozumiemy fotorealizm w grafice komputerowej Historyczny rozwój kart graficznych Przekształcenia geometryczne Przetwarzanie Rendering Rasteryzacja

Obraz realistyczny Pojęcie obrazu realistycznego jest rozumiane w różny sposób Nie zawsze obraz realistyczny jest najbardziej pożądany Często idealizuje się obraz w celu zawarcia w nim większej porcji informacji

Złudzenia optyczne Mogą być i na ogół są wykorzystywane w tworzeniu realizmu wirtualnego, ale czasami powodują artefakty Na poniższym rysunku linie poziome są równoległe

Symulowany przelot koło Urana widoczne pierścienie i orbita sondy Dodatkowe światło po zaciemnione j stronie planety (w rzeczywistoś ci jest całkowicie czarna) oraz dodatkowe elementy (orbity)

Wytworzony komputerowo obraz fotorealistyczny

Obraz realistyczny Często stosuje się realistyczne obrazy nie istniejących obiektów, np. statków kosmicznych, prototypów samochodów, itp. Czasem obraz realistyczny istniejących obiektów tworzony jest przy pomocy wyidealizowanych elementów składowych Przykładem może tu być modelowanie molekulane. Atomy są idealizowane w postaci nierzeczywiście barwnych kul, widoczne są wiązania i drgania atomów (animacja) itp.

Teksturowany statek kosmiczny 450 tys. wielokątów

Fotomontaż wykonany w programie GIMP

Para stereo cząsteczki wirusa Polio model składający się z kul o promieniu 5 nm

Podział kart graficznych Na przestrzeni ostatnich lat powstawał cały szereg coraz to bardziej doskonałych kart graficznych. W zależności od stopnia zaawansowania technicznego można je podzielić na: bufory ramki akceleratory grafiki płaskiej akceleratory grafiki trójwymiarowej procesory graficzne

Bufory ramki Są to najprostsze karty graficzne służące jedynie do wyświetlania obrazu na ekranie monitora.

Akceleratory grafiki płaskiej Są to urządzenia wspomagające procesor przy operacjach typu: wyświetlanie wielokątów i linii prostych Wypełnianiu (rasteryzacja) wielokątów przesuwaniu i skalowaniu okien itp.

Akceleratory grafiki trójwymiarowej Są to urządzenia odciążające jednostkę centralną w końcowym procesie obliczeń W przypadku tych urządzeń w dalszym ciągu wstępne przygotowanie sceny 3D spoczywa na procesorze, a szybkość realizacji tego zadania zależy od algorytmów zastosowanych przez programistę.

Procesory graficzne Urządzenia te posiadają układy wspomagające operacje geometryczne działają przy minimalnym zaangażowaniu jednostki centralnej komputera w proces tworzenia grafiki określa się je również mianem akceleratorów geometrii.

Grafika trójwymiarowa Niezależnie od konstrukcji karty graficznej najważniejszym zadaniem, jakie musi wykonać komputer przy tworzeniu trójwymiarowej grafiki jest przedstawienie jej na płaskim ekranie monitora. Cały proces tworzenia obrazu od chwili otrzymania danych z programu do momentu wyświetlenia grafiki na ekranie monitora nazywany jest często przetwarzaniem strumienia grafiki trójwymiarowej.

Strumień grafiki trójwymiarowej W strumieniu tym wyróżnić można dwa zasadnicze etapy obliczeń: przekształcenia geometryczne rendering oraz rasteryazacja sceny

Pojęcie syntetycznej kamery Pojęcie to jest użyteczną metaforą do tworzenia grafiki 3D Obiekt rzeczywisty umiejscowiony jest w tzw. współrzędnych świata x, y i z. Wyobraźmy sobie kamerę, którą można przenieść w dowolne miejsce zorientować ją w dowolny sposób otwierać migawkę tworząc płaski obraz rzeczywistości 3D

Rzutowanie w przestrzeni 3D Syntetyczna kamera fotografująca obiekt 3D

Pojęcie syntetycznej kamery Kamerze można nadać ruch, co umożliwi tworzenie animowanych sekwencji obiektów z różnych punktów obserwacji pod różnymi kątami przy różnych powiększeniach Z kamerą związany jest układ współrzędnych u, v i n, przy czym ostatnia współrzędna jest prostopadła do matrycy kamery (rzutni). Kamera jest po prostu programem komputerowym, który symuluje kamerę rzeczywistą, a obiekty są zbiorami punków, odcinków i powierzchni

Tworzenie obrazu szkieletowego Składa się z kilku kroków określenie rodzaju rzutu określenie parametrów rzutowania powierzchni, na której rzut zostanie wyświetlony układ współrzędnych sceny układ współrzędnych oka (rzutowania) rzutowanie i wyświetlanie zawartość tzw. bryły widzenia jest rzutowana na płaszczyznę (powierzchnię) rzutowania i obcinana do obszaru pewnego okna

Rodzaje rzutów w grafice komputerowej W zdecydowanej większości są to planarne (płaskie) rzuty geometryczne planarne rzutnia jest powierzchnią płaską geometryczne promienie rzutujące są prostoliniowe największe znaczenie mają rzut perspektywiczny i równoległy prostokątny

Rzutowanie w przestrzeni 3D Klasyfikacja płaskich rzutów geometrycznych

Pokój z kamerą filmową rzuty prostokątne: górny (a), przedni (b), boczny (c)

Pokój z kamerą po ustawieniach geometrii rzut perspektywiczny

Planarne rzuty geometryczne równoległe prostokątne kierunek rzutowania jest normalny do rzutni z góry z przodu z boku aksonometryczne pod pewnymi kątami do wszystkich osi izomeryczne pod równymi kątami do wszystkich osi inne ukośne różne: kierunek rzutowania i normalna do rzutni wojskowe kawaleryjskie inne

Planarne rzuty geometryczne perspektywiczne pęki prostych wzajemnie równoległych zbiegają się w punkcie (punktach) zbieżności o ile nie są równoległe do rzutni jednopunktowe rzutnia jest prostopadła do jednej z osi istnieje jeden osiowy punkty zbieżności dwupunktowe (najczęściej używane) jedna z osi jest równoległa do rzutni istnieją dwa osiowe punkty zbieżności trzypunktowe żadna z osi nie jest równoległa do rzutni istnieją trzy osiowe punkty zbieżności

Ustawianie geometrii obrazu Program generujący obraz 3D poprzez odpowiedni interfejs OpenGL czy Direct3D wysyła współrzędne wszystkich wierzchołków sceny do tzw. układu ustawiania trójkątów Jest to specjalna jednostka, będąca częścią chipu graficznego. Grupuje ona wszystkie trójki wierzchołków w trójkąty

Triangularyzacja

Ustawianie geometrii Każda trójka współrzędnych punktów powinna być zapamiętana w oddzielnym wektorze. Jako że praktycznie każdy wierzchołek należy nie do jednego, a do dwóch lub nawet więcej trójkątów stosuje się więc pewne techniki, które mają zmniejszyć rozmiar macierzy opisujących współrzędne wierzchołków opierają się one na tworzeniu tzw. pasów (strips) i wachlarzy (fans)

Pasy i wachlarze Świat tworzony przez wszystkie akceleratory 3D składa się z trójkątów. Trójkąt ma trzy wierzchołki. Każdy z nich ma trzy współrzędne - x, y i z. Jeśli zechcemy stworzyć prostokąt, będziemy musieli wykorzystać w tym celu dwa trójkąty. Zatem prostokąt, który normalnie ma cztery wierzchołki, akcelerator 3D jest zmuszony opisać sześcioma wierzchołkami.

Pasy i wachlarze W celu zmniejszenia ilości przetwarzanych danych, a co za tym idzie - zwiększenia szybkości animacji stosuje się różne techniki wykorzystywania wspólnych wierzchołków zwane pasami i wachlarzami

Pasy i wachlarze

Tworzenie pasów Pasy pozwalają na tworzenie długich ścian Do podstawowego trójkąta dokładany jest nowy wierzchołek i z wykorzystaniem dwóch wybranych, istniejących uprzednio wierzchołków tego trójkąta tworzony jest nowy trójkąt Następnie dodawany jest kolejny wierzchołek pozwalający zdefiniować nowy trójkąt Przy udziale nowopowstałego trójkąta tworzony jest kolejny

Wachlarze Wachlarze polegają na tworzeniu nowych trójkątów ciągle z wykorzystaniem jednego z wierzchołków trójkąta bazowego

Ustawianie geometrii bryły widzenia Rozpoczynając generowanie trójwymiarowej sceny niezbędne jest utworzenie mapy opisującej położenie wszystkich występujących na niej obiektów Wszystkie obecne na ekranie bryły należy poddać trzem operacjom transformacji geometrycznych: skalowaniu translacji rotacji ustawia to obiekty w odpowiednim położeniu oraz we właściwej skali.

Ustawianie geometrii bryły widzenia

Ustawianie geometrii bryły widzenia Operacje ustawiania geometrii wymagają skomplikowanych rachunków zmiennoprzecinkowych Należy do tego celu zaangażować dużą moc obliczeniową Najnowsze układy graficzne wyposażone są w specjalizowane procesory i wykonują tego typu obliczenia znacznie szybciej niż byłyby to w stanie zrobić procesory komputerów.

Wycinanie i zakrywanie linii niewidocznych Obiekty mogą być modelowane jedynie jako zbiory powierzchni lub bryły, gdyż tylko tak sprecyzowane mogą w sposób jednoznaczny zasłaniać inne obiekty. Rzuty z liniami zasłoniętymi niosą mniej informacji niż rzuty złożeniowe i przekroje Dlatego czasami pozostawia się niektóre linie niewidoczne jako mniej intensywne, przerywane lub w innych kolorach

Pokój z kamerą kolorowe linie widoczne

Przetwarzanie obraz dynamiczny Czasami obraz nie jest obrazem statycznym. W przypadku animacji w celu skrócenia czasu obliczeń kolejnej klatki, wszystkie opisywane wcześniej przekształcenia wykonywane są tylko raz w trakcie tzw. preprocesingu

Przetwarzanie Dzięki temu kolejne rachunki, jeżeli tylko trójwymiarowy obraz nie zmienił się w znaczący sposób, sprowadzają się do: zmiany punktu widzenia obserwatora zmiany położenia niektórych obiektów ponownych kalkulacji oświetlenia ewentualnych przesunięć kadrowania oraz powtórzenia renderingu

Rendering Na przygotowane w fazie operacji geometrycznych złożone z trójkątów szkieletowe bryły akcelerator nakłada wypełnienie pustych przestrzeni wewnątrz wielokątów oraz symuluje światła padające na wielokąty Ten kolejny ciąg operacji w strumieniu graficznym 3D nosi nazwę renderingu

Rendering Rendering można podzielić na trzy główne procesy: teksturowanie oświetlanie i cieniowanie dodawanie efektów specjalnych

Teksturowanie Najważniejszym i najbardziej skomplikowanym etapem renderingu jest teksturowanie Zabieg ten polega na nakładaniu na trójwymiarowy szkielet płaskich obrazków nazywanych teksturami mających imitować spotykane w realnym świecie powierzchnie

Mapowanie tekstur Cały proces mapowania (nakładania) tekstur sprowadza się do odpowiedniego owijania brył teksturami. Problem polega na tym, iż wszystkie elementy trójwymiarowej sceny składają się z trójkątów o różnych rozmiarach. Tekstury należy więc dopasować do wielkości odpowiadającej poszczególnych trójkątów. Proces ten nazywa się wycinaniem (ang. clipping)

Wycinanie (clipping) Polega on na wyodrębnieniu trójkąta o żądanej wielkości z kwadratowej zazwyczaj tekstury W tym celu określane są współrzędne trzech punktów na teksturze, a następnie przyporządkowuje się je stosownym wierzchołkom teksturowanego trójkąta

Wycinanie (clipping)

Teksturowanie MIP mapping Próbkowanie punktowe Filtrowanie Korekcja perspektywy Mapowanie wybojów Alpha-blending

Teksturowanie - MIP mapping Ponieważ z pierwotnych tekstur, które mają ściśle określony rozmiar, np. 8 8 lub 64 64 piksele, prawie nigdy nie da się wyciąć odpowiedniego pod względem rozmiarów trójkąta do mapowanej przestrzeni Mając to na uwadze oraz aby zapobiec ciągłemu przeskalowywaniu tekstur opracowano mechanizm MIP mappingu (Multum in Parvo - wiele w niewielu)

MIP mapping Przed renderowaniem sceny z każdej tekstury tworzonych jest kilka (zazwyczaj osiem) tzw. map MIP. Mapy MIP to nic innego jak zmniejszone bitmapy utworzone na podstawie tekstury wzorcowej. Każda kolejna mapa MIP jest czterokrotnie mniejsza od poprzedniej.

MIP mapping

MIP Mapping Jeśli pierwsza miała rozmiar 256 256 pikseli, to następna będzie miała wielkość128 128 punktów, kolejna 64 64 itd. Przy nakładaniu na trójkąt tekstury do wycinania wybierana jest jedna lub dwie sąsiednie ze zbioru map MIP. Do poteksturowania obiektu trójwymiarowego używa się tej tekstury, której rozdzielczość jest wystarczająca do reprezentowania obiektu obserwowanego z pewnej odległości. Właśnie od odległości zależy, która mipmapa zostanie wybrana. Im obiekt znajduje się dalej od obserwatora, tym mniejszą zajmuje powierzchnię i tym mniejsza tekstura jest potrzebna.

MIP Mapping Przykładowo: Jeśli obiekt ma wymiary ok. 10x13 pikseli, to do jego poteksturowania wystarczy tekstura 16x16, Jeśli obiekt ma ok. 54x40 to wystarcza tekstura 64x64 itd. W obu przykładach nie ma sensu odwoływać się do tekstury o najwyższej rozdzielczości (powiedzmy 256x256) bo i tak duża część pikseli nigdy nie będzie widoczna. W praktyce najczęściej nie jest wybierana jedna mipmapa, ale brane są dwie najbliższe i dokonywana jest ich interpolacja.

Przykładowe MIP mapy

MIP mapping Tekstura nałożona: bez MIP mappingu (z lewej) i z MIP mappingiem (z prawej)

MIP Mapping Zalety mipmappingu: Wstępne usuwanie zakłóceń skalowanych tekstur, co ma istotne znaczenie w grafice czasu rzeczywistego (gry komputerowe, symulatory lotu). Zwiększenie prędkości teksturowania, ponieważ przetwarzana jest o wiele mniejsza liczba pikseli tekstury. Wady: Zwiększenie wymagań pamięciowych o 1/3. Mipmapping jest implementowany sprzętowo w kartach grafiki.

Teksturowanie - próbkowanie punktowe Zastosowanie MIP mappingu nie rozwiązuje w pełni problemu dokładnego dopasowania tekstur do wielkości trójkątów. Dlatego bardzo często przy teksturowaniu, pojedyncze teksele, czyli najmniejsze elementy (punkty) tekstury, powielane są w różnych miejscach wielokąta. Technika przyporządkowania każdemu punktowi trójkąta tylko jednego teksela tekstury i w razie potrzeby kilkukrotnego powielenia punktów nosi nazwę próbkowania punktowego (ang. point sampling texturing)

Próbkowanie punktowe Wadą tego sposobu jest to, że powielenie jednego punktu do kilku objawia się efektem potocznie nazywanym pikselozą widoczne stają się kolorowe piksele Jest to szczególnie wyraźne wtedy, gdy tekstura musi pokryć obszar znacząco większy niż ona sama Aby uniknąć powyższego efektu korzysta się z tzw. filtrowania tekstur

Teksturowanie - filtrowanie Filtrowanie tekstur można dokonać na różne sposoby. Do najważniejszych należą: filtrowanie dwuliniowe filtrowanie trójliniowe filtrowanie anizotropowe

Filtrowanie dwuliniowe (ang. bilinear filtering) Polega na przyporządkowaniu każdemu punktowi teksturowanego trójkąta nie jednego koloru teksela, ale barwy otrzymanej w wyniku interpolacji czterech sąsiednich tekseli tekstury

Filtrowanie trójliniowe Bardziej zaawansowaną metodą jest filtrowanie trójliniowe (ang. Trilinear filtering) polegające na tym, że do ujednolicania barwy zamiast sąsiednich tekseli stosuje się dwie kolejne mapy MIP Najpierw poddaje się interpolacji dwuliniowej mapę pierwszą, bezpośrednio mniejszą - później drugą, bezpośrednio większą np. jeśli trójkąt wymaga wycinania z mapy o rozdzielczości 100 tekseli, to brane są pod uwagę mapy 64x64 i 128x128 Dopiero uśredniony wynik obu tych operacji (w sumie interpolujemy wartość ośmiu tekseli) nakłada się na mapowany trójkąt

Filtrowanie anizotropowe Filtrowanie to (ang. anisotropic filtering) jest najbardziej zaawansowaną metoda filtrowania wymagająca największej mocy obliczeniowej. Bierze ona dodatkowo pod uwagę orientację przestrzenną tekseli względem obserwatora, dzięki czemu obszary, z których interpolowane są brakujące wartości, układają się w kształt elipsy, prostokąta lub rombu (długa oś wyznacza kierunek)

Filtrowanie anizotropowe Filtrowanie anizotropowe umożliwia zatem zachowanie oryginalnego kształtu tekstur również na obiektach znajdujących się pod pewnym kątem w stosunku do obserwatora

Teksturowanie - korekcja perspektywy Podczas odwzorowania dużych trójkątów z nałożonymi teksturami (np. ściany, sufity lub podłogi) znajdujących się niemal prostopadle do płaszczyzny ekranu często występują problemy z zachowaniem odpowiedniej perspektywy Elementy sceny rozjeżdżają się, dając dziwne powykrzywiane wzory spowodowane załamywaniem się tekstur lub ich znikaniem (np. w scenach z długim tunelem). Błąd ten wynika ze złej metody uwzględnienia położenia wielokąta w przestrzeni.

Teksturowanie - korekcja perspektywy W celu wyeliminowania tych niepożądanych efektów stosuje się algorytmy korekcji perspektywy (ang. perspective correction) Metoda ta polega na stworzeniu wirtualnego punktu w nieskończoności. Teraz każda linia poprowadzona z dowolnego miejsca obrazu musi zbiec się w owym punkcie. Dopiero wówczas akcelerator, zgodnie z zasadą rzutu perspektywicznego, nakłada tekstury już bez tych nie chcianych deformacji.

Teksturowanie - korekcja perspektywy brak perspektywy po korekcji perspektywy po filtrowaniu dwuliniowym

Mapowanie wybojów Mapowanie wybojów powoduje złudzenie, że obiekt nie jest gładki, a chropowaty. Gdy na niego patrzymy zdaje nam się, że widzimy wyboje, rysy czy rowki Z jednej strony wybój (wypukłość) będzie jasny, z drugiej ciemny. Należy pamiętać, że mapowanie wybojów to efekt manipulujący wyłącznie grą światła a nie wielokątami

Mapowanie wybojów Proces ten można podzielić na: Mapowanie wypukłości (bump mapping) Tłoczenie wybojów (emboss bump mapping) Środowiskowe mapowanie wybojów (Environment- Mapped Bump Mapping, EMBM) DOT 3 mapping Mapowanie środowiska Multiteksturowanie Mapowanie trójwymiarowe

Mapowanie wypukłości W metodzie tej dla każdej tekstury tworzone są tzw. mapy wybojów (ang. bump maps). Są one płaskimi bitmapami, podobnie jak zwykłe tekstury, jednak jasność poszczególnych pikseli określa położenie (wysokość) tekseli nad płaszczyzną tekstury Następnie mapa wybojów jest nakładana na pierwotną teksturę, dzięki czemu otrzymujemy dodatkową informację o usytuowaniu każdego teksela względem płaszczyzny tekstury.

Mapowanie wypukłości Najprostszym rodzajem mapowania wypukłości jest tzw. pre-calculated bump mapping, sprowadzającym się do obliczenia mapy oświetlenia. W miejscach, gdzie występuje zagłębienie, teksel jest przyciemniany, a w miejscach wypukłości rozjaśniany Technika ta pozwala dość dobrze (i przede wszystkim niewielkim nakładem obliczeniowym) odwzorować nieruchome, prostopadłe lub znajdujące się nawet pod dość znacznym kątem względem obserwatora obiekty.

Tłoczenie wybojów Sprawdza się ono dobrze wtedy, gdy na tekstury spoglądamy pod niewielkim kątem lub są one nakładane na poruszające się obiekty. Tłoczenie realizowane jest w trzech etapach W pierwszym z nich z mapy opisującej wygląd wypukłości (mapy wybojów) tworzone są dwa monochromatyczne obrazy. Jeden zostanie wykorzystany do przedstawienia obszarów jaśniejszych, a drugi będzie odpowiadał za fragmenty zacienione W kolejnej fazie obie bitmapy przesuwane są o kilka pikseli względem siebie (jedna do tyłu, druga do przodu) wzdłuż kierunku padającego światła Ostatni z etapów polega na zlaniu rozsuniętych bitmap (przy wykorzystaniu omawianego w dalszej części prezentacji alpha-blendingu) z właściwą teksturą obiektu

Tłoczenie wybojów Od lewej: obiekt 3D obłożony zwykłą teksturą, obiekt 3D obłożony mapą wybojów, obiekt 3D obłożony mapą wybojów i teksturą

Torus z wgłębieniami funkcja wgłębień określona ręcznie

Truskawka z wgłębieniami funkcja wgłębień określona ręcznie

Środowiskowe mapowane wybojów W bardziej zawansowanych metodach bumpmappingu dodatkowo wykorzystuje się tzw. mapy środowiska (ang. environment maps). Mapowanie środowiskowe w połączeniu z bump-mappingiem pozwala otrzymać zaawansowane efekty, takie jak falująca powierzchnia wody, w której odbijają się nadbrzeżne drzewa.

Środowiskowe mapowane wybojów Uzyskanie takich rezultatów możliwe jest dzięki nałożeniu w jednym przebiegu trzech bitmap: podstawowej tekstury, mapy wypukłości oraz mapy środowiska. Mapa wybojów nakładana jest na mapę środowiska, w wyniku czego powstaje zaburzona mapa środowiska (ang. perturbed environment map), a następnie łączona jest ona z właściwą teksturą nakładaną na obiekt

Środowiskowe mapowane wybojów I ćwiartka tekstura III ćwiartka mapa wybojów IV ćwiartka sumaryczna mapa w środowisku

Środowiskowe mapowane wybojów Mapy środowiska zawierają w sobie informacje m.in. o refleksach na powierzchni przedmiotu od rozstawionych na generowanej scenie wielokolorowych: świateł lustrzanych, odbić i refleksów świetlnych, które pochodzą od innych przedmiotów otaczających obiekt

Środowiskowe mapowane wybojów W procesie mapowania środowiskowego dzięki nałożeniu na pierwotną teksturę przedmiotu bitmapy środowiskowej uzyskujesię wszelkiego rodzaju efekty luster, szklanych drzwi, itp.

Środowiskowe mapowane wybojów dla każdej powierzchni obliczany jest kąt odbicia padającego światła (dla wielu źródeł wyliczany jest najpierw wektor wypadkowy). następnie otrzymana wartość modyfikowana jest zgodnie z danymi zapisanymi w tzw. mapie odbić (zawiera informacje o połyskujących fragmentach powierzchni) na koniec całość łączona jest z właściwą teksturą obiektu.

Środowiskowe mapowane wybojów W przypadku mapowania środowiskowego obrazy przedmiotów na lśniącej powierzchni wyglądają dobrze do momentu, gdy ani obserwator, ani przedmiot nie zmieniają swojego położenia. W chwili gdy przedmiot nieznacznie się przemieści, wystarczy przesunąć punkt zaczepienia tekstury. Jeśli jednak przemieszenie jest zbyt duże, odbicia ulegają silnemu zniekształceniu.

DOT 3 mapping Rozwiązaniem powyższego problemu polega na nakładaniu na bryłę nie jednej, ale sześciu tekstur odpowiadających obrazowi dolnej, górnej i czterech bocznych części otoczenia obiektu.

DOT 3 mapping

Mapowanie środowiska Polega na nakładaniu na obiekt tekstury przedstawiającej otoczenie tego obiektu. Efekt ten powoduje, iż obiekt sprawia wrażenie refleksyjnego, "metalicznego

Mapowanie środowiska

Mapowanie środowiska

Multiteksturowanie Podczas teksturowania, w większości przypadków na jeden obiekt nakładanych jest kilka różnych bitmap. Im więcej mapowanych jest tekstur, tym potrzeba większej mocy obliczeniowej akceleratora. Szybkie chipy graficzne przeznaczone do użytku domowego umożliwiają mapowanie do kilkudziesięciu gigatekseli w ciągu jednej sekundy. Tę podaną wartość nazywa się współczynnikiem fillrate i określa ona teoretyczną szybkość procesu wypełniania wielokątów przez procesor graficzny.

Mapowanie trójwymiarowe W pakiecie Microsoft DirectX począwszy od wersji 8.0 programiści uwzględnili obsługę całkiem nowego rodzaju tekstur, a mianowicie tekstur 3D Podobne funkcje zaimplementowano też w bibliotekach OpenGL 1.2 Oczywiście techniki tekstur trójwymiarowych nie są niczym nowym, gdyż z obrazów tego typu, nazywanych często warstwowymi lub wolumetrycznymi, od dłuższego czasu korzystają lekarze wykonujący komputerową tomografię

Mapowanie trójwymiarowe Nowa technika oznacza przede wszystkim, iż tekstury przestają wyłącznie okrywać powierzchnię przedmiotów, ale wnikają wgłąb nich. W przypadku tekstur 3D proces obliczeniowy jest wyjątkowo prosty. Aby obejrzeć wnętrze bryły należy części tekseli (wokseli) nadać atrybut przezroczystości. Można wtedy zobaczyć wszystkie najdrobniejsze detale, gdyż budowa i faktura wnętrza zawarte są w mapie wolumetrycznej.

Mapowanie trójwymiarowe Objętość trójwymiarowych tekstur jest jednak wyjątkowo duża. Np. 32-bitowa dwuwymiarowa tekstura o wymiarach 16 16 pikseli ma objętość 1024 bajtów. Po dodaniu trzeciego wymiaru (16 16 16 punktów) rozrasta się jednak do 16 384 bajtów! Tak znaczne pojemności przetwarzanych obiektów wymagają od systemu olbrzymiej przepustowości magistrali pamięci i stosowania algorytmów kompresji tekstur

Alpha-blending Aby określić stopień przezroczystości tekstury wykorzystywany jest tzw. kanał alfa, a cała technika nazywana jest alpha-blendingiem Kanał alfa jest parametrem określającym stopień przezroczystości nakładanej tekstury. Przyjmuje on wartości od zera (obiekt zupełnie transparentny) do 255 (powierzchnia nieprzezroczysta) Jeśli nałożona zostanie tekstura z kanałem alfa równym zero, nic się nie zmieni na rysunku, tekstura będzie niewidoczna

Alpha-blending Jeżeli wartość kanału wynosi np. 128, wówczas obłożony nią obiekt będzie półprzezroczysty, a znajdujące się za nim przedmioty będą przezeń widoczne. Przy maksymalnej wartości mamy do czynienia z typową nieprzezroczystą teksturą Wartość kanału alfa jest jednym z czterech parametrów opisujących teksturę.

Kule i szachownica

Alpha-blending Praktycznie wszystkie nowoczesne akceleratory potrafią obsługiwać 32 bitowy kolor. Jak wiadomo do przedstawienia pełnej palety barw wystarczą 24 bity Brakujące osiem bitów to właśnie kanał alfa, a tekstury takie nazywane są RGBA Trzy kolory składowe oraz kanał alfa.

Cieniowanie Bardzo ważnym elementem sceny jest oświetlenie. To właśnie odpowiednie dobranie oświetlenia sprawia, że cała trójwymiarowa scena nabiera prawdziwej głębi 1. etap - kalkulacja oświetlenia obliczane są wektory natężenia światła dla każdego z wierzchołków trójkątów tworzących scenę 3D (lub nawet dla każdego piksela) 2. etap - zostają one zamienione na odpowiednią jasność na powierzchniach wielokątów z nałożonymi nań teksturami Drugi etap generowania trójwymiarowego obrazu nazywa się cieniowaniem (ang. shading) Niektórzy używają tego pojęcia dla całości procesu, ale to dwa oddzielne typy algorytmów

Oświetlanie sceny Obliczenia związane z oświetleniem polegają na określeniu współrzędnych oraz typów źródeł światła punktowe, rozproszone, ruchome i obliczaniu natężenia promieniowania w każdym z wierzchołków W wyniku tego procesu do poszczególnych punktów sceny zostają przypisane wektory określające natężenie światła w danym miejscu Karty graficzne wyposażone w moduł T&L (Transform & Lighting) wykonują najbardziej czasochłonne obliczenia związane z oświetleniem samodzielnie, bez udziału procesora głównego

Oświetlenie światłem otoczenia W najprostszych rozwiązaniach zakłada się, że światło dociera ze wszystkich kierunków Zakłada się wtedy stałe oświetlenie obiektów niezależnie od ich pozycji i orientacji Powstały obraz jest mało realistyczny ponieważ bardzo niewiele rzeczywistych scen jest oświetlanych w ten sposób

Pokój z kamerą oświetlony przez światło otoczenia

Oświetlanie punktowym źródłem światła jasność obiektu zmienia się w zależności od kierunku i odległości od źródła kierunkowym źródłem światła źródło światła znajduje się daleko od oświetlanego obiektu i promienie są równoległe stosowanie barwnych świateł i powierzchni model oświetlenia Warna światło jest modelowane jako odbicie zwierciadlane od jednego punktu oświetlanego przez punktowe źródło światła wieloma źródłami światła

Rendering waz model oświetlenia Cooka- Torrence a: a) plastik, b) miedź

Samochód oświetlony przez pięć świateł ze sterowaniem Warna

Oświetlanie klapy Warna odpowiednik przysłon reflektorów fotograficznych stożki Warna światło rozchodzi się tylko w obszarze ograniczonym stożkiem z wierzchołkiem w źródle światła modele oświetlenia mające podłoże fizyczne

Cieniowanie Istnieje wiele metod cieniowania. Najważniejsze z nich to: cieniowanie płaskie cieniowanie interpolacyjne Gourauda cieniowanie Phong a

Cieniowanie płaskie Cieniowanie płaskie (ang. flat shading) jest najprostszą metodą cieniowania. Polega ono na przyporządkowaniu całej powierzchni trójkąta jednego poziomu jasności oraz uwzględnieniu barwy w przypadku gdy na scenie, rozstawione są kolorowe źródła światła. Poziom jasności i barwa są określane przez jeden z jego wierzchołków zazwyczaj przez znajdujący się najbliżej obserwatora

Cieniowanie płaskie Oznacza to, że każdemu trójkątowi przypisuje się jeden ściśle określony odcień, niezależnie od otaczających go wielokątów. Zakłada się wtedy również rozproszone odbicie światła Niestety, rezultaty cieniowania płaskiego nie są zadowalające, gdyż szczególnie na okrągłych przedmiotach (np. kulach) uzyskuje się efekt kanciastości obiektów, wynikający z gwałtownych zmian jasności przylegających do siebie trójkątów.

Indywidualne cieniowanie płaskie

Cieniowanie płaskie i cieniowanie Gourauda

Cieniowanie Gourauda Cieniowanie to (ang.gouraud shading) zakłada, iż pojedynczy odcień wnętrza każdego trójkąta powstaje z uśrednienia (interpolacji) kolorów i natężenia światła występujących w każdym z jego wierzchołków niejako uwzględniona zostaje jasność sąsiednich wielokątów

Cieniowanie płaskie i cieniowanie Gourauda

Cieniowanie wielokątów metodą Gourauda z odbiciem rozproszonym

Cieniowanie Gourauda Często w metodzie tej wnętrzu trójkąta przypisuje się nie jeden, ale kilka różnych poziomów jasności Otrzymane są one przez interpolacje natężenia światła wzdłuż linii przechodzącej przez trójkąt i biegnącej od obserwatora do punktu w nieskończoności (zwierciadlane odbicie światła).

Cieniowanie Gourauda W ten sposób zostają zachowane płynne przejścia poziomów jasności pomiędzy poszczególnymi wielokątami, Nie ma przylegających do siebie obszarów o drastycznie różnych poziomach natężenia światła. Co ciekawe, cieniowanie Gourauda wywołuje złudzenie gładkości sferycznych obiektów złożonych nawet z niewielkiej liczby trójkątów

Cieniowanie wielokątów metodą Gourauda z odbiciem zwierciadlanym

Cieniowanie Phonga Spośród klasycznych, najbardziej zaawansowanym i skomplikowanym pod względem obliczeniowym sposobem odwzorowywania jasności obiektów jest cieniowanie Phonga (ang. Phong shading), nazywane też techniką per-pixel lighting. W metodzie tej kolor i natężenie światła przyporządkowywane są oddzielnie do każdego punktu sceny 3D - piksela obrazu W metodzie tej interpolacji podlega wektor normalny do powierzchni na podstawie normalnych wektorów węzłowych. Jasność wewnątrz trójkąta może się zatem wyraźnie różnić od wartości węzłowych

Wielokąty cieniowane metodą Phonga z odbiciem zwierciadlanym

Cieniowanie Phonga z krzywoliniową interpolacją kształtu obiektów Często w celu poprawienia wyglądu sceny stosuje się krzywoliniową metodę modelowania niektórych powierzchni

Powierzchnie krzywoliniowe z odbiciem zwierciadlanym

Zastosowanie wielu źródeł światła w stosunku do sceny Obrazy oświetlone jednym źródłem światła nie zawsze wyglądają naturalnie. Często w celu poprawienia wyglądu sceny stosuje się oświetlanie bardziej złożone, uwzględniające wiele źródeł światła, odbicia światła, itp. Dodatkowe efekty daje nałożenie tekstury

Ulepszony model oświetlania i wiele świateł

Cieniowanie z odwzorowaniem tekstury

Odwzorowanie z oddziaływaniem wzajemnym obiektów oświetlenie globalne W celu dalszej poprawy jakości obrazu stosuje się wzajemne oddziaływanie obiektów: mapowanie środowiska, algorytmy z oświetleniem globalnym Oddziaływanie takie może dotyczyć oświetlenia pochodzącego od obiektów sceny oraz być uzupełnione innymi efektami, takimi jak odbicia

Odwzorowanie z oddziaływaniem wzajemnym obiektów

Obraz z odbiciami

Śledzenie promieni Algorytm uwzględnia cienie, załamania i odbicia Występują promienie pierwotne i wtórne pochodzące od odbić, załamań, itp. Odbicia i załamania światła mogą być wielokrotne

Śledzenie promieni klatka z filmu Quest

Śledzenie promieni: funkcje do modyfikacji barw, normalnych do powierzchni i przezroczystości prawie w każdym pikselu

Metoda energetyczna Brana jest pod uwagę zasada zachowania energii promieni świetlnych w środowisku zamkniętym Całkowita energia emitowanana lub odbijana przez jedną powierzchnię jest odbijana lub pochłaniana przez inne powierzchnie We wcześniej prezentowanych rozwiązaniach źródło światła i powierzchnie przez nie oświetlane były traktowane oddzielnie Metoda energetyczna zakłada, że każda powierzchnia może emitować światło Źródła światła zawsze mają pewną powierzchnię Powierzchnie dzieli się na niewielkie płaty Rozpraszające powierzchnie są zabarwione barwami innych powierzchni

Sześcian (na rysunku brak emitującej białej ściany przedniej). Metoda energetyczna zdjęcie (a) z widocznym efektem rozlewania barwy, rendering klasyczny przy 49 płatach na ścianę (b i c) - cieniowanie stałe (b) i interpolowane (c)

Efekty specjalne Ostatnim etapem renderingu sceny 3D jest dodanie tzw. efektów atmosferycznych (ang. atmospheric effects). Nazwa ta niezbyt dobrze oddaje sens nakładanych na scenę elementów, gdyż oprócz typowych zjawisk atmosferycznych, takich jak mgły, opary nad lustrem wody, falowanie rozgrzanego powietrza, mżawka, zalicza się do nich dym, ogień oraz zmętnienia lustra wody, itp.

Efekt mgły W programach najczęściej wykorzystywanym efektem atmosferycznym jest mgła (ang. fog). Tworzy się ją za pomocą czterech różnych technik: mgła liniowa tablica mgieł mgła wykładnicza mgła wolumetryczna

Efekt mgły

Mgła w tle

Mgła liniowa Najprostszą z technik tworzenia jest tzw. mgła liniowa (ang. linear fog). Stosowanie tej metody polega na liniowym zamgleniu obiektów wraz ze wzrostem ich odległości od obserwatora. Wykorzystuje się w tym przypadku funkcje liniowe

Tablica mgieł Lepszą i częściej stosowaną metodą jest tzw. tablica mgieł (ang. table fog). W tym przypadku stopień zamglenia, zależny od odległości od obserwatora, zapisany jest w przygotowanej uprzednio tablicy. Ta metoda doskonale się sprawdza w przypadku tworzenia takich efektów, jak opary nad powierzchnią jeziora, nieciągłe smugi mgły nad bagnami itp.

Mgła wykładnicza Trzecim sposobem otrzymywania mgły jest tzw. mgła wykładnicza (ang. Expotential fog). W działaniu przypomina ona efekty uzyskiwane za pomocą tablicy mgieł, lecz nie wymaga się w tym przypadku predefiniowania stopni zamglenia, które obliczane są na bieżąco na podstawie zaprogramowanej funkcji wykładniczej.

Mgła wolumetryczna (ang. volumetric fog). Do jej tworzenia wykorzystywane są półprzezroczyste tekstury trójwymiarowe. Mgła zbudowana jest z warstw o różnej gęstości, co pozwala na wyjątkowo realne odwzorowanie otaczającego nas świata.

Zamglenie tła W realnym świecie, odległe obiekty, jak np. góry na horyzoncie, zawsze są widziane dosyć niewyraźnie. Z tym problemem akceleratory 3D radzą sobie w identyczny sposób jak w przypadku mgły wykładniczej obrazy obiektów rozmazywane są wraz ze wzrostem ich odległości od obserwatora.

Sygnalizacja głębokości Efekt ten (ang. depth cueing) polega na wykładniczej zmianie koloru i odcienia przedmiotu w zależności od dystansu od przedmiotu im jest on większy, tym mniej wyraźnie widać nawet duże obiekty.

Rasteryzacja Etap zamiany wszystkich parametrów generowanej sceny na zbiór pikseli gotowych do wysłania na monitor nazywa się rasteryzacją. Wykonuje go specjalizowany moduł znajdujący się wewnątrz każdego, nawet najprostszego układu graficznego, nazywany jednostką rasteryzującą.

Rasteryzacja Rasteryzacja nie dotyczy wyłącznie grafiki 3D, ale również dostosowywania płaskiego obrazu, np. z edytora tekstu, do wyświetlenia go na ekranie monitora, który składa się z matrycy punktów o ustalonym z góry wymiarze (rozdzielczości), np. 1024 768 pikseli. W trakcie procesu dopasowywania wszystkie obiekty, jak np. okręgi, muszą zostać narysowane za pomocą ograniczonej liczby pikseli.

Rasteryzacja Każdemu punktowi sceny przyporządkowane są trzy współrzędne: x, y, z. Przeniesienie dwóch pierwszych wartości na obraz dwuwymiarowy nie stanowi problemu Współrzędna z określa zaś odległość obiektu od płaszczyzny ekranu. W większości programów wykorzystuje się 16-bitową głębię, która umożliwia odwzorowanie 65 536 pozycji obiektu W aplikacjach inżynierskich oraz przy tworzeniu profesjonalnej grafiki używa się 24 lub nawet 32 bitowej głębi.

Techniki towarzyszące rasteryzacji Najważniejszymi technikami towarzyszącymi rasteryzacji są: z bufor bufor szablonowy antyaliasing dithering

z - bufor Podczas odwzorowywania trójwymiarowej sceny na obraz dwuwymiarowy jednostka rasteryzująca przechowuje wyniki swojej pracy w wydzielonej pamięci lokalnej akceleratora 3D, nazywanej buforem ramki (ang. frame buffer). To właśnie z tego obszaru w ostatniej fazie generowania obrazu na ekran monitora wysłana zostanie gotowa, pojedyncza klatka tworzonej sceny 3D.

z - bufor W pamięci RAM karty graficznej wydzielona zostaje również matryca odpowiadająca swoją wielkością rozdzielczości ekranu, a głębokością 16, 24 lub 32 bitom, w zależności od zastosowanej głębi współrzędnej z. Ten duży objętościowo fragment pamięci lokalnej karty, mający za zadanie przechowywać dane o współrzędnej z nazywany jest z-buforem (ang. z-buffer).

Z - bufor Zasada działania bufora z polega na tym, że np. dla dwóch trójkątów przed ich narysowaniem porównuje się ich współrzędne z z wartością zapamiętaną w z-buforze. Jeśli nowy rysowany punkt ma wartość niższą (to znaczy zasłania poprzedni obiekt), jest rysowany Cały proces powtarzany jest dla każdego obiektu generowanej sceny 3D.

Z - bufor Zastosowanie Z-bufora pozwala znacząco odciążyć jednostkę rasteryzującą akceleratora, która w przeciwnym razie musiałaby narysować zupełnie niepotrzebnie wiele dodatkowych trójkątów. Z drugiej strony technika ta skutecznie obciąża wewnętrzną magistralę pamięci karty, powodując zatory w dostępie do danych.

Z bufor

Bufor szablonowy Większość nowoczesnych akceleratorów wyposażona jest w tzw. bufor szablonowy (ang. stencil buffer) stosowany m.in. po to, aby zmniejszyć obciążenie procesora graficznego i magistrali pamięci. Może on zostać wykorzystany na kilka sposobów, jednak najczęściej programiści posługują się nim w symulatorach lotu lub jazdy samochodem. W tym przypadku najpierw tworzony jest szablon deski rozdzielczej lub kokpitu, który następnie umieszczany jest w buforze. Następnie akcelerator renderuje grafikę 3D tylko w miejscu nie zakrytym przez szablon Po wygenerowaniu sceny nakłada się oba obrazy na siebie.

Bufor szablonowy

Bufor szablonowy Do tego zadania wystarczy bufor jednobitowy Większość układów graficznych dysponuje 8 bitowym buforem szablonowym. Dzięki nim można uzyskać dodatkowe efekty, jak ślady po hamowaniu samochodu, plamy oleju na jezdni czy tzw. cienie wolumetryczne (ang. volumetric shadow) dokładnie odwzorowujące kształt rzucających je przedmiotów.

Wykorzystanie bufora szablonowego do tworzenia cienia

Antyaliasing Ponieważ ekran ma ograniczoną rozdzielczość rysując ukośną linię czy też granicę pomiędzy dwoma kolorami, zapalają się piksele znajdujące się najbliżej teoretycznego przebiegu linii (rasteryzacja odcinka). Taki sposób rysowania powoduje powstanie schodkowatych odcinków, a im niższa rozdzielczość, tym większe wrażenie schodkowatości. Aby się pozbyć tego efektu, w kartach zastosowano specjalne techniki nazywane antyaliasingiem.

Antyaliasing Można wyróżnić dwa główne typy antyaliasingu: krawędziowy pełnoekranowy

Antyaliasing

Antyaliasing krawędziowy Najczęściej wykorzystywaną metodą jest antyaliasing krawędziowy (ang. Edge Anti- Aliasing), polegający na odpowiednim rozmywaniu krawędzi wzdłuż rysowanej linii czy granicy kolorów. Procedury antyaliasingu wymagają znacznej mocy obliczeniowej, dlatego w większości wypadków nie wygładza się wszystkich widocznych na ekranie linii, lecz tylko tę część z nich, która najbardziej wpływa na wygląd generowanej sceny

Antyaliasing pełnoekranowy Sposób realizacji pełnoekranowego antyaliasingu (ang. Full Scene Anti-Aliasing) jest różny w zależności dla różnych procesorów graficznych. Niektóre procesory graficzne przetwarzają każdą klatkę w dwukrotnym powiększeniu, a następnie przeskalowują ją do żądanej wielkości Inne karty używają bufora akumulacyjnego, tzw. T- bufora. Umieszczane są w nim dwie lub cztery identyczne ramki obrazu, Każda z nich jest minimalnie przesuwana względem pozostałych po czym następuje ich zlanie w jeden obraz

Antyaliasing pełnoekranowy Niezależnie od stosowanej metody antyaliasingu pełnoekranowego ilość danych, które trzeba wygenerować, jest zawsze dwu - lub czterokrotnie większa od ilości normalnej, tj. bez wygładzania krawędzi, co prowadzi do poważnego spadku wydajności. Stosowanie tej metody powoduje jednak, że w odróżnieniu od antyaliasingu krawędziowego cały obraz na ekranie monitora pozbawiony jest schodków.

Dithering Dla 24-bitowej głębi barw dostępnych jest aż 16 777 216 odcieni. Jednak w przypadku czasami wykorzystywanego trybu 16-bitowego liczba ta spada do 65 536. Aby więc oddać brakujące w 16-bitowej palecie barwy, stosuje się metodę nazywaną ditheringiem. Polega ona na symulacji niedostępnego w systemie koloru poprzez kompozycję kilku zbliżonych do niego barw z dostępnej palety. Może to doprowadzić jednak do obniżenia jakości wyświetlanego obrazu, efektu - ziarnistości.

Dithering 16 bitowa-paleta kolorów obraz po ditheringu 24 bitowa-paleta kolorów obraz nie wymaga ditheringu

Głębia ostrości uzyskana metodą przetwarzania końcowego