Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Graphics Rendering Pipeline

Podobne prezentacje


Prezentacja na temat: "Graphics Rendering Pipeline"— Zapis prezentacji:

1 Graphics Rendering Pipeline
Michał Drobot Technical Art Director Reality Pump

2 Plan wykładu Architektura potoku Etap aplikacji
Etap przekształceń geometrii Etap rasteryzacji

3 Architektura Potoku Architektura potokowa
Wykonywanie kolejno określonych etapów Całkowity czas wykonania >= najwolniejszemu etapowi „bottleneck” Możliwość równoległego przetwarzania danych wewnątrz potoku Podział etapu na n potoków (etapowych) może dać przyrost wydajności rzędu n Wyciąg narciarski

4 Architektura Potoku Architektura potokowa Application Stage
Geometry Stage Rasterizer Stage

5 Architektura Potoku Architektura potokowa
Każdy etap może być wykonywany równolegle w wielu potokach Architektura skalarna Wielordzeniowość Każdy etap może wykorzystywać specjalizowane zasoby Przydzielony procesor Specjalistyczny hardware Osobna kolejka SPU Etc…

6 Architektura Potoku Przepustowość potoku
Potok ma przepustowość swojego najwolniejszego etapu (który również może być potokiem) Prędkość renderowania zależy od przepustowości potoku jak i możliwości odbironika Wyrażamy w FPS – klatki na sekundę ms - czas jaki zajmuje wykonanie potoku w ms Hz - 1/sekundę – czas odświeżenia

7 Architektura Potoku Przepustowość potoku
Jeśli najwolniejszy etap potoku potrzebuje 20ms, prędkość renderowania wyniesie 1/0.02 = 50Hz Odbiorniki (CRT, LCD, PLASMA etc…) mają zwykle stałe tempo pracy Wpływa to na realną (percepcyjną) prędkość renderowania

8 Architektura Potoku Przepustowość potoku LCD ma odświeżanie 60Hz
Czas potrzebny na wyrenderowanie klatki wynosi 51ms 1/0.051 = 19.6 fps Możliwości naszego LCD : 60Hz/2 = 30Hz, 60Hz/3 = 20Hz, 60Hz/4 = 15Hz W efekcie obraz będzie wyświetlany z częstotliwością 15Hz 15Hz = max(możliwe tempo odświeżania) < fps

9 Application Stage Obsługiwana przez aplikację wykonywaną w trybie software’owym na CPU ogólnego zastosowania Programowalna Często wykorzystuje możliwości wielordzeniowe Typowe zastosowania Detekcja kolizji Fizyka Animacja Algorytmy przyśpieszające Ostatnim etapem Application Stage jest przesłanie geometrii obiektów, które mają zostać wyrenderowane, do Geometry Stage Najważniejszy etap Application Stage

10 Application Stage Obiekty wysyłane do geometry stage – Rendering Primitives Points Lines Triangles Quads

11 Geometry Stage Etap odpowiedzialny za większość operacji na polygonach i vertexach Podzielony na Transformacje modelu i widoku WorldView transform Cieniowanie vertexów Vertex shading Projekcje Projection transform Clipping Mapowanie ekranowe Screen mapping

12 Geometry Stage Pojedyncze etapy w zależności od implementacji oraz sprzętu mogą działać równolegle oraz mogą być nowymi potokami Tryb software’owy (mobile devices) Tryb mieszany (np. PS3 – SPU + GPU) Tryb specjalizowany (GPU)

13 Model View Transform Każdy obiekt rezyduje we własnej przestrzeni obiektu (Model Space) Każdy model podlega transformacji rotacji, translacji, bądź skalowania Umożliwia użycie różnych przekształceń tej samej geometrii w celu odmiennej reprezentacji w nowej unikatowej przestrzeni Instancing Vertexy oraz normalne obiektu ulegają transformacji Obiekty po przekształceniu znajdują się w nowej unikatowej przestrzeni świata – World Space

14 Model View Transform Jedynie obiekty widziane przez widza / kamerę są renderowane Kamera istnieje w przestrzeni świata Pozycja oraz kierunek patrzenia Dla poprawnej projekcji oraz clippowania obiekty z World Space są transformwoane do View (Camera) Space Kamera w nowej przestrzeni jest ustawiona w centrum w kierunku patrzenia –Z z osia oY skierowaną w dół a osią oX skierowaną w prawo

15 Model View Transform Układ współrzędnych jest zależny od API oraz przyjętych konwencji Transformacje wykonuje się przez przekształcenia macierzy 4x4

16 Vertex Shading Prawidłowa reprezentacja obiektów wymaga obliczeń oświetlenia oraz reprezentacji materiałów Per-Vertex Per-Pixel Vertexy posiadają możliwość przypisania atrybutów Parametry materiału Dodatkowe dane do innych obliczeń

17 Vertex Shading Wyniki obliczeń Reprezentowane przez formę numeryczną
Interpolowane Przekazywane dalej Reprezentowane przez formę numeryczną Kolor Wektor Skalar Etc..

18 Projection Transformacja przestrzeni widoku do homogenicznej przestrzeni sześcianu jednostkowego Możliwość użycia różnych kostek Typowo cube o najdalszych punktach (-1,-1,-1) (1,1,1) Projekcja Perspektywiczna Uwzględnia perpsektywę Ortograficzna Linei równoległe pozostają równoległe

19 Projection Po projekcji wartość Z jest przechowywana w Z – buforze
Przekształceń dokonuje się poprzez macierze 4x4 Po projekcji obiekty znajdują się w znormalizowanych koordynatach urządzenia Normalized device coordinates

20 Clipping Jedynie primitywy znajdujące się całkowicie bądź częściowo w przestrzeni przycięcia powinny być przesłane do rasteryzacji Primitywy poza przestrzenią przycięcia są odrzucane Prymitywy leżące na granicy muszą zostać przycięte (clipped) Płaszczyzna przycięcia jest określona przez ściany kostki jednostkowej Użytkownik może dodać dodatkowe płaszczyzny przycięcia

21 Clipping Przycięcie jest realizowane poprzez dodanie nowych vertexów tworzących nową krawędź w miejscu cięcia Clipping jest realizowany zwykle sprzętowo bez udziału programisty

22 Screen mapping Screen Mapping
Przycięte prymitywy trafiają do Screen Mappingu Posiadają 3D koordynaty Koordynaty X,Y są transformowane do przestrzeni okna X Y : [-1;1] w Projection Space X Y : [0 ;1] w Screen Space Z : [-1;1] bez zmian (zakres zależy od API) Screen Mapping Translacja + skalowanie +=(0.5,0.5) * (0.5,-0.5) // przykladowo

23 Screen mapping Problem relacji wartości float do int a pixeli i ich koordynatów W zależności od API różne układy współrzędnych i traktowania pojęcia „środek pixela” OGL (0,0) – dolny lewy róg Środek pixela w (0.5,0.5) pixela DX (0,0) – górny lewy róg Środek pixela w (0,0) pixela

24 Rasterizer stage Rasteryzacja ma za zadanie wyliczyć kolor pixeli pokrywających przekazane obiekty (transformowane i sprojektowane vertexy oraz inne dane) Konwersja dwuwymiarowych vertexów w screen space (wraz z ich wartościami Z) do przestrzeni pixeli na ekranie

25 Rasterizer stage Triangle Setup Triangle traversal Pixel shading
Merging

26 Triangle Setup Na tym etapie obliczane są pochodne oraz inne dane dotyczące powierzchni trójkąta Używane do interplowania danych vertexowych Wykonywane przez hardware Fixed-operation

27 Triangle Traversal Każdy pixel bądź próbka (sample) którego środek znajduje się w trójkącie jest sprawdzany i generowany jest dla niego fragment (blok pixeli) Generowane parametry fragmentu z danych interpolowanych między 3 vertexami tworzącymi trójkąt Wykonywane sprzętowo

28 Pixel shading Wszystkie obliczenia per-pixel są tu wykonywane dla każdego pixela W pełni programowalny etap przy użyciu GPU Duża ilość technik umożliwiająca rendering oraz obliczenia ogólnego zastosowania

29 Merging Etap odpowiada za
Informacje dla każdego pixela są przechowywane w buforze koloru (Color Buffer) Odpowiada za łączenie wygenerowanego fragmentu z wartościami koloru przechowywanymi aktualnie w buforze koloru Nie jest programowalne W pełni parametryzowalne Etap odpowiada za Widocznośc (Z-buffer) Alpha Blending Stencil Buffer Double Buffering

30 Merging Z-buffer wielkości Color buffera
Przechowuje wartość Z każdego pixela Z-test / Depth-test Sprawdza czy wygenerowany fragment jest bliżej ekranu poprzez porównanie jego wartości Z, z aktualnie istniejącą w Z-buforze Jeśli jest bliżej to nadpisuje istniejące wartości Jeśli nie, pozostawia bufory bez zmian Umożliwia prawidłowe renderowanie bez sortowania Renderowanie przeźroczystych obiektów wymaga sortowania back-to-front

31 Merging Alpha blending C = (1-alpha)*OLD_C + alpha*C
Umożliwia renderowanie przeźroczystych obiektów Wartość alpha dla każdego pixela, decyduje o stopniu jego transparencji Wartość alpha przechowywana w Alpha Channelu

32 Merging Alpha Test Wykonywany przed depth testem
Porównuje wartość alpha z predefiniowaną wartością Może odrzucić cały fragment z potoku Optymalizacja Niezapisywanie przeźroczystych pixeli do Z-bufora

33 Merging Stencil buffer
Dodatkowy bufor, do którego możemy pisać i czytać Zwykle 8-bitowy Przy użyciu odpowiednich operatorów umożliwia odrzucanie fragmentów obrazu z potoku renderowania Stencil Test

34 Merging Double buffering
Obraz po wygenerowaniu jest przechowywany w back bufferze W momencie vertical retrace – odrysowawnia zawartości fizycznego wyświetlacza, back buffer jest zamieniany zawartością z front bufferem i przesyłany do wyświetlacza

35 Podsumowanie For more information contact me hello@drobot.org
Slides will be available at Drobot.org

36 Questions ?


Pobierz ppt "Graphics Rendering Pipeline"

Podobne prezentacje


Reklamy Google