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

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

Plan wykładu. Akcelerator 3D Potok graficzny

Oświetlenie obiektów 3D

Wykład 4. Rendering (1) Informacje podstawowe

GRK 4. dr Wojciech Palubicki

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

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

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

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

6 Przygotował: mgr inż. Maciej Lasota

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

GRK 5. dr Wojciech Palubicki

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

GRK 5. dr Wojciech Palubicki

Transformacje obiektów 3D

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

OpenGL Światło (cieniowanie)

Światło. W OpenGL można rozróżnić 3 rodzaje światła

Gry komputerowe: efekty specjalne cz. 2

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

Grafika komputerowa Tekstury

OpenGL Światło (cieniowanie)

Programowanie Procesorów Graficznych

Śledzenie promieni w grafice komputerowej

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

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

Rok akademicki: 2017/2018 Kod: JFM s Punkty ECTS: 7. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Gry komputerowe, Informatyka N1, III Rok

Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Zjawisko widzenia obrazów

Architektura Procesorów Graficznych

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.

Julia 4D - raytracing

Filtrowanie tekstur. Kinga Laurowska

Opis efektów kształcenia dla modułu zajęć

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

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Dowiedz się, jak tworzyć zapierające dech w piersiach gry 3D i efektowne, trójwymiarowe wizualizacje!

Transformacje. dr Radosław Matusik. radmat

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

HDR. Obrazy o rozszerzonym zakresie dynamiki

OpenGL przezroczystość

Autodesk 3D Studio MAX Teksturowanie modeli 3D

Grafika 3D na przykładzie XNA 3.1

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 realistyczna. Oświetlenie globalne ang. global illumination. Radosław Mantiuk

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

1. Oświetlenie Materiały i powierzchnie

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

WSTĘP DO GRAFIKI KOMPUTEROWEJ

Grafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor

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

Poniżej pokazane są poszczególne etapy, w nawiasach kwadratowych znajdują się nazwy tekstur, które utworzymy w projekcie, a przy strzałkach nazwy

Efekty dodatkowe w rasteryzacji

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

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?

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

Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu

SYNTEZA OBRAZU. Rendering obrazu 3D

Bartłomiej Filipek

1 Temat: Vertex Shader

GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów

Podstawy grafiki komputerowej

Materiały. Dorota Smorawa

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

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

PRZEWODNIK PO PRZEDMIOCIE

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

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

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

dr inż. Jacek Dąbrowski, KSG

Wykład 12. Animacja postaci

Krystalochemia białek 2016/2017

Rysunek przedstawia test naszego modelu w tej drugiej odmianie panoramy Sky Texture:

ZESTAWIENIE TEMATÓW Z MATEMATYKI Z PLUSEM DLA KLASY VIII Z WYMAGANIAMI PODSTAWY PROGRAMOWEJ WYMAGANIA SZCZEGÓŁOWE Z PODSTAWY PROGRAMOWEJ

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

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

WYMAGANIA EDUKACUJNE Z MATEMATYKI Z PLUSEM DLA KLASY VIII WYMAGANIA SZCZEGÓŁOWE Z PODSTAWY PROGRAMOWEJ TEMAT

MATEMATYKA Z PLUSEM DLA KLASY VII W KONTEKŚCIE WYMAGAŃ PODSTAWY PROGRAMOWEJ. programowej dla klas IV-VI. programowej dla klas IV-VI.

Grafika Komputerowa. Wykład 8. Przygotowanie do egzaminu. mgr inż. Michał Chwesiuk 1/32

Antyaliasing w 1 milisekundę. Krzysztof Kluczek

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

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

Trójwymiarowa wizualizacja danych przestrzennych

Programowanie gier komputerowych. Tomasz Martyn. Wykład 10. Różności: Cinamatics, Aktorzy kinematyczni, Prefabs, Archetypes

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

Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

