Bartosz Bazyluk OpenGL Deferred shading. Pętla główna i jej implementacje. Debugowanie i analiza wydajności.
|
|
- Sylwia Pawlak
- 6 lat temu
- Przeglądów:
Transkrypt
1 OpenGL Deferred shading. Pętla główna i jej implementacje. Debugowanie i analiza wydajności. Algorytmy grafiki komputerowej czasu rzeczywistego, Informatyka S2
2 FORWARD W klasycznym podejściu (ang. forward shading) oświetlenie jest obliczane dla każdego fragmentu powstałego przy renderowaniu kolejnych elementów sceny. W ten sposób dla każdego piksela bufora klatki wielokrotnie wykonuje się czasochłonne obliczenia zupełnie na darmo. Oczywiście stosowane są różne optymalizacje zmniejszające ten problem, jednak nie można go całkowicie wyeliminować. Geometria Shading Geometria Shading Geometria Shading Geometria Shading Geometria Shading Framebuffer Wydajność potoku jest więc ściśle zależna od złożoności geometrii, a także od liczby źródeł światła. 2
3 Podejście z odroczonym cieniowaniem (ang. deferred shading) polega na przebudowie potoku tak, by właściwe cieniowanie odbywało się dopiero po wyrenderowaniu geometrii. Na pierwszym etapie obliczane są tylko podstawowe wartości, które posłużą później do właściwego obliczenia oświetlenia. Najbardziej kosztowne operacje związane z oświetleniem są zatem zawsze wykonywane tyle razy, ile mamy pikseli w buforze klatki (w uproszczeniu), a więc niezależnie od faktycznej złożoności geometrii. Geometria Geometria Geometria G-Buffer Shading Framebuffer Geometria Geometria 3
4 Technika nie jest nowością. Idea pochodzi już z początku lat 90, ale popularność w grach zyskała dopiero w ciągu ostatnich lat. Saito, Takahashi. Comprehensible rendering of 3D shapes Screen z UE3 prezentuje technikę Deferred Shading ze 123 dynamicznymi światłami (rok 2011) Źródło obrazu: Epic Games, UDK 4
5 Drugi etap nie musi dotyczyć wyłącznie oświetlenia. Można odroczyć też wiele innych operacji aż do momentu gdy będziemy mieli wyrenderowaną całą źródłową geometrię. Proces dwuetapowy Geometry pass Wejście: geometria sceny Wyjście: G-Buffer (Geometry buffer) Zbiór wartości które przydadzą się do obliczenia oświetlenia Multiple render targets (MRT) Lighting pass (deferred pass) Wejście: G-Buffer Wyjście: gotowa zawartość klatki Geometria Geometry pass G-Buffer Lighting pass Frame buffer 5
6 G-Buffer Realizuje się go jako FBO posiadający kilka color attachments Zwykle dużo obszerniejszy niż zwyczajny framebuffer przechowujący gotową klatkę Zawartość G-Buffera może być dowolna. Należy zastanowić się które wartości można efektywnie wyliczyć już w pierwszym przebiegu renderowania. Konieczne rozsądne zarządzanie pamięcią Przykładowe składowe: Położenie w przestrzeni świata Zakładając że źródła światła też są w niej określone Wektor normalny Albedo (kolor pochodzący z materiału, tekstury...) Mnożnik specular, shininess Komponent emissive Wektor ruchu (np. dla motion blur) Odległość (np. dla depth of field) Współrzędne tekstury Współczynnik przysłonięcia słońca... 6
7 Color attachments podłączone do jednego FBO wcale nie muszą mieć wszystkie tego samego formatu. G-Buffer Warto zastanowić się nad efektywnym zaplanowaniem przydziału pamięci Różne formaty tekstur Łączenie ze sobą składowych w obrębie jednej tekstury Przykład Killzone 2: Wymiary tekstur również nie muszą być identyczne, ale wówczas renderowanie będzie się odbywało tylko do wymiarów najmniejszej z nich zwykle nie jest to więc oczekiwany rezultat. Źródło obrazu: Sony, Guerilla Games 7
8 Scena Geometry pass FBO Pierwszym krokiem jest wyrenderowanie geometrii sceny z użyciem shadera, który zapisze do odpowiednich attachments takie wartości, które później będą niezbędne do obliczenia oświetlenia. Depth/stencil attachment Pozycja G-Buffer Wektory normalne Albedo... Na przykład jest to pozycja w przestrzeni świata, wektor normalny, albedo (kolor). Bufor głębokości również może być częścią G-Buffera jeśli będziemy potrzebować jego zawartości w kolejnym kroku. 8
9 Scena Geometry pass FBO Poszczególne attachments tworzące G-Buffer są następnie podłączane jako tekstury do kolejnego etapu. Depth/stencil attachment Pozycja G-Buffer Ten etap odbywa się w przestrzeni ekranu, technicznie jest więc etapem post processingu. Shader na tym etapie oblicza oświetlenie dla każdego fragmentu, a więc dla każdego piksela ekranu, na podstawie danych odczytanych z G-Buffera. Wektory normalne Albedo... Full-screen quad Lighting pass Default framebuffer 9
10 Scena Geometry pass FBO Dodatkowo można dokonać blittingu bufora głębokości otrzymanego w pierwszym przebiegu. Depth/stencil attachment Pozycja Albedo... Full-screen quad (framebuffer blitting) G-Buffer W ten sposób możliwe będzie użycie rezultatu lighting pass z testem głębokości tak, jakby powstał podczas zwyczajnego forward shadingu. Wektory normalne Lighting pass Default framebuffer 10
11 Scena Geometry pass FBO Bufor klatki można wtedy używać do kolejnych etapów renderowania, także takich z użyciem forward shadingu. G-Buffer Full-screen quad Lighting pass (framebuffer blitting) W ten sposób można dołożyć kolejne obiekty, np. z przezroczystością lub takie które nie biorą udziału w oświetleniu, a test głębokości zadziała poprawnie. Depth/stencil attachment Default framebuffer Dodatkowa geometria Additional forward pass Default framebuffer 11
12 Pozycja XYZ we współrzędnych świata dla każdego z fragmentów, zapisana jako RGB. Pozycja będzie potrzebna do określenia kierunku padania światła ze źródeł, a także do określenia odległości fragmentu od świateł. Można ją pominąć, wykorzystując głębokość i położenie w screen space. Koniecznie należy tutaj użyć tekstury zmiennoprzecinkowej. Współrzędne rozciągają się przecież poza zakres ! Można rozważyć przeskalowanie i przesunięcie wartości dla osiągnięcia najlepszej precyzji. 12
13 XYZ wektorów normalnych we współrzędnych świata. Analogicznie do pozycji, wartości zapisuje się odpowiednio jako składowe R, G i B. Warto zwrócić uwagę że wektory normalne zawsze przyjmują wartości z zakresu Można zatem przeskalować je by zmieściły się w zakresie i użyć tekstury RGB8, jednak wówczas precyzja może być zbyt mała. Wektory normalne mogą pochodzić z normal mappingu. 13
14 Albedo czyli kolor który później zostanie użyty jako kolor materiału dla komponentu diffuse. W naszym przypadku jest to kolor odczytany z tekstur na podstawie wysokości terenu i jego nachylenia. Można rozważyć odroczenie odczytów z tekstur, do G-Buffera zapisując jedynie współrzędne UV, jednak wówczas nie będzie możliwe wygodne korzystanie z mimappingu oraz filtracji anizotropowej. 14
15 Obliczenie oświetlenia korzystając ze składowych G-Buffera oraz listy źródeł światła. Dodatkowo na tym etapie została obliczona mgła na podstawie odległości fragmentów od kamery. Rezultat zawiera liniowe wartości wykraczające poza zakres , przedstawiony jest tutaj bez tone mappingu. 15
16 Rezultat po dodaniu skydome a i po zastosowaniu mapowania tonów. Skydome został dodany za pomocą forward passa, korzystając z bufora głębokości powstałego w geometry pass. 16
17 Istotną kwestią jest dobór formatów tekstur Dane o pozycji wymagają dużej precyzji i formatu zmiennoprzecinkowego RGB16F zwykle nie jest wystarczający! Problem wynika ze zbyt małej precyzji formatu tekstury, gdzie każdy z komponentów XYZ pozycji przechowywany jest za pomocą liczby 16-bitowej. Kłopot pojawia się gdy takie wartości o stosunkowo małej rozdzielczości biorą udział w rozwiązywaniu modelu oświetlenia. Wskazane jest używanie 32 bitów na każdy z komponentów. 17
18 Deferred shading ma przede wszystkim jeden cel Należy pamiętać, że w niektórych przypadkach forward shading może okazać się szybszy! Deferred shading jest przeznaczony do sytuacji gdy mamy bardzo złożoną geometrię i dużą liczbę dynamicznych źródeł światła. Zredukować zależność szybkości renderowania od liczby źródeł światła i złożoności sceny W klasycznym deferred shadingu, gdzie głównym kosztem jest oświetlenie, czas przygotowania klatki zależy głównie od liczby pikseli na ekranie 1: Geometry pass 2: Lighting pass Cała geometria Tylko full-screen quad Wiele fragmentów Tyle fragmentów ile pikseli Zwykle mało kosztowny Fragment Shader Właściwie, kosztowne oświetlenie we Fragment Shaderze 18
19 Light culling Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Niektóre źródła światła celowo dotyczą całego ekranu, np. słońce w środowiskach otwartych. Wówczas jak najbardziej właściwym jest uwzględnianie tego źródła światła przy cieniowaniu każdego piksela. 19
20 Light culling Renderowanie brył światła powoduje wygenerowanie fragmentów związanych z tą częścią ekranu, na którą światło ma faktyczny wpływ. Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Light volumes Ograniczenie zasięgu wpływu poszczególnych źródeł światła Oddzielne przebiegi dla źródeł światła Oddzielne żądania renderowania Forward-rendering z geometrią która przybliża kształt światła Inne podejście Full-screen quad oraz stencil buffer dla maskowania Addytywny blending uzyskanych rezultatów = 20
21 Wpływ świateł jest kolejno dodawany z użyciem addytywnego blendingu. Dzięki zastosowaniu light volumes, każdorazowo modyfikowana jest wyłącznie część klatki. Źródło obrazu: Rockstar Games 21
22 Wpływ świateł jest kolejno dodawany z użyciem addytywnego blendingu. Dzięki zastosowaniu light volumes, każdorazowo modyfikowana jest wyłącznie część klatki. Źródło obrazu: Rockstar Games 22
23 Wpływ świateł jest kolejno dodawany z użyciem addytywnego blendingu. Dzięki zastosowaniu light volumes, każdorazowo modyfikowana jest wyłącznie część klatki. Źródło obrazu: Rockstar Games 23
24 Wpływ świateł jest kolejno dodawany z użyciem addytywnego blendingu. Dzięki zastosowaniu light volumes, każdorazowo modyfikowana jest wyłącznie część klatki. Źródło obrazu: Rockstar Games 24
25 Light culling Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Light volumes Promień kuli można wyznaczyć z równania tłumienia światła wraz z odległością (attenuation). a (d )= Bryła przypominająca zasięg światła 1 2 k c +k l d +k q d Kule jako aproksymacja zasięgu point lights rozsianych na scenie. Źródło obrazu: 25
26 Light culling Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Light volumes Promień kuli można wyznaczyć z równania tłumienia światła wraz z odległością (attenuation). a (d )= Bryła przypominająca zasięg światła 1 2 k c +k l d +k q d Kule jako aproksymacja zasięgu point lights rozsianych na scenie. Źródło obrazu: 26
27 Light culling Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Light volumes Renderowanie kuli jest raczej niepotrzebnym przerostem formy nad treścią, wprowadza zbyt wiele wierzchołków. Axis-Aligned Bounding Box (AABB) Efektywniejszym rozwiązaniem jest posłużenie się przybliżoną bryłą lub kształtem w przestrzeni ekranu. Należy pamiętać o zasięgu komponentu specular który może być znacznie większy. 27
28 Light culling Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Light volumes Axis-Aligned Bounding Box (AABB) Podstawowy problem: dużo zachodzących na siebie obszarów, a więc niepotrzebnie zwielokrotnione odczyty z G-Buffera - dla każdego żądania renderowania, dla każdego fragmentu osobno. 28
29 Light culling Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Light volumes Oriented Bounding Box (OBB) Aby lepiej oddać kształt np. światła stożkowego (spotlight) o bardzo wąskim kącie świecenia i nie angażować niepotrzebnie dużo zbędnych pikseli, można posłużyć się OBB. 29
30 Light culling Duża liczba żądań renderowania też jest istotnym problemem który można próbować zredukować. Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Light volumes: grupowanie źródeł światła Utworzenie pojedynczego light volume dla kilku znajdujących się w pobliżu źródeł światła często bywa bardziej efektywne (mniej żądań renderowania) 2. Render call (2 światła) 1. Render call (3 światła) 30
31 Light culling Źródła światła mają określony zasięg Branie pod uwagę każdego źródła światła dla każdego piksela ekranu jest nieefektywne Tiled shading Podział przestrzeni ekranu na kafelki (ang. tiles) Osobna lista świateł dla każdego kafelka Redukuje problem wielokrotnego dostępu do G-Buffera przy renderowaniu light volumes Wizualizacja liczby źródeł światła dla każdego z kafelków. Im jaśniejszy kolor kafelka, tym więcej źródeł światła jest branych pod uwagę. Źródło obrazu: Leif Erkenbrach, 31
32 Technika deferred shading posiada istotne wady Kłopoty z antialiasingiem Rezultat geometry pass można zapisać w buforze z multisamplingiem, ale wywołanie go przed lighting passem spowoduje uzyskanie niepoprawnych wartości! Np. pozycja ulegnie uśrednieniu na granicach obiektów Konieczne jest ręczne odczytywanie wielu próbek z bufora podczas wykonywania lighting pass Istnieją różne adaptacyjne techniki pozwalające zoptymalizować takie podejście, dokonując odczytywania wielu próbek wyłącznie dla krawędzi obiektów Brak obsługi przezroczystości Zawartość G-Buffera dotyczy tylko geometrii która jest najbliższa kamery Przezroczyste obiekty zwykle dodaje się w oddzielnym passie Potrzeba dużej ilości pamięci do przechowania G-Buffera Jeden shader dla wszystkich renderowanych obiektów 32
33 LIGHTING Rozwinięcie idei deferred shading Nazywane często Light pre-pass Odroczone renderowanie pełnoekranowej light mapy, która później jest używana do oświetlenia geometrii Trzy przebiegi Geometry pass Wejście: Geometria Wyjście: G-Buffer Lighting pass Wejście: G-Buffer Wyjście: Full-screen light map Final pass Wejście: Geometria + Full-screen light map Wyjście: Gotowa klatka 33
34 LIGHTING Przykładowa pełnoekranowa mapa światła. Źródło obrazu: Sony, Guerilla Games 34
35 LIGHTING Scena Geometry pass FBO G-Buffer Full-screen quad Lighting pass Komponenty światła można traktować osobno. FBO Diffuse map Specular map 35
36 LIGHTING Scena Geometry pass FBO G-Buffer Full-screen quad Lighting pass FBO Full-screen light map Podczas ostatniego przebiegu jest dostęp do pełnej informacji o geometrii sceny, możliwy jest więc łatwiejszy antialiasing. Scena Final pass Default framebuffer 36
37 GAME LOOP Tym co odróżnia sposób działania gry komputerowej od aplikacji użytkowej jest schemat cyklu prowadzenia obliczeń. O ile najczęściej zadaniem aplikacji użytkowej jest generowanie odpowiedzi na żądania ze strony użytkownika, o tyle gra nawet jeśli te żądania nie nadchodzą, dokonuje ciągłej symulacji świata rozgrywki. Podstawą architektury aplikacji grafiki czasu rzeczywistego jest więc nieskończona pętla główna. 37
38 GAME LOOP Nieskończona pętla Warunkiem stopu jest wystąpienie żądania zakończenia działania programu Postać podstawowej wersji pętli: while (użytkownik nie chce wyjść) { sprawdź urządzenia wejścia; wykonaj zadania AI; przemieść przeciwników; sprawdź kolizje; renderuj świat; odtwórz dźwięki; prześlij dane do serwera;... } 38
39 GAME LOOP W dalszych rozważaniach przyjmiemy uproszczenie, że podstawowy game loop ma postać: while (użytkownik nie chce wyjść) { aktualizuj stan gry; renderuj świat gry; } Zatem zdefiniujmy następujące określenia: Aktualizacja stanu gry Wszystkie operacje wpływające na stan świata, wynik rozgrywki, pozycję obiektów, obsługa wejścia i zdarzeń,... Renderowanie świata gry Wybór obiektów do renderowania, wyznaczenie ich macierzy przekształceń, zlecenie renderowania karcie graficznej, zamiana buforów,... 39
40 WYŚWIETLANIE KLATEK Współczesne wyświetlacze komputerowe traktują obraz jako raster Wyświetlacze działają ze stałą częstotliwością odświeżania (dawniej odchylania pionowego) Najczęściej spotykaną częstotliwością odświeżania jest obecnie 60Hz Dla obrazu stereoskopowego, będzie to dwa razy więcej Progresywne wyświetlanie klatki: 1/60s Źródło obrazu: 40
41 WYŚWIETLANIE KLATEK Karta graficzna odpowiada za przygotowanie zawartości klatki, przechowywanie jej i wysłanie do monitora gdy ten będzie gotowy wyświetlić kolejną klatkę Obraz do wyświetlenia przechowywany jest w buforze klatki Proces generowania zawartości bufora klatki i proces przesyłania jej do wyświetlacza są niezależne Program Renderowanie Bufor klatki Wyświetlanie KARTA GRAFICZNA 41
42 WYŚWIETLANIE KLATEK Komponowanie zawartości bufora klatki nie jest natychmiastowe. W grafice czasu rzeczywistego elementy sceny renderowane są jeden po drugim. Zatem dopóki nie zakończy się renderowanie wszystkich elementów sceny, bufor klatki może zawierać nieukończony obraz. Aby uniknąć migotania obrazu podczas jego przerysowywania gdy występuje konieczność jego akutalizacji, stosuje się technikę podwójnego buforowania (ang. double buffering) Mamy wówczas dwa bufory klatki: Bufor "przedni" (ang. front buffer) Bufor "tylny" (ang. back buffer) Jest wyświetlany Jest aktualizowany Gdy zakończy się aktualizacja back buffera, zamieniane są one miejscami (ang. buffer swap) Użycie podwójnego buforowania rozwiązuje ten problem. Dopóki nowa klatka nie zostanie ukończona, wyświetlana będzie poprzednia klatka. Front Front Back 42
43 WYŚWIETLANIE KLATEK Komponowanie zawartości bufora klatki nie jest natychmiastowe. W grafice czasu rzeczywistego elementy sceny renderowane są jeden po drugim. Zatem dopóki nie zakończy się renderowanie wszystkich elementów sceny, bufor klatki może zawierać nieukończony obraz. Aby uniknąć migotania obrazu podczas jego przerysowywania gdy występuje konieczność jego akutalizacji, stosuje się technikę podwójnego buforowania (ang. double buffering) Mamy wówczas dwa bufory klatki: Bufor "przedni" (ang. front buffer) Bufor "tylny" (ang. back buffer) Jest wyświetlany Jest aktualizowany Gdy zakończy się aktualizacja back buffera, zamieniane są one miejscami (ang. buffer swap) Użycie podwójnego buforowania rozwiązuje ten problem. Dopóki nowa klatka nie zostanie ukończona, wyświetlana będzie poprzednia klatka. Back Front Front 43
44 WYŚWIETLANIE KLATEK Dla zachowania wrażenia płynności wyświetlanego ruchomego obrazu, należy upewnić się że kolejne klatki animacji będą docierać do monitora, gdy ten będzie gotowy je wyświetlić W tym celu stosuje się tzw. synchronizację pionową (ang. vertical synchronisation / VSync) Sterownik karty graficznej lub program czeka z zamianą buforów, aż monitor będzie gotowy wyświetlić kolejną klatkę W innym wypadku pomimo sprzętowej możliwości wygenerowania nawet większej liczby klatek na sekundę niż wyświetla monitor, obraz nie będzie płynny Artefakt nazywany tearing, wyświetlany obraz składający się z więcej niż jednej klatki 44
45 WYŚWIETLANIE czas renderowania jednej klatki KLATEK Dla wyświetlaczy oferujących wyższą częstotliwość odświeżania ekranu niż 60Hz, czas cyklu będzie krótszy niż 1/60s. cykl odświeżenia obrazu na wyświetlaczu VSync Off swap interval = 0 VSync On swap interval = 1 Procesor graficzny czekając na gotowość wyświetlacza nie musi wykonywać operacji, podczas gdy bez użycia synchronizacji od razu zaczynałby renderować kolejną klatkę. max FPS VSync On swap interval = 2 (sleep) (sleep) (sleep) 1/60s (sleep) 60 FPS (sleep) 30 FPS 1/60s czas Użycie synchronizacji pionowej może więc też prowadzić do zmniejszenia zużycia energii. Możliwość ustawienia interwału w GLFW: glfwswapinterval(interval); 45
46 WYŚWIETLANIE KLATEK Synchronizacja pionowa wyłączona Synchronizacja pionowa włączona Artefakt tego rodzaju nazywa się często ang. słowem tearing. 46
47 WYŚWIETLANIE KLATEK Technologia NVIDIA G-Sync Synchronizacja wyświetlacza z kartą graficzną czyli podejście odwrotne Wyświetlacz ma adaptacyjną częstotliwość odświeżania, dostosowującą się do aktualnej liczby klatek na sekundę Zakres Hz, zależnie od sprzętu Podejście wbrew pozorom nie jest nowe, podobne rozwiązanie Adaptive Sync jest częścią standardu DisplayPort 1.2a zaimplementowane choćby przez AMD w ich FreeSync; różnice: G-Sync duplikuje klatki gdy ich częstotliwość poniżej minimum G-Sync zapobiega nadpisywaniu klatek Źródło obrazu: NVIDIA 47
48 POMIAR SZYBKOŚCI DZIAŁANIA Cząstkowy pomiar czasu (np. rysowania jednego obiektu) jest niemiarodajny double t0 = glfwgettime(); gldrawarrays(...); double t = glfwgettime() - t0; Wpływ na szybkość renderowania ma bardzo wiele czynników. Brak liniowej zależności czasu renderowania od złożoności sceny: Renderowanie wielokątów nie jest dwa razy szybsze niż renderowanie kolejkowanie, buforowanie, etc. w karcie graficznej Pomiar czasu wykonania linijki odpowiadającej za żądanie renderowania najczęściej da czas zbliżony do zera Wartościowy jest pomiar czasu pomiędzy kolejnymi momentami zamiany buforów (buffer swap) Sumaryczny czas tworzenia całej klatki aktualizuj stan gry; renderuj świat gry; t0 = glfwgettime(); double t = t0 prevt0; prevt0 = t0; Więcej na ten temat: Niewiele mówi o faktycznym czasie renderowania sceny jeśli jest włączona synchronizacja pionowa 48
49 POMIAR SZYBKOŚCI DZIAŁANIA Liczba klatek na sekundę (ang. frames per second, FPS) Miara nieliniowa Należy odróżnić czas renderowania klatki od czasu trwania aktualizacji stanu. Użytkownik widzi tylko czas renderowania, ale podczas optymalizacji należy mieć na uwadze faktyczne przyczyny trwania cyklu przygotowania kolejnej klatki animacji. Czas klatki (ang. frame time) Spadek liczby FPS z 900 do 450 jest tym samym, co z 60 do 56.25! Miara liniowa Pozostałe składowe czasu przygotowania klatki Czas aktualizacji stanu Opóźnienie wynikające z działania urządzeń wejścia/wyjścia Więcej na ten temat:
50 POMIAR SZYBKOŚCI DZIAŁANIA Użycie dedykowanych narzędzi Z racji buforowania instrukcji, zwykle okazuje się że najwięcej czasu zajmuje wykonywanie buffer swap. Nie oznacza to, że sama zamiana buforów jest wąskim gardłem! W tym czasie wykonywane są wszystkie dotychczas zbuforowane żądania renderowania. Debugowanie Analiza stanu serwera OpenGL Analiza zawartości pamięci karty graficznej Profiling Znajdowanie wąskich gardeł Czas wykonania funkcji z API OpenGL nie mówi o faktycznym koszcie danych operacji! Dostępne narzędzia: NVIDIA Nsight Tylko GPU NVIDIA AMD CodeXL Dowolne GPU (jeśli chodzi o debugowanie OpenGL) Dawniej gdebugger RenderDoc, GLIntercept, glsldevil, Apitrace,... 50
51 GAME LOOP IMPLEMENTACJE Za przykład do analizy posłuży nam prosty, obracający się sześcian. Kod przykładu jest uproszczony i celowo korzysta z archaicznego immediate mode. Kody źródłowe dostępne na: 51
52 GAME LOOP Najprostsza forma: IMPLEMENTACJE while (użytkownik nie chce wyjść) { aktualizuj stan gry; renderuj świat gry; } Podstawowy game loop Aktualizacja występuje ze stałym krokiem. Absolutnie nie jest to podejście zalecane! Zalety: Prostota (?) Problemy: Szybkość rozgrywki zależna od wydajności sprzętu Szybkość rozgrywki może się zmieniać w trakcie gry 52
53 GAME LOOP IMPLEMENTACJE Stała szybkość gry Podejście może być korzystne w przypadku gier na urządzenia mobilne. Może bowiem redukować zużycie energii. Określamy, co ile czasu ma wykonać się aktualizacja stanu gry. Każda aktualizacja stanu zawsze oznacza następujące po nim renderowanie obrazu. Zalety: Stałe tempo gry (o ile wystarczający sprzęt) Oszczędność baterii Problemy: Sprzęt nie daje rady osiągnąć tyle FPS => gra zwalnia. Wydajny sprzęt => i tak mamy tyle FPS, co update'ów. 53
54 GAME LOOP IMPLEMENTACJE Szybkość gry uzależniona od FPS Pozwalamy na renderowanie tak szybko, jak to jest możliwe. Każdemu renderowaniu towarzyszy aktualizacja stanu ze zmiennym krokiem. Podejście na pierwszy rzut oka bardzo dobre, ale ma istotne słabe strony. Zalety: Maksymalna liczba FPS Problemy: Nieprzewidywalność rozgrywki Konieczność aktualizacji zależnej od zmiennego czynnika 54
55 GAME LOOP IMPLEMENTACJE Stała szybkość gry i maksimum FPS Podejście w podstawowej postaci prowadzi do marnowania mocy obliczeniowej. Rozwinięcie koncepcji stałego kroku aktualizacji Jeśli mamy opóźnienie, to wykonujemy dodatkową aktualizację ze stałym krokiem żeby nadrobić stratę. Zalety: Jeśli mamy jeszcze czas do zaplanowanej, następnej aktualizacji, to renderujemy dodatkową klatkę. Rozwiązuje problem wpływu długiego czasu renderowania na częstotliwość aktualizacji. Eliminuje zbędne oczekiwanie (czasem to minus). Problemy: Jeśli mamy odpowiednio wydajny sprzęt, renderujemy wiele takich samych klatek. 55
56 GAME LOOP IMPLEMENTACJE Stała szybkość gry i maksimum FPS + interpolacja Aby nie renderować identycznych klatek pomiędzy aktualizacjami, można dokonać interpolacji. Wprowadza opóźnienie o wielkości jednego cyklu. Innym, pokrewnym podejściem jest predykcja. Szczególnie dla wartości kontrolowanych przez gracza może wywołać niepożądane efekty. Podejście zalecane dla jednowątkowej architektury. Zalety: Stały krok aktualizacji, maksimum FPS. Każda klatka jest inna. Problemy: Nieznaczne opóźnienie. 56
57 GAME LOOP IMPLEMENTACJE Zrównoleglony game loop Rozdzielenie aktualizacji i renderowania na dwa osobne wątki, które mogą być wykonywane równolegle przez np. procesor wielordzeniowy. Konieczne jest korzystanie z interpolacji bądź predykcji. Schemat w przykładzie jest tutaj uproszczony. Wątków może być znacznie więcej. Zalety: Współbieżne renderowanie i aktualizacja, niezależne od siebie. Stały krok aktualizacji i maksymalna liczba FPS. Problemy: Konieczność uważnego planowania architektury silnika. 57
58 GAME LOOP IMPLEMENTACJE Wielowątkowość w grach możliwości i problemy Nie warto uciekać od wielowątkowości w nowoczesnych silnikach. Współczesny sprzęt daje ogromne możliwości. Należy je wykorzystać. Jeden kontekst OpenGL może w danym momencie być używany tylko przez jeden wątek. Komunikacja CPU -> karta graficzna nie może być traktowana jako możliwa do zrównoleglenia. Można stworzyć kilka kontekstów, które współdzielą dane nie jest to jednak podejście wydajne ani zalecane. Inne możliwości wykorzystania wielowątkowości: Odczyt tekstur i zasobów z dysku odbywający się "w tle". Dysk nie jest urządzeniem pozwalającym na odczyt równoległy (z wyłączeniem macierzy dyskowych)! Wydajna, zrównoleglona aktualizacja stanu: Obliczenia AI podzielone na kilka wątków. Symulacja fizyki. Systemy cząsteczkowe. Odtwarzanie dźwięku. 58
59 OpenGL Deferred shading. Pętla główna i jej implementacje. Debugowanie i analiza wydajności. Algorytmy grafiki komputerowej czasu rzeczywistego, Informatyka S2
Bartosz Bazyluk GAME LOOP Podstawowy element silnika gry komputerowej. Programowanie Gier Komputerowych, Informatyka S1, III Rok
Bartosz Bazyluk GAME LOOP Podstawowy element silnika gry komputerowej Programowanie Gier Komputerowych, Informatyka S1, III Rok INFORMACJE ORGANIZACYJNE: Prezentacje z wykładów, materiały, informacje można
Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38
Wykład 5 Potok Renderowania Oświetlenie mgr inż. 1/38 Podejście śledzenia promieni (ang. ray tracing) stosuje się w grafice realistycznej. Śledzone są promienie przechodzące przez piksele obrazu wynikowego
RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski
RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski Plan wykładu Opóźnione cieniowanie wprowadzenie Koszt obliczeniowy cieniowania Cieniowanie jedno- i wieloprzebiegowe Cieniowanie opóźnione Schemat opóźnionego
Plan wykładu. Akcelerator 3D Potok graficzny
Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D
Julia 4D - raytracing
i przykładowa implementacja w asemblerze Politechnika Śląska Instytut Informatyki 27 sierpnia 2009 A teraz... 1 Fraktale Julia Przykłady Wstęp teoretyczny Rendering za pomocą śledzenia promieni 2 Implementacja
Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe
Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe Czym są tekstury? Tekstury są tablicowymi strukturami danych o wymiarze od 1 do 3, których elementami są tzw. teksele.
Wyświetlanie obrazu Techniki wyświetlania obrazu i ich zastosowanie w grach.
Wyświetlanie obrazu Techniki wyświetlania obrazu i ich zastosowanie w grach. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok, 2018 r. WYŚWIETLANIE OBRAZU Współczesne wyświetlacze
Wyświetlanie obrazu Bufor klatki, synchronizacja pionowa, pętla główna gry.
Wyświetlanie obrazu Bufor klatki, synchronizacja pionowa, pętla główna gry. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka S1, II Rok, 2018 r. WYŚWIETLACZE WEKTOROWE Korzystając z możliwości
Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30
Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego
Karty graficzne możemy podzielić na:
KARTY GRAFICZNE Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest odbiór i przetwarzanie otrzymywanych od komputera
GRK 4. dr Wojciech Palubicki
GRK 4 dr Wojciech Palubicki Uproszczony Potok Graficzny (Rendering) Model Matrix View Matrix Projection Matrix Viewport Transform Object Space World Space View Space Clip Space Screen Space Projection
Bartosz Bazyluk WPROWADZENIE Wstęp do dwuwymiarowej grafiki komputerowej.
WPROWADZENIE Wstęp do dwuwymiarowej grafiki komputerowej http://bazyluk.net/dydaktyka Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok O MNIE mgr inż. Pokój 322/WI2 bbazyluk@wi.zut.edu.pl
Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych
Synteza i obróbka obrazu Tekstury Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Tekstura Tekstura (texture) obraz rastrowy (mapa bitowa, bitmap) nakładany na
Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok
SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy stworzenie grafiki
Bartosz Bazyluk WYŚWIETLANIE OBRAZU Techniki wyświetlania obrazu komputerowego. Grafika Komputerowa, Informatyka, I Rok
Techniki wyświetlania obrazu komputerowego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok Techniki wyświetlania obrazu Wyświetlacze CRT Wyświetlacze LCD Wyświetlacze PDP Wyświetlacze
RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski
RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski Plan wykładu Programy geometrii wprowadzenie Miejsce w potoku graficznym Wejścia i wyjścia programów geometrii Wierzchołki, prymitywy, ich nowe rodzaje
Animowana grafika 3D. Opracowanie: J. Kęsik.
Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Powierzchnia obiektu 3D jest renderowana jako czarna jeżeli nie jest oświetlana żadnym światłem (wyjątkiem są obiekty samoświecące) Oświetlenie
Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23
Wykład 6 mgr inż. 1/23 jest to technika w grafice komputerowej, której celem jest zwiększenie szczegółowości renderowanych powierzchni za pomocą tekstur. jest to pewna funkcja (najczęściej w formie bitmapy)
Grafika Komputerowa. Wykład 8. Przygotowanie do egzaminu. mgr inż. Michał Chwesiuk 1/32
Grafika Komputerowa Wykład 8 Przygotowanie do egzaminu mgr inż. 1/32 Obraz Grafika Rastrowa Grafika Wektorowa Obraz przechowywany w pamięci w postaci próbki opisane za pomocą macierzy pikseli Każdy piksel
Gry komputerowe: efekty specjalne cz. 2
1/43 Gry komputerowe: efekty specjalne cz. 2 Przygotowała: Anna Tomaszewska 2/43 Mapowanie środowiska - definicja aproksymacje odbić na powierzchnie prosto- i krzywoliniowej," oświetlanie sceny." obserwator
Grafika komputerowa i wizualizacja
Grafika komputerowa i wizualizacja Radosław Mantiuk ( rmantiuk@wi.zut.edu.pl, p. 315 WI2) http://rmantiuk.zut.edu.pl Katedra Systemów Multimedialnych Wydział Informatyki, Zachodniopomorski Uniwersytet
Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest
KARTA GRAFICZNA Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest odbiór i przetwarzanie otrzymywanych od komputera
Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie
Model oświetlenia Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Obliczenie koloru powierzchni (ang. Lighting) Światło biegnie od źródła światła, odbija
Techniki animacji komputerowej
Techniki animacji komputerowej 1 Animacja filmowa Pojęcie animacji pochodzi od ożywiania i ruchu. Animować oznacza dawać czemuś życie. Słowem animacja określa się czasami film animowany jako taki. Animacja
Architektura Procesorów Graficznych
Architektura Procesorów Graficznych Referat: Rendering 3D: potok 3D, możliwości wsparcia sprzętowego, możliwości przyspieszenia obliczeń. Grupa wyrównawcza Cezary Sosnowski 1. Renderowanie Renderowanie
OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska
OpenGL oświetlenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera
GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych
GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy
Grafika Komputerowa Wykład 3. Wyświetlanie. mgr inż. Michał Chwesiuk 1/24
Wykład 3 Wyświetlanie mgr inż. 1/24 Techniki wyświetlania obrazu Obraz w grafice komputerowej jest to zbiór informacji o zawartości obrazu w pamięci komputera. Należy dokonać rekonstrukcji obrazu w taki
Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.
Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy
Oświetlenie obiektów 3D
Synteza i obróbka obrazu Oświetlenie obiektów 3D Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Rasteryzacja Spłaszczony po rzutowaniu obraz siatek wielokątowych
Organizacja pamięci w procesorach graficznych
Organizacja pamięci w procesorach graficznych Pamięć w GPU przechowuje dane dla procesora graficznego, służące do wyświetlaniu obrazu na ekran. Pamięć przechowuje m.in. dane wektorów, pikseli, tekstury
Laboratorium Komputerowe Systemy Pomiarowe
Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Programowanie wielofunkcyjnej karty pomiarowej w VEE Data wykonania: 15.05.08 Data oddania: 29.05.08 Celem ćwiczenia była
Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek
Implementacja sieci neuronowych na karcie graficznej Waldemar Pawlaszek Motywacja Czyli po co to wszystko? Motywacja Procesor graficzny GPU (Graphics Processing Unit) Wydajność Elastyczność i precyzja
kod produktu: 1DD114 Monitor ViewSonic XG ,72 zł 850,99 zł netto
kod produktu: 1DD114 Monitor ViewSonic XG2402 1 046,72 zł 850,99 zł netto OPIS Gamingowy monitor XG2402 z odświeżaniem 144Hz i 1ms czasem reakcji wspierający standard FreeSync. Czyli wszystko to, co niezbędne
Podstawy grafiki komputerowej
Podstawy grafiki komputerowej Krzysztof Gracki K.Gracki@ii.pw.edu.pl tel. (22) 6605031 Instytut Informatyki Politechniki Warszawskiej 2 Sprawy organizacyjne Krzysztof Gracki k.gracki@ii.pw.edu.pl tel.
Wykład 4. Rendering (1) Informacje podstawowe
Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie
a. Czym różni się sposób liczenia odbicia zwierciadlanego zaproponowany przez Phonga od zaproponowanego przez Blinna?
1. Oświetlenie lokalne a. Czym różni się sposób liczenia odbicia zwierciadlanego zaproponowany przez Phonga od zaproponowanego przez Blinna? b. Co reprezentują argumenty i wartość funkcji BRDF? Na czym
Filtrowanie tekstur. Kinga Laurowska
Filtrowanie tekstur Kinga Laurowska Wprowadzenie Filtrowanie tekstur (inaczej wygładzanie) technika polegająca na 'rozmywaniu' sąsiadujących ze sobą tekseli (pikseli tekstury). Istnieje wiele metod filtrowania,
Zaawansowana Grafika Komputerowa
Zaawansowana Komputerowa Michał Chwesiuk Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Wydział Informatyki 28 Luty 2017 Michał Chwesiuk Zaawansowana Komputerowa 28 Luty 2017 1/11 O mnie inż.
Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami
Larrabee GPGPU Zastosowanie, wydajność i porównanie z innymi układami Larrabee a inne GPU Różnią się w trzech podstawowych aspektach: Larrabee a inne GPU Różnią się w trzech podstawowych aspektach: Larrabee
GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie
GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12 617 46
Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)
Zbiór trójwymiarowych danych wej$ciowych wykorzystywanych do wygenerowania obrazu wyj$ciowego 2D. Cieniowanie (ang. Shading) Rados"aw Mantiuk Wydzia" Informatyki Zachodniopomorski Uniwersytet Technologiczny
Zjawisko widzenia obrazów
Zjawisko widzenia obrazów emisja światła przez źródła światła interakcja światła z powierzchnią absorbcja światła przez sensor Źródła światła światło energia elektromagnetyczna podróżująca w przestrzeni
PRZEDSTAWIAMY TECHNOLOGIĘ AMD FREESYNC
PRZEDSTAWIAMY TECHNOLOGIĘ AMD FREESYNC 1H2015 CELE SZKOLENIA Po ukończeniu tego szkolenia: Będziesz wiedzieć, czym jest technologia AMD FreeSync oraz jakie problemy rozwiązuje z punktu widzenia graczy
Gry Komputerowe - laboratorium 0
Gry Komputerowe - laboratorium 0 Michał Chwesiuk Zachodniopomorski Uniwersytet Technologiczny w ie Wydział Informatyki 28 Luty 2018 Michał Chwesiuk Laboratorium 0 28 Luty 2018 1/ 18 O mnie mgr inż. Michał
Różne rodzaje efektów
Title Subtitle Wstęp Wykorzystywanie możliwości GPU Głównie gry Także nowe wersje programów graficznych, video (Adobe Photoshop, Ahead Nero) Będę głównie opowiadał o zastosowaniach w grach (chociaż można
Architektura systemów komputerowych Ćwiczenie 3
Architektura systemów komputerowych Ćwiczenie 3 Komputer widziany oczami użytkownika Karta graficzna DirectX technologie łączenia kart 1 dr Artur Bartoszewski - Architektura systemów komputerowych - ćwiczenia
Programowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor
Plan wykładu 1. Pojęcie podsystemu graficznego i karty graficznej 2. Typy kart graficznych 3. Budowa karty graficznej: procesor graficzny (GPU), pamięć podręczna RAM, konwerter cyfrowo-analogowy (DAC),
GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak
Modelowanie i wstęp do druku 3D Wykład 1 Robert Banasiak Od modelu 3D do wydruku 3D Typowa droga...czasem wyboista... Pomysł!! Modeler 3D Przygotowanie modelu do druku Konfiguracja Programu do drukowania
OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23
OpenGL : mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/23 Folder z plikami zewnętrznymi (resources) Po odpaleniu przykładowego projektu, nie uruchomi się on poprawnie. Powodem
Synteza i obróbka obrazu HDR. Obrazy o rozszerzonym zakresie dynamiki
Synteza i obróbka obrazu HDR Obrazy o rozszerzonym zakresie dynamiki Dynamika obrazu Zakres dynamiki (dynamicrange) to różnica między najciemniejszymi i najjaśniejszymi elementami obrazu. W fotografii
Nowinki technologiczne procesorów
Elbląg 22.04.2010 Nowinki technologiczne procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu
Synteza i obróbka obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złożonych obliczeń, szczególnie jeżeli chodzi o generowanie płynnej
Jak wybrać akcelerator 3D dedykowany aplikacjom typu MCAD?
Jak wybrać akcelerator 3D dedykowany aplikacjom typu MCAD? Clive Max Maxfield Dla aplikacji typu MCAD wydajność karty graficznej jest czynnikiem krytycznym. W artykule tym znajdziecie opis cech akceleratorów
Nowinki technologiczne procesorów
Elbląg 22.04.2010 Nowinki technologiczne procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
RESPONSYWNE INTERFEJSY. Klasy urządzeń klienckich Responsywne style CSS. Waldemar Korłub
RESPONSYWNE Waldemar Korłub INTERFEJSY Klasy urządzeń klienckich Responsywne style CSS Wytwarzanie Aplikacji Internetowych KASK ETI Politechnika Gdańska Klasy urządzeń klienckich Desktopy z zewnętrznymi
Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r
Gry Komputerowe Laboratorium 4 Teksturowanie Kolizje obiektów z otoczeniem mgr inż. Michał Chwesiuk 1/29 Klasa Stwórzmy najpierw klasę TextureManager, która będzie obsługiwała tekstury w projekcie. 2/29
Technologie Informacyjne
Grafika komputerowa Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności December 12, 2016 1 Wprowadzenie 2 Optyka 3 Geometria 4 Grafika rastrowa i wektorowa 5 Kompresja danych Wprowadzenie
GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu
Synteza dźwięku i obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złożonych obliczeń, szczególnie jeżeli chodzi o generowanie płynnej
Przegląd architektury PlayStation 3
Przegląd architektury PlayStation 3 1 Your Name Your Title Your Organization (Line #1) Your Organization (Line #2) Sony PlayStation 3 Konsola siódmej generacji Premiera: listopad 2006 33,5 mln sprzedanych
RESPONSYWNE INTERFEJSY. Klasy urządzeń klienckich Responsywne style CSS. Waldemar Korłub
RESPONSYWNE Waldemar Korłub INTERFEJSY Klasy urządzeń klienckich Responsywne style CSS Wytwarzanie Aplikacji Internetowych KASK ETI Politechnika Gdańska Klasy urządzeń klienckich Desktopy z zewnętrznymi
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU GRAFICZNE MODELOWANIE
Wykład 5. Rendering (2) Geometria
Wykład 5. Rendering (2) Geometria 1. Z ogólnego, niezależnego od implementacji punktu widzenia, dane stanowiące opis geometrii modelu zorganizowane są w skończoną sekwencję (lub grupę sekwencji), którego
Animowana grafika 3D. Opracowanie: J. Kęsik.
Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Rzutowanie Równoległe Perspektywiczne Rzutowanie równoległe Rzutowanie równoległe jest powszechnie używane w rysunku technicznym - umożliwienie
Wyświetlanie terenu. Clipmapy geometrii
Wyświetlanie terenu Clipmapy geometrii Rendering terenu Łatwy do zaimplementowania Darmowe zestawy danych Liczne zastosowania: Wizualizacje geograficzne Symulatory Gry Ogromne ilości danych Gry Od 2x2
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania
Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.
Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych
GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego.
GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok PROGRAMOWANIE GRAFIKI KOMPUTEROWEJ CZASU RZECZYWISTEGO Grafika
Regulator PID w sterownikach programowalnych GE Fanuc
Regulator PID w sterownikach programowalnych GE Fanuc Wykład w ramach przedmiotu: Sterowniki programowalne Opracował na podstawie dokumentacji GE Fanuc dr inż. Jarosław Tarnawski Cel wykładu Przypomnienie
Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu
Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu IGK 2012 Michał Jarząbek W skrócie Funkcje niejawne opisują powierzchnie niejawne Powierzchnie niejawne metoda reprezentacji "obiektów"
SYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG
Szybkobieżne Pojazdy Gąsienicowe (41) nr 3, 2016 Michał Bugała SYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG Streszczenie. W artykule przedstawiono metody implementacji
Efekty dodatkowe w rasteryzacji
Synteza i obróbka obrazu Efekty dodatkowe w rasteryzacji Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Efekty dodatkowe Cieniowanie i teksturowanie pozwala
Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności
Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok
POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok POTOK RENDEROWANIA W grafice realistycznej stosuje się zwykle podejścia
Budowa systemów komputerowych
Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa
Gry komputerowe, Informatyka N1, III Rok
Oświetlenie Potok renderowania. Techniki oświetlenia i cieniowania. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok POTOK RENDEROWANIA W grafice realistycznej stosuje się zwykle podejścia
Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami
Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016
TEMAT :Animacja Komputerowa. Projekt współfinansowany w ramach Europejskiego Funduszu Społecznego
TEMAT :Animacja Komputerowa Projekt współfinansowany w ramach Europejskiego Funduszu Społecznego Animacja komputerowa: Animacja komputerowa jest generalnie rzecz biorąc cyfrowym spadkobiercą sztuki animacji
Moc płynąca z kart graficznych
Moc płynąca z kart graficznych Cuda za darmo! Czyli programowanie generalnego przeznaczenia na kartach graficznych (GPGPU) 22 października 2013 Paweł Napieracz /20 Poruszane aspekty Przetwarzanie równoległe
Struktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 1 Podstawowe struktury danych Tablica Najprostsza metoda przechowywania serii danych, zalety: prostota, wady: musimy wiedzieć, ile elementów chcemy przechowywać
Numeryczna algebra liniowa
Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów
Wprowadzenie. Artur Staszczyk Bartłomiej Filipek
Wprowadzenie Artur Staszczyk www.astaszczyk.com Bartłomiej Filipek www.bartlomiejfilipek.pl Bartlomiej.filipek@gmail.com Podstawy grafiki 3D GPU Co to jest OpenGL Potok Graficzny Inicjalizacja Rendering
Cele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków.
Macierze RAID Cele RAID RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków. - zwiększenie niezawodności (odporność na awarie), - zwiększenie wydajności transmisji
Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:
Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące
OpenGL i wprowadzenie do programowania gier
OpenGL i wprowadzenie do programowania gier Wojciech Sterna Bartosz Chodorowski OpenGL i wprowadzenie do programowania gier Autorstwo rozdziałów: 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 Wojciech Sterna
Sieciowe Technologie Mobilne. Laboratorium 2
Sieciowe Technologie Mobilne Laboratorium 2 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 2 Na dzisiejszym laboratorium skupimy się na implementacji
Kamil Nowakowski 2011
Kamil Nowakowski 2011 Zaprezentowane materiały pochodzą z silnika: Oraz z projektu : Czym jest grafika 3D nowoczesny sposób przedstawienia świata rzeczywistego. Odwzorowanie struktury obiektów, kolorów,
Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych
Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego
GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL
GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok OpenGL Open Graphics Library Jest to API pozwalające na renderowanie grafiki w czasie rzeczywistym,
Karta graficzna. Karta graficzna przyjmuje. rozszerzeń montowanej w magistrali wejścia/wyjścia na płycie głównej. Opcjonalnie układ graficzny
Karty graficzne Wykład: budowa karty graficznej, zasada działania, standardy, parametry, GPU, RAMDAC, magistrale, interfejsy, złącza, OpenGL, DirectX, SLI, Crossfire, bufor ramki, potok graficzny, producenci:
RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski
RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski Plan wykładu Mapowanie nierówności wprowadzenie Poziomy szczegółowości Cieniowanie w układzie stycznym Generacja wektorów normalnych i stycznych Mapy
NAZWA PRODUKTU: Ukryta MINI KAMERA H2 PODSŁUCH Powerbank IR LED S151 Cechy produktu
NAZWA PRODUKTU: Ukryta MINI KAMERA H2 PODSŁUCH Powerbank IR LED S151 Cechy produktu Bateria o bardzo dużej pojemności Dobrze ukryte Jedna przycisk obsługi jest proste i wygodne Ładowanie podczas nagrywania.
Przyspieszanie sprzętowe
Synteza dźwięku i obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złoŝonych obliczeń, szczególnie jeŝeli chodzi o generowanie płynnej
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
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 obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/6 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Manipulowanie przestrzenią 2 Przygotował: mgr inż. Maciej Lasota 1) Manipulowanie przestrzenią Istnieją dwa typy układów współrzędnych:
OpenGL Światło (cieniowanie)
OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);
GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej
GRAFIKA RASTROWA WYKŁAD 1 Wprowadzenie do grafiki rastrowej Jacek Wiślicki Katedra Informatyki Stosowanej Grafika rastrowa i wektorowa W grafice dwuwymiarowej wyróżnia się dwa rodzaje obrazów: rastrowe,
Transformacja współrzędnych geodezyjnych mapy w programie GEOPLAN
Transformacja współrzędnych geodezyjnych mapy w programie GEOPLAN Program GEOPLAN umożliwia zmianę układu współrzędnych geodezyjnych mapy. Można tego dokonać przy udziale oprogramowania przeliczającego