piątek, 5 października 2012

Technika Motion Capture

Dzisiaj poruszę bardzo nową dziedzinę a mianowicie animację opartą o zapis ludzkich ruchów ciała, które następnie są przetwarzane przez komputer. Technika ta nazywa się Motion Caputre, którą postaram się opisać poniżej. Zachęcam do lektury.

Technologia motion capture do animacji postaci komputerowych jest stosunkowo nową dziedziną, jednakże jej początki rozpoczęły się już pod koniec 1970 roku, ale dopiero teraz staje się bardziej powszechna.

Motion capture jest zapisem ludzkich ruchów ciała (lub inny ruchów) do bezpośredniej lub opóźnionej analizy i odtwarzania. Zdobyte informacje mogą być generowane jako proste pozycje ciała w przestrzeni lub tak skomplikowane jak przy deformacji twarzy i masy mięśni. Motion capture do animacji postaci komputerowej obejmuje mapowanie ludzkiego ruchu na ruch o charakterze komputerowym. Odwzorowanie może być bezpośrednie, takie jak ruch ramienia ludzkiego sterujący ruchem ramienia bohatera, lub pośrednie, takie jak ludzka ręka i wzorce palców kontrolujące kolor skóry bohatera czy stan emocjonalny.

Pomysł naśladowania ludzkiego ruchu dla animowanych postaci wywodzi się od rotoskopii (ang. Rotoscoping). Metoda ta polegała na kopiowaniu relistycznego ruchu aktorów z materiału filmowego na postacie rysunkowe. Według słownika językowego termin ten dzisiaj tłumaczy się jako technikę tworzenia animacji, która polega na nakładaniu na siebie i kolejnym wyświetlaniu pojedynczych warstw obrazu.

Technologia motion capture pozwoliła na przedstawienie realistycznego ruchu w grach i filmach 3D. W związku z szerokim zastosowaniem dane do motion capture są zwykle uzyskiwane na kilka sposobów, przez co istnieje podział na:

  • Optyczne systemy przechwytywania ruchu (ang. Optical Motion Capture) - są bardzo popularne, oparte na kamerach CCD (ang. Charge-couped device). Systemy te oferują aktorowi największą swobodę ruchu, ponieważ nie wymagają żadnego okablowania. Zawierają kierunkowo odbijające kropki, określane jako markery, które przyczepione są do aktora.
  • Elektromagnetyczne (ang. Electromagnetic Motion Capture) oparte na odbiornikach lub sensorach elektromagnetycznych, które mierzą dystans pomiędzy śledzonym punktem, a najbliższym transmiterem.
    Ta popularna metoda polega na wykorzystaniu centralnie umieszczonego nadajnika i zestawu odbiorników, które są naklejone na różnych częściach ciała aktora. Odbiorniki te są w stanie mierzyć przestrzenny pomiar z nadajnika. Każdy odbiornik jest podłączony do interfejsu, który może być zsynchronizowany, aby zapobiec nieprawidłowego poboru danych.
  • Akustyczne (ang. Acoustic Motion Capture)- jest znacznie różniącą się metodą przechwytywania ruchu. Polega na wykorzystaniu triady odbiorników audio. Tablica nadajników audio jest przywiązany do różnych części ciała aktora. Nadajniki są kolejno wywoływane do wejścia w stan "kliknięcia" i każdy odbiornik dokonuje pomiaru czas potrzebnego na podróż dźwięku z każdego nadajnika.
  • Protetyczne (ang. Prosthetic Motion Capture) - jest to jedna z pierwszych metod przechwytywania ruchu z różnych części ludzkiej anatomii. Metoda ta obejmuje proste "`on/off"' typu systemów detekcji ruchu, jak i złożonych systemów śledzenia ruchu. Ten ostatni typ wychwytywania protetycznego ruchu miałby idealne podejście, gdyby nie rodzaj złożonych wymagań mechanicznych. Niniejsza metoda bazuje na zewnętrznej strukturze (pancerzu plastikowym), który muszi być przymocowany do całego ciała aktora

czwartek, 4 października 2012

Rodzaje mapowania tekstur

 Dzisiaj zajmiemy się wymienieniem dokładnych technik mapowania. Zostaną tutaj opisane cztery najważniejsze techniki, a następnie będzie do każdej z nich podany przykład aby można było wizualnie zobaczyć jak na konkretnym obiekcie prezentuje się dana metoda.

