Studium podyplomowe. Programowanie w OpenGL. Michał Turek, AGH Kraków

Podobne dokumenty
3 Przygotował: mgr inż. Maciej Lasota

6 Przygotował: mgr inż. Maciej Lasota

Temat: Transformacje 3D

Światło. W OpenGL można rozróżnić 3 rodzaje światła

Zatem standardowe rysowanie prymitywów wygląda następująco:

Elementarne obiekty geometryczne, bufory. Dorota Smorawa

Materiały. Dorota Smorawa

Światła i rodzaje świateł. Dorota Smorawa

Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.

2 Przygotował: mgr inż. Maciej Lasota

OpenGL Światło (cieniowanie)

OpenGL Światło (cieniowanie)

OpenGL model oświetlenia

System graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D.

Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym

1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 6

Grafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki

OpenGL przezroczystość

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

OpenGL - charakterystyka

Grafika 3D OpenGL część II

Rzutowanie DOROTA SMORAWA

OpenGL. Silicon Graphics (IRIS GL stacje graficzne)

glwindowpos2d void DrawString (GLint x, GLint y, char *string) { glwindowpos2i (x,y); int len = strlen (string); for (int i = 0; i < len; i++)

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

OPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE

OpenGL - maszyna stanu. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 7. Grupy atrybutów. Zmienne stanu.

Przekształcenia geometryczne. Dorota Smorawa

8 Przygotował: mgr inż. Maciej Lasota

Bufor koloru cd. Czyszczenie bufora koloru glclearcolor( )

OpenGL teksturowanie

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5

Prosty program- cpp. #include <GL/glut.h>

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Grafika komputerowa. Potok graficzny 3D. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny

Temat: Wprowadzenie do OpenGL i GLUT

Janusz Ganczarski. OpenGL Pierwszy program

Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. OpenGL - Achitektura. OpenGL - zalety. olas@icis.pcz.

Laboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.

1. Prymitywy graficzne

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Efekt lustra 3D w OpenGL z wykorzystaniem bufora szablonowego (stencil buffer)

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Mieszanie kolorów. Dorota Smorawa

AUTOCAD MIERZENIE I PODZIAŁ

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie V. Biblioteka OpenGL - oświetlenie sceny

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

Grafika trójwymiarowa

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

Grafika komputerowa Wstęp do OpenGL

Skrócona instrukcja obsługi darmowego programu do grafiki 3D. Anim8or. Wykonał: Rafał Wojszczyk

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Plan wykładu. Akcelerator 3D Potok graficzny

Autodesk 3D Studio MAX Teksturowanie modeli 3D

OpenGL Zaawansowana grafika komputerowa

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Wprowadzenie do QT OpenGL

C-geo definicja/edycja obiektów, zapis danych w formacie shape

Laboratorium 4 OpenGl (4) Oświetlenie sceny

Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie

OpenGL i wprowadzenie do programowania gier

Kod źródłowy programu: program Grafika1; uses crt, graph; (1) var sterownik, tryb:smallint; (2)

Programowanie Procesorów Graficznych

Grafika komputerowa. Zajęcia 7

Janusz Ganczarski. OpenGL Definiowanie sceny 3D

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

OpenGL oświetlenie i tekstury. OpenGL oświetlenie. Bogdan Kreczmer.

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

WSCAD. Wykład 1. Wprowadzenie

TUTORIAL: Modelowanie powierzchniowe

Rysowanie precyzyjne. Polecenie:

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

PRZEWODNIK PO PRZEDMIOCIE

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

PROGRAM BLOKU SZKOLENIOWEGO

Animowana grafika 3D. Opracowanie: J. Kęsik.

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

OpenGL. Biblioteka procedur graficznych. GLU = OpenGL Utility Library. GLX = OpenGL Extension to the X Window System [tm]

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Tekstury. Dorota Smorawa

Podstawy Processingu. Diana Domańska. Uniwersytet Śląski

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

DesignCAD 3D Max 24.0 PL

CRM VISION Instalacja i uŝytkowanie rozszerzenia do programu Mozilla Thunderbird

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Grafika komputerowa i wizualizacja

7. Dynamiczne generowanie grafiki

Wstęp Podstawy Pierwszy program Definiowanie sceny 3D Przekształcenia geometryczne... 47

Wprowadzenie do klas w C++ oraz biblioteki opengl

Spis treści. Wstęp... 11

Transkrypt:

Studium podyplomowe Programowanie w OpenGL Michał Turek, AGH Kraków

Charakterystyka (I) OpenGL - (Open Graphics Library) Graficzna biblioteka 2D/3D Liczne porty biblioteki, w tym takŝe akcelerowane sprzętowo Format otwarty - moŝliwość definiowania dowolnych rozszerzeń, równieŝ akcelerowanych przez producentów sprzętu Dodatki funkcjonalne, umoŝliwiające tworzenie interfejsów uŝytkownika i dostarczające narzędzi: GLUT GLU GLAUX

Charakterystyka (II) Konwencja nazewnictwa: Przedrostki funkcji: gl, glu, glut - zaleŝnie od pakietu, do którego funkcja przynaleŝy Przyrostki funkcji: Pierwszy: 2,3,4 - zaleŝnie od liczby argumentów, jaki dana wersja funkcji pobiera, Drugi: d, f, i, b, s - zaleŝnie od typu argumentów, jaki dana wersja funkcji pobiera (GLdouble, GLfloat, GLint, GLbyte, GLshort itp) Trzeci (opcjonalny): v - gdy wersja funkcji pobiera wskaźnik na wektor zamiast luźnych parametrów Przykład funkcji (definiuje kolor): glcolor4f, glcolor3d, glcolor3iv Przedrostki stałych przedefiniowanych: GL_ Przedrostki obiektów OpenGL: GL, GLU, GLUT itp..

Podstawy matematyczne - układ współrzędnych x - w prawo y - w górę z - w głąb y -z Przekształcenie obiektu w przestrzeni 3D to mnoŝenie jego współrzędnych przez tzw. macierz przekształcenia: x

Transformacje Macierzy (II) Funkcje przekształcające bieŝącą macierz: Rotacja: glrotatef (GLfloat kąt, GLfloat x, GLfloat y, GLfloat z); glrotated (GLdouble kąt, GLdouble x, GLdouble y, GLdouble z) Przesunięcie: gltranslatef (GLfloat x, GLfloat y, GLfloat z); gltranslated (GLdouble x, GLdouble y, GLdouble z) Skalowanie: glscalef (GLfloat x, GLfloat y, GLfloat z); glscaled (GLdouble x, GLdouble y, GLdouble z)

Transformacje Macierzy (I) Translacja - pomnoŝenie aktywnej macierzy przekształcenia przez: Skalowanie - pomnoŝenie aktywnej macierzy przekształcenia przez: Rotacja względem osi: x y z

Transformacje Macierzy (II) Operacja mnoŝenia dwóch macierzy : Transformacje 3D w OpenGL polegają na mnoŝeniu odpowiednich macierzy o wymiarach 4x4. Załadowanie macierzy z tablicy: glloadmatrixf ( const GLfloat *tablica); MnoŜenie bieŝącej macierzy przez tablicę liczb 4x4: glmultmatrixf ( const GLfloat *tablica);

Transformacje Macierzy (III) MoŜliwość wielokrotnego wywoływania funkcji przekształcających na tej samej macierzy Stosy macierzy - umoŝliwiają zapamiętanie macierzy i późniejsze jej przywołanie: glpushmatrix - kładzie bieŝącą macierz na stosie glpopmatrix - pobiera macierz ze stosu Kasowanie macierzy do postaci wyjściowej (nic nie przekształcającej): glloadidentity();

Transformacje Macierzy (IV) W OpenGL istnieją trzy niezaleŝne macierze przekształcenia, trzy stosy macierzy, mające zastosowanie do: Projekcji (rzutowania) ekranu : GL_PROJECTION Modelu w widoku: GL_MODELVIEW Teksturowania: GL_TEXTURE Jedna z tych macierzy jest atywna. Wszystkie operacje 3D są wówczas wykonywane na niej i na jej stosie. Zmiana macierzy aktywnej: glmatrixmode(glenum macierz); - gdzie macierz to GL_PROJECTION, GL_MODELVIEW lub GL_TEXTURE Pobranie informacji o aktywnej macierzy: glget(gl_matrix_mode);

Prezentacja Szablon - transformacje macierzy

Rysowanie figur (I) Funkcje glbegin(glenum tryb) i glend(void) Tworzą blok rysujący, w który umieszczamy wywołania (między innymi): funkcji znakujących wierzchołki (glvertex*() funkcji ustalających kolor (glcolor*()) funkcje wywołujące listę operacji(glcalllist()) funkcje modyfikujące krawędzie rysowania (gledgeflag*()) funkcje ustalające koordynaty tekstur figury (gltexcoord*()) funkcje definiujące materiał przypisany figurze (glmaterial*())

Rysowanie figur (II) Przykład: glbegin(gl_line_loop); glvertex2f (0,0); glvertex2f (0,1); glvertex2f (1,1); glvertex2f (1,0.5); glvertex2f (0,0); glend(); glbegin(gl_triangles); glvertex2f (0,0); glvertex2f (0,-1); glvertex2f (-1,-2); glvertex2f (0,0); glvertex2f (-1,0); glvertex2f (-1,-1); glend();

Rysowanie figur (III) Parametr glbegin(glenum tryb) ustala globalne dla bloku znaczenie znajdujących się w nim wywołań def. punkty: GL_POINTS - rysowanie pojedynczych punktów, GL_LINES - odcinki (para punktów to jeden odcinek), GL_LINE_STRIP - linia łamana otwarta, GL_LINE_LOOP - linia łamana zamknięta, GL_TRIANGLES - trójkąty (trzy punkty to jeden trójkąt), GL_TRIANGLE_STRIP - trójkąty w połączeniu tworzące pasek, GL_TRIANGLE_FAN - trójkąty w połączeniu tworzące wachlarz, GL_QUADS - czworokąty (cztery punkty to jeden czworokąt), GL_QUAD_STRIP - czworokąty w połączeniu tworzące pasek, GL_POLYGON - wielokąt

Rysowanie figur (IV) Funkcje pomocnicze: glpointsize(glfloat size) - wielkość punktu gllinewidth(glfloat size) - szerokość linii gllinestripple(glint zwielokrotnienie, Glushort wzor) - rysowanie linii rastrem bitowym (linia przerywana według wzoru). Aby funkcja działała, naleŝy włączyć rysowanie linii rastrem : glenable(gl_line_stripple) glshademodel() - sposób cieniowania (GL_FLAT - płaskie, jednokolorowe, GL_SMOOTH - wygładzone gradientem) glpolygonmode (GLenum strona, tryb) - sposób wypełeniania wielokątów. Strona - z której strony (GL_FRONT_AND_BACK,GL_BACK, GL_FRONT), tryb - jak (GL_LINE, GL_POINT, GL_FILL)

Prezentacja Szablon - obiekty 2D

Macierz rzutowania W OpenGL występuje kilka macierzy transformujących, wśród nich - macierz rzutowania ekranu, stosowania przy ustawianiu sceny. Wybór macierzy (GL_PROJECTION to macierz rzutowania ekranu): glmatrixmode(gl_projection); Po wyborze moŝliwe jest zastosowania funkcji przetwarzających macierz (wśród nich np. glperspective, glortho, glfrustum) i korygujących tym samym widok do np. perspektywy lub widoku równoległego.

Funkcje korygujące macierz rzutowania (I) gluperspective - kolejne parametry to: kąt rozwarcia widoku proporcja wysokości do szerokości widoku odległość przedniej płaszczyzny odcięcia odległość tylnej płaszczyzny odcięcia glortho - kolejne parametry to: cztery pierwsze: współrzędne ekranu 2d, który będzie widokiem odległość przedniej płaszczyzny odcięcia odległość tylnej płaszczyzny odcięcia

Funkcje korygujące macierz rzutowania (II) gluortho2d - kolejne parametry to: cztery pierwsze: współrzędne ekranu 2d, który będzie widokiem glfrustum - kąt rozwarcia widoku cztery pierwsze: współrzędne ekranu 2d, który będzie widokiem odległość przedniej płaszczyzny odcięcia i zarazem ekranu 2d - tym samym powiększenie widoku odległość tylnej płaszczyzny odcięcia

Prezentacja Szablon - ustawianie widoku

Biblioteka funkcji pomocniczych - AUX Nagłówek (C++): glaux.h Obsługa interfejsu uŝytkownika (rejestrowanie funkcji obsługi zdarzeń), obsługa okien i wyświetlania Wybrane funkcje narzędziowe: auxinitwindow(lpctstr); auxclosewindow(void); auxmainloop(auxmainproc); auxexposefunc(auxexposeproc); auxreshapefunc(auxreshapeproc); auxidlefunc(auxidleproc); auxkeyfunc(int, AUXKEYPROC); auxmousefunc(int, int, AUXMOUSEPROC);

Biblioteka funkcji pomocniczych - AUX Funkcje rysujące: auxwiresphere(gldouble); auxsolidsphere(gldouble); auxwirecube(gldouble); auxsolidcube(gldouble); auxwirebox(gldouble, GLdouble, GLdouble); auxsolidbox(gldouble, GLdouble, GLdouble); auxwiretorus(gldouble, GLdouble); auxsolidtorus(gldouble, GLdouble); auxwirecylinder(gldouble, GLdouble); auxsolidcylinder(gldouble, GLdouble); auxwireicosahedron(gldouble); auxsolidicosahedron(gldouble); auxwireoctahedron(gldouble); auxsolidoctahedron(gldouble); auxwiretetrahedron(gldouble); auxsolidtetrahedron(gldouble); auxwiredodecahedron(gldouble); auxsoliddodecahedron(gldouble); auxwirecone(gldouble, GLdouble); auxsolidcone(gldouble, GLdouble); auxwireteapot(gldouble); auxsolidteapot(gldouble);

Prezentacja Szablon - AUX

Obiekty 3D biblioteki GLU Nagłówek (C++): glu.h Alternatywa dla AUX w generowaniu siatek 3D Obiekty GLUquadricObj umoŝliwiają wygenerowanie siatki 3D według zadanych w obiekcie parametrów Procedura: GLUquadricObj *obiekt; obiekt = glunewquadric(); gluquadricdrawstyle (obiekt, GLU_LINE); glusphere(obiekt, 2,10,10); // tworzenie // konfiguracja // rysowanie

Prezentacja Szablon - obiekty 3D

Światła (I) OpenGL wykonuje obliczenia dla ośmiu niezaleŝnych światłami, oznaczonymi stałymi: GL_LIGHT0.. GL_LIGHT8. Stałe te podawane są do funkcji sterującymi światłami. System świateł wymaga włączenia funkcją: glenable(gl_lighting); Do prawidłowej projekcji świateł naleŝy takŝe włączyć uŝytkowanie bufora głębokości: glenable(gl_depth_test);

Światła (II) Dla kaŝdego ze świateł moŝna definiować właściwości, w podstawowej wersji adresowane stałymi: GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION: Jedna z funkcji modyfikujących światła: gllightfv(glenum id_swiatla, GLenum id_wlasciwosci, GLfloat wektor_danych); Przykład: GLfloat swiatlospecular1[4] = {0.5,1,1,1}; gllightfv(gl_light0,gl_specular, swiatlospecular1);

Prezentacja Szablon - światła rozproszone

Światła - ciąg dalszy (I) Ustawianie pozycji światła następuje poprzez zmianę jej właściwości GL_POSITION np.: GLfloat swiatlopoz[4] = {0.5,1,1,1}; gllightfv(gl_light1,gl_position,swiatlopoz); MoŜliwość modyfikowania modelu oświetlenia sceny, poprzez wywarcie wpływu na sposób obliczania świateł,zdefiniowanie oświetlenia globalnego itp. Przykład (oświetlenie globalne) GLfloat ambient[4] = {0.3,0.3,0.3,1}; gllightmodelfv(gl_light_model_ambient,ambient);

Światła - ciąg dalszy (II) Światła o ograniczonym kącie emisji - są definiowane poprzez zmianę parametrów: GL_SPOT_CUTOFF (kąt rozwarcia) GL_SPOT_EXPONENT (wytłumienie na granicy kąta) GL_SPOT_DIRECTION (wektor kierunku świecenia) Przykład: GLfloat swiatlokierunek[4] = {0.5,1,1,1}; gllightf(gl_light1,gl_spot_cutoff,6.0); gllightf(gl_light1,gl_spot_exponent,50.0); gllightfv(gl_light1,gl_spot_direction, swiatlokierunek);

Prezentacja Szablon - światła spot

Materiały (I) Atrybuty materiału obowiązują w momencie rysowania obiektów. MoŜna je zmieniać przed kaŝdym rysowaniem Funkcja: glmaterial[if][v](glenum strona, GLenum atrybut, TYPE wartosc); Parametr strona to powierzchnia renderowania materiału: GL_FRONT, GL_BACK, lub GL_FRONT_AND_BACK Parametr atrybut to rodzaj ustawianej właściwości. WaŜniejsze z nich: GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_SHININESS

Materiały (II) GL_DIFFUSE: RGB(1,1,1) RGB(0,1,0) GL_AMBIENT: RGB(1,1,1) RGB(0,1,0)

Materiały (III) GL_SPECULAR: RGB(1,1,1) RGB(0,1,0) GL_SHININESS: 0.05 0.2 1

Prezentacja Szablon - materiały, faktura

Materiały (IV) Korygowanie materiałów aktualnym kolorem. Funkcja: glcolormaterial(glenum strona, GLenum wlasnosc) UmoŜliwia wybór trybu koloryzacji materiałów, definiuje to, które właściwości materiału mają być korygowane przez wybór koloru Parametr strona - jak przy glmaterial() Parametr własność: GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_AMBIENT_AND_DIFFUSE

Materiały (IV) Wybór trybu koloryzacji materiałów: glenable (GL_COLOR_MATERIAL) gldisable (GL_COLOR_MATERIAL) Przy włączonym trybie wybrane właściwości materiałów moŝna korygować poprzez glcolor() Wygładzanie materiałów: Funkcja glshademodel(glenum tryb) Parametr tryb: GL_SMOOTH, GL_FLAT

Prezentacja Szablon - materiały, kolor

Efekty mgły (I) Efekt mgły naleŝy włączyć poprzez wywołanie: glenable(gl_fog) Definiowana na scenie mgła posiada szereg parametrów, definiowanych funkcją glfog[i,f,d][v] w postaci: glfogf (GLenum ustawienie, GLfloat wartosc) ZaleŜnie od wartości ustawienie drugi parametr moŝe być takŝe wektorem. MoŜliwe wartości parametru ustawienie: GL_FOG_MODE, GL_FOG_COLOR, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END

Efekty mgły (II) Typ mgły: glfogi(gl_fog_mode,glenum typ); gdzie typ to GL_EXP, GL_EXP2, lub GL_LINEAR Kolor mgły: glfogfv(gl_fog_color, kolor); Gęstość mgły: glfogf(gl_fog_density, 0.1f); Granice mgły (licząc od połoŝenia kamery): glfogf(gl_fog_start, 5.0f); glfogf(gl_fog_end, 400.0f);

Prezentacja Szablon - mgła

Tekstury (I) Problem ładowania tekstur leŝy poza OpenGL - konieczny jest moduł ładujący obraz z pliku o danym formacie Tekstury są rejestrowane w OpenGL i adresowane przy uŝyciu uchwytów typu int. Takie podejście pozwala na szybkie zmiany tekstur aktywnych oraz jednokrotne ich ładowanie - od razu do pamięci akceleratora 3D UmoŜliwienie wyboru tekstury (przy ładowaniu i uŝyciu): glbindtexture(glenum cel, GLint identyfikator); gdzie cel to GL_TEXTURE_2D lub GL_TEXTURE_1D

Tekstury (II) Włączenie trybu teksturowania: glenable(glenum cel); (cel to GL_TEXTURE_2D lub GL_TEXTURE_1D) Teksturowanie następuje poprzez wytypowanie wierzchołków i koordynat tekstur dla kaŝdego z nich: glbegin(gl_triangles); gltexcoord2f(0,0); glvertex2f (0,0); gltexcoord2f(0,1); glvertex2f (0,-1); gltexcoord2f(1,1); glvertex2f (-1,-2); glend();

Tekstury (III) MoŜliwość modyfikowania macierzy teksturowania - przy uŝyciu funkcji glrotate, gltranslate itp..: Przykład: glmatrixmode(gl_texture); glscalef(1.3,1.3,1.3); glrotatef(30,0,0,1); glmatrixmode(gl_modelview); // ciąg dalszy operacji teksturowania

Prezentacja Szablon - teksturowanie

Automatyczne teksturowanie (I) OpenGL posiada moŝliwość automatycznego generowania koordynat tekstur dla dowolnej siatki - w przypadku braku koordynat w modelu. Technika przydatna tylko w przypadku pokrywania siatki jednolitą teksturą Włączenie generowania koordynat tekstur: glenable(gl_texture_gen_s); // dla współrzędnej poziomej tekstury glenable(gl_texture_gen_t); // dla współrzędnej poziomej tekstury

Automatyczne teksturowanie (II) Wybór techniki automatycznego generowania koordynat tekstur: gltexgeni (GLenum współrzędna,gl_texture_gen_mode, GLenum tryb) gdzie dla tekstury 2D: współrzędna to GL_S lub GL_T tryb to GL_OBJECT_LINEAR, GL_EYE_LINEAR, lub GL_SPHERE_MAP

Prezentacja Szablon - modele 3DS z automatycznym teksturowaniem