[ Pobierz całość w formacie PDF ]

znaleziona zostanie nazwa , to oznacza to dostępność tekstur wie-
lokrotnych.
W celu sprawdzenia dostępności konkretnego rozszerzenia OpenGL można skorzystać
z dostępnej w bibliotece GLU funkcji o następującym prototypie:
Funkcja ta zwraca wartość , jeśli nazwa rozszerzenia znajduje się w łańcuchu
lub wartość w przeciwnym razie.
Aańcuch zwrócony przez funkcję można także przeszukać indywidualnie.
Oto przykład implementacji odpowiedniej funkcji:
RozdzIał 9. Zaawansowane odwzorowanIa tekstur 239
Funkcja ta zwraca wartość , jeśli łańcuch zawiera łańcuch przy zało-
żeniu, że składa się z podłańcuchów oddzielonych znakami spacji. Aby sprawdzić,
czy dana implementacja umożliwia stosowanie tekstur wielokrotnych, można skorzystać
ostatecznie z poniższego fragmentu kodu:
Po sprawdzeniu dostępności tekstur wielokrotnych kolejnym krokiem będzie uzyskanie
wskazników funkcji rozszerzeń.
Dostęp do funkcji rozszerzeń
Aby korzystać z rozszerzeń OpenGL na platformie Microsoft Windows musimy uzy-
skać dostęp do funkcji rozszerzeń. Funkcja zwraca wskaznik żądanej
funkcji rozszerzenia. Dla tekstur wielokrotnych dostępnych jest sześć funkcji rozszerzeń:
(gdzie =1..4)  funkcje te określają współrzędne
tekstur wielokrotnych;
 wybiera bieżącą jednostkę tekstury;
n  wybiera jednostkę tekstury, na której
wykonywane będą operacje.
240 Część II KorzystanIe z OpenGL
Poniższy fragment kodu służy do uzyskania dostępu do wymienionych funkcji rozszerzeń:
Po wykonaniu tego kodu można tworzyć tekstury wielokrotne za pomocą funkcji
i .
Tworzenie jednostek tekstury
Tworzenie tekstur wielokrotnych odbywa się poprzez nakładanie wielu jednostek tek-
stury. Jednostka tekstury składa się z obrazu tekstury, parametrów filtrowania, stosu
macierzy tekstury, a ponadto posiada zdolność automatycznego tworzenia współrzęd-
nych tekstury.
Aby skonfigurować parametry jednostki tekstury, trzeba najpierw wybrać bieżącą jed-
nostkę tekstury za pomocą funkcji zdefiniowanej w następujący
sposób:
Po wykonaniu tej funkcji wszystkie wywołania funkcji , ,
, i dotyczyć będą jednostki tekstury określo-
nej przez parametr . Parametr może posiadać wartość ,
gdzie jest liczbą całkowitą z przedziału od 0 do wartości o jeden mniejszej od dopusz-
czalnej liczby jednostek tekstur. Na przykład oznacza pierwszą z do-
stępnych jednostek tekstur. Liczbę jednostek tekstur dopuszczalną dla danej implemen-
tacji OpenGL uzyskać można wykonując poniższy fragment kodu:
Jeśli w wyniku wywołania funkcji uzyskana zostanie wartość 1, ozna-
czać to będzie, że dana implementacja nie umożliwia tworzenia tekstur wielokrotnych.
Jednostki tekstur można konfigurować za pośrednictwem obiektów tekstur. Informacja,
którą zawiera obiekt tekstury, jest automatycznie przechowywana z jednostką tekstury.
Aby korzystać z jednostek tekstur, wystarczy więc  podobnie jak w przypadku zwy-
kłych tekstur  utworzyć obiekt tekstury, a następnie aktywować jednostkę tekstury za
pomocą funkcji . Następnie należy związać obiekty tekstur z od-
powiadającymi im jednostkami tekstur. Ilustruje to następujący fragment kodu:
RozdzIał 9. Zaawansowane odwzorowanIa tekstur 241
Powyższy fragment kodu tworzy najpierw dwa obiekty tekstur, a następnie kreuje za ich
pomocą dwie jednostki tekstur używane do tworzenia tekstur wielokrotnych.
Określanie współrzędnych tekstury
Teraz, gdy wiadomo już, w jaki sposób tworzyć jednostki tekstur, należy zapoznać się ze
sposobem ich użycia. Jako że pojedynczy wielokąt będzie więcej niż jedną teksturą,
trzeba zdefiniować dla niego także więcej niż jeden zestaw współrzędnych tekstury. Dla
każdej jednostki tekstury należy więc dysponować osobnym zbiorem współrzędnych
tekstury i zastosować je dla każdego wierzchołka z osobna. Aby określić współrzędne
tekstury dwuwymiarowej można zastosować funkcję zdefinio-
waną w następujący sposób:
Inne wersje tej funkcji umożliwiają określenie współrzędnych tekstu jedno-, trój- oraz [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • freetocraft.keep.pl