Wprowadzenie do grafiki maszynowej. Wprowadenie do teksturowania Aleksander Denisiuk Uniwersytet Warmińsko-Mazurski Olsztyn, ul. Słoneczna 54 denisjuk@matman.uwm.edu.pl 1 / 19
Wprowadenie do teksturowania Najnowsza wersja tego dokumentu dostępna jest pod adresem http://wmii.uwm.edu.pl/~denisjuk/uwm 2 / 19
Techniki teksturowania Tekstura zawiera informacje o kolorach, które maja zastapić obliczone kolory powierzchni. Tekstura zawiera informacje o kolorach, blasku, przezroczystości, które maja zmienić charakterystyki powierzchni po obliczniach oświetlenia i cieniowania. Tekstura zawiera parametry, majace wpływ na obliczenie oświetlenia (współczynnik odbicia, przemieszczenie wektoru normalnego, etc). 3 / 19
Tekstura Zdjęcie, obrazek skanowany, utworzony edytorem graficznym. Obrazek zaprogramowany (skompilowany, generowany na bieżaco). Obrazek generowany podaczas mapowania (odbicie). Teksturowanie [0,1] [0,1] model 4 / 19
Interpolacja tekstury 1. Określa się lokalne współrzędne tekstury w wierzchołkach wieloboku 2. Interpoluje się wewnatrz ¼ ½ ¼ ¼ ¼ 5 / 19
Wybór lokalnych współrzędnych dla tekstury Płaszczyzna. Sześcian. Powierzchnia parametryzowana P(u,v). Współrzędne na teksturze zależ a od u i v. (Może być również od p(u,v), wektoru normalnego do powierzchi, etc.) 6 / 19
Walec. Mapowanie cylindryczne p(θ,y) = (rsinθ,y,rcosθ), 0 θ < 360, h/2 y h/2 s = θ 360, t = y+h/2 h ÙÖ Îº Ø ÜØÙÖ Ñ Ô Ò Ø ÔÔÐ Ø ÓÒ ØÓ ÝÐ Ò Öº 7 / 19
Walec Þ Ý Û Ü Û Ü Þ Ý ÙÖ Îº Ì ÕÙ Ö Ð Ø Ö Ð Ü Ý Þ Û Ð Ø Ö ÓÒ Ó Ø Ø ÜØÙÖ Ñ Ôº Ì ÖÓ Ø Ö ÓÒ Ó Ø Ø ÜØÙÖ Ñ Ô ÒÓØ Ø ÒØ Ò Ö ÓÒ Ó Ø Ø ÜØÙÖ Ñ Ôº Ì Ö Ø ÒØ Ò Ö ÓÒº 8 / 19
Sfera. Mapowanie sferyczne P(θ,ϕ) = (rsinθcosϕ,rsinϕ,rcosθcosϕ) s = θ 360, t = ϕ 180 + 1 2 s = θ 360, t = sinϕ 2 + 1 2 9 / 19
κ ÌÛÓ ÔÔÐ Ø ÓÒ Ó Ø ÜØÙÖ Ñ Ô ØÓ Ô Ö º Ì Ô Ö ÓÒ ÙÖ Ð Ø Ö Ó Ö Ø ÜØÙÖ ÔÔÐ Û Ø Ø ÜØÙÖ ÓÓÖ Ò Ø Ú Ò Ý Ø Ú Ò Ý Ø ÝÐ Ò Ö Ð ÔÖÓ Ø ÓÒ Ó ÕÙ Ø ÓÒ Îº µº Ì Ô Ö ÓÓÖ Ò Ø Ö ÛÒ Û Ø Ø ÐØ Ò Ñ ÐÐ ÖÓØ Ø ÓÒº Ö Mapowanie sferyczne Ø Ô Ö Ð Ñ Ô Ó ÕÙ Ø ÓÒ Îº¾µº Ì Ô Ö ÓÒ Ø Ö Ø Ù Ø ÜØÙÖ 10 / 19
Przykładowa tekstura sferyczna 11 / 19
Torus P(θ,ϕ) = ( (R+rcosϕ)sinθ,rsinϕ,(R+rcosϕ)cosθ) s = θ 360, t = ϕ 360 ÙÖ Îº Ö Ó Ö Ø ÜØÙÖ Ñ Ô ÔÔÐ ØÓ ØÓÖÙ º 12 / 19
Aliasing Rozdzielczość tekstury jest mniejsza od rozdzielczości ekranu Rozdzielczość tekstury jest większa od rozdzielczości ekranu Miganie, interferencja, plamy Obiekty ruszajace się 13 / 19
Interpolacja Mipmapping Zastosowanie skalowanych tekstur Interpolacja najbliższych tekstur Zwiększenie prędkości Zwiększenie pamięci o 33% Jest implemientowany sprzętowo 14 / 19
Mipmapping 15 / 19
κ ÁÒ Ø Ö Ø ÙÖ Ø Ò Ò ÙÔ Ö ÑÔÐ ÔÓ ÒØ Ö ÔÐ Ø Ø ÙÖ Ó Ø Ò Ò Ù Ô Ü Ð º ÁÒ Ø ÓÒ ÙÖ Ø ÙÔ Ö ÑÔÐ ÔÓ ÒØ Ö ÒØ Ö Supersampling (nadpróbkowanie) ØØ Ö ÙØ Ö ÓÒ ØÖ Ò ØÓ Ø Ý Ò Ø Ö Ù Ô Ü Ðº Zwykły Stochastyczny Jittering (fluktacje) 16 / 19
Á º Ò Ü ÑÔÐ Ó ÒØ ¹ Ð Ò Ù Ò ØØ Ö Ù Ô Ü Ð ÒØ Ö º ÙÖ ÓÛ Ø Ò Ö Ò Ö Û Ø ÓÙØ ÙÔ Ö ÑÔÐ Ò ÒÓØ Ø ÓÒ µ Ð ÓÙ ØØ Ó Ø ÐÐ ÓÖ Ò Ø Ò º µ Ø Ò Û Ø Ô Ü Ð Ð Ø Ú ÐÝ Ø ÙÔ ØÓ Ñ Ü ÑÙÑ Ó ¼ Ø Ñ º Ë ÓÐÓÖ ÔÐ Ø º º ÙÔ Ö ÑÔÐ Supersampling µ ÆÓ ÙÔ Ö ÑÔÐ Ò º µ ËÙÔ Ö ÑÔÐ Ò Û Ø ØØ Ö Ù Ô Ü Ð ÒØ Ö º 17 / 19
κ ÙÑÔ Ñ ÔÔ ØÓÖÙ º ÆÓØ Ø Ð Ó ÙÑÔ ÓÒ Ø Ð ÓÙ ØØ º ÙÖ Ö ÓÙÖ Û Ø Ð Ø Ò Ò ÓÒ Ø Ò ÔÐÙ ÐÓÛ Ð Ú Ð Ó Ñ ÒØ Ì Ö Ì Ô ØÙÖ Û Ò Ö Ø Û Ø Ø Ö Ý ØÖ Ò Ó ØÛ Ö Ö ÐÐÙÑ Ò Ø ÓÒº ÔÔ Ò Ü º Ë ÓÐÓÖ ÔÐ Ø º º Ò Mapowanie wypukłości Zmiana wektora normalnego Przed obliczniem oświetlenia 18 / 19
Mapowanie Dany jest mały zwierciadlany obiekt (kula, sześcian). Oblicza się (robi się zdjęcie) mapa tekstury jako obraz otoczenia widoczny od środka obiektu 19 / 19