Teksturowanie (ang. texture mapping)

Podobne dokumenty
Teksturowanie. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 10. Tekstury. Proces nakładania tekstury.

Tekstury. Dorota Smorawa

OpenGL - tekstury Mapowanie tekstur

Bartosz Bazyluk Teksturowanie Pojęcie tekstury, potok, zastosowania. Gry komputerowe, Informatyka N1, III Rok

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

Bartosz Bazyluk Teksturowanie Mapy bitowe, pojęcie tekstury, potok, zastosowania.

Filtrowanie tekstur. Kinga Laurowska

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

OpenGL Światło (cieniowanie)

Laboratorium 4 OpenGl (4) Oświetlenie sceny

OpenGL Światło (cieniowanie)

Plan wykładu. Akcelerator 3D Potok graficzny

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

OpenGL teksturowanie

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie

Grafika komputerowa Tekstury

Grafika komputerowa. Dr inż. Michał Kruk

Laboratorium 2. Część I. Perspektywa. Obsługa poleceń myszy. 2. W sekcji przeznaczonej na definicję zmiennych globalnych dodaj następujące definicje:

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie

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

Architektura systemów komputerowych Ćwiczenie 3

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

Gry komputerowe: efekty specjalne cz. 2

dr inż. Jacek Dąbrowski, KSG

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

8 Przygotował: mgr inż. Maciej Lasota

Obraz cyfrowy. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

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

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

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

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

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

OpenGL oświetlenie i tekstury. OpenGL oświetlenie. Bogdan Kreczmer.

Efekty dodatkowe w rasteryzacji

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

Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. OpenGL - Achitektura. OpenGL - zalety. olas@icis.pcz.

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

Wstęp Podstawy Pierwszy program Definiowanie sceny 3D Przekształcenia geometryczne... 47

Autodesk 3D Studio MAX Teksturowanie modeli 3D

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Architektura Komputerów

OpenGL. Silicon Graphics (IRIS GL stacje graficzne)

Programowanie Procesorów Graficznych

GRK 5. dr Wojciech Palubicki

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

GRK 5. dr Wojciech Palubicki

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5

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

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

OpenGL Zaawansowana grafika komputerowa

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

Karty graficzne możemy podzielić na:

Architektura Komputerów

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

Wizualizacja 3D. dr inż. Marcin Gabryel

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

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

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

SYNTEZA OBRAZU. Rendering obrazu 3D

Specyfikacja OpenGL Podstawy programowania grafiki komputerowej*

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

Rasteryzacja (ang. rasterization or scan-conversion) Grafika rastrowa. Rysowanie linii (1) Rysowanie piksela. Rysowanie linii: Kod programu

Rasteryzacja (ang. rasterization or scan-conversion) Grafika rastrowa. Rysowanie linii (1) Rysowanie piksela

Metoda śledzenia promieni (ang. ray tracing)

OpenGL i Qt. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

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

Janusz Ganczarski. OpenGL Pierwszy program

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

OpenGL przezroczystość

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