Materiały. Przygotowanie plików: 1. Ściągamy i otwieramy tę scene ; ściągamy też te tekstury: Small, Tiled, Small, Tiled, Small.

Karty graficzne możemy podzielić na:

Zaawansowana Grafika Komputerowa

Obraz jako funkcja Przekształcenia geometryczne

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2012/13

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

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

Transkrypt:

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. - wyróżniamy tekstury 1-, 2-, 3- i 4-kanałowe (teksle reprezentują, odpowiednio, wektory 1-,..., 4-wymiarowe); - z teksturą skojarzony jest ortogonalny ukł. wsp., którego osie w kolejnych wymiarach oznaczane są zwykle jako UVW (czasem jako STR); - nominalne wartości współrzędnych tekstury należą do zakresu [0,1] sposób interpretowania wartości spoza tego zakresu zależy od określonego trybu adresowania tekstury (np. tryb wrap służący do powielania tekstury); - zawartość tekstury odczytywana jest za pośrednictwem współrzędnych tekstury, przy czym przy odczycie dodatkowo stosowana jest określona funkcja filtru, która zwraca wartość na podstawie uśrednienia wartości tekseli otaczających odczytywany punkt; - oryginalna tekstura często przechowywana jest wewnętrznie w postaci ciągu tzw. mipmap, którego kolejnymi elementami są tekstury o malejącej dwukrotnie rozdzielczości.

Materiały mogą wykorzystywać tekstury (na zasadach algorytm-struktura danych) i zwykle to robią, ale w ogólnym przypadku nie jest to konieczne. Klasyczna rola materiału polega na określaniu barwy punktu powierzchni pod wpływem padającego na tę powierzchnię światła (rozwiązanie tzw. równania oświetlenia). Dodatkowo materiały mogą: Czym są materiały? Materiały są algorytmami, które określają sposób prezentowania się obiektu geometrycznego w scenie (materiał jest niczym ubiór zakładany na niewidzialnego ducha, tak aby duch stał się widoczny). We współczesnych grach materiały implementowane są zwykle przy wykorzystania shaderów, które są programami wykonywanymi przez kartę graficzną. - same emitować światło, - być zmienne w czasie, - nie uwidaczniać całej geometrii ( dziury w ubranku dla ducha ), - modyfikować orientację i położenie geometrii w scenie w zależności od pewnych parametrów (np. orientować geometrię prostokąta, tak aby był zawsze zwrócony w stronę kamery - billboardy), - a nawet modyfikować samą geometrię, na którą materiał założono.

Rozproszone i zwierciadlane odbicie światła

Model oświetlenia Phonga [r 1, g 1, b 1, a 1 ] [r 2, g 2, b 2, a 2 ] = [r 1 r 2, g 1 g 2, b 1 b 2, a 1 a 2 ] C M L ambient ambient gdzie: ( i ) M diffuse Ldiffuse M L specular specular max{ DN,0} (max{ UR,0}) power R D 2( ND) N

Barwa finalna gdzie: C final M emissive num_ lights i1 C (i) - tłumienie światła względem odległości (światła: punktowe i stożkowe) a 0 a d a 1 a i - współczynniki tłumienia, d odległość źródła światła od oświetlanego punktu powierzchni 2 d 2 (i) - współczynnik tłumienia kątowego (stożkowe źródła światła)

Przekształcenia w potoku graficznym Model space World trans. View trans. Projection space World space Perspective divide Projection trans. Viewport trans. View space Screen space Normalized Device Coordinates (Post-projection space) x i y [-1, 1] z [0, 1] (DirectX) z [-1, 1] (OpenGL)

