Kamil Nowakowski 2011



Podobne dokumenty
Plan wykładu. Akcelerator 3D Potok graficzny

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

Karty graficzne możemy podzielić na:

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

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

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

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

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

Mikołaj Kania Waldemar Korłub Jakub Krajewski

Zaawansowana Grafika Komputerowa

Filtrowanie tekstur. Kinga Laurowska

Wykład 4. Rendering (1) Informacje podstawowe

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

Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r

a. Czym różni się sposób liczenia odbicia zwierciadlanego zaproponowany przez Phonga od zaproponowanego przez Blinna?

SYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG

Grafika komputerowa i wizualizacja

Efekty dodatkowe w rasteryzacji

HDR. Obrazy o rozszerzonym zakresie dynamiki

1 Temat: Vertex Shader

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

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

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

Referat Pracy Dyplomowej

Gry komputerowe: efekty specjalne cz. 2

Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym

Programowanie Procesorów Graficznych

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

Obraz realistyczny. Realizm w grafice komputerowej. Realizm modelu: z!o#one siatki wielok$tów. Realizm modelu geometrycznego. Realizm modelu: spline'y

Technologie Informacyjne

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Techniki animacji komputerowej

PRZEWODNIK PO PRZEDMIOCIE

Podstawy 3D Studio MAX

Architektura Procesorów Graficznych

Karty graficzne: budowa, zasada działania, standardy, parametry, dodatkowe funkcje

Unity 3D - tworzenie sceny

Grafika realistyczna. Oświetlenie globalne ang. global illumination. Radosław Mantiuk

System graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D.

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Przegląd architektury PlayStation 3

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

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

Grafika 3D na przykładzie XNA 3.1

Bartłomiej Filipek

Karta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER

Bartosz Bazyluk OpenGL Współczesne podejście do programowania grafiki Część II: Programy cieniujące (shadery)

GRK 4. dr Wojciech Palubicki

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Synteza i obróbka obrazu HDR. Obrazy o rozszerzonym zakresie dynamiki

Wprowadzenie do grafiki komputerowej. W. Alda

Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu

Wyświetlanie terenu. Clipmapy geometrii

Różne rodzaje efektów

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

INŻYNIERIA OPROGRAMOWANIA

Zjawisko widzenia obrazów

Synteza i obróbka obrazu. Algorytmy oświetlenia globalnego

Część III. Załączniki

Programowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska

forma zajęć * w+ćw O/F P/K sem+ćw O K Szkolenie BHP Inne O Z 4ćw O/F** P/K zajęć*

Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)

OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23

Methods for optimizing the performance of Unity 3D game engine based on third-person perspective game

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

Intro 4kb. sphere tracing. Maciej Matyka (maq / floppy) Dla koła naukowego Voxel

Problem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3.

Transformacje. dr Radosław Matusik. radmat

Mieszanie kolorów. Dorota Smorawa

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

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

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

Grafika Komputerowa, Informatyka, I Rok

Technologie Informacyjne

Gry Komputerowe - laboratorium 0

Rzeczywistość rozszerzona: czujniki do akwizycji obrazów RGB-D. Autor: Olga Głogowska AiR II

Laboratorium Optyki Falowej

OpenGL przezroczystość

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

1. Założenia i cele przedmiotu: 2. Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi:

Rendering sceny z modelem węzła

Materiały 2 1.Kasujemy wszystko ze sceny. Upewniamy się ze uruchomiliśmy Cycles render. 2. W (0,0,0) stawiamy sphere wielkości (2,2,2), nazywamy ja

Architektura Komputerów

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

SYLABUS/KARTA PRZEDMIOTU

Śledzenie promieni w grafice komputerowej

WYOBRAŹ SOBIE, ŻE MÓGŁBYŚ WIZUALIZOWAĆ DANE W NIECAŁĄ SEKUNDĘ Z KAŻDEGO MIEJSCA NA ZIEMI.

ZAKRES TEMATYCZNY KONKURSU 3/1.2/2016/POIR PROGRAMU SEKTOROWEGO GAMEINN. A.1 Innowacyjne rozwiązania w zakresie projektowania modeli rozgrywki w grach

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa, Inżynieria oprogramowania, Technologie internetowe

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

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

