Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Należy określić wielokąt (który może zawierać otwory), który ma zostać podzielony przy użyciu:
W przypadku wielokątów bez otworów proces specyfikacji jest dokładnie taki jak w technologii OpenGL:
- Zacznij od gluBeginPolygon.
- Wywołaj gluTessVertex dla każdego wierzchołka na obwodzie.
- Zakończ wielokąt poprzez wywołanie gluEndPolygon.
Jeśli wielokąt składa się z wielu konturów, w tym otworów i otworów w otworach, należy określić kontury jeden po drugim, poprzedzając je gluNextContour. Podczas wywoływania gluEndPolygonsygnalizuje koniec końcowego konturu i rozpoczyna teselację. Można pominąć wywołanie gluNextContour przed pierwszym konturem. Funkcja gluBeginPolygon rozpoczyna specyfikację wielokąta, który ma być podzielony na fragmenty i kojarzy obiekt podziału, tessobj, z nim. Funkcje wywołania zwrotnego do użycia to te, które są przypisane do obiektu teselacji za pomocą gluTessCallback.
Funkcja gluTessVertex określa wierzchołek w wielokącie, który ma być poddany tessalacji. Wywołaj gluTessVertex dla każdego wierzchołka w wielokącie. Parametr tessobj funkcji to obiekt teselacji, który ma być używany, v zawiera współrzędne trójwymiarowe wierzchołków, a data jest dowolnym wskaźnikiem wysyłanym do funkcji zwrotnej skojarzonej z GLU_VERTEX. Zazwyczaj danych zawiera dane dotyczące wierzchołków, współrzędne tekstury, informacje o kolorze lub inne dane, których może wymagać aplikacja.
Funkcja gluNextContour oznacza początek następnego konturu, gdy wiele konturów tworzy granicę wielokąta do mozaikowania. Parametr typu funkcji może przyjąć wartość GLU_EXTERIOR, GLU_INTERIOR, GLU_CCW, GLU_CWlub GLU_UNKNOWN. Te stałe służą tylko jako wskazówki do tessellacji. Jeśli dobrze to zrobisz, teselacja może pójść szybciej. Jeśli się mylą, są one ignorowane, a tessellation nadal działa.
W przypadku wielokąta z otworami jeden kontur jest konturem zewnętrznym, a pozostałe są wewnętrzne. Jeśli nie wywołasz gluNextContour zaraz po gluBeginPolygon, będzie się przyjmować, że pierwszy kontur jest typu GLU_EXTERIOR.
GLU_CW i GLU_CCW wskazują wielokąty zorientowane zgodnie z ruchem wskazówek zegara i odwrotnie. Wybór, które są zgodne z ruchem wskazówek zegara, a które przeciwnie do ruchu wskazówek zegara, jest arbitralny w trzech wymiarach, ale w każdej płaszczyźnie istnieją dwie różne orientacje; należy konsekwentnie używać typów GLU_CW i GLU_CCW. Użyj GLU_UNKNOWN, jeśli nie wiesz, którego użyć.
Funkcja gluEndPolygon wskazuje koniec specyfikacji wielokąta. Wskazuje również, że tessellation może rozpocząć korzystanie z obiektu tessellation tessobj.