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.
2011-07-22
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz