Prosty program- cpp. #include <GL/glut.h>
|
|
- Urszula Szymańska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Wizualizacje 3D
2 Prosty program- cpp #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> int main(int argc, char** argv) { glutinit(&argc, argv); glutinitdisplaymode( GLUT_DOUBLE GLUT_RGBA ); glutinitwindowsize(400, 400); glutinitwindowposition(100, 100) ; glutcreatewindow("opengl"); glutdisplayfunc( Display ); glutreshapefunc( Reshape); glutmainloop();
3 Prosty program cpp (2) void Display() { glclearcolor( 0.0, 0.0, 0.0, 0.0); glclear(gl_color_buffer_bit); glcolor3f( 1.0, 1.0, 1.0 ); glbegin( GL_TRIANGLES ); glvertex3f(-1, -1, -0.5); glvertex3f(-1, 1, -0.5); glvertex3f(1, 1, 1); glend(); glflush(); glutswapbuffers(); glutpostredisplay(); void Reshape(int w, int h) { Display();
4 Obszar renderingu void glviewport(glint x, GLint y, GLsizei width, GLsizei height) W aplikacjach pracujących w systemach okienkowych problem zmiany rozmiaru okna jest tak powszechny, że wymaga specjalnego potraktowania. Jednym z możliwych sposobów jego rozwiązania jest dynamiczna modyfikacja obszaru renderingu. Służy to tego właśnie ta funkcja. x, y współrzędne lewego dolnego narożnika obszaru renderingu względem lewego dolnego narożnika okna height wysokość okna renderingu width szerokość okna renderingu
5 Zastosowanie glviewport void Reshape (int w, int h) { if ( w < h ) { glviewport(0, (h-w)/2, w, w); else { glviewport((w-h)/2, 0, h, h); Display();
6 Macierze OpenGL zawiera kilka stosów macierzy, z których w przykładowym programie wykorzystamy stos macierzy rzutowania oraz stos macierzy modelowania. Wybór bieżącej macierzy umożliwia funkcja: void glmatrixmode (GLenum mode) Parametr mode może przyjąć jedna z wartości: GL_MODELVIEW - macierz modelowania, GL_PROJECTION - macierz rzutowania, GL_TEXTURE - macierz tekstury.
7 Macierz jednostkowa Ponieważ początkowa wartość wybranej macierzy jest nieokreślona, przed wykonaniem jakiejkolwiek czynności na macierzy należy przyporządkować macierz jednostkową void glloadidentity (void)
8 Rzutowanie prostokątne void glortho(gldouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far) Rozmiar bryły odcinania w rzutowaniu prostokątnym Parametry określają współrzędne punktów przecięcia płaszczyzn tworzących bryłę odcinania z osiami układu współrzędnych kartezjańskich
9 Rzutowanie prostokątne Domyślnie bryła ma postać sześcianu o bokach = 2 glortho(-1,1,-1,1,-1,1)
10 Rzutowanie prostokątne dla sceny 2D void gluortho2d (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top) Parametry left, right, bottom i top odpowiadaja parametrom funkcji glortho, a przednia (near) i tylna (far) płaszczyzna obcinania maja wartosci odpowiednio -1 i 1.
11 Przykład zastosowania rzutowania perspektywicznego void Display () { glclearcolor (1.0,1.0,1.0,1.0); glclear (GL_COLOR_BUFFER_BIT); glmatrixmode (GL_MODELVIEW); glloadidentity (); glcolor3f (0.0,0.0,0.0); glbegin (GL_LINES); glvertex3f (1.0, 1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (1.0, 1.0, 1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (1.0, 1.0, 1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glend (); glflush (); glutswapbuffers();
12 void Reshape(int w, int h) { if ( w < h ) { glviewport(0, (h-w)/2, w, w); else { glviewport((w-h)/2, 0, h, h); glmatrixmode (GL_PROJECTION); glloadidentity (); glortho (-2.0, 2.0, -2.0, 2.0, -2.0, 2.0); Display();
13 Rzutowanie perspektywiczne Rzutowanie perspektywiczne daje bardziej realistyczne efekty niż rzutowanie prostokątne, stąd jest szeroko stosowane np. w grach. Parametry bryły odcinania, która przy rzutowaniu perspektywicznym ma postać ostrosłupa ściętego o wierzchołku znajdującym się w początku układu współrzędnych.
14 Rzutowanie perspektywiczne (2) void glfrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far) Parametry left, right, bottom i top wyznaczaja rozmiary górnej podstawy bryły odcinania (jest to obszar bezposrednio odwzorowywany na obszar renderingu), a near i far wyznaczaja połozenie odpowiednio górnej i dolnej podstawy ostrosłupa (przedniej i tylnej płaszczyzny odcinania), które zawieraja sie w płaszczyznach o równaniach: z = near i z = far. Parametry near i far musza miec wartosci dodatnie.
15 Przekształcenia geometryczne (3) Macierz rzutowania perspektywicznego, tworzona przez funkcje glfrustum i mnożona przez aktualnie wybrana macierz, ma postać:
16 void Reshape (int w, int h) { if ( w < h ) { glviewport(0, (h-w)/2, w, w); else { glviewport((w-h)/2, 0, h, h); glmatrixmode (GL_PROJECTION); glloadidentity (); glfrustum(-2.0,2.0,-2.0,2.0,1.0,5.0); Display();
17 Przykład - glfrustum void Display () { glclearcolor (1.0,1.0,1.0,1.0); glclear (GL_COLOR_BUFFER_BIT); glmatrixmode (GL_MODELVIEW); glloadidentity (); gltranslatef (0, 0, -3.0); glcolor3f (0.0,0.0,0.0); glbegin (GL_LINES); glvertex3f (1.0, 1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (1.0, 1.0, 1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (1.0, 1.0, 1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glend (); glflush (); glutswapbuffers();
18 Rzutowanie perspektywiczne (4) Alternatywny sposób określania rzutu perspektywicznego umożliwia funkcja z biblioteki GLU: void gluperspective (GLdouble fovy, GLdouble aspect, GLdouble znear, GLdouble zfar) gdzie parametr fovy określa w stopniach kat widzenia obserwatora zawarty w płaszczyźnie YZ (kąt między top, 0, a bottom), a aspect jest stosunkiem szerokości do wysokości przedniej płaszczyzny odcinania, czyli górnej podstawy ostrosłupa ograniczającego scenę 3D. Parametry znear i zfar odpowiadają parametrom near i far funkcji glfrustum.
19 Rzutowanie perspektywiczne (5) Macierz rzutowania perspektywicznego, tworzona przez funkcje gluperspective i mnożoną przez aktualnie wybrana macierz, ma postać:
20 Rzutowanie perspektywiczne (6) Wewnętrznie funkcja gluperspective wykorzystuje do ustawienia macierzy rzutowania perspektywicznego funkcję glfrustum. Oto wzory przekształcenia parametrów funkcji gluperspective na parametry glfrustum:
21 Przykład - gluperspective
22 Obsługa klawiatury Podstawowa funkcja obsługi klawiatury ma trzy parametry: key - kod ASCII klawisza, x, y - współrzędne kursora myszki w chwili naciśnięcia przycisku klawiatury. Aby obsługa klawiatury działała, w części głównej programu należy włączyć funkcje obsługi klawiatury wywołując funkcje: void glutkeyboardfunc (void (*func)(unsigned char key, int x, int y))
23 Przykład #include <GL/glut.h> #include <stdlib.h> GLdouble fovy = 90; int main (int argc, char *argv[]) { glutinit (&argc,argv); glutinitdisplaymode (GLUT_DOUBLE GLUT_RGB); glutinitwindowsize (400,400); glutcreatewindow ("Szescian"); glutdisplayfunc (Display); glutreshapefunc (Reshape); glutkeyboardfunc (Keyboard); glutmainloop (); return 0;
24 void Reshape (int width, int height) { glviewport (0, 0, width, height); glmatrixmode (GL_PROJECTION); glloadidentity (); GLdouble aspect = 1; if (height > 0) aspect = width/(gldouble)height; gluperspective (fovy,aspect,1.0,5.0); Display ();
25 void Keyboard (unsigned char key, int x, int y) { if (key == '+' && fovy < 180) fovy++; else if (key == '-' && fovy > 0) fovy--; Reshape (glutget (GLUT_WINDOW_WIDTH), glutget (GLUT_WINDOW_HEIGHT));
26 Położenie obserwatora Biblioteka GLU zawiera funkcje glulookat, która pozwala na jednorazowe zdefiniowanie wszystkich parametrów opisujących obserwatora: void glulookat (GLdouble eyex, GLdouble eyey,gldouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz) eyex, eyey, eyez - współrzedne połozenia obserwatora, centerx, centery, centerz - współrzedne punktu, w którego kierunku jest zwrócony obserwator, upx, upy, upz - współrzedne wektora okreslajacego kierunek do góry. Domyślne położenie obserwatora odpowiada wywołaniu: glulookat (0.0, 0.0, 0.0, 0.0, 0.0, , 0.0, 1.0, 0.0)
27 Obsługa klawiszy specjalnych W głównym programie można włączyć obsługę klawiszy kursora i klawiszy funkcyjnych wywołując funkcje: void glutspecialfunc (void (*func)(int key, int x, int y)) x, y - współrzędne kursora myszki w chwili naciśnięcia przycisku klawiatury. key - kod przycisku; zwracana jest jedna z poniższych wartości: GLUT_KEY_F1 - przycisk F1, GLUT_KEY_F2 - przycisk F2, ( ) GLUT_KEY_F11 - przycisk F11, GLUT_KEY_F12 - przycisk F12, GLUT_KEY_LEFT - kursor w lewo, GLUT_KEY_UP - kursor do góry, GLUT_KEY_RIGHT - kursor w prawo, GLUT_KEY_DOWN - kursor w dół, GLUT_KEY_PAGE UP - przycisk Page Up GLUT_KEY_PAGE DOWN - przycisk Page Down, GLUT_KEY_HOME - przycisk Home, GLUT_KEY_END - przycisk End, GLUT_KEY_INSERT - przycisk Insert.
28 Przykład - glulookat #include <GL/glut.h> #include <stdlib.h> GLdouble eyex = 0; GLdouble eyey = 0; GLdouble eyez = 3; GLdouble centerx = 0; GLdouble centery = 0; GLdouble centerz = -100; int main (int argc, char *argv[]) { glutinit (&argc,argv); glutinitdisplaymode (GLUT_DOUBLE GLUT_RGB); glutinitwindowsize (400,400); glutcreatewindow ("Szescian"); glutdisplayfunc (Display); glutreshapefunc (Reshape); glutkeyboardfunc (Keyboard); glutspecialfunc (SpecialKeys); glutmainloop (); return 0;
29 void Reshape (int w, int h) { if ( w < h ) { glviewport(0, (h-w)/2, w, w); else { glviewport((w-h)/2, 0, h, h); glmatrixmode(gl_projection); glloadidentity(); glfrustum (-2.0,2.0,-2.0,2.0,1.0,5.0); Display ();
30 void Keyboard (unsigned char key, int x, int y) { if (key == '+') else eyez -= 0.1; if (key == '-') eyez += 0.1; Reshape (glutget (GLUT_WINDOW_WIDTH),glutGet (GLUT_WINDOW_HEIGHT)); void SpecialKeys (int key, int x, int y) { switch (key) { case GLUT_KEY_LEFT: eyex += 0.1; break; case GLUT_KEY_UP: eyey -= 0.1; break; case GLUT_KEY_RIGHT: eyex -= 0.1; break; case GLUT_KEY_DOWN: eyey += 0.1; break; Reshape (glutget (GLUT_WINDOW_WIDTH),glutGet (GLUT_WINDOW_HEIGHT));
31 void Display () { glclearcolor (1.0,1.0,1.0,1.0); glclear (GL_COLOR_BUFFER_BIT); glmatrixmode (GL_MODELVIEW); glloadidentity (); glulookat(eyex,eyey,eyez, centerx,centery,centerz, 0,1,0); glcolor3f (0.0,0.0,0.0); glbegin (GL_LINES); glvertex3f (1.0, 1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (1.0, 1.0, 1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (1.0, 1.0, 1.0); glvertex3f (-1.0, 1.0, 1.0); glvertex3f (1.0, -1.0, 1.0); glvertex3f (-1.0, -1.0, 1.0); glvertex3f (1.0, -1.0, -1.0); glvertex3f (-1.0, -1.0, -1.0); glvertex3f (1.0, 1.0, -1.0); glvertex3f (-1.0, 1.0, -1.0); glend (); glflush (); glutswapbuffers();
32 Przekształcenia geometryczne Obrót realizują funkcje: void glrotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z) void glrotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z) Gdzie: angle - kat obrotu w stopniach, x, y, z - współrzędne wektora określającego oś obrotu. Obrót realizowany jest w kierunku przeciwnym do ruchu wskazówek zegara w kierunku prostej wyznaczonej przez wektor [x, y, z] zaczepionym w początku układu współrzędnych.
33 Przekształcenia geometryczne cd. Funkcje glrotated i glrotatef mnożą bieżąca macierz przez macierz obrotu, która ma następująca postać
34 Przekształcenia geometryczne cd. Skalowanie void glscalef (GLfloat x, GLfloat y, GLfloat z) void glscalex (GLfixed x, GLfixed y, GLfixed z) gdzie x, y, z są współczynnikami skalowania względem kolejnych osi układu współrzędnych.
35 Przekształcenia geometryczne cd. Funkcje te mnożą bieżącą macierz przez macierz skalowania, która ma postać:
36 Przekształcenia geometryczne cd. Przesunięcie (translacja) void gltranslatef (GLfloat x, GLfloat y, GLfloat z) void gltranslatex (GLfixed x, GLfixed y, GLfixed z) gdzie x, y, z sa współrzednymi wektora przesuniecia.
37 Przekształcenia geometryczne cd. Funkcje mnożą bieżącą macierz przez macierz translacji, która ma postać:
38 Mnożenie macierzy przekształceń glmatrixmode(gl_model_v IEW); glloadidentity( ); gltranslatef(0.2,0.3,0.5); glscalef(1.5,1.5,0.5); glrotatef(30,1.0,0.0,0.0); glrotatef(45,0.0,1.0,0.0); glrotatef(-20,0.0,0.0,1.0); Kolejność wykonywania operacji Aktywacja pracy na macierzy przekształcania obiektów. Ładowanie macierzy jednostkowej Mnożenie macierzy jednostkowej przez macierz przesunięcia o wektor (0.2,0.3,0.5). Skalowanie obiektu: 1.5 raza w kierunku osi x i y oraz 0.5 raza w kierunku osi z. Obrót wokół osi x przeciwnie do ruchu wskazówek zegara o 30 stopni. Obrót wokół osi y przeciwnie do ruchu wskazówek zegara o 45 stopni. Obrót wokół osi z zgodnie z ruchem wskazówek zegara o 20 stopni.
39 Przykład #include <GL/glut.h> #include <stdlib.h> const GLdouble left = -10.0; const GLdouble right = 10.0; const GLdouble bottom = -10.0; const GLdouble top = 10.0; const GLdouble near_ = 50.0; const GLdouble far_ = 70.0; GLfloat scale = 1.0; GLfloat rotatex = 0.0; GLfloat rotatey = 0.0; GLfloat translatex = 0.0; GLfloat translatey = 0.0; int main (int argc, char *argv[]) { glutinit (&argc,argv); glutinitdisplaymode (GLUT_DOUBLE GLUT_RGB); glutinitwindowsize (400,400); glutcreatewindow ("Przeksztalcenia"); glutdisplayfunc (Display); glutreshapefunc (Reshape); glutkeyboardfunc (Keyboard); glutspecialfunc (SpecialKeys); glutmainloop (); return 0;
40 void Display () { glclearcolor (1.0,1.0,1.0,1.0); glclear (GL_COLOR_BUFFER_BIT); glmatrixmode (GL_MODELVIEW); glloadidentity (); gltranslatef (0,0,-(near_+far_)/2); gltranslatef (translatex,translatey,0.0); glscalef (scale,scale,scale); glrotatef (rotatex,1.0,0,0); glrotatef (rotatey,0,1.0,0); glcolor3f (0.0,0.0,0.0); glutwiresphere (1.0,20,10); glflush(); glutswapbuffers ();
41 void Reshape (int w, int h) { if ( w < h ) { glviewport(0, (h-w)/2, w, w); else { glviewport((w-h)/2, 0, h, h); glmatrixmode (GL_PROJECTION); glloadidentity (); glfrustum (left,right,bottom,top,near_,far_); Display ();
42 void Keyboard (unsigned char key, int x, int y) { if (key == '+') scale += 0.1; if (key == '-' && scale > 0.1) scale -= 0.1; if (key=='s') translatey -= 0.5; if (key=='w') translatey += 0.5; if (key=='a') translatex -= 0.5; if (key=='d') translatex += 0.5; Reshape (glutget (GLUT_WINDOW_WIDTH),glutGet (GLUT_WINDOW_HEIGHT)); void SpecialKeys (int key, int x, int y) { switch (key) { case GLUT_KEY_LEFT: rotatey -= 1; break; case GLUT_KEY_UP: rotatex -= 1; break; case GLUT_KEY_RIGHT: rotatey += 1; break; case GLUT_KEY_DOWN: rotatex += 1; break; Reshape (glutget (GLUT_WINDOW_WIDTH),glutGet (GLUT_WINDOW_HEIGHT));
43 Gotowe obiekty 3D z biblioteki GLUT Kula void glutwiresphere (GLdouble radius, GLint slices, GLint stacks) radius - promien kuli, slices - ilosc południków, stacks - ilosc równolezników. Sześcian void glutwirecube (GLdouble size) size długość boku
44 Gotowe obiekty 3D z biblioteki GLUT cd Stożek void glutwirecone (GLdouble base, GLdouble height, GLint slices, GLint stacks) base - promien podstawy stozka, height - wysokosc stozka, slices - ilosc tworzacych, stacks - ilosc południków Torus void glutwiretorus (GLdouble innerradius, GLdouble outerradius, GLint sides, GLint rings) innerradius - promien koła tworzacego torus, outerradius - promien torusa, sides - ilosc scian bocznych, z których składa sie pojedynczy walec, rings - ilosc walców, z których składa sie torus
45 Gotowe obiekty 3D z biblioteki GLUT cd. Dwunastościan void glutwiredodecahedron (void) Czajnik void glutwireteapot (GLdouble size) size wielkość Ośmiościan void glutwireoctahedron (void) Czworościan void glutwiretetrahedron (void) Dwudziestoscian void glutwireicosahedron (void)
46 Stos macierzy Można zapamiętać aktualny stan macierzy zapisując ją na stosie. Operacje odłożenia bieżącej macierzy na stos: void glpushmatrix (void) Operacje zdjęcia macierzy ze stosu: void glpopmatrix (void)
47 Przykład Trzy czajniki ustawione obok siebie obrócone o różne kąty glpushmatrix(); gltranslatef(-2,0,0); glrotatef(45,1,0,0); glutwireteapot(0.8); glpopmatrix(); glpushmatrix(); gltranslatef(0,0,0); glrotatef(45,0,0,1); glutwireteapot(0.8); glpopmatrix(); glpushmatrix(); gltranslatef(2,0,0); glrotatef(45,0,1,0); glutwireteapot(0.8); glpopmatrix();
48 Przykład 2 Poprzedni przykład bez korzystania ze stosu macierzy gltranslatef(-2,0,0); glrotatef(45,1,0,0); glutwireteapot(0.8); gltranslatef(0,0,0); glrotatef(45,0,0,1); glutwireteapot(0.8); gltranslatef(2,0,0); glrotatef(45,0,1,0); glutwireteapot(0.8);
49 Primitywy Definiowanie współrzędnych wierzchołków figur podstawowych musi zawierać się pomiędzy wywołaniami funkcji: void glbegin (GLenum mode) void glend (void) Gdzie parametr mode okresla rodzaj prymitywu.
50 Rodzaje prymitywów
51 Definiowane współrzędnych wierzchołków void glvertex2d (GLdouble x, GLdouble y) void glvertex2f (GLfloat x, GLfloat y) void glvertex2i (GLint x, GLint y) void glvertex2s (GLshort x, GLshort y) void glvertex2dv (const GLdouble *v) void glvertex2fv (const GLfloat *v) void glvertex2iv (const GLint *v) void glvertex2sv (const GLshort *v) void glvertex3d (GLdouble x, GLdouble y, GLdouble z) void glvertex3f (GLfloat x, GLfloat y, GLfloat z) void glvertex3i (GLint x, GLint y, GLint z) void glvertex3s (GLshort x, GLshort y, GLshort z) void glvertex3dv (const GLdouble *v) void glvertex3fv (const GLfloat *v) void glvertex3iv (const GLint *v) void glvertex3sv (const GLshort *v)
52 Prostokąty Prostokąt rysowany jest na płaszczyźnie o równaniu Z=0, a jego boki są równoległe do osi układu współrzędnych. void glrectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) void glrectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) void glrecti (GLint x1, GLint y1, GLint x2, GLint y2) void glrects (GLshort x1, GLshort y1, GLshort x2, GLshort y2) void glrectdv (const GLdouble *v1, const GLdouble *v2) void glrectfv (const GLfloat *v1, const GLfloat *v2 ) void glrectiv (const GLint *v1, const GLint *v2) void glrectsv (const GLshort *v1, const GLshort *v2)
53 Punkty Rozmiar pojedynczego punktu void glpointsize (GLfloat size) size określa średnice punktu i jego wartość musi być większa od 0.
54 Linie Grubość (szerokość) linii void gllinewidth (GLfloat width) Parametr określa grubość linii i musi być większy od 0. Określenie wzoru jakim będzie rysowana linia void gllinestipple (GLint factor, GLushort pattern) pattern to 16-bitowa liczba całkowita zawierajaca wzór rysowanej linii factor określa zwielokrotnienie bitów wzoru. Włączenie mechanizmu rysowania linii ze wzorem wymaga wywołania funkcji glenable z parametrem GL_LINE_STIPPLE. glenable(gl_line_stipple); Wyłączenie mechanizmu rysowania linii ze wzorem wymaga wywołania funkcji gldisable(gl_line_stipple);
55 Timer Obsługa timera systemowego void gluttimerfunc(unsigned int milis, void(*func)(intvalue), value) Obsługa bezczynności void glutidlefunc(void(*func)(void))
Janusz Ganczarski. OpenGL Definiowanie sceny 3D
Janusz Ganczarski OpenGL Definiowanie sceny 3D Spis treści Spis treści..................................... 1 1. Definiowanie sceny 3D........................... 1 1.1. Obszar renderingu............................
Bardziej szczegółowoRzutowanie DOROTA SMORAWA
Rzutowanie DOROTA SMORAWA Rzutowanie Rzutowanie jest operacja polegająca na tym, aby odpowiednie piksele na płaskim ekranie były wyświetlane w taki sposób, by sprawiać wrażenie trójwymiarowej głębi (przestrzeni
Bardziej szczegółowo1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych
Instrukcja laboratoryjna 9 Grafika komputerowa 3D Temat: Manipulowanie przestrzenią Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Układ
Bardziej szczegółowoBufor koloru cd. Czyszczenie bufora koloru glclearcolor( )
Wizualizacje 3D Bufor koloru Bufor koloru służy do przechowywania obrazu renderowanej sceny 3D. Typowo OpenGL stosuje dwa bufory koloru: przedni i tylny. Bieżąca scena znajduje się w przednim buforze i
Bardziej szczegółowoOPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE
OPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE SPIS TREŚCI 1. Przekształcenia geometryczne... 3 1.1. Obrót... 3 1.2. Skalowanie... 3 1.3. Przesunięcie... 3 1.4. Mnożenie macierzy... 4 1.5. Ładowanie macierzy... 4
Bardziej szczegółowoWprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa
Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL Dorota Smorawa Pierwszy program Pierwszy program będzie składał się z trzech etapów: Funkcji rysującej scenę 3D, Inicjacji okna renderingu,
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/6 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Manipulowanie przestrzenią 2 Przygotował: mgr inż. Maciej Lasota 1) Manipulowanie przestrzenią Istnieją dwa typy układów współrzędnych:
Bardziej szczegółowoJanusz Ganczarski. OpenGL Pierwszy program
Janusz Ganczarski OpenGL Pierwszy program Spis treści Spis treści..................................... 1 1. Pierwszy program.............................. 1 1.1. Rysowanie sceny 3D...........................
Bardziej szczegółowoTemat: Transformacje 3D
Instrukcja laboratoryjna 11 Grafika komputerowa 3D Temat: Transformacje 3D Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Bardzo często programując
Bardziej szczegółowoTemat: Wprowadzenie do OpenGL i GLUT
Instrukcja laboratoryjna 8 Grafika komputerowa 3D Temat: Wprowadzenie do OpenGL i GLUT Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny OpenGL
Bardziej szczegółowoPrzekształcenia geometryczne. Dorota Smorawa
Przekształcenia geometryczne Dorota Smorawa Przekształcenia geometryczne Na poprzednich laboratoriach już dowiedzieliśmy się, na czym polegają podstawowe przekształcenia geometryczne. Trzy podstawowe przekształcenia
Bardziej szczegółowoGrafika 3D OpenGL część II
#include #include #include float kat=0.0f; void renderujscene(void) { glclearcolor(1.0f,1.0f,1.0f,1.0f); glclear(gl_color_buffer_bit); glpushmatrix(); glrotatef(kat,0,0,1);
Bardziej szczegółowoOprogramowanie i wykorzystanie stacji roboczych. Wykład 6
Wykład 6 p. 1/2 Oprogramowanie i wykorzystanie stacji roboczych Wykład 6 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wektory normalne
Bardziej szczegółowoGrafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki
Grafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki Strona 1 z 9 C E L Ć W I C Z E N I A Celem ćwiczenia jest zapoznanie się z podstawowymi operacjami
Bardziej szczegółowoGrafika komputerowa Wstęp do OpenGL
Instytut Informatyki Politechniki Warszawskiej Grafika komputerowa Wstęp do OpenGL Zbigniew Szymański z.szymanski@ii.pw.edu.pl listopad 2008 - v1 Prowadzący zajęcia: Sprawy organizacyjne /1/ Zbigniew Szymański
Bardziej szczegółowoGrafika komputerowa Wstęp do OpenGL
Instytut Informatyki Politechniki Warszawskiej Grafika komputerowa Wstęp do OpenGL Zbigniew Szymański z.szymanski@ii.pw.edu.pl listopad 2008 - v1 listopad 2010 - v1d kwiecień 2013 v1e Prowadzący zajęcia:
Bardziej szczegółowoGRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL
GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok OpenGL Open Graphics Library Jest to API pozwalające na renderowanie grafiki w czasie rzeczywistym,
Bardziej szczegółowoWizualizacja 3D. dr inż. Marcin Gabryel
Wizualizacja 3D dr inż. Marcin Gabryel Modele braw CMYK (Cyan, Magenta, Yellow, black) RGB (Red, Green, Blue) HSV (Hue, Saturation, Value) RGB Model polega na sumowaniu sygnałów w poszczególnych kanałach.
Bardziej szczegółowoElementarne obiekty geometryczne, bufory. Dorota Smorawa
Elementarne obiekty geometryczne, bufory Dorota Smorawa Elementarne obiekty Tworząc scenę 3D, od najprostszej, po najbardziej skomplikowaną, używamy obiektów złożonych, przede wszystkim podstawowych, elementarnych
Bardziej szczegółowoLaboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.
Laboratorium 1 Część I Podstawy biblioteki graficznej OpenGL. I. Konfiguracja środowiska 1. Ściągamy bibliotekę freeglut i rozpakujemy do głównego folderu dysku systemowego np. C:\freeglut 2. Uruchamiamy
Bardziej szczegółowoOpenGL - maszyna stanu. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 7. Grupy atrybutów. Zmienne stanu.
OpenGL - maszyna stanu Oprogramowanie i wykorzystanie stacji roboczych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska OpenGL posiada
Bardziej szczegółowoOprogramowanie i wykorzystanie stacji roboczych. Wykład 5
Wykład 5 p. 1/? Oprogramowanie i wykorzystanie stacji roboczych Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wykład 5 p. 2/? Co
Bardziej szczegółowoWykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library OpenGL składa się z teoretycznego modelu grafiki 3D, zestawu typów i funkcji obsługujących różne cechy tego modelu. Funkcje OpenGL
Bardziej szczegółowoCo to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. OpenGL - Achitektura. OpenGL - zalety. olas@icis.pcz.
Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl OpenGL (Open Graphics Library) jest niskopoziomowa biblioteka graficzna (API - programowy
Bardziej szczegółowoglwindowpos2d void DrawString (GLint x, GLint y, char *string) { glwindowpos2i (x,y); int len = strlen (string); for (int i = 0; i < len; i++)
Wizualizacja 3D glwindowpos2d Funkcja wprowadzona w wersji 1.4 biblioteki OpenGL Funkcja pozwala na ustawienie rastra względem okna, a nie względem macierzy modelu Stosowana podczas pisania tekstów, np.:
Bardziej szczegółowoWykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library OpenGL składa się z teoretycznego modelu grafiki 3D, zestawu typów i funkcji obsługujących różne cechy tego modelu. WjęzykuC: pliki
Bardziej szczegółowoSystem graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D.
System graficzny scena 3D algorytm graficzny obraz 2D Potok graficzny 3D Radosław Mantiuk Dane wejściowe Algorytm tworzący obraz wyjściowy na podstawie sceny 3D Dane wyjściowe Wydział Informatyki Zachodniopomorski
Bardziej szczegółowoStudium podyplomowe. Programowanie w OpenGL. Michał Turek, AGH Kraków
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
Bardziej szczegółowo3 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 3 1/5 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Rysowanie prymitywów 3 Przygotował: mgr inż. Maciej Lasota 1) Rysowanie prymitywów Podstawową rodziną funkcji wykorzystywanych
Bardziej szczegółowoWprowadzenie do klas w C++ oraz biblioteki opengl
Wprowadzenie do klas w C++ oraz biblioteki opengl 1. Bibliotek opengl. W celu rozpoczęcia pracy z użyciem biblioteki opengl należy pobrać pliki archiwum glut- 3.7.6.zip ze strony: http://www.opengl.org/resources/libraries/glut/glut_downloads.php
Bardziej szczegółowoZatem standardowe rysowanie prymitywów wygląda następująco:
Instrukcja laboratoryjna 10 Grafika komputerowa 3D Temat: Prymitywy Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Prymitywy proste figury geometryczne,
Bardziej szczegółowoTrójwymiarowa grafika komputerowa rzutowanie
Trójwymiarowa grafika komputerowa rzutowanie Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej Rzutowanie w przestrzeni 3D etapy procesu rzutowania określenie rodzaju rzutu określenie
Bardziej szczegółowoGrafika Komputerowa, Informatyka, I Rok
SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Wstęp do programowania grafiki 3D z użyciem OpenGL. Transformacje geometryczne. Grafika Komputerowa, Informatyka, I Rok Synteza grafiki 3D
Bardziej szczegółowoOpenGL transformacje przestrzenne
OpenGL trnsformcje przestrzenne Kżdy zdefiniowny obiekt sceny, znim pojwi się n ekrnie monitor, poddwny jest trzem podstwowym trnsformcjom: Obserwcji Modelowni Projekcji Projekcj określ frgment przestrzeni,
Bardziej szczegółowoGrafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30
Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego
Bardziej szczegółowoOpenGL - charakterystyka
OpenGL - charakterystyka OpenGL jest interfejsem programowym aplikacji zestawem funkcji umożliwiających tworzenie interaktywnej grafiki 3D. Program oparty na OpenGL musi być pisany z zastosowaniem języka
Bardziej szczegółowoBartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.
Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia http://bazyluk.net/dydaktyka Grafika Komputerowa i Wizualizacja, Informatyka S1, II Rok O MNIE mgr inż. Pokój 322/WI2 lub 316/WI2 bbazyluk@wi.zut.edu.pl
Bardziej szczegółowoZadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym
Zadanie 1. Ściana Zadanie W pliku walls.cpp znajduje się funkcja void draw_back_wall(). Należy uzupełnić ją, ustawiając odpowiednio parametry teksturowania tak, aby na ścianę, która w pierwotnej wersji
Bardziej szczegółowoOpenGL teksturowanie
OpenGL teksturowanie Teksturowanie polega na pokrywaniu wielokątów obrazami (plikami graficznymi) Umożliwia znaczące zwiększenie realizmu sceny przy niewielkim zwiększeniu nakładu obliczeniowego Rozwój
Bardziej szczegółowoProgramowanie OpenGL
Programowanie OpenGL Uniwersytet Marii Curie-Skłodowskiej Wydział Matematyki, Fizyki i Informatyki Instytut Informatyki Programowanie OpenGL Rafał Stęgierski Lublin 2011 Instytut Informatyki UMCS Lublin
Bardziej szczegółowoWprowadzenie do rysowania w 3D. Praca w środowisku 3D
Wprowadzenie do rysowania w 3D 13 Praca w środowisku 3D Pierwszym krokiem niezbędnym do rozpoczęcia pracy w środowisku 3D programu AutoCad 2010 jest wybór odpowiedniego obszaru roboczego. Można tego dokonać
Bardziej szczegółowoĆwiczenie nr 1 Szkielet aplikacji wykorzystującej bibliotekę OpenGL dla środowiska Windows z wykorzystaniem Visual C++
Terminy oddawania ćwiczeń: Ćwiczenie nr 1 Szkielet aplikacji wykorzystującej bibliotekę OpenGL dla środowiska Windows z wykorzystaniem Visual C++ Podstawowe zasady: Wszystkie wątki wykorzystują jeden OpenGL
Bardziej szczegółowoProgramowanie Równoległe wykład, 21.01.2013. CUDA, przykłady praktyczne 1. Maciej Matyka Instytut Fizyki Teoretycznej
Programowanie Równoległe wykład, 21.01.2013 CUDA, przykłady praktyczne 1 Maciej Matyka Instytut Fizyki Teoretycznej Motywacja l CPU vs GPU (anims) Plan CUDA w praktyce Wykład 1: CUDA w praktyce l aplikacja
Bardziej szczegółowoOpenGL. Silicon Graphics (IRIS GL stacje graficzne)
OpenGL. Silicon Graphics (IRIS GL stacje graficzne) Biblioteka -przestrzeń 3D -rzutowanie -prymitywy graficzne -operacje na barwach HISTORIA 1992 - powstaje wersja 1.0 specyfikacji OpenGL przenośnej między
Bardziej szczegółowoOpenGL Zaawansowana grafika komputerowa
p. 1/63 OpenGL Zaawansowana grafika komputerowa p. 2/63 Czym jest OpenGL OpenGL można zdefiniować jako "programowy interfejs sprzętu graficznego". Jest to biblioteka przeznaczona do tworzenia trójwymiarowej
Bardziej szczegółowoEfekt lustra 3D w OpenGL z wykorzystaniem bufora szablonowego (stencil buffer)
Efekt lustra 3D w OpenGL z wykorzystaniem bufora szablonowego (stencil buffer) Autor: Radosław Płoszajczak Spis treści I. Wstęp...2 II. Metoda rysująca przeźroczystą szybę...2 III. Bufor szablonowy (stencil
Bardziej szczegółowoLaboratorium Programowanie urządzeń mobilnych
Laboratorium Programowanie urządzeń mobilnych Wprowadzenie Klasa Transform - Umożliwia realizację różnych zmian obiektu. Obiekt może zostać przesunięty, może być zmieniony jego rozmiar lub obrócony. Klasa
Bardziej szczegółowo8 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 8 1/6 Grafika Komputerowa Instrukcja laboratoryjna Temat: Listy wyświetlania i tablice wierzchołków 8 Przygotował: mgr inż. Maciej Lasota 1) Listy wyświetlania Listy wyświetlania (ang.
Bardziej szczegółowoBartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.
Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok, 2018 r. O MNIE dr inż. bbazyluk@wi.zut.edu.pl http://bazyluk.net/dydaktyka
Bardziej szczegółowoGRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie
GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12 617 46
Bardziej szczegółowoGrafika komputerowa. OpenGL. Podstawy
Grafika komputerowa OpenGL Podstawy Czym jest OpenGL? "Programowy interfejs sprzętu graficznego" Biblioteka zawierająca zbiór procedur ułatwiających rysowanie grafiki dwu i trójwymiarowej. OpenGL nie jest,
Bardziej szczegółowoĆwiczenia nr 4. TEMATYKA: Rzutowanie
TEMATYKA: Rzutowanie Ćwiczenia nr 4 DEFINICJE: Rzut na prostą: rzutem na prostą l (zwaną rzutnią) w kierunku rzutowania k (k l) nazywamy przekształcenie płaszczyzny przyporządkowujące: a) Punktom prostej
Bardziej szczegółowoProgramowanie OpenGL
Programowanie OpenGL Uniwersytet Marii Curie-Skłodowskiej Wydział Matematyki, Fizyki i Informatyki Instytut Informatyki Programowanie OpenGL Rafał Stęgierski Lublin 2011 Instytut Informatyki UMCS Lublin
Bardziej szczegółowoRysowanie punktów na powierzchni graficznej
Rysowanie punktów na powierzchni graficznej Tworzenie biblioteki rozpoczniemy od podstawowej funkcji graficznej gfxplot() - rysowania pojedynczego punktu na zadanych współrzędnych i o zadanym kolorze RGB.
Bardziej szczegółowoGEOMETRIA PRZESTRZENNA (STEREOMETRIA)
GEOMETRIA PRZESTRZENNA (STEREOMETRIA) WZAJEMNE POŁOŻENIE PROSTYCH W PRZESTRZENI Stereometria jest działem geometrii, którego przedmiotem badań są bryły przestrzenne oraz ich właściwości. Na początek omówimy
Bardziej szczegółowoBartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.
Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka S1, II Rok, 2018 r. O MNIE dr inż. bbazyluk@wi.zut.edu.pl http://bazyluk.net/dydaktyka
Bardziej szczegółowoBRYŁY PODSTAWOWE I OBIEKTY ELEMENTARNE
Przemysław KLOC, Krzysztof KUBISTA BRYŁY PODSTAWOWE I OBIEKTY ELEMENTARNE Streszczenie: Niniejszy rozdział dotyczy wykorzystania brył podstawowych i obiektów elementarnych podczas modelowania 3D. Napisany
Bardziej szczegółowoWykład 10. Wprowadzene do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z
Wykład 10. Wprowadzene do malarstwa, str. 1 OpenGL Open Graphics Library OpenGL składa się z teoretycznego modelu grafiki 3D, zestawu typów i funkcji obsługujących różne cechy tego modelu. Funkcje OpenGL
Bardziej szczegółowoRozdział 8 Wzory na macierze OpenGL
Rozdział 8 Wzory na macierze OpenGL Jacek Matulewski, wersja 2014-03-07 Dodać YawPitchRoll???? 8->7 Dalszy rozwój aplikacji w trybie rdzennym nie jest już możliwy bez zaimplementowania operacji na macierzach.
Bardziej szczegółowoŚwiatła i rodzaje świateł. Dorota Smorawa
Światła i rodzaje świateł Dorota Smorawa Rodzaje świateł Biblioteka OpenGL posiada trzy podstawowe rodzaje świateł: światło otoczenia, światło rozproszone oraz światło odbite. Dodając oświetlenie na scenie
Bardziej szczegółowoGRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego.
GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok PROGRAMOWANIE GRAFIKI KOMPUTEROWEJ CZASU RZECZYWISTEGO Grafika
Bardziej szczegółowoOpenGL. Biblioteka procedur graficznych. GLU = OpenGL Utility Library. GLX = OpenGL Extension to the X Window System [tm]
OpenGL http://www.opengl.org/documentation/red_book/ http://www.gamedev.net/download/redbook.pdf Biblioteka procedur graficnch środowiko Klient Serwer aplikacja = klient erwer moŝe bć na innm komputere
Bardziej szczegółowoTransformacje obiektów 3D
Synteza i obróbka obrazu Transformacje obiektów 3D Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Lokalny układ współrzędnych Tworząc model obiektu, zapisujemy
Bardziej szczegółowoMieszanie kolorów. Dorota Smorawa
Mieszanie kolorów Dorota Smorawa Tworzenie efektu przezroczystości Biblioteka OpenGL umożliwia nam tworzenie bardzo ciekawych efektów związanych z przezroczystością i odbiciem. Aby zrealizować efekt przezroczystości
Bardziej szczegółowoLaboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny
Laboratorium grafiki komputerowej i animacji Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny Przygotowanie do ćwiczenia: 1. Zapoznać się ze zdefiniowanymi w OpenGL modelami światła i właściwości materiałów.
Bardziej szczegółowogdzie (4.20) (4.21) 4.3. Rzut równoległy
4.3. Rzut równoległy 75 gdzie (4.20) Punkt zbiegu, określony wzorami (4.19) (4.20), leży na prostej przechodzącej przez środek rzutowania i równoległej do wektora u. Zauważmy, że gdy wektor u jest równoległy
Bardziej szczegółowoMatematyka z plusem dla szkoły ponadgimnazjalnej. ZAŁOŻENIA DO PLANU RALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI W KLASIE III (zakres podstawowy)
Program nauczania: Matematyka z plusem, Liczba godzin nauki w tygodniu: 3 Planowana liczba godzin w ciągu roku: 72 ZAŁOŻENIA DO PLANU RALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI W KLASIE III (zakres podstawowy)
Bardziej szczegółowo6 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 6 1/7 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Materiały i oświetlenie 6 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie Specyfikacja biblioteki OpenGL rozróżnia trzy
Bardziej szczegółowoUkłady współrzędnych GUW, LUW Polecenie LUW
Układy współrzędnych GUW, LUW Polecenie LUW 1 Układy współrzędnych w AutoCAD Rysowanie i opis (2D) współrzędnych kartezjańskich: x, y współrzędnych biegunowych: r
Bardziej szczegółowoSTEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH
STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH Stereometria jest działem geometrii, którego przedmiotem badań są bryły przestrzenne oraz ich właściwości. WZAJEMNE POŁOŻENIE PROSTYCH W PRZESTRZENI 2 proste
Bardziej szczegółowoMateriały. Dorota Smorawa
Materiały Dorota Smorawa Materiały Materiały, podobnie jak światła, opisywane są za pomocą trzech składowych. Opisują zdolności refleksyjno-emisyjne danej powierzchni. Do tworzenia materiału służy funkcja:
Bardziej szczegółowoWymagania na poszczególne oceny szkolne z. matematyki. dla uczniów klasy IIIa i IIIb. Gimnazjum im. Jana Pawła II w Mętowie. w roku szkolnym 2015/2016
Wymagania na poszczególne oceny szkolne z matematyki dla uczniów klasy IIIa i IIIb Gimnazjum im. Jana Pawła II w Mętowie w roku szkolnym 2015/2016 DZIAŁ 1. FUNKCJE (11h) Uczeń: poda definicję funkcji (2)
Bardziej szczegółowoOpenGL wprowadzenie. O.1 Informacje ogólne 286 O OPENGL WPROWADZENIE
O OpenGL wprowadzenie O.1 Informacje ogólne Dawno, dawno temu firma Silicon Graphics opracowała dla produkowanego przez siebie sprzętu bibliotekę graficzną zwaną IRIS GL. Związany z nią interfejs programisty
Bardziej szczegółowoŚwiatło. W OpenGL można rozróżnić 3 rodzaje światła
Wizualizacja 3D Światło W OpenGL można rozróżnić 3 rodzaje światła Światło otaczające (ambient light) równomiernie oświetla wszystkie elementy sceny, nie pochodzi z żadnego konkretnego kierunku Światło
Bardziej szczegółowoGRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych
GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy
Bardziej szczegółowoStereometria bryły. Wielościany. Wielościany foremne
Stereometria bryły Stereometria - geometria przestrzeni trójwymiarowej. Przedmiotem jej badań są własności brył oraz przekształcenia izometryczne i afiniczne przestrzeni. Przyjęte oznaczenia: - Pole powierzchni
Bardziej szczegółowoGrafika komputerowa. Potok graficzny 3D. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny
Potok graficzny 3D Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny Eksperyment Rafal Piórkowski rpiorkowski@wi.zut.edu.pl System graficzny scena 3D algorytm graficzny
Bardziej szczegółowoLaboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie
Laboratorium Grafiki Komputerowej i Animacji Ćwiczenie VI Biblioteka OpenGL - teksturowanie Sławomir Samolej Rzeszów, 1999 1. Wstęp Podczas tworzenia skomplikowanych obiektów graficznych przydatnym mechanizmem
Bardziej szczegółowoPrzedmiotowe Zasady Oceniania
Strona tytułowa Przedmiotowe Zasady Oceniania Matematyka Liceum podstawa Krzysztof Pietrasik Podręcznik: 1. Matematyka III 2. M. Dobrowolska, M. Karpiński, J. Lech 3. GWO Forma 1. Formy sprawdzania wiedzy
Bardziej szczegółowoBLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły
BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły Po uruchomieniu programu Blender zawsze ukaże się nam oto taki widok: Jak
Bardziej szczegółowoWykład 4. Rendering (1) Informacje podstawowe
Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie
Bardziej szczegółowoFIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE
Umiejętności opracowanie: Maria Lampert LISTA MOICH OSIĄGNIĘĆ FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE Co powinienem umieć Umiejętności znam podstawowe przekształcenia geometryczne: symetria osiowa i środkowa,
Bardziej szczegółowoMatematyka z plusem dla szkoły ponadgimnazjalnej. ZAŁOŻENIA DO PLANU RALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI W KLASIE III (zakres podstawowy)
1 ZAŁOŻENIA DO PLANU RALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI W KLASIE III (zakres podstawowy) Program nauczania: Matematyka z plusem, numer dopuszczenia DKW-4015-37/01. Liczba godzin nauki w tygodniu:
Bardziej szczegółowo1. Prymitywy graficzne
1. Prymitywy graficzne Prymitywy graficzne są elementarnymi obiektami jakie potrafi bezpośrednio rysować, określony system graficzny (DirectX, OpenGL itp.) są to: punkty, listy linii, serie linii, listy
Bardziej szczegółowoPytania do spr / Własności figur (płaskich i przestrzennych) (waga: 0,5 lub 0,3)
Pytania zamknięte / TEST : Wybierz 1 odp prawidłową. 1. Punkt: A) jest aksjomatem in. pewnikiem; B) nie jest aksjomatem, bo można go zdefiniować. 2. Prosta: A) to zbiór punktów; B) to zbiór punktów współliniowych.
Bardziej szczegółowo0. 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
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 obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi
Bardziej szczegółowoMAZOWIECKI PROGRAM STYPENDIALNY DLA UCZNIÓW SZCZEGÓLNIE UZDOLNIONYCH NAJLEPSZA INWESTYCJA W CZŁOWIEKA 2016/2017
MAZOWIECKI PROGRAM STYPENDIALNY DLA UCZNIÓW SZCZEGÓLNIE UZDOLNIONYCH NAJLEPSZA INWESTYCJA W CZŁOWIEKA 2016/2017 Nr z wniosku ID: 3313 Tytuł projektu edukacyjnego: Jakie bryły przestrzenne spotykamy na
Bardziej szczegółowoZAKRES PODSTAWOWY CZĘŚĆ II. Wyrażenia wymierne
CZĘŚĆ II ZAKRES PODSTAWOWY Wyrażenia wymierne Temat: Wielomiany-przypomnienie i poszerzenie wiadomości. (2 godz.) znać i rozumieć pojęcie jednomianu (2) znać i rozumieć pojęcie wielomianu stopnia n (2)
Bardziej szczegółowoDruga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.
Przyszedł czas na rysowanie własnych figur, czyli prymitywy, obracanie bitmap, oraz alpha blending-czyli półprzezroczystość. Będę opisywał tylko rzeczy nowe-nie ma potrzeby abym się powtarzał. Zaczynajmny
Bardziej szczegółowoMATEMATYKA KLASY III gimnazjum LICZBY I WYRAŻENIA ALGEBRAICZNE
MATEMATYKA KLASY III gimnazjum LICZBY I WYRAŻENIA ALGEBRAICZNE - pojęcie liczby naturalnej, całkowitej, wymiernej, niewymiernej, - sposób i potrzebę zaokrąglania liczb, - pojęcie wartości bezwzględnej,
Bardziej szczegółowoPLAN REALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI W KLASIE III WRAZ Z PLANEM WYNIKOWYM (ZAKRES PODSTAWOWY)
PLAN REALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI W KLASIE III WRAZ Z PLANEM WYNIKOWYM (ZAKRES PODSTAWOWY) Kategorie celów nauczania: A zapamiętanie wiadomości, B rozumienie wiadomości, C stosowanie wiadomości
Bardziej szczegółowoGRK 2. dr Wojciech Palubicki
GRK dr Wojciech Palubicki Macierz wektor produkt jako Transformacja T: R n R m T Ԧx = A Ԧx Przemieszczanie wierzchołków - Transformacje Skalowanie Rotacja Translacja -y -y Macierz rotacji M wobec punktu
Bardziej szczegółowoSymetria w fizyce materii
Symetria w fizyce materii - Przekształcenia symetrii w dwóch i trzech wymiarach - Wprowadzenie w teorię grup; grupy symetrii - Wprowadzenie w teorię reprezentacji grup - Teoria grup a mechanika kwantowa
Bardziej szczegółowoPLAN WYNIKOWY Z MATEMATYKI DLA III KL. GIMNAZJUM do podręcznika GWO Matematyka z plusem. PODSTAWOWE Uczeń zna: LICZBY I WYRAŻENIA ALGEBRAICZNE
Ewa Koralewska PLAN WYNIKOWY Z MATEMATYKI DLA III KL. GIMNAZJUM do podręcznika GWO Matematyka z plusem LP.. 2. 3. 5. OGÓLNA PODST- AWA PROGRA- MOWA a a TEMATYKA LEKCJI LICZBA GODZIN Lekcja organizacyjna.
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoGrafika trójwymiarowa
Strona 1 Grafika 3D w systemie Android Wprowadzenie do OpenGL ES Podstawy rysowania Rzutowanie i kamera Klasa GLSurfaceView Algorytm rysowania Tekstury Strona 2 Grafika 3D w systemie Android W komputerach,
Bardziej szczegółowoDZIAŁ 1. STATYSTYKA DZIAŁ 2. FUNKCJE
DZIAŁ 1. STATYSTYKA poda pojęcie diagramu słupkowego i kołowego (2) poda pojęcie wykresu (2) poda potrzebę korzystania z różnych form prezentacji informacji (2) poda pojęcie średniej, mediany (2) obliczy
Bardziej szczegółowoKGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012
Rysowanie precyzyjne 7 W ćwiczeniu tym pokazane zostaną wybrane techniki bardzo dokładnego rysowania obiektów w programie AutoCAD 2012, między innymi wykorzystanie punktów charakterystycznych. Narysować
Bardziej szczegółowoSzybkie tworzenie grafiki w GcIde
Szybkie tworzenie grafiki w GcIde Opracował: Ryszard Olchawa Poniższy opis dotyczy aplikacji okienkowej w systemie Windows lub Linux bazującej na obiektowej bibliotece rofrm stworzonej w środowisku GcIde.
Bardziej szczegółowoZ ostatniego wzoru i zależności (3.20) można obliczyć n6. Otrzymujemy (3.23) 3.5. Transformacje geometryczne
46 III. Przekształcenia w przestrzeni trójwymiarowej Z ostatniego wzoru i zależności (3.20) można obliczyć n6. Otrzymujemy (3.23) 3.5. Transformacje geometryczne Złożone obiekty trójwymiarowe można uważać,
Bardziej szczegółowo