Wektor normalny

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania
Konstrukcja wektora normalnego do powierzchni

Wektor normalnywektor prostopadły do płaszczyzny, lub w wypadku innych powierzchni prostopadły do płaszczyzny stycznej do powierzchni w danym punkcie. Pojęcie to używane jest w matematyce, fizyce, biologii molekularnej, grafice 3D.

W grafice komputerowej

Wektor normalny oznacza wektor prostopadły do powierzchni obiektu trójwymiarowego w danym punkcie. Niekoniecznie musi on być równoległy do normalnej do uśrednionej (wygładzonej) powierzchni (zobacz: mapowanie wypukłości).

Każdy wektor wyznacza kierunek, dlatego w grafice komputerowej wektor normalny określa stronę powierzchni. Rozróżnia się „przód” (ang. face) i „tył” (ang. back). To rozróżnienie stosuje się m.in. do ukrywania powierzchni niewidocznych – w j. ang. metoda ta nazywa się backface culling i polega na niewyświetlaniu tych powierzchni, które są zwrócone „tyłem” do obserwatora, co pozwala w statystycznej scenie wyeliminować spory odsetek niewidocznych powierzchni.

Jeśli obiekty są reprezentowane jako siatka wielokątów, stosuje się technikę wygładzania przy użyciu wektorów normalnych. Dla każdego wierzchołka wyznacza się wektor normalny, który jest geometryczną sumą wektorów normalnych wielokątów, do których należy dany wierzchołek. Następnie przy oświetleniu wielokątów nie bierze się ich własnych wektorów normalnych, ale wyznacza wektor normalny poprzez interpolację wektorów z wierzchołków. Powoduje to powstanie złudzenia gładkości powierzchni.

Jeśli dana płaszczyzna opisana jest w postaci parametrycznej przy pomocy dwóch niezależnych od siebie rzeczywistych parametrów t1 i t2:

{x=x(t1,t2)y=y(t1,t2)z=z(t1,t2),

wówczas wektory styczne do tej powierzchni, różniczkując kolejno po t1 i t2, wyrażają się odpowiednio:

𝐯𝟏=[δxδt1,δyδt1,δzδt1]
𝐯𝟐=[δxδt2,δyδt2,δzδt2]

Następnie wyznaczamy iloczyn wektorowy powyższych dwóch wektorów, który jest jednocześnie szukanym wektorem normalnym:

v1×v2=|ijkδxδt1δyδt1δzδt1δxδt2δyδt2δzδt2|

Ostatecznie więc wektor normalny do naszej powierzchni dla danych parametrów t1 i t2, czyli w punkcie (x,y,z), wyraża się wzorem:

𝐧=[λ|δyδt1δzδt1δyδt2δzδt2|,λ|δxδt1δzδt1δxδt2δzδt2|,λ|δxδt1δyδt1δxδt2δyδt2|];λ{0}

Jeżeli powierzchnia opisana jest funkcją y=f(x,z), to wtedy zmienne x i z traktujemy jako parametry, odpowiednio t1 i t2:

{x=t1y=y(t1,t2)=f(x,z)z=t2

Po odpowiednich podstawieniach otrzymujemy szukany wektor normalny:

𝐧=[λδyδx,λ,λδyδz];λ{0}

Wektory normalne niektórych powierzchni

  • Płaszczyzna Π o równaniu ogólnym ax+by+cz+d=0 w dowolnym punkcie (x,y,z)Π:
𝐧=[λa,λb,λc]=const;λ{0}
  • Sfera kuli Π o równaniu ogólnym (xx0)2+(yy0)2+(zz0)2=R2 w punkcie (x,y,z)Π:
𝐧=[λ(xx0),λ(yy0),λ(zz0)];λ{0}
  • Powierzchnia elipsoidy Π o równaniu ogólnym (xx0a)2+(yy0b)2+(zz0c)2=1 w punkcie (x,y,z)Π:
𝐧=[λxx0a2,λyy0b2,λzz0c2];λ{0}

Zobacz też

Szablon:Kontrola autorytatywna