Co to jest wielokąt OpenGL®?
Wielokąt Open Graphics Library® (OpenGL®) to dowolny obiekt wykonany w OpenGL®, który składa się z więcej niż dwóch wierzchołków. Zasadniczo każdy obiekt, który nie jest punktem ani linią, jest uważany za wielokąt. OpenGL®, podobnie jak większość kart graficznych, zwykle ma specjalne optymalizacje, które dotyczą przede wszystkim trójkątów lub wielokątów, ponieważ trójkąty są najprostszym rodzajem wielokąta, który można wykonać z jak najmniejszą liczbą wierzchołków i boków. W niektórych przypadkach OpenGL® może obsługiwać kwadraty lub wielokąty wielokąta, głównie w trybach rysowania dwuwymiarowego (2D). Z wyjątkiem wypukłego, prostego wielokąta OpenGL®, większość kształtów z więcej niż trzema wierzchołkami zostanie ostatecznie rozbita na trójkąty w procesie zwanym teselacją, co może mieć dramatyczne niepożądane efekty na scenie.
Jedyny typ wielokąta OpenGL®, który można narysować natywnie bez potrzeby teselacji, jest znany jako zwykły wielokąt. Ten typ kształtu podlega kilku bardzo prostym zasadom. Boki muszą być wypukłe, co oznacza, że nie tworzą kątów przy wierzchołkach mniejszych niż 90 °. Żadne krawędzie nie mogą się przecinać, a dowolne dwie linie mogą spotkać się w danym wierzchołku. Ogranicza to prosty wielokąt do samodzielnego kształtu 2D, takiego jak kwadrat lub ośmiokąt, ponieważ gdyby był trójwymiarowy (3D), wówczas więcej niż dwie linie spotkałyby się w niektórych wierzchołkach.
Podczas konstruowania bardzo złożonego wielokąta OpenGL® często łatwiej jest utworzyć obiekt w zewnętrznym programie do modelowania 3D. Pozwala to nie tylko na stworzenie wygodniejszego, wizualnego środowiska do budowania obiektu, ale ma dodatkową zaletę polegającą na zapewnieniu projektantowi kontroli nad sposobem mozaikowania kształtów, aby nie powodowały problemów podczas renderowania. Alternatywnie wielokąt można utworzyć proceduralnie za pomocą algorytmów wykreślających wierzchołki zgodnie ze wzorem, co można zrobić, aby utworzyć wzór spiralny lub spiralny.
Każdy wielokąt OpenGL® ma powierzchnię, a jednolity obszar wewnątrz linii kształtu. Chociaż można zmienić to zachowanie, ogólnie każdy wielokąt jest widoczny tylko wtedy, gdy jego twarz jest skierowana w stronę kamery. Jeśli wielokąt jest skierowany w niewłaściwy sposób, może stać się niewidoczny, w zależności od trybu renderowania.
Każdy wielokąt OpenGL® ma również wartość znaną jako normalna. Normalna służy do określenia kierunku, w którym skierowana jest powierzchnia wielokąta. Mimo że wielokąt jest wyraźnie pod pewnym kątem i w pewnej pozycji, normalna powierzchnia może pomóc stworzyć specjalne efekty tekstury lub naśladować właściwości fizyczne, które nie są jednolite. Normalną dla wielokąta OpenGL® można ustawić dowolną wartość, nawet ujemną, choć wyniki mogą być nieprzewidywalne.