Odwzorowywanie tekstur

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

Grafika Wektorowa Bitmapowa.
C++ wykład 4 ( ) Przeciążanie operatorów.
Modele oświetlenia Punktowe źródła światła Inne
Klasy i obiekty.
Algorytmy rastrowe Algorytmy konwersji Rysowanie odcinków
Generics w .NET 2.0 Łukasz Rzeszot.
Popularne formaty grafiki
Kompresja danych.
Multimedia, prezentacje, wideo, dokumenty elektroniczne
Implementacja algorytmów na procesory kart graficznych
dotyczące plików graficznych
Zakres i zasięg deklaracji Zakres : obszar programu, w którym identyfikator może być użyty zakres globalny : cały program zakres lokalny : definicja pojedynczej.
Obróbka konwencjonalnych zdjęć RTG
Systemy mobilne i komunikacja bezprzewodowa Ćwiczenie 1 Jarosław Kurek WZIM SGGW 1.
Biblioteki i przestrzenie nazw
1 Podstawy apletów Co to jest aplet, cykl życia apletu, metody apletu, metoda paint(), czcionki, kolory, parametryzowanie apletu, układ współrzędnych ekranowych,
Plan Prezentacji Wczytywanie grafiki Wyświetlanie obrazów
System analizy zachowania zwierząt doświadczalnych w badaniach neurologicznych promotor: prof. dr hab. inż. A. Nowakowski konsultant: dr M. Kaczmarek,
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
Różnice pomiędzy formatem GIF a JPG
Agata Józefowicz Gimnazjum w Skórzewie
Rodzaje plików graficznych.
Techniki programowania gier
nowe operatory & . (kropka) * operator rzutowy -> , (przecinek)
I Grafika wektorowa.
C# Windows Forms Zastosowania Informatyki Wykład 3
Systemy plików FAT12, FAT16, FAT32, NTFS.
Współrzędne jednorodne
Podstawy programowania II
Współrzędne jednorodne
PRACA DYPLOMOWA INŻYNIERSKA
CUDA & CUDA.NET – czyli istne CUDA Piotr Ablewski
Podstawowe pojęcia i problemy związane z przetwarzaniem plików graficznych.
Temat: Grafika komputerowa.
XNA Oświetlenie Kurs ITA-106 (Grafika i multimedia) – Moduł 3
KINECT – czyli z czym to się je?. O czym będziemy mówić? Obecna oferta rynkowa. Co to jest i jak działa Kinect? Jak przygotować komputer do pracy z Kinectem?
Symulacje komputerowe
Symulacje komputerowe Detekcja kolizji brył sztywnych Fizyka w modelowaniu i symulacjach komputerowych Jacek Matulewski (
Modelowanie elementów świata 3D przy użyciu biblioteki Managed Directx
Programowanie gier komputerowych Tomasz Martyn
Programowanie Windows na przykładzie C# część 1
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Formaty zdjęć.
Grafika komputerowa Jest to dziedzina rozwijająca się niezwykle dynamicznie, a jednocześnie wymagająca znacznej mocy obliczeniowej. Łatwo możemy to zaobserwować,
3dMatchGL Wykorzystanie biblioteki graficznej OpenGL przy tworzeniu gry 3DMatchGL.
Grafika Animacyjna wykład 3
Nieprawidłowy (inny niż JPG) format zdjęcia Zdjęcia skanowane lub robione w laboratoriach fotograficznych bywają zapisywane w plikach BMP lub innych. Aby.
Grafika komputerowa Jest to dziedzina rozwijająca się niezwykle dynamicznie, a jednocześnie wymagająca znacznej mocy obliczeniowej. Łatwo możemy to zaobserwować,
Elementy multimedialne na stronie
XML Publisher Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przeznaczenie XML Publisher Przeznaczenie XML Publisher Definiowanie Definiowanie.
Teksturowanie obiektów z wykorzystaniem reprogramowalnych modułów do obliczania cieniowania Daniel Kos promotor: dr inż. Radosław Mantiuk Wydział Informatyki,
Kurs języka C++ – wykład 4 ( )
Temat 9: Obrazy i multimedia
Teksturowanie oraz algorytmy cieniowania
Informatyka +.
Damian Urbańczyk xHTML Elementy graficzne.
Grafika rastrowa - parametry
Wykład 4 Klasa Vec, której konstruktory alokują pamięć dla obiektów 1.Przykład definicji klasy Vec 2.Definicje konstruktorów i destruktora 3.Definicja.
Multimedia w HTML5 Statyczne witryny internetowe 2TIa Marek Kwiatkowski.
Grafika komputerowa – Grafika wektorowa i rastrowa
MARCIN WOJNOWSKI KOMPRESJA I DEKOMPRESJA PLIKÓW. KOMPRESJA Kodowanie danych w taki sposób, aby zajmowały najmniej miejsca na dysku. Najbardziej znanymi.
Informatyka Zakres rozszerzony GRAFIKA KOMPUTEROWA
Rozszerzenie pliku: Rozszerzenie pliku to sposób oznaczania typu pliku, który najprościej mówiąc przekazuje informacje o tym, jakie dane zawiera plik.
Kanał alfa ---z ang. alpha channel---  w grafice komputerowej jest kanałem, który definiuje przezroczyste obszary grafiki. Jest on zapisywany dodatkowo.
Grafika rastrowa i wektorowa
Rozszerzenie pliku: Rozszerzenie pliku to sposób oznaczania typu pliku, który najprościej mówiąc przekazuje informacje o tym, jakie dane zawiera plik.
Kompresja danych.
Zapis prezentacji:

Odwzorowywanie tekstur Kurs ITA-106 (Grafika i multimedia) – Moduł 4 Jacek Matulewski (e-mail: jacek@fizyka.umk.pl) http://www.fizyka.umk.pl/~jacek/dydaktyka/3d/ XNA Odwzorowywanie tekstur Wersja: 5 lutego 2009

Plan Współrzędne teksturowania Klasa werteksu VertexPositionColorNormalTexture Wczytywanie i nakładanie tekstury Zawijanie tekstury Przeźroczystość w teksturach Mipmapy Skybox

Współrzędne teksturowania 1/7 Współrzędne teksturowania Teksel (texel = texture element lub texture pixel) piksel tekstury nakładanej na bryłę w grafice 3D Współrzędna teksturowania (texture coordinate) (u,v) współrzędne w jednostkach rozmiaru tekstury wyznaczające położenie obrazu względem figury u v

2/7 Nowy typ werteksu Typ werteksu uwzględniający współrzędne teksturowania public struct VertexPositionColorNormalTexture { public Vector3 Position; public Color Color; public Vector3 Normal; public Vector2 TextureCoordinate; public static int SizeInBytes = 8 * sizeof(float) + sizeof(uint); … Element Pozycja Typ XNA Interpretacja Position VertexElementFormat.Vector3 VertexElementUsage.Position Color 3 * sizeof(float) VertexElementFormat.Color VertexElementUsage.Color Normal 3 * sizeof(float) + sizeof(uint) VertexElementUsage.Normal Texture Coordinate 6 * sizeof(float) + sizeof(uint) VertexElementFormat.Vector2 VertexElementUsage. TextureCoordinate

Projekt startowy do lab. podst. -/7 Projekt startowy do lab. podst. Projekt można pobrać z http://www.fizyka.umk.pl/~jacek/dydaktyka/3d/xna/ita106/ Plik 4B0 Tekstury (lab. podst.) - Start.zip Obracający się sześcian z normalnymi i oświetleniem Fragment kodu dodający współrzędne teksturowania do pobrania z txt\Zbior werteksow prostopadloscianu ze wspolrzednymi teksturowania.txt

Tekstury a karta graficzna -/7 Tekstury a karta graficzna

Labolatorium podstawowe -/7 Labolatorium podstawowe W pliku Prostopadloscian.cs: Zamienić typ werteksu na VertexPositionColorNormalTexture (Ctrl+H) W konstruktorach werteksów podać współrzędne teksturowania (kod do pobrania) Zdefiniować własność Prostopadloscian.Texture. W pliku Game1.cs: Wczytać teksturę (patrz następne przeźrocza) Powiązać wczytaną teksturę z efektem używanym do rysowania sześcianu.

Wczytywanie i nakładanie tekstury 3/7 Wczytywanie i nakładanie tekstury Przygotowujemy plik BMP/DDS, PNG, JPEG lub TGA. Kopiujemy plik obrazu do podkatalogu Content katalogu projektu. Dodajemy plik obrazu do projektu (Add, Existing Item…). Podczas kompilacji konwersja do formatu .xnb. Załadowanie tekstury do pamięci: efekt.Texture = game.Content.Load<Texture2D>("Nefryt"); efekt.TextureEnabled = true;

Zawijanie tekstur 4/7 Wrap Mirror Clamp Border Clamp w kierunku u Wrap w kierunku v

Przezroczystość tekstur 5/7 Przezroczystość tekstur Ładowanie tekstury efekt.Texture = this.Content.Load<Texture2D>("Xnalogo16"); int iloscPikseli = efekt.Texture.Width * efekt.Texture.Height; Color[] tabelaPikseli = new Color[iloscPikseli]; efekt.Texture.GetData<Color>(tabelaPikseli); Color kolorPrzezroczysty = tabelaPikseli[0]; //piksel (0,0) for (int i = 0; i < iloscPikseli; i++) if (tabelaPikseli[i] == kolorPrzezroczysty) tabelaPikseli[i].A = 0; efekt.Texture.SetData<Color>(tabelaPikseli); Kopiowanie tekseli do tablicy Color[] Białe bity będą przeźroczyste Zapisanie zmian do tekstury Należy pamiętać o włączeniu alpha blendingu!

Przezroczystość tekstur 5/7 Przezroczystość tekstur

6/7 Mipmapy 32 x 32 8 x 8 2 x 2 256 x 256 128 x 128 1 x 1 4 x 4 16 x 16 64 x 64 Przygotowanie tekstur w różnych rozmiarach, co ułatwia ich skalowanie (jakość i szybkość)

Skybox Sześcian obejmujący kamerę z odwróconym cullingiem 7/7 Skybox Sześcian obejmujący kamerę z odwróconym cullingiem Teksturujemy jego ściany pejzażem, np.: Źródło: http://www.scentednectar.com/skyboxes/