glwindowpos2d void DrawString (GLint x, GLint y, char *string) { glwindowpos2i (x,y); int len = strlen (string); for (int i = 0; i < len; i++)

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

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

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Teksturowanie obiektów z wykorzystaniem reprogramowalnych modułów do obliczania cieniowania

Podłączanie bibliotek Zapis danych do pliku graficznego Generowanie promienia pierwotnego Import sceny z pliku Algorytm ray tracingu

GRK 4. dr Wojciech Palubicki

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura Procesorów Graficznych

Trójwymiarowa wizualizacja danych przestrzennych

Grafika komputerowa i wizualizacja

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

Grafika Komputerowa. Teksturowanie

6 Przygotował: mgr inż. Maciej Lasota

Shadery. Artur Staszczyk Bartłomiej Filipek

Próbkowanie (ang. sampling) - kwantyzacja. Rastrowa reprezentacja obrazu 2D. Generowanie obrazu rastrowego 2D. Próbkowanie i integracja

Wykład V. Karta graficzna. Studia stacjonarne Pedagogika Budowa i zasada działania komputera

OpenGL model oświetlenia

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu

Wprowadzenie do grafiki maszynowej. Wprowadenie do teksturowania

Grafika Komputerowa 3D Etap drugi

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

Bartłomiej Filipek

GPGPU General-Purpose computing on the GPU. Piotr Stańczyk

Proste metody przetwarzania obrazu

Analiza obrazu. wykład 1. Marek Jan Kasprowicz Uniwersytet Rolniczy Marek Jan Kasprowicz Analiza obrazu komputerowego 2009 r.

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Materiały. Dorota Smorawa

Transkrypt:

Teksturowanie (ang. texture mapping) Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny

Tekstura Funkcja modyfikująca wygląd powierzchni. Ta funkcja może być reprezentowana przez bitmapę.

Przykłady: nie tylko modifikacja koloru

Potok teksturowania 1. Mapowanie tekstury (ang. texture mapping) - obliczenie współrzędnych parametrycznych (u,v) dla każdego wierzchołka modelu. 2. Filtrowanie tekstury - obliczenie współrzednych teksela tekstury w rastrze (s,t) (funkcja korespondera, powiększanie lub pomniejszanie bitmapy). 3. Nakładanie tekstury - modyfikacja koloru pikseli na etapie rasteryzacji. Pictures courtasy of MIT, Lecture Notes 6.837

Mapowanie tekstur Obliczenie współrzędnych parametrycznych (u,v), odpowiadających danemu wierzchołkowi modelu. Współrzędne (u,v) wyraża się jako liczby zmiennoprzecinkowe znormalizowane do przedziału <0,1>. v (u3,v3) (u1,v1) (u2,v2) u

Mapowanie tekstur tekstura model

Mapowanie tekstur Liniowe Cylindryczne Sferyczne

Teksturowanie: mapowanie sferyczne Obliczenie współrzędnych tekstury (u,v) dla puntu na powierzchni kuli (d x,d y,d z ) dla kuli o promieniu jednostkowym. u = 0.5+ arctan2(d z, d x ) 2π v = 0.5+ arcsin(d y) π

Funkcje korespondera Funkcje korespondera - powiekszanie tekstury do wymaganego rozmiaru poprzez powielanie.

Współrzędne tekstury Obliczenie położenia teksela tekstury odpowiadająceg danemu wierchołkowi Zamiania współrzędnych (u,v) -> (s,t) Filtrowanie tekstur - ma na celu dostosowanie wielkości tekstury do wielkości obszaru, na który tekstura będzie nakładana powiększenie i pomniejszenie W idelanym przypadku tekstura powinna mieć cztery razy więcej tekseli (ang. texels) od liczby pikseli znajdującej się w obszarze obrazu (bufora ramki), na który tekstura jest mapowana.

Filtrowanie tekstur: Metoda najbliższego sąsiada Przykład pomniejszenia tekstury. (u,v)

Filtrowanie tekstur: filtracja dwuliniowa filtrowanie dwuliniowe (ang. bilinear filtering) uśrednianie wartości piksela (u,v)

OpenGL: Nakładanie tekstury

OpenGL: Teksturowanie glbegin(gl_quads); glnormal3f( 0, 0, -1.0f ); gltexcoord2f( 1.0f, 1.0f ); glvertex3f( -0.5f, +0.5f, -0.5f ); gltexcoord2f( 0.0f, 1.0f ); glvertex3f( +0.5f, +0.5f, -0.5f ); gltexcoord2f( 0.0f, 0.0f ); glvertex3f( +0.5f, -0.5f, -0.5f ); gltexcoord2f( 1.0f, 0.0f ); glvertex3f( -0.5f, -0.5f, -0.5f ); glend(); Współrzędne interpolowane na etapie rasteryzacji.

OpenGL: Teksturowanie GLuint tex; glgentextures( 1, &tex); glbindtexture( GL_TEXTURE_2D, tex); gltexparameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); gltexparameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); gltexparameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); gltexparameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); // Black/white checkerboard float pixels[] = { 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f }; glteximage2d(gl_texture_2d, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_FLOAT, pixels); void glteximage2d(glenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * data);