MIP Mapping to technika, która głównie zależy od odległości od obserwatora poprzez zmianę rozdzielczości odwzorowywanej tekstury. Polega to na tym, że im bliżej znajduje się obiekt, na
który ma zostać nałożone mapowanie, tym użyta do tego celu zostaje tekstura o większej rozdzielczości. Sytuacja jest odwrotna jeśli obiekt znajduje się dalej od obserwatora, to oznacza że zostaje użyta tekstura i mniejszej rozdzielczości. Technikę tą stosuje się głównie w celu zmniejszenia szumów powstałych w trakcie zastosowania tekstur o dużej rozdzielczości dla małych obiektów. Jednak metoda ta wymaga większego nakładu pamięci, ze względu na to że zostaje przechowywany w bazie tekstur ten sam obraz, tylko o różnych rozmiarach rozdzielczości, co ilustruje rys. 1.


Rodzaje mapowania tekstur


Bump Mapping czyli mapowanie nierówności jest techniką polegającą na wykorzystaniu tekstury do modyfikacji wektora normalnego. Polega to na określeniu co najmniej dwóch tekstur, gdzie
jedna z nich odwzorowana zostaje na obiekcie a druga nie jest bezpośrednio przypisana obiektowi lecz przyczynia się, że na jego powierzchni powstają lokalne zniekształcenia wektora normalnego.
Model oświetlenia w pewien sposób wiąże kąt pomiędzy promieniem światła a wektorem normalnym, w efekcie prowadzi to do zakłócenia wektora normalnego, który sprawia, że na powierzchni modelu otrzymujemy wrażenie nierówności. Skutek ten można rozpoznać poprzez
obserwację brzegu obiektu, które nie są zakłócone. Mapowanie daje znakomite wrażenie nierówności powierzchni, ale nie zmienia w rzeczywistości jej kształtu. Geometria obiektu nie zostaje w jakikolwiek sposób przekształcona, co ilustruje rys. 2.


Rodzaje mapowania tekstur


Displacement Mapping mapowanie przemieszczeń to technika, która powoduje zmianę geometrii obiektu poprzez przemieszczanie wierzchołków na podstawie wprowadzonej mapy przesunięć. Nałożenie mapy na powierzchnie obiektu powoduje przemieszczenie pozycji punktów obiektu najczęściej wzdłuż lokalnych normalnych powierzchni. Funkcja określająca które piksele zostaną przemieszczone zależy od informacji zawartych w nałożonej teksturze. Technika ta daje bardzo
dobre efekty głębi oraz szczegółowości, dodatkowymi zaletami deformacji powierzchni obiektu jest rzucanie cieni własnych przez obiekt oraz wzajemne przesłanianie. Wadą tej techniki natomiast jest
zdecydowane obciążenie komputera. Przykład pokazany jest na rys. 3.



Rodzaje mapowania tekstur



Normal Mapping jest techniką, która polega na tym, że nie modyfikujemy geometrii prezentowanego obiektu, modyfikujemy tylko wektory normalne (czyli wektory prostopadłe do powierzchni). Metoda ta jest podobna do wymienionych wcześniej technik mapowania
nierówności oraz mapowania przemieszczeń, jednakże pozwala osiągnąć zdecydowanie lepsze wyniki przy znacznie mniejszym obciążeniu pamięci. Zamiast interpolować wektory normalne dla każdego piksela (korzystając z wektorów normalnych w wierzchołkach modelu), zostają
one odczytane z dodatkowej tekstury. Każda składowa koloru piksela tekstury (r,g,b) odpowiada współrzędnym wektora normalnego (x,y,z) w renderowanym pikselu. Tak uzyskany wektor normalny jest używany w obliczeniach intensywności światła. Efekt zastosowania widać na rys. 4.


Rodzaje mapowania tekstur



Oczywiście normal mapping daje tylko złudzenie głębi, gdy np. spojrzymy na obiekt pod dużym kątem dostrzeżemy, że mamy do czynienia z czymś kompletnie płaskim. Wrażenie \"chropowatości\" występuje gdy na obiekt patrzymy pod kątem prostym.

wtorek, 2 października 2012

Mapowanie tekstur

Na wstępie przedstawię podstawowe pojęcia pojawiające się w kontekście mapowania tekstur a następnie opiszę czym jest tekstura i w jaki sposób jest nakładana na obiekt. Kolejny post poświęcony będzie podaniu rodzai mapowania tekstur, który w gruncie rzeczy będzie kontynuacją dzisiejszego posta.
 

Podstawowe pojęcia:

Aproksymacja - jest to zastępowanie jednych wielkości innymi, bliskimi w ściśle sprecyzowanym
sensie.
Teksel – piksel tekstury, najmniejszy element tekstury, który jest wyświetlany na ekranie.

