2011-07-22

Mapowanie tesktury na płaszczyznę

Musimy ustalić współrzędne tekstury (u,v), gdzie $\mathbf{0<=u<=1}$, $\mathbf{0<=v<=1}$. Taką współrzędną łatwo później przeskalować na konkretną bitmapę lub wykorzystać w wyliczaniu tekstury proceduralnej.

Aby zorientować teksturę na płaszczyźnie potrzebujemy punktu na płaszczyźnie, który będzie początkiem układu współrzędnych i dwóch wektorów orientujących wokół tego punktu dwuwymiarowy układ współrzędnych leżący na płaszczyźnie.

Do zorientowania obiektu w 3D potrzebujemy jego pozycji i dwa wektory orientujące jego układ współrzędnych. Trzeci wektor możemy sobie wyliczyć z iloczynu wektorowego. Z punktu (przesunięcia) i 3 wektorów budujemy macierze transformacji świat-obiekt i obiekt-świat.

Mnożąc punkt należący do płaszczyzny przez macierz świat-obiekt sprowadzamy do układu współrzędnych obiektu. Zakładamy, że taki punkt ciągle leży na płaszczyźnie.

Jego współrzędne X i Z wyznaczą nam współrzędne tekstury (u,v).

Ostatni problem do rozwiązania to nieskończoność płaszczyzny, który wymusza na nas przeskalowanie współrzędnych tekstury do pożądanego przez nas wizualnego efektu.

Brak komentarzy:

Prześlij komentarz