Liczba godzin w semestrze Ogółem Semestr 1 Semestr 2 Semestr 3 E Z Sh W C L S P W C L S P ECTS W C L S P ECTS W C L S P ECTS W C L S P ECTS

Moc płynąca z kart graficznych

WSTĘP DO GRAFIKI KOMPUTEROWEJ

Julia 4D - raytracing

Nazwa przedmiotu. 1 Matematyka. 2 Fizyka. 3 Informatyka. 4 Rysunek techniczny. 12 Język angielski. 14 Podstawy elektroniki. 15 Architektura komputerów

zakładane efekty kształcenia

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

5 Moduył do wyboru II *[zobacz opis poniżej] 4 Projektowanie i konfiguracja sieci komputerowych Z

Transkrypt:

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, światła i zjawisk optycznych przy użyciu komputera. Grafika 3D speed up czyli realtime rendering. Dzięki coraz to potężniejszym kartom dedykowanym grafice 3D ( od zewnętrznego procesora dysku na C64 po najnowsze potwory GeForce ). Przeniesienie pełni mocy obliczeń na sprzęt.

Realtime = tricki i oszustwa. Nie da się ( przynajmniej na znanej obecnie technologii ) zasymulować pełni fizyki optyki dla generowania obrazu czasu rzeczywistego ( co najmniej 30 fps ). Stosuje się szereg kruczków, aby oszukać obserwatora ( o tym przy optymalizacji ). Ruchomy obraz 3D lets put some fun in it. Całą obecną uwagę rynku gier kieruje się na technologie grafiki 3D ( wraz z stereoskopią true 3D ). Rynek gier napędza rynek kart. Wzajemne wymogi technologiczne.

Programowa jak i designerska grafika 3D jest w 100% oparta na matematyce i abstrakcyjnych formach prezentowania rzeczywistości. Trzeba patrzeć jak Architekt w Matrixie. Programista 3D żyje w świecie macierzy i vertexów.

Silnik jest mechanizmem do budowania środowiska 3D tak, jak tego zechce twórca. Silnik ma zarządzać wszystkimi aspektami gry. Zbiór narzędzi i komponentów.

Ładowanie modeli i tekstur Dźwięków, filmów, mapy Interakcje z obiektami Fizyka środowiska Sztuczna inteligencja Wymiana sieciowa

Kilka najczęściej wykorzystywanych technik oszukania obserwatora:

To co widzimy na ekranie jest jednym wielkim oszustwem ;) Jednak ma to na celu coś więcej jak tylko uproszczenie sobie sprawy. Taka reprezentacja przestrzeni 3D jest efektywna w obliczeniach i pozwala na szybki rendering. Dodatkowo stosuje się techniki jeszcze bardziej przyspieszające generowanie sceny.

Szczególnie w grach duże znaczenie ma płynność grafiki. Nikt nie będzie chciał grać w pokaz slajdów. Od płynności zależy komfort dostarczanej rozrywki. Prócz wcześniejszych uproszczeń stosuje się takie metody ( od najprostszych po te bardziej zaawansowane ).

Czyli odrzucanie elementów poza widokiem

Skoro nie widać różnicy, to po co przepłacać?? Trapez widoczności: FOV, znear, zfar

Zamiast badać każdy obiekt na scenie, można je pogrupować w paczki. Np. : Segment Paczka Obiekt Oszczędza to bardzo wielu zbędnych obliczeń. Drzewo binarne ( gęstości obiektów ), AABB, OBB, heurystyka algorytmu.

Rozpoznawanie, czy obiekt jest zasłonięty przez coś. Jak tak, to czy jest sens go renderować? NIE!

Idea bardzo chwalebna. Wyrzuca ze sceny wszystkie obiekty, których obserwator nie widzi.

Wady i kłopoty : Problemy w implementacji. Dość trudno jest oprogramować OC. Oraz metoda wyciągania informacji o zasłonięciu obiektu jest kosztowna. Hardware OC wymaga dodatkowego render passu z uwzględnieniem wstępnego posortowania modeli wg odległości.

Umiejętne zaprogramowanie i optymalizacja OC ( mieszając go z frustrum i AABB/OBB ) daje znaczący wzrost wydajności sceny im mniej trójkątów, tym karta mniej się poci. Przygotowanie elementów Test frustrum culling Occlusion culling Wyciąganie wyników Budowanie sceny Rendering