Tekstura - jest to przestrzenny rozkład danego zjawiska. To funkcja modyfikująca wygląd powierzchni obiektu. Aproksymacją tej funkcji może być bitmapa.
Tekstura to tylko nałożenie obrazu – zdjęcia, ale może to być także zmiana pewnych postrzeganych właściwości materiałowych. Możliwa jest także zmiana pewnych cech związanych z otoczeniem – tekstura jest także stosowana do przyspieszenia lub uproszczenia wyznaczania oświetlenia (barwa światła odbitego, rozproszonego, stopień przeźroczystości, itd.). Tworząc teksturę zwiększamy stopień realizmu generowanych obrazów, dodając pewne cechy obiektom, które bez tego wyglądałyby nienaturalnie.

Jednocześnie ponieważ jest to nakładanie – odwzorowanie obrazu na powierzchni materiału, to jest to technika szybsza i efektywniejsza niż realizacja rzeczywistego definiowania właściwości powierzchni obiektu.

Mapowanie tekstury (nakładanie tekstury) – jest to proces obliczania współrzędnych (u,v) tekstury dla każdego wierzchołka modelu. Współrzędne (u,v) wyraża się jako liczby zmiennoprzecinkowe znormalizowane do przedziału <0,1>.
Dla każdego punktu w modelu ustala się odpowiedni region na mapie tekstury. Przykład odwzorowania ukazany jest na rys.1


Mapowanie tekstur


Innymi słowy mapowanie polega na określeniu w jaki sposób powiązać teksele tekstury z obiektem na który ma zostać nałożona.

Ze względu na sposób w jaki tekstura zostaje nałożona na obiekt, można wyróżnić podstawowe
  • liniowe
  • cylindryczne
  • sferyczne

    Mapowanie tekstur


poniedziałek, 1 października 2012

Mapa materiałowa

Post dzisiaj przeniesie nas definicję obrazu dwuwymiarowego, skupimy się na jego właściwościach a także postaram się wyróżnić różne rodzaje map materiałowych, stosowane na obrazach zarówno 2D jak i 3D.

Mapa materiałowa to obraz dwuwymiarowy, który jest "owijany" wokół powierzchni trójwymiarowej. To właśnie dzięki mapom można w łatwy sposób nadać określonych cech obiektom np. tworząc strukturę wgnieceń na powierzchni. W odróżnieniu od opisanych powyżej różnych właściwości materiału, które opierały się głównie na oddziaływaniu promieni świetlnych mapa umożliwia wprowadzenie nowych elementów i szczegółowych detali na powierzchnię modelu.

Istnieją różne rodzaje map materiałowych. Niektóre nakładają obrazy na obiekty, inne określają obszary mające ulec przekształceniom przez porównywanie intensywności (jasności) piksela na mapie. Do najważniejszych należą:
  • Mapy dwuwymiarowe (2D) - mogą zostać nałożone na powierzchnię obiektu lub też użyte jako tło sceny (tzw. mapy środowiskowe). Mapy 2D nie posiadają głębi, co powoduje że pojawiają się tylko na powierzchni obiektu. Najpopularniejszymi mapa dwuwymiarowymi są mapy typu Bitmap, które umożliwiają załadowanie z dysku dowolnego obrazu a następnie bezpośrednie nałożenie na wybraną powierzchnię. Każda mapa nałożona na obiekt musi posiadać współrzędne mapowania, które określają sposób jej ułożenia na obiekcie tzw. narożniki mapy.

    Mapy dwuwymiarowe są obecnie najczęściej stosowane. Przedstawione są w formie zdjęć fotograficznych jako obraz powierzchni obiektów rzeczywistych (np. tkaniny, kory drzew, ściany, krajobrazu). Przykład różnych map 2D został pokazany na rys. 1.

Mapa materiałowa

  • Mapy trójwymiarowe (3D) - są tworzone proceduralnie, co oznacza że nie są tylko zgrupowaniem pikseli lecz powstają przy użyciu algorytmu matematycznego. Algorytm ten opisuje mapę w trzech wymiarach, dzięki czemu powoduje ponowne układanie się niej wzdłuż krawędzi po odcięciu części obiektu, na którym jest nałożona. Mapy 3D nie są już płaskimi obrazami posiadającymi tylko szerokość i wysokość lecz tworzą przestrzeń trójwymiarową, w której kolory zostają rozłożone na wypukłej powierzchni sześcianu. Dzięki temu mapy posiadają trzeci wymiar - głębię, poprzez którą pojedyncze mapy 2D zostają ułożone sekwencyjnie jedna za drugą.

    Najczęściej spotykane mapy proceduralne to szachownica, marmur, wzór typu plaster miodu, chmury, różnorodne gradienty. Przykład użycia różnych map 3D zaprezentowano na rys. 2.

    Mapa materiałowa