Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

XNA Odwzorowywanie tekstur Kurs ITA-106 (Grafika i multimedia) – Moduł 4 Jacek Matulewski (

Podobne prezentacje


Prezentacja na temat: "XNA Odwzorowywanie tekstur Kurs ITA-106 (Grafika i multimedia) – Moduł 4 Jacek Matulewski ("— Zapis prezentacji:

1 XNA Odwzorowywanie tekstur Kurs ITA-106 (Grafika i multimedia) – Moduł 4 Jacek Matulewski ( Wersja: 5 lutego 2009

2 Plan 1.Współrzędne teksturowania 2.Klasa werteksu VertexPositionColorNormalTexture 3.Wczytywanie i nakładanie tekstury 4.Zawijanie tekstury 5.Przeźroczystość w teksturach 6.Mipmapy 7.Skybox

3 Współrzędne teksturowania Teksel (texel = texture element lub texture pixel) piksel tekstury nakładanej na bryłę w grafice 3D 1/7 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

4 public struct VertexPositionColorNormalTexture { public Vector3 Position; public Color Color; public Vector3 Normal; public Vector2 TextureCoordinate; public static int SizeInBytes = 8 * sizeof(float) + sizeof(uint); … Nowy typ werteksu 2/7 ElementPozycjaTyp XNAInterpretacja Position0VertexElementFormat.Vector3VertexElementUsage.Position Color3 * sizeof(float)VertexElementFormat.ColorVertexElementUsage.Color Normal3 * sizeof(float) + sizeof(uint) VertexElementFormat.Vector3VertexElementUsage.Normal Texture Coordinate 6 * sizeof(float) + sizeof(uint) VertexElementFormat.Vector2VertexElementUsage. TextureCoordinate Typ werteksu uwzględniający współrzędne teksturowania

5 Projekt startowy do lab. podst. 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 Projekt można pobrać z Plik 4B0 Tekstury (lab. podst.) - Start.zip -/7

6 Tekstury a karta graficzna -/7

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

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

9 Zawijanie tekstur 4/7 WrapMirrorClampBorder Clamp w kierunku u Wrap w kierunku v

10 Przezroczystość tekstur 5/7 efekt.Texture = this.Content.Load ("Xnalogo16"); int iloscPikseli = efekt.Texture.Width * efekt.Texture.Height; Color[] tabelaPikseli = new Color[iloscPikseli]; efekt.Texture.GetData (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 (tabelaPikseli); Ładowanie tekstury Kopiowanie tekseli do tablicy Color[] Zapisanie zmian do tekstury Białe bity będą przeźroczyste Należy pamiętać o włączeniu alpha blendingu!

11 Przezroczystość tekstur 5/7

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

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


Pobierz ppt "XNA Odwzorowywanie tekstur Kurs ITA-106 (Grafika i multimedia) – Moduł 4 Jacek Matulewski ("

Podobne prezentacje


Reklamy Google