Zmniejszanie szczegółowości geometrii modelu wraz z dystansem. Obserwator nie dostrzega z daleka drobnych elementów, po co jest więc zajmować nimi kartę graficzną?

Analogicznie do geometrii, zmniejszamy rozdzielczość tekstur.

Im mniejszą powierzchnię na ekranie zajmuje trójkąt geometrii, tym wybieramy coraz dalszą mipmapę ( gorsczej rozdzielczości ). Wadą mogą być zbyt rozmazane horyzontalne tekstury. Stosuje się filtry anizotropowe.

Oprócz zwykłych kwadratowych mipmap oryginalnej tekstury stosuje się dodatkowe zeskalowane w daną stronę mapy :

Innymi słowy na jedną klatkę sceny 3D składa się wiele wstępnych renderingów:

Technika polegająca na wyrenderowaniu sceny w osobnym cyklu i zapisania geometrii jako tekstura zawierająca położenie i zwrot płaszczyzn. Lub też z wykożystaniem technologi MRT ( Multi Render Targets ) Głównie stosowana w procesie oświetlania sceny. Pozwala na dynamiczne zarządzanie tysiącami świateł. To nie obiekt jest oświetlany, tylko światło oświetla.

Technika dodawania szczegółów do modelu poprzez dodanie dodatkowej tekstury nierówności normal mapy.

Aby móc dodać cienie do sceny najczęściej wykorzystuje się dodatkowy render pass jako shadow mapping. Zapis sceny z punktu widoku źródła światła jako mapa głębi. Rozpoznawanie czy miejsce jest zacienione, poprzez sprawdzenie głębi obiektu w punkcie a głębi na shadow mapie. Niesamowite podniesienie realizmu grafiki.

Różne techniki : 1. Variance SM 2. PSM ( rozmycie gaussa ) 3. CSM ( Cascaded Shadow Maps ).

Post coś na końcu. Ogólne poprawianie parametrów obrazu. Bloom, HDR, Motion Blur, SSAO, Global Illumination, God Rays, DOF

Dynamiczne chmury Scattering atmosferyczny Realistyczna woda

Generowanie programowo tekstur. 3 tekstury 256x256, każdy 3 kanały RGB osobno. 9 niezależnych layerów chmur. Miksowanie kanałów i barwienie.

Refrakcje Aberracja chromatyczna Odbicia Fale

Kierunkowe rozmycie obrazu spowodowane szybko poruszającymi się obiektami. Motion blur jest fajny przy grach z narzuconym niskim fps w okolicach 30. Efekt kinowości.

Przypinanie tych obiektów do dynamicznych przedmiotów np. pochodnia w ręce postaci.

Przechodzimy do kwestii stricte programowania grafiki 3D. Mamy pomysł, ale jak to zrealizować?

Każde ma swoje wady i zalety. Wszystko ma inną implementację niemożliwa przenośność kodu albo jedno albo drugie * W obu osiągniesz ten sam efekt, ale inną drogą.

Siada sobie programista do kodu i skleja trójkąty :

glbindtexture( GL_TEXTURE_2D, jakiś ID ); glcolor3ub( 255, 128, 75 ); glenable( GL_BLENDING ); glclear( GL_COLOR_BIT_BUFFER );

glloadidentity(); glpushmatrix() ; glpopmatrix(); gltranslatef( x, y, z ); glrotatef( R, x, y, z ); glscalef( x, y, z );

Shadery są to programy pisane z myślą o przetwarzaniu geometrii oraz pikseli renderowanych przez karty graficzne.

Vertexy ( x, y, z ) Pamięć systemowa Vertex Shader Vertex Processing Pamięć karty graficznej Pixel Shader Pixel Processing Pamięć tekstur Piksele ( R, G, B, A ) Framebuffer

varying vec3 col; varying vec2 coord; void main(){ gl_position = ftransform(); col = vec3( 1.0, 0.0, 1.0 ); coord = gl_multitexcoord0; } varying vec3 col; varying vec2 coord; uniform sampler2d T; void main(){ Vec3 c = texture2d(t,coord); gl_fragcolor.rgb = col * c; }

Dziękuje za uwagę. Pytania?