OpenGL: Typy tekstur GL_TEXTURE_1D: Images in this texture all are 1-dimensional. They have width, but no height or depth. GL_TEXTURE_2D: Images in this texture all are 2-dimensional. They have width and height, but no depth. GL_TEXTURE_3D: Images in this texture all are 3-dimensional. They have width, height, and depth. GL_TEXTURE_RECTANGLE: The image in this texture (only one image. No mipmapping) is 2- dimensional. Texture coordinates used for these textures are not normalized. GL_TEXTURE_BUFFER: The image in this texture (only one image. No mipmapping) is 1-dimensional. The storage for this data comes from a Buffer Object. (u,v) GL_TEXTURE_CUBE_MAP: There are exactly 6 distinct sets of 2D images, all of the same size. They act as 6 faces of a cube. GL_TEXTURE_1D_ARRAY: Images in this texture all are 1-dimensional. However, it contains multiple sets of 1-dimensional images, all within one texture. The array length is part of the texture's size. GL_TEXTURE_2D_ARRAY: Images in this texture all are 2-dimensional. However, it contains multiple sets of 2-dimensional images, all within one texture. The array length is part of the texture's size. GL_TEXTURE_CUBE_MAP_ARRAY: Images in this texture are all cube maps. It contains multiple sets of cube maps, all within one texture. The array length * 6 (number of cube faces) is part of the texture size. GL_TEXTURE_2D_MULTISAMPLE: The image in this texture (only one image. No mipmapping) is 2- dimensional. Each pixel in these images contains multiple samples instead of just one value. GL_TEXTURE_2D_MULTISAMPLE_ARRAY: Combines 2D array and 2D multisample types. No mipmapping.

Filtrowanie tekstur - MIP Mapping MIP Mapping (multium in parvo - wiele w jednym) - sposób przechowywania i szybkiego dostępu do tekstur o różnym rozmiarze. (u,v) automatyczne generowanie i obsługa mipmap przez OpenGL

Filtrowanie anizotropowe Jeżeli proporcje tekstury nie pasują do proporcji obszaru pikseli, na które tekstura ma zostać nałożona. (u,v)

Filtrowanie perspektywiczne Interpolacja współrzędnych tekstur w trójkącie uwzględniająca trójwymiarowe położenie wierzchołków. (u,v) Uwzględnienie głębokości (a konkretniej jej odwrotnoś ci) podczas interpolowania współrzędnej tekstury.

Mapowanie środowiska Ang. Environment Mapping (EM) - wykorzystanie testury do aproksymacji powierzchni odbijających. Pictures courtasy of MIT, Lecture Notes 6.837

Mapowanie środowiska

Mapowanie nierówności (ang. bump mapping) Bump mapping - wykorzystanie tekstury do modyfikacji wektora normalnego. (u,v) Pictures courtasy of MIT, Lecture Notes 6.837

Mapowanie przesunięć (ang. displacement mapping) Displacement mapping - tekstura służy do modyfikacji geometrii obiektu. (u,v)

Testury proceduralne Wykorzystanie funkcji matematycznych do obliczania wartości tekseli. (u,v) tekstury trójwymiarowe symulacje zjawisk fizycznych (np. przepływ wody) istnieje problem aliasingu i zachowania ciągłości

Cache'owanie tekstur Przesyłanie tekstur do pamięci GPU zajmuje dużo czasu. Dostęp do danych tektury jest również czasochłonne. Szybki dostęp do potrzebnej w danym momencie tektury: tektury powinny być możliwie najmniejsze, wielokąty pogrupowane zgodnie z przynależnością do tektury, oddalone wielokąty teksturowane są za pomocą (u,v) mniejszych obrazów, kompresja tekstur (S3TC, ETC)

Atlasy tekstur