Inne układy współrzędnych w CG Tangent space Przestrzenie styczne (TNB) określone w wierzchołkach powierzchni... i w dowolnym punkcie powierzchni (zwykle poprzez interpolację tych pierwszych i następnie ortogonalizację) Podstawowe wykorzystanie przestrzeni stycznych ma miejsce w mapowaniu nierówności (bump mapping) techniką mapowania normalnych (normal mapping). Wówczas wszystkie wektory wykorzystywane do obliczania równania oświetlenia w cieniowanym punkcie sprowadzane są do przestrzeni stycznej w tym punkcie. Ponieważ zwykle mapowanie normalnych jest jednym ze składników materiałów, wiele systemów materiałów w silnikach gier (w tym UDK) domyślnie dokonuje obliczeń związanych z oświetlaniem danego punktu powierzchni we współrzędnych stycznych w tym punkcie.

Inne układy współrzędnych w CG (cd.) Light space Scena widziana przez obserwatora Scena widziana przez światło Obraz odległości obiektów od źródła światła (mapa głębokości) Przestrzeń światła jest ortogonalnym układem wsp. związanym z danym źródłem światła. Układ ten jest analogiem układu wsp. kamery i służy do określania sposobu postrzegania świata przez źródło światła. Podstawowe wykorzystanie tego układu ma miejsce w metodach wyznaczania cieni bazujących na technikach mapowania cieni (shadow mapping).

Programowalny potok graficzny shader model 3.0 (OpenGL 2.0, DirectX 9.0) Program shadera wierzchołków wykonywany jest PRZED procesem rasteryzacji, oddzielnie dla każdego wierzchołka z napływającego do potoku graficznego strumienia wierzchołków. - jego zadaniem jest dokonywanie operacji na wierzchołkach, w szczególności odpowiednie przekształcanie ich współrzędnych. Program shadera fragmentów/pikseli wykonywany jest PO procesie rasteryzacji, oddzielnie dla każdego fragmentu. - jego rola polega na wyznaczeniu barwy fragmentu (np. na podstawie danych pobranych z tekstur i obliczeń związanych z oświetleniem), który następnie kierowany jest do bufora ramki.

Vertex shader i fragment shader - przykłady

Mieszanie alfa (-blending) ma na celu wyznaczenie nowej wartości barwy piksela w buforze kolorów na podstawie bieżącej barwy piksela w buforze kolorów (destination color) i barwy fragmentu (source color) po jego przetworzeniu przez shader fragmentów. Ogólne równanie mieszania alfa: gdzie: Mieszanie alfa C dst = C src F src C dst F dst C src = (r s, g s, b s, a s ) barwa aktualnie przetwarzanego fragmentu; C dsc = (r d, g d, b d, a d ) aktualna barwa piksela w buforze kolorów; F src i F dsc ustalone współczynniki mieszania będące predefiniowanymi funkcjami wektorowymi 4d; - operacja mnożenia wektorów 4d po składowych; - ustalona operacja dodawania wektorów 4d. Współczynniki mieszania F src i F dsc można m.in. ustalić jako: 0, 1, (a s, a s, a s, a s ), 1 (a s, a s, a s, a s ), (a d, a d, a d, a d ), 1 (a d, a d, a d, a d ), C src, 1 C src, C dst,1 C dst. Operację można ustalić jako: dodawanie, odejmowanie, odwrócone odejmowanie (tj. Dst Src), maksimum lub minimum (po składowych wektorów).

Test alfa Test alfa umożliwia odrzucenie fragmentu z dalszego przetwarzania na podstawie porównania związanej z tym fragmentem składowej alfa z zadaną wartością referencyjną ref: IF alfa ref THEN accept fragment ELSE reject fragment gdzie oznacza relację porównania (np.: <, >,,, ==,!=). Test alfa wykorzystuje się na ogół do udawania złożonej geometrii poprzez nakładanie na wielokąty tekstur maskujących z odpowiednio zdefiniowanymi wartościami alfa tekseli i odrzucaniu fragmentów nieprzechodzących testu. rzeczywista geometria efekt końcowy Test alfa

Edytor materiałów w UDK (prawie) Najprostszy materiał

Następny wykład: Materiały przykłady wykorzystania edytora materiałów UDK