OpenGL. OpenGL SuperBible Second Edition
|
|
- Lajos Németh
- 9 évvel ezelőtt
- Látták:
Átírás
1 OpenGL OpenGL SuperBible Second Edition 1
2 Első gyakorlat 2
3 Bevezetés! Tematika! OpenGL! Primitívek létrehozása!! Előadás feldolgozása! Hasznos oldalak reality.sgi.com/opengl/glut
4 Feltételek! Gyakorlat! Gyakorlatra való feliratkozás! 2 kötelező program beadása a zh írása előtt! Aki nem adja be a kötelező programot az nem írhat zh-t!! 2 ZH megírása! Első zh október héten! Második zh november héten! A meg nem írt zh nullás jegynek számít! A gyakorlati jegy a két zh átlaga! Gyak. uv.. akinek a két zh jegyének összege nem éri el a 4-et4! Pót/javító zh nem lesz!!! 4
5 Bevezetés! OpenGL szabvány! Szoftveres felület a grafikus hardverhez! 3D-s s grafikus és modellező könyvtár! Portábilis! Nagyon gyors! Gyorsabb, mint egy ray tracer! SGI által tervezett és optimalizált algoritmusok! Hogyan működik az OpenGL! lépéseket kell megadni ahhoz, hogy megkapjuk az adott nézetet vagy megjelenést! 200-nál több parancs és függvény! Grafikus primitívek, megvilágítás, árnyékolás, textúrázás, keveredés, átlátszóság, animálás, stb.! Nincs ablak kezelés! Nincs OpenGL file formátum 5
6 Bevezetés! Általános megvalósítások! Szoftveres! GDI! Szöveg kiírás! 2D-s s vonal rajzolás!...! Microsoft! SGI! MMX-enhanced! Hivatalosan nem támogatott! Mesa! Conformance teszt OS services Application program I/O services GDI Display/ Windowing System OpenGL Software Rasterizer 6
7 Bevezetés! Hardveres megvalósítások! Speciális hardver eszköz meghajtó! Minden OpenGL API fv. hívás a hardver meghajtóhoz megy! Néha az OpenGL funkció szoftveresen van megvalósítva a meghajtó programban! Más funkciók pedig egyenesen a hardvert használják OS services Application program I/O services GDI Display/ Windowing System OpenGL Hardver Driver 7
8 OpenGL pipeline! OpenGL alkalmazás fv. hívások! Parancs puffer! Vertex adat! Textúra adat!...! Transzformáció és megvilágítás! Az objektumok geometriáját leíró pontok újraszámítása! Raszterizálás! Színes kép készül OpenGL API Calls Transform and Lighting OpenGL Command Buffer Rasterization Frame buffer Flush 8
9 OpenGL állapot masina! Minden parancs azonnali hatással van az aktuális renderelési állapotra! Flag-ek! A köd be van kapcsolva?! Engedélyezett a megvilágítás?! Numerikus értékek! Függvények segítségével állíthatóak és lekérdezhetőek 9
10 Függvény elnevezési szabályok! <Lib prefix><root command><optional arg.. count><optional arg.. type> gl Color 3 f glcolor3f( ) 10
11 OpenGL utility toolkit (GLUT)! Kezdetekben AUX! Kiegészítő library! Kiváltotta a GLUT! Pop-up menük! Más ablakok kezelése! Joystick támogatás Első program #include <windows.h> #include <gl\glut.h> void RenderScene(void) ) { glclear(gl_color_buffer_bit); glflush(); } void SetupRC(void) ) { glclearcolor(0.0f, 0.0f, 1.0f, 1.0f); } void main (void)) { glutinitdisplaymode(glut_single GLUT_RGB); glutcreatewindow( Simple ); ); glutdisplayfunc(renderscene); SetupRC(); glutmainloop(); 11 }
12 Linux Makefile (RedHat 7.3)! # Makefile for OpenGL examples APPS = simple OBJ = $(APPS).o SRC = $(APPS).c CFLAGS = $(C_OPTS) -I/ I/usr/include LIBS = -L/usr/X11R6/lib -lx11 -lxi -lxmu -lglut -lgl -lglu -lm -lpthread application:$(apps) clean: rm -f f $(APPS) *.raw *.o core a.out realclean: clean rm -f f *~ *.bak *.BAK.SUFFIXES: c o.c.o: $(CC) -c c $(CFLAGS) $<$ (APPS): $(OBJ) $(CC) -o o $(APPS) $(CFLAGS) $(OBJ) $(LIBS) depend: makedepend -- $(CFLAGS) $(SRC) 12
13 OpenGL használata! Programozási könyvtár! opengl32.dll! glu32.dll! opengl32.lib! glu32.lib! gl.h, glu.h! Példa #include <windows.h>?! #include <gl/gl.h< gl/gl.h> #include <gl/glu.h< gl/glu.h>! Adattípusok! GLbyte! GLshort! GLint, GLsizei! GLfloat, GLclampf! GLdouble, GLclampd! GLubyte, GLboolean! GLushort! GLuint, GLenum, GLbitfield 13
14 Függvények az első programban! glutinitdisplaymode(unsigned int mode)! Inicializálja a megjelenítési módot! mode! GLUT_SINGLE! GLUT_DOUBLE! GLUT_RGB, GLUT_RGBA! GLUT_DEPTH! GLUT_STENCIL! GLUT_ACCUM! GLUT_APLHA! glutdisplayfunc(void *(f)(void f)(void)) ))! Beállítja a callback fv.-t az aktuális ablakon! Átméretezés! Előtérbe kerülés! glutpostredisplay! glflush és glutswapbuffers nem hívódik meg automatikusan ezután 14
15 Függvények az első programban! void glutmainloop(void)! Elindítja a GLUT eseménykezelő ciklusát! Nem tér vissza csak a program befejezése után! void glclear(glbitfield mask);! Az adott puffereket törli! A puffer egy tárolási terület a kép információ számára! Mask! GL_COLOR_BUFFER_BIT! GL_DEPT_BUFFER_BIT! GL_STENCIL_BUFFER_BIT! GL_ACCUM_BUFFER_BIT 15
16 Függvények az első programban! void glflush(void)! Az OpenGL parancs sort és puffereket üríti! A várakozó parancsok végrehajtódnak! void glclearcolor(glclamf r, GLclampf g, GLclampf b, GLclampf a)! Beállítja a kitöltési értéket, amit a red, green, blue és alpha (szín) pufferek törlésekor használ majd! Az értékek [0.0f, 1.0f] között lehetnek 16
17 Teáskanna! #include <windows.h> #include <gl\glut.h> void RenderScene(void) ) { glclear(gl_color_buffer_bit); glcolor3f(1.0f, 0.0f, 0.0f); glutwireteapot(0.5f); glflush(); } void SetupRC(void) ) { glclearcolor(0.0f, 0.0f, 1.0f, 1.0f); } void main (void)) { glutinitdisplaymode(glut_single GLUT_RGB); glutcreatewindow( Teapot ); ); glutdisplayfunc(renderscene); SetupRC(); glutmainloop(); } 17
18 Vonalak, pontok, poligonok! Az objektumok és a látvány egyszerű, kicsi alakzatokból épülnek fel! Primitívek! Egy vagy 2 dimenziós objektumok! 3D-s s festővászon! OpenGL parancsok! OpenGL függvények! 18
19 Vertex! glvertex! 2, 3 vagy 4 paraméter! Különböző típusok! Példa glvertex3f(50.0f, 50.0f, 0.0f) glvertex2f(50.0f, 50.0f) glvertex4f(50.0f, 50.0f, 0.0f, 1.0f) nagyítás 19
20 Vertex! void glbegin(glenum mode)! Milyen primitívet kell létrehozni! mode! GL_POINTS! GL_LINES! GL_LINE_STRIP! GL_LINE_LOOP! GL_TRIANGLES! GL_TRIANGLE_STRIP! GL_TRIANGLE_FAN! GL_QUADS! GL_QUAD_STRIP! GL_POLYGON! void glend(void)! A vertex-ek ek listájának a végét jelzi. A glbegin()-nel nel párban kell használni! glvertex! glcolor! glindex! glnormal! glevalcoord! glcalllist! glcalllists! gltextcoord! gledgeflag! glmaterial 20
21 Vertex! Pontok rajzolása! 0-360! A szögek radiánban vannak megadva! 3-szor rajzolja ki a kört! A z koordinátát alig-alig változtatva! glutspecialfunc! Regisztrálja azt a fv-t, amely a speciális billentyűk leütésekor hívódik meg! glrotatef később! Példa points.c points 21
22 Vertex - pont méret! Példa pointsz.c! void glpointsize(glfloat size)! size a pont közelítő átmérője! Nem mindegyik méret támogatott! Példa GLfloat sizes[2]; GLfloat step; glgetfloatv(gl_point_size,, sizes); glgetfloatv( GL_POINT_SIZE_GRANULARITY, &step);! A glbegin és glend-en kívül szabad meghívni! Ha kisebb vagy nagyobb értéket állítunk be a megengedettnél, akkor a legkisebb/legnagyobb értéket használja pointsz 22
23 Vertex - vonal rajzolás! glbegin(gl GL_LINES) glvertex3f(0.0f, 0.0f, 0.0f); glvertex3f(50.0f, 50.0f, 50.0f); glend() ();! Páratlan számú vertex esetén az utolsót nem veszi figyelembe! Példa lines.c lines! glbegin(gl GL_LINE_STRIP) /* GL_LINE_LOOP */ glvertex3f(0.0f, 0.0f, 0.0f); /*v1 v1*/ glvertex3f(50.0f, 50.0f, 50.0f); /*v2 v2*/ glvertex3f(50.0f, 100.0f, 0.0f); /*v3 v3*/ glend() (); GL_LINE_STRIP GL_LINE_LOOP 23
24 Vertex - vonal vastagság! gllinewidth(glfloat width)! Példa GLfloat sizes[2]; GLfloat step; glgetfloatv( GL_LINE_WIDTH_RANGE, sizes); glgetfloatv( GL_LINE_WIDTH_GRANULARITY, &step);! Példa linesw.c linesw 24
25 Vertex - vonal szaggatás! glenable(gl_line_stipple)! gldisable (GL_LINE_STIPPLE)! void gllinestipple( GLint factor, GLushort pattern)! Pattern! 16 bit-es érték! 0-s s bit a least significant! factor! A minta szélességét adja meg! Pl. 5 esetén mindegyik bit a mintában 5 pixel-t t jelent! Példa lstipple.c lstipple 25
26 Vertex - háromszög! glbegin(gl_triangles); glvertex2f(0.0f, 0.0f); ; /*V0 V0*/ glvertex2f(25.0f, 25.0f, 25.0f); ; /*V1 V1*/ glvertex2f(50.0f, 0.0f); ; /*V2 V2*/ glvertex2f(-50.0f, 0.0f); ; /*V3*/ glvertex2f(-75.0f, 50.0f); ; /*V4*/ glvertex2f(-25.0f, 25.0f, 0.0f); ; /*V5*/ glend():! Mindegyik poligon előállítható háromszögekből! A videokártyák optimalizálva vannak a háromszögek kirajzolására 26
27 Vertex - irányítottság! OpenGL-ben alapértelmezésben órajárással ellentétes irányítottságú elölnézet! Jobb-sodrású! Fontos pl. a színezésnél, hátsó terület elrejtésénél! glfrontface(gl_cw)! GL_CW! GL_CCW 27
28 Második gyakorlat 28
29 Vertex - háromszögcsík! GL_TRIANGLE_STRIP! Megőrzi az irányítottságot mindegyik háromszögre! Előnyök! Az első három pont megadása utan egy új háromszöghöz csak egy pontot kell megadni! Kevesebb vertex,, gyorsabb végrehajtás a transzformációknál 29
30 Vertex háromszög-legyező! TRIANGLE_FAN! Egy középpontnál kapcsolódó háromszögek csoportja! Az első vertex a középpont! Órajárással megegyező 30
31 Vertex - szolíd objektumok! Szinezés! A színek pontonként van megadva! glshademodel(gl_flat)! GL_SMOOTH! Rejtett felszín eltávolítás! Az alját később rajzolja ki! Mélység ellenőrzés! Pixel z koordinátája meghatározza! glenable(gl_depth_test)! gldisable()! Belső/külső oldalak kirajzolásának letiltása! Alapértelmezéskor kirajzolja! glenable(gl_cull_face)! glcullface(gl_front)! GL_BACK! Poligon módok! Alapértelmezésben szolíd! glpolygonmode(gl_back, GL_LINE)! GL_POINT, GL_FILL! GL_FRONT, GL_FRONT_AND_BACK triangle 31
32 Vertex - más primitívek! Négy oldalú poligon! GL_QUADS! Négy oldalú csík! GL_QUAD_STRIP! Általános poligon! GL_POLYGON! Téglalap! glrectf(glfloat x1, GLfloat y1, GLfloat x2, GLfloat y2,) 32
33 Poligonok kitöltése! Texture mapping később! Szaggatott vonal minta! glenable(gl_polygon_stipple)! glpolygonstipple(pbitmap)! GLubyte *pbitmap! 32x32! Most significant bit elsőként! Alulról felfele haladva! A minta nem forog a polygonnal! Csak egyszerű poligon kitöltésre használjuk pstipple 33
34 Poligonokra vonatkozó szabályok! Minden pont egy síkon van! A poligonok élei nem metszhetik egymást! Konvex-ek ek 34
35 Parcellák és élek! Konvex poligonokból előállítható nem konvex poligon! Amikor kitöltjük a poligonokat,, akkor nem látjuk az éleket! edge flag! gledgeflag(true)! False! Poligon mód: GL_LINE, GL_POINT! Példa star 35
36 Harmadik gyakorlat 36
37 Homogén koordináták! (x,y) (x,y,w)! (x,y,w)) = (x,y(,y,w ), ha α: x =αy, W =αw! Egy ponthoz végtelen v sok (x,y,w)) tartozik! (0,0,0) nem megengedett! Ha W 0; W (x/w,y/w,1) a szokásos sos jelölése (x,y)( x,y)- nak! Ha W=0; (x,y,0) végtelen v távoli pont P(x,y,W) (x/w,y/w,1) P vetülete a W=1 síkon 37
38 Koordináta transzformációk! OpenGL transzformációk! Viewing! A néző vagy a kamera helyének a megadása! Modellező (Modeling( Modeling)! Az objektumok mozgatása! Modelview! Dualitás a nézeti és a modellező transzformációk között! Projekció! A nézet vágása és méretezése! Nézeti! A végleges eredmény ablakra való leképezése 38
39 Szem koordináták! A megfigyelő nézőpontja! Virtuálisan rögzített koordináta rendszer A monitorra merőleges (ahogy a megfigyelő látja) 39
40 Viewing transzformációk! Ez hajtódik végre először! Nézőpont meghatározása! (0, 0, 0)! A z tengely negatív része felé nézve! A pozitív értékek a z tengelyen a megfigyelő mögött vannak! void glulookat(gldouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz)! A megfigyelő pont transzformálása! Ezt kell legelőször definiálni 40
41 Modellező transzformációk! A modell vagy annak egy részének a manipulására használjuk! A végső kinézetet befolyásolja 41
42 Modelnézeti dualitás! A viewing transzformáció és a modellező transzformációk duálisak 42
43 Projekció/Nézeti transzformáció! Utolsóként van alkalmazva! Definiálja a nézeti teret és vágósíkokat! Ortogonális! 2D-s s rajzok! CAD! Perspektivikus! Valós élet! Nézeti transzformáció! 2D-s s leképzés az ablakra! glviewport() 43
44 Mátrixok! Transzformációs sor! Modellnézeti! Projekciós! Nézeti 44
45 Modelnézeti mátrix! 4x4-es mátrix! A vertex koordinátákat transzformálja! void gltranslatef(glfloat x, GLfloat y, GLfloat z)! void glrotatef(glfloat angle, GLfloat x, GLfloat y, GLfloat z)! glscale(glfloat x, GLfloat y, GLfloat z) 45
46 Az egység mátrix! A transzformációkat egymásután használva azok hatása összegződik! A két utasítás segítségével a Modelview mátrix-ba betöltjük az egységmátrixot! glmatrixmode(gl_modelview) glloadidentity()! GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE 46
47 Mátrix vermek! glget(gl_max_modelview_stack_depth) (Microsoft 32)! glget(gl_max_projection_stack_depth) (Microsoft 2)! GL_STACK_OVERFLOW atom! GL_STACK_UNDERFLOW! void glpushmatrix(void)! void glpopmatrix(void) 47
48 Vetületek használata! A vetület mátrix meghatározza a nézeti tér méretét és alakját! Ortogonális ortho! Perspektivikus perspect! Perspektív! Piramis szelet! glfrustum(gldouble left,,..., GLdouble far)! void gluperspective(gldouble fovy, GLdouble aspect, GLdouble znear, GLdouble zfar)! fovy field of view! aspect 48
49 Perspektív vetület! // Change viewing volume and viewport.. Called when window is resized! void ChangeSize(GLsizei w, GLsizei h) { GLfloat faspect; // Prevent a divide by zero if (h == 0) h = 1; // Set Viewport to window dimensions glviewport(0, 0, w, h); solar faspect = (GLfloat)w/(GLfloat)h( GLfloat)w/(GLfloat)h; // Reset coordinate system glmatrixmode(gl_projection); glloadidentity(); // Produce the perspective projection gluperspective(60.0f, faspect,, 1.0, 400.0); glmatrixmode(gl_modelview); glloadidentity(); } 49
50 Mátrix műveletek! Gyorsabbak a magasabb szintű műveletek! Mátrix betöltés! GLfloat m[] = { 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0} glmatrixmode(gl_modelview); glloadmatrix(m);! Saját transzformáció végrehajtása! GLfloat m[] = { 1.0, 0.0, 0.0, 10.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0} glmatrixmode(gl_modelview); glmulmatrix(m);! Más transzformációk! Árnyék rajzolás!... 50
51 Negyedik gyakorlat 51
52 Szín, fény, anyag! Szín mélység! 4, 8, 16, 24! 32 - true color! 32 bit-es cím határra igazítja a pixel adatot! Pixelenként 1 byte-ot veszítünk! Gyorsabb! 16 bit! Gyakorlatilag ugyanaz mint a 24 bit! Memória megtakarítás! gyorsítás! RGB kocka 52
53 Szín! A rajzolási szín beállítása! void glcolor<x><t>(r,, g, b, a)! <x> argumentumok száma! alfa - átlátszóság! <t> argumentumok típusa! b, d, f, i, s, ub, ui, us! glcolor3f! Intenzitás! glcolor3ub! glcolor3ub(0, 255, 128) = RGB(0, 255, 128)! Ha minden vertex-re re külön definiáljuk a színt, akkor mi lesz a köztes területtel?! glshademodel()! GL_FLAT utolsó vertex színe! GL_POLYGON esetében az első vertex színe! GL_SMOOTH 53
54 Fény jet! A tárgyak színét sok minden befolyásolja! Ambient környező! Van forrás! A sugarak iránytalanok! Az objektumokat megvilágítva ilyen fénnyel olyan, mint ha minden irányból minden felületet érne a fény! Diffuse - szórt! Bizonyos irányból jön! Egyenletesen szétszóródik a felszínen! Specular - tükröződő! Irányított! Bizonyos irányokból élesen tükröződik! Fényes foltot hagy a felületen! Egy egyszerű forrás előállítható a három típus segítségével 54
55 Anyag! Egy poligon piros! A poligon egy olyan anyagból készült, amely a piros fényt tükrözi! Definiálni kell az anyag tükrözési tulajdonságait az ambient, diffuse és a specular fényforrásokra! Fény kibocsátási tulajdonság! Hátsó lámpa!...! Ambient fény! Diffuse és Specular! Az intenzitás függ a fény! Beesési szögétől! Távolságtól! Hígulási tényezők (köd) 55
56 Fény hozzáadás I.! Megvilágítás engedélyezése! glenable(gl_lighting)! Használja az anyag tulajdonságokat, a fény paramétereket a vertex-ek ek színének kiszámításánál! Megvilágítási modell! gllightmodelfv fv(glenum, const GLfloat *params)! GL_LIGHT_MODEL_AMBIENT! GL_LIGHT_MODEL_LOCAL_VIE WER! GL_LIGHT_MODEL_TWO_SIDE! Default (0.2, 0.2, 0.2, 1.0)! Példa GLfloat ambientlight[] = { 1.0f, 1.0f, 1.0f, 1.0f }; glenable(gl_lighting); gllightmodelfv( GL_LIGHT_MODEL_AMBIENT, ambientlight); 56
57 Fény hozzáadás II.! Anyag tulajdonságok! glmaterialfv fv(glenum, GLenum, const GLfloat *params)! face! GL_FRONT! GL_BACK! GL_FRONT_AND_BACK! pname! GL_AMBIENT! GL_DIFFUSE! GL_SPECULAR! GL_EMISSION! GL_SHININESS! GL_AMBIENT_AND_DIFFUSE! GL_COLOR_INDEXES! Példa GLfloat gray[] = { 0.75f, 0.75f, 0.75f, 1.0f }; glmaterialfv fv(gl_front, GL_AMBIENT_AND_DIFFUSE, gray); glbegin(gl_triangles); glvertex3f(-15.0f, 0.0f, 30.0f); glvertex3f(0.0f, 15.0f, 30.0f); glvertex3f(0.0f, 0.0f, -56.0f); glend(); 57
58 Fény hozzáadás III.! Color tracking! Az anyagi tulajdonságokat csak glcolor hívásával állítjuk be! glenable(gl_color_material)! glcolormaterial(glenum, GLenum)! face! GL_FRONT! GL_BACK! GL_FRONT_AND_BACK ambient! mode! GL_EMISSION! GL_AMBIENT! GL_DIFFUSE! GL_SPECULAR! GL_AMBIENT_AND_DIFFUSE! Példa glenable(gl_color_material); glcolormaterial(gl_front, GL_AMBIENT_AND_DIFFUSE); glcolor3f(0.75f, 0.75f, 0.75f); glbegin(gl_triangles); glvertex3f(-15.0f, 0.0f, 30.0f); glvertex3f(0.0f, 15.0f, 30.0f); glvertex3f(0.0f, 0.0f, -56.0f); 58 glend();
59 Fényforrások használata! Az OpenGL legalább 8 független fényforrást támogat! A fényforrást elhelyezhetjük egy végtelen távoli pontban! Az objektumhoz közel is elhelyhetjük! Reflektor forrást adhatunk meg! Tölcsér! Karakterisztikák! Melyik irányban! Melyik a felfele mutató irány? 59
60 Normál egységvektorok! glnormal3f 3f(GLfloat, GLfloat, GLfloat)! A normál vektorát definiálja a következő vertex-nek vagy halmaznak! Példa! glenable(gl_normalize) void! Automatikusan egységnyire normalizálja a vektorokat! Sebesség csökkenés! glscale()! Módosítja a normálisok hosszát! glenable(gl_rescale_normals)! OpenGL 1.2! A normal vektorok nem egységnyiek, de skálázhatóak egy értékkel (glscale( glscale)! Kevesebb műveletet kell végrehajtani void ReduceToUnit(float vector[3]) { float length; length = (float)sqrt((vector[0]*vector[0]) + (vector[1]*vector[1])+(vector[2]*vector[2])); if (length == 0.0f) length = 1.0f; vector[0] /= length; vector[1] /= length; vector[2] /= length; } 60
61 Egységvektorok kiszámítása! Példa void calcnormal(float v[3][3], float out[3]) { float v1[3],v2[3]; static const int x = 0; static const int y = 1; static const int z = 2; v1[x] = v[0][x] - v[1][x]; v1[y] = v[0][y] - v[1][y]; v1[z] = v[0][z] - v[1][z]; v2[x] = v[1][x] - v[2][x]; v2[y] = v[1][y] - v[2][y]; v2[z] = v[1][z] - v[2][z]; out[x] ] = v1[y]*v2[z] - v1[z]*v2[y]; out[y] ] = v1[z]*v2[x] - v1[x]*v2[z]; out[z] ] = v1[x]*v2[y] - v1[y]*v2[x]; 61 ReduceToUnit(out);}
62 A fényforrás beállítása! gllightfv fv(glenum, GLenum, const GLfloat *)! light! GL_LIGHT0... GL_MAX_LIGHTS! pname! GL_AMBIENT! GL_DIFFUSE! GL_SPECULAR! GL_POSITION! GL_SPOT_DIRECTION! GL_SPOT_EXPONENT! GL_SPOT_CUTOFF! GL_CONSTANT_ATTENUATION! GL_LINEAR_ATTENUATION! GL_QUADRATIC_ATTENUATION! Példa GLfloat ambientlight[] = {0.3f, 0.3f, 0.3f, 1.0f}; GLfloat diffuselight[] = {0.7f, 0.7f, 0.7f, 1.0f}; GLFloat lightpos = {-50.0f.{ 50.0f, 100.0f, 1.0f }; gllightfv(gl_light0, GL_AMBIENT, ambientlight); gllightfv(gl_light0, GL_DIFFUSE, diffuselight); glenable(gl_light0); gllightfv(gl_light0, GL_POSITION, lightpos); litjet 62
63 Fényhatások - Tükröződés! Tükröződő fény! Példa GLfloat ambientlight[] = { 0.3f, 0.3f, 0.3f, 1.0f }; GLfloat diffuselight[] = { 0.7f, 0.7f, 0.7f, 1.0f }; GLfloat specular[] = { 1.0f, 1.0f, 1.0f, 1.0f};... glenable(gl_lighting); gllightfv(gl_light0, GL_AMBIENT,ambientLight); gllightfv(gl_light0, GL_DIFFUSE,diffuseLight); gllightfv(gl_light0, GL_SPECULAR,specular); glenable(gl_light0);! Tükröződő visszaverődés! Példa GLfloat specref[] = { 1.0f, 1.0f, 1.0f, 1.0f };... glenable( GL_COLOR_MATERIAL); glmaterialfv(gl_front, GL_SPECULAR,specref); glmateriali(gl_front, GL_SHININESS,128);! glmateriali(glenum GLenum, GLenum, GLint)! shinyjet 63
64 Reflektorfény! GLfloat spotdir[] = { 0.0f, 0.0f, -1.0f };! gllightfv(gl_light0, GL_SPOT_DIRECTION, spotdir);! irány! gllightf(gl_light0, GL_SPOT_CUTOFF, 60.0f);! szög! gllightf(gl_light0, GL_SPOT_EXPONENT, 100.0f);! (max {p d,, 0}) 0 e spot 64
65 Egyszerű árnyék! Szétlapítás (Blinn( 1988)! Lineáris transzformáció gldisable(gl_depth_test); gldisable(gl_lighting); glpushmatrix(); glmultmatrixf( (GLfloat *)shadowmat shadowmat); glrotatef(xrot,, 1.0f, 0.0f, 0.0f); glrotatef(yrot,, 0.0f, 1.0f, 0.0f); DrawJet(TRUE); glpopmatrix(); shadow 65
66 Ötödik gyakorlat 66
67 Pufferek! Mindegyik puffer sajátos képességgel bír! Color! Depth! Stencil! Accumulation! Két dimenziós tömbök! A sorok és oszlopok száma megegyezik az ablak kliens területén lévőkkel! Más tagoltsággal illetve típussal rendelkeznek 67
68 A pufferek beállítása GLUT-ban! Puffer kiválasztása! void glutinitdisplaymode(mode)! GLUT_RGB, GLUT_RGBA! GLUT_INDEX! GLUT_SINGLE! GLUT_DOUBLE! GLUT_ACCUM! GLUT_ALPHA! GLUT_DEPTH! GLUT_STENCIL! GLUT_MULTISAMPLE! GLUT_STEREO! GLUT_LUMINANCE! Csak a szükséges puffereket válasszuk ki! Korlátozott memória méret! Ha olyan kombinációt (Microsoft) választunk ki, amit a videó kártya nem támogat, akkor a szoftveres implementáció kihagyja a hardveresen gyorsított funkciókat 68
69 Pufferek! Szín puffer! Pixel szín információk! A legközelebbi szín! Az általános Microsoft OpenGL nem támogatja az alfa komponenst! Dupla Puffer! Animáció! Csak a szín pufferre van hatása! Nem kapunk még egy mélység puffert vagy összegző puffert! Egy pixel formátum kiválasztása dupla puffereléssel OpenGL kiválaszt egy hátth ttér r puffert rajzolásra! gldrawbuffer(glenum)! GL_FRONT! GL_BACK (látható) (láthatatlan)! GL_FRONT_AND_BACK 69
70 Pufferek! Depth puffer! Távolság értékek! Mindegyik érték a pixelek távolságát jelentik a nézőponttól! 16, 32 bites értékek! Nem látható felület eltávolítására használjuk általában! glenable(gl_depth_test)! gldisable(gl_depth_test)! Mélység összehasonlítás! A pixelek z pozicióját összehasonlítja a depth puffer értékével! Ha az összehasonlítás igaz, akkor a pixel a mélység mentén van tárolva! gldepthfunc()! GL_LESS alapértelmezés! Igaz, ha a forrás z kisebb a mélység z értékénél 70
71 Pufferek! Összehasonlítás! GL_NEVER! GL_LESS! GL_EQUAL! GL_LEQUAL! GL_GREATER! GL_NOTEQUAL! GL_GEQUAL! GL_ALWAYS glut! Mélység értékek! Leképezett Z koordináták,! A csonka nézet elejétől a nézet hátsó lapjáig megy [0.0, 1.0]! GL_EQUAL, GL_NOTEQUAL esetén néha szükség van a mélység értékek tartományának a megváltoztatására! GLfloat near,, far; gldepthrange(near,, far);! Iniciális depth érték beállítása GLfloat depth; glcleardepth(depth); 71
72 Görbék és felületek 72
73 Görbék és felületek! Rang! A kontrol pontok száma! Fok = Rang - 1 aquadratic (fok 2) cubic (fok 3) 73
74 Folytonosság 74
75 Kiértékelők! Bézier görbék rajzolása! Kontrol pontok! Parametrikus u és v! Alkalmas kiértékelő fv.! Generálja a pontokat, amelyek a görbét vagy a felszínt alkotják 75
76 2D-s görbe I. bezier! void RenderScene(void) { glclear(gl_color_buffer_bit); glmap1f(gl_map1_vertex_3, //Type of data generated 0.0f, // Lower u range 100.0f, // Upper u range 3, // Distance between points in the data nnumpoints, // number of control points &ctrlpoints[0][0]); // array of control points glenable(gl_map1_vertex_3); glbegin(gl_line_strip); for(i = 0; i <= 100; i++) { glevalcoord1f((glfloat) i); } glend(); DrawPoints(); glutswapbuffers();} 76
77 2D-s görbe II.! glmapgrid1f(glint, GLfloat, GLfloat)! un: felosztás száma! u1,u2: alsó és felső értékek u irányban! glevalmesh1(glenum, GLint, GLint)! mode: : GL_POINT, GL_LINE, GL_FILL! i1,i2: első és utolsó integer érték az u tartományra! void RenderScene(void) { glclear(gl_color_buffer_bit); glmap1f(gl_map1_vertex_3, 100.0f, 100.0f, 3, nnumpoints, &ctrlpoints[0][0]); glenable(gl_map1_vertex_3); glmapgrid1d(100,0.0,100.0); glevalmesh1(gl_line,0,100); DrawPoints(); glutswapbuffers(); 77 }
78 3D-s felszín! Hasonló a 2D-s görbékhez! u és v tartományon definiálni kell a pontokat! void RenderScene(void) { glclear(gl_color_buffer_bit); glmatrixmode(gl_modelview); glpushmatrix(); glrotatef(45.0f, 0.0f, 1.0f, 0.0f);glRotatef(60.0f, 1.0f, 0.0f, 0.0f); glmap2f(gl_map2_vertex_3, // Type of data generated 0.0f, // Lower u range 10.0f, // Upper u range 3, // Distance between points in the data 3, // Dimension in u direction (order) 0.0f, // Lover v range 10.0f, // Upper v range 9, // Distance between points in the data 3, // Dimension in v direction (order) &ctrlpoints[0][0][0]); glenable(gl_map2_vertex_3); glmapgrid2f(10,0.0f,10.0f,10,0.0f,10.0f); glevalmesh2(gl_line,0,10,0,10); 78 DrawPoints();glPopMatrix();glutSwapBuffers();} ();}
79 Megvilágitás! glevalmesh2(gl_fill, 0, 10, 0, 10);! glenable(gl_auto_normal)! Engedélyezni kell a megvilágítást bezier3d 79
80 Non Uniform Rational B-Spline! Bézier görbe kvadratikus esetben elég sima! Több pont esetén már simaság csökken! B-spline-ok (bi-cubic splines)! Szegmensekre van szétbontva a görbe! Az adott szegmens alakját a legközelebbi 4 pont határoza meg! Egy hosszabb görbe sok kontrol ponttal simább! A csomópontokkal a szegmensek között C3 folytonosságot mutat! A görbének nem feltétlenül kell átmennie bármelyik kontrol ponton 80
81 Csomók! Két csomópont értéket definiálunk minden kontrol ponthoz! Az értékek tartománya megegyezik az u és v értelmezésitartományával! Nem csökkenőek! A csomópontok meghatározzák a kontrolpontok hatását az u és v tartományon belül! 0-33 közötti pontok vannak hatással a görbe alakjára Kontrol pont hatása az u paraméter mentén 81
82 NURBS felszín kreálása! GLUnurbsObj *pnurb = NULL;... pnurb = glunewnurbsrender();... if (pnurb) gludeletenurbsrender(pnurb);! NURBS tulajdonságok! glunurbsproperty(pnurb, GLU_SAMPLING_TOLERANCE, 25.0f);! glunurbsproperty(pnurb, GLU_DISPLAY_MODE, (GLfloat)GLU_FILL););! glubeginsurface(pnurb); glunurbssurface(pnurb, 8, Knots,, //No. knots and knots array u 8, Knots,, //No. knots and knots array v 4*3, //distance between control p. in u 3, //distance between conrol p. in v dir &ctrlpoints[0][0][0], 4,4, //u and v order of surface GL_MAP2_VERTEX_3); gluendsurface(pnurb); nurbs 82
83 Kivágás I.! Kivágni egy szeletet egy NURBS felszínből! glubeginsurface(pnurb); glunurbssurface(pnurb, 8, Knots,, //No. knots and knots array u 8, Knots,, //No. knots and knots array v 4*3, //distance between control p. in u 3, //distance between conrol p. in v dir &ctrlpoints[0][0][0], 4,4, //u and v order of surface GL_MAP2_VERTEX_3); glendsurface(pnurb);! // Outer area, include entire curve glubegintrim (pnurb); glupwlcurve (pnurb,, 5, &outsidepts[0][0], 2, GLU_MAP1_TRIM_2); gluendtrim (pnurb); // Inner triangluar area glubegintrim (pnurb); glupwlcurve (pnurb,, 4, &insidepts[0][0], 2, GLU_MAP1_TRIM_2); nurbt gluendtrim (pnurb); 83
84 Kivágás II.! glunurbscurve( GLUnurbsObj *nobj, GLint nknots, GLfloat *knot, GLint stride, GLfloat *ctlarray, GLint order, GLenum type)! nknots: : csomók száma! knot: : tömb! stride: : eltolás a kontrol pontok között a görbén! ctlarray: : kontrol pontok! order: : NURBS felület rangja! type: : GL_MAP2_VERTEX_3, GL_ MAP2_VERTEX_4,...! glupwlcurve( GLUnurbsObj *nobj, GLint count, GLfloat *array, GLint stride, GLenum type)! count: : tömbben lévő elemek száma! array: : határ pontok! stride: : eltolás a pontok között a görbén! type: GLU_MAP1_TRIM_2, GLU_MAP1_TRIM_3 (w) 84
OpenGL. Bevezetés. Hasznos oldalak. Tematika OpenGL. Előadás feldolgozása
OpenGL http://www.opengl.org/ 1 Bevezetés Tematika OpenGL Primitívek létrehozása Előadás feldolgozása Hasznos oldalak http://www.opengl.org http://www.opengl.org//documenta tion/specs/glut/index.html http://www.mesa3d.org
Máté: Számítógépes grafika alapjai
Világító tárgyak Környezeti fény Szórt visszaverődés Környezeti fény és diffúz visszaverődés együtt Tükröző visszaverődés fényességének meghatározása Gouraud-féle fényesség Phong-féle fényesség a. Világító
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter Hogyanok? Tartalom Egy ilyen rendszer hogyan épül fel Szükséges matematika, fizika Alap algoritmusok 3D képek létrehozása a cél Modern rendszerek
Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 21./0. 3D grafika programozása OpenGL támogatással A 3D API
Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 21./0. 3D grafika programozása OpenGL támogatással A 3D API Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László
Programozás I. - 9. gyakorlat
Programozás I. - 9. gyakorlat Mutatók, dinamikus memóriakezelés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 9, 2009 1 tar@dcs.vein.hu
Máté: Számítógépes grafika alapjai
Téglalap kitöltése Kör, ellipszis kitöltése Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon) Megjeleníthetők a) Csak a határvonalat reprezentáló pontok kirajzolásával
Számítógépes grafika. XIV. rész
ismerd meg! Számítógépes grafika XIV. rész Normálisok A Firka előző lapszámában a fénytan törvényeit ismételtük át, és láttuk, hogy a megvilágítás kiszámításánál fontos szerepet játszanak a normálisok
Máté: Számítógépes grafika alapjai
Tükröző (specular) visszaverődés Tükröző (specular) visszaverődés Fényes felületekről (tükörről) Phong-féle modell: I λ = I aλ k a + f att I pλ [ k d cos θ + W (θ) cos n α ] n: a tükrözési visszaverődés
Grafikus csővezeték és az OpenGL függvénykönyvtár
Grafikus csővezeték és az OpenGL függvénykönyvtár 1 / 32 A grafikus csővezeték 3D-s színtér objektumainak leírása primitívekkel: pontok, élek, poligonok. Primitívek szögpontjait vertexeknek nevezzük Adott
3D koordináta-rendszerek
3D koordináta-rendszerek z z y x y x y balkezes bal-sodrású x jobbkezes jobb-sodrású z 3D transzformációk - homogén koordináták (x, y, z) megadása homogén koordinátákkal: (x, y, z, 1) (x, y, z, w) = (x,
21. évfolyam 5. szám. Fizika InfoRmatika Kémia Alapok. Kiadó. Levélcím 400750 Cluj, C. P. 1/140
Fizika InfoRmatika Kémia Alapok Kiadó Az Erdélyi Magyar Műszaki Tudományos Társaság kiadványa Szerkesztőbizottság Bíró Tibor, Farkas Anna, Dr. Gábos Zoltán, Dr. Karácsony János, Dr. Kaucsár Márton, Dr.
4. gyakorlat: interpolációs és approximációs görbék implementációja
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar A számítógépes grafika alapjai kurzus, gyakorlati anyagok Benedek Csaba 4. gyakorlat: interpolációs és approximációs görbék implementációja
Érdekes informatika feladatok
Érdekes informatika feladatok XX. rész Az első OpenGL példaprogram Visual C++-ban Ha OpenGL programot szeretnénk létrehozni VisualC++-ban, három lehetőségünk van: Win32 alkalmazás, Win32 konzol alkalmazás
Máté: Számítógépes grafika alapjai
Pontok rajzolása OpenGL Rajzoljunk egy piros pontot a (10, 10), egy zöld pontot az (50, 10) és egy kék pontot a (30, 80) koordinátákba (az ablak 100*100-as méretű) Pontok rajzolása Színek és színmódok
2011. március 9. Dr. Vincze Szilvia
. márius 9. Dr. Vinze Szilvia Tartalomjegyzék.) Elemi bázistranszformáió.) Elemi bázistranszformáió alkalmazásai.) Lineáris függőség/függetlenség meghatározása.) Kompatibilitás vizsgálata.) Mátri/vektorrendszer
Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 22./0. 3D grafika programozása OpenGL támogatással Transzformációk
Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 22./0. 3D grafika programozása OpenGL támogatással Transzformációk Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás
1. Metrótörténet. A feladat folytatása a következő oldalon található. Informatika emelt szint. m2_blaha.jpg, m3_nagyvaradter.jpg és m4_furopajzs.jpg.
1. Metrótörténet A fővárosi metróhálózat a tömegközlekedés gerincét adja. A vonalak építésének története egészen a XIX. század végéig nyúlik vissza. Feladata, hogy készítse el a négy metróvonal történetét
Számítógépes grafika
Számítógépes grafika XXVIII. rész OpenGL Visual C++-ban Ha OpenGL programot szeretnénk létrehozni VisualC++-ban, három lehetőségünk van: Win32 alkalmazás, Win32 konzol alkalmazás és MFC platformon történő
JUHÁSZ IMRE. OpenGL. mobidiák könyvtár
JUHÁSZ IMRE OpenGL mobidiák könyvtár Juhász Imre OpenGL mobidiák könyvtár SOROZATSZERKESZTŐ Fazekas István JUHÁSZ IMRE egyetemi docens Miskolci Egyetem OpenGL Egyetemi jegyzet Első kiadás mobidiák könyvtár
Vektorok összeadása, kivonása, szorzás számmal, koordináták, lineáris függetlenség
Vektoralgebra Vektorok összeadása, kivonása, szorzás számmal, koordináták, lineáris függetlenség Feladatok: 1) A koordinátarendszerben úgy helyezzük el az egységkockát, hogy az origó az egyik csúcsba essék,
2004. december 1. Irodalom
LINEÁRIS LEKÉPEZÉSEK I. 2004. december 1. Irodalom A fogalmakat, definíciókat illetően két forrásra támaszkodhatnak: ezek egyrészt elhangzanak az előadáson, másrészt megtalálják a jegyzetben: Szabó László:
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett feladatrészek megoldásához!
Analízis elo adások. Vajda István. 2012. október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)
Vajda István Neumann János Informatika Kar Óbudai Egyetem / 40 Fogalmak A függvények értelmezése Definíció: Az (A, B ; R ) bináris relációt függvénynek nevezzük, ha bármely a A -hoz pontosan egy olyan
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Infomáció megjelenítés Számítógépes ábázolás D. Iványi Péte Megvilágítás, ányékolás Realisztikus képhez ányékolás kell Modellezés összetett nagy számítási igenyű Megvilágítás, ányékolás OpenGL egyszeűsített
Számítógépes grafika
Számítógépes grafika XX. rész A GPU programozása a GLSL nyelv Az OpenGL árnyaló nyelve a GLSL (OpenGL Shading Language), amely segítségével vertex- és pixel- (fragment) shaderek által programozhatjuk a
A számítógépes grafika
Douglas Osheroff (1996., a hélium-3 szuperfolyékonyságának felfedezője): Lenyűgöző műszaki alkotás az LHC, észbontó a szuperfolyékony hélium 27 km-en. Ő is eddig ismeretlen részecskék sokaságának felfedezésére
Számítógépes grafika
Számítógépes grafika XXIX. rész Más OpenGL lehetőségek A GLUI A GLUI egy Paul Rademacher által fejlesztett GLUT alapú C++-ban felhasználói felületet megvalósító függvénykönyvtár, amely letölthető a http://www.cs.unc.edu/~rademach/glui/
Analízis elo adások. Vajda István. 2012. szeptember 24. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)
Vajda István Neumann János Informatika Kar Óbudai Egyetem 1/8 A halmaz alapfogalom, tehát nem definiáljuk. Jelölés: A halmazokat általában nyomtatott nagybetu vel jelöljük Egy H halmazt akkor tekintünk
Adatok ábrázolása, adattípusok. Összefoglalás
Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában
A szerzõrõl... xi Bevezetés... xiii
TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A webes parancsnyelvek és a JavaScript
Szegedi Tudományegyetem Informatikai Tanszékcsoport tanév
Szegedi Tudományegyetem Informatikai Tanszékcsoport Képfeldolgozás és Számítógépes Grafika Tanszék 2013-2014. tanév A kurzusról Előadó és gyakorlatvezető: Németh Gábor Előadás (nappali tagozaton): heti
Párhuzamos programozás
Párhuzamos programozás Rendezések Készítette: Györkő Péter EHA: GYPMABT.ELTE Nappali tagozat Programtervező matematikus szak Budapest, 2009 május 9. Bevezetés A számítástechnikában felmerülő problémák
EPER E-KATA integráció
EPER E-KATA integráció 1. Összhang a Hivatalban A hivatalban használt szoftverek összekapcsolása, integrálása révén az egyes osztályok, nyilvántartások között egyezőség jön létre. Mit is jelent az integráció?
54 481 01 1000 00 00 CAD-CAM
Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,
Tanács Attila. Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem
Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem Direct3D, DirectX o Csak Microsoft platformon OpenGL o Silicon Graphics: IRIS GL (zárt kód) o OpenGL (1992) o Nyílt
Jelek tanulmányozása
Jelek tanulmányozása A gyakorlat célja A gyakorlat célja a jelekkel való műveletek megismerése, a MATLAB környezet használata a jelek vizsgálatára. Elméleti bevezető Alapműveletek jelekkel Amplitudó módosítás
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter (adat szerkezet) float x,y,z,w; float r,g,b,a; } vertex; glcolor3f(0, 0.5, 0); glvertex2i(11, 31); glvertex2i(37, 71); glcolor3f(0.5, 0,
Erste MobilBank Felhasználói kézikönyv
Erste MobilBank Felhasználói kézikönyv Tartalom 1. Az Erste MobilBank alkalmazásról... 2 2. Felhasználási feltételek... 3 2.2. Ügyfélkör... 3 3. Az alkalmazás letöltése és használata... 4 3.1. Alkalmazás
Grafikus csővezeték 2 / 77
Bevezetés 1 / 77 Grafikus csővezeték 2 / 77 Grafikus csővezeték Vertex feldolgozás A vertexek egyenként a képernyő térbe vannak transzformálva Primitív feldolgozás A vertexek primitívekbe vannak szervezve
Róth Gergő. roth@dcs.uni-pannon.hu
Róth Gergő roth@dcs.uni-pannon.hu 1 Oktatók Smidla József (smidla@dcs.uni-pannon.hu) Róth Gergő (roth@dcs.uni-pannon.hu) Bejárás nem kötelező Tárgy adatai Gyakorlati Nem kötelező Szabadon választható Neptun
Lineáris algebra jegyzet
Lineáris algebra jegyzet Készítette: Jezsoviczki Ádám Forrás: Az előadások és a gyakorlatok anyaga Legutóbbi módosítás dátuma: 2011-12-04 A jegyzet nyomokban hibát tartalmazhat, így fentartásokkal olvasandó!
Irrlicht 3D. Programfejlesztés az OpenGL segítségével (2. rész) Fejlesztõi sarok
Programfejlesztés az OpenGL segítségével (2. rész) Irrlicht 3D Az elõzõ OpenGL cikkben megismerkedtünk a GLUT-tal és az OpenGL alapjaival. Most egy kis kitérõt teszünk a játékfejlesztés felé, megismerkedünk
Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria IV.
Geometria IV. 1. Szerkessz egy adott körhöz egy adott külső ponton átmenő érintőket! Jelöljük az adott kört k val, a kör középpontját O val, az adott külső pontot pedig P vel. A szerkesztéshez azt használjuk
Felhasználói útmutató Dahua gyártmányú digitális képrögzítő eszközökhöz
Felhasználói útmutató Dahua gyártmányú digitális képrögzítő eszközökhöz 1 Bejelentkezés Alapesetben, a fent látható 888888 vagy admin felhasználóval illetve az elsőnél 888888 a másodiknál admin jelszóval
Bár a digitális technológia nagyon sokat fejlődött, van még olyan dolog, amit a digitális fényképezőgépek nem tudnak: minden körülmények között
Dr. Nyári Tibor Bár a digitális technológia nagyon sokat fejlődött, van még olyan dolog, amit a digitális fényképezőgépek nem tudnak: minden körülmények között tökéletes színeket visszaadni. A digitális
Ha a síkot egyenes vagy görbe vonalakkal feldaraboljuk, akkor síkidomokat kapunk.
Síkidomok Ha a síkot egyenes vagy görbe vonalakkal feldaraboljuk, akkor síkidomokat kapunk. A határoló vonalak által bezárt síkrész a síkidom területe. A síkidomok határoló vonalak szerint lehetnek szabályos
Algoritmusok raszteres grafikához
Algoritmusok raszteres grafikához Egyenes rajzolása Kör rajzolása Ellipszis rajzolása Algoritmusok raszteres grafikához Feladat: Grafikai primitíveket (pl. vonalat, síkidomot) ábrázolni kép-mátrixszal,
FORTE MAP 5.0 Felhasználói tájékoztató
FORTE MAP 5.0 Felhasználói tájékoztató InterMap Kft 2010 Tartalom FORTE MAP 5.0 Felhasználói tájékoztató... 0 A kezelőfelület ismertetése... 1 Navigálás a térképen... 1 Objektum kijelölése... 3 Jelmagyarázat...
31 521 09 1000 00 00 Gépi forgácsoló Gépi forgácsoló
Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,
Javítóvizsga témakörei matematika tantárgyból
9.osztály Halmazok: - ismerje és használja a halmazok megadásának különböző módjait, a halmaz elemének fogalmát - halmazműveletek : ismerje és alkalmazza gyakorlati és matematikai feladatokban a következő
Mikrokontrollerek. Tihanyi Attila 2007. május 8
Mikrokontrollerek Tihanyi Attila 2007. május 8 !!! ZH!!! Pótlási lehetőség külön egyeztetve Feladatok: 2007. május 15. Megoldási idő 45 perc! Feladatok: Első ZH is itt pótolható Munkapont számítás Munkapont
PovRay. Oktatási segédlet
PovRay Oktatási segédlet PovRay A Povray segítségével egy speciális programozási nyelven nyelven a modelltérben (3D lebegőpontos világkordinátarendszer) definiált 3D objektumokról fotorealisztikus képeket
Dial-UP Kapcsolat létrehozása angol nyelvű Windows 2000 alatt
Első lépésként válassza a Startmenüt, azon belül a Settings pontot, majd a Network and Dial-up Connectionst és azon belül a Make New Connection lehetőséget. Amennyiben nem szerepel Network and Dial-up
Máté: Számítógépes grafika alapjai
Poligon kitöltése Implementáció: Nem kell minden egyes pásztázó vonalra újra kiszámolni minden metszéspontot, mert általában csak néhány metszéspont érdekes az i-dik pásztázó vonalról az i+1-dikre átlépve
A döntő feladatai. valós számok!
OKTV 006/007. A döntő feladatai. Legyenek az x ( a + d ) x + ad bc 0 egyenlet gyökei az x és x valós számok! Bizonyítsa be, hogy ekkor az y ( a + d + abc + bcd ) y + ( ad bc) 0 egyenlet gyökei az y x és
Egységes jelátalakítók
6. Laboratóriumi gyakorlat Egységes jelátalakítók 1. A gyakorlat célja Egységes feszültség és egységes áram jelformáló áramkörök tanulmányozása, átviteli karakterisztikák felvétele, terhelésfüggőségük
Kép részlet kivágás útvonalak létrehozása és szerkesztése útvonalak kijelöléssé alakítása Kijelölés > Lágy szél
Kép részlet kivágás 2. Az útvonalak létrehozása és szerkesztése eszközzel rajzoljuk körbe a kijelölésre szánt részt 3. Az Útvonalak palettán kattintsunk az útvonalak kijelöléssé alakítása gomra. 4. Most
Házi dolgozat. Minta a házi dolgozat formai és tartalmi követelményeihez. Készítette: (név+osztály) Iskola: (az iskola teljes neve)
Házi dolgozat Minta a házi dolgozat formai és tartalmi követelményeihez Készítette: (név+osztály) Iskola: (az iskola teljes neve) Dátum: (aktuális dátum) Tartalom Itt kezdődik a címbeli anyag érdemi kifejtése...
Koordináta - geometria I.
Koordináta - geometria I. DEFINÍCIÓ: (Helyvektor) A derékszögű koordináta - rendszerben a pont helyvektora az origóból a pontba mutató vektor. TÉTEL: Ha i az (1; 0) és j a (0; 1) pont helyvektora, akkor
Tanács Attila. Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem
Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem Direct3D, DirectX o Csak Microsoft platformon OpenGL o Silicon Graphics: IRIS GL (zárt kód) o OpenGL (1992) o Nyílt
Azonosító jel: Matematika emelt szint
I. 1. Hatjegyű pozitív egész számokat képezünk úgy, hogy a képzett számban szereplő számjegy annyiszor fordul elő, amekkora a számjegy. Hány ilyen hatjegyű szám képezhető? 11 pont írásbeli vizsga 1012
1. forduló. MEGOLDÁSOK Pontszerző Matematikaverseny 2015/2016-os tanév
MEGOLDÁSOK Pontszerző Matematikaverseny 2015/2016-os tanév 1. forduló 1. feladat: Jancsi és Juliska Matematikai Memory-t játszik. A játék lényege, hogy négyzet alakú kártyákra vagy műveletsorokat írnak
Üresként jelölt CRF visszaállítása
Üresként jelölt CRF visszaállítása Ha egy CRF vagy bizonyos mező(k) ki vannak szürkítve (üresként jelölve), akkor a megjelölés üresként eszközre kell kattintania, majd törölni a kiválasztott jelölőnégyzet
Shared IMAP beállítása magyar nyelvű webmailes felületen
Shared IMAP beállítása magyar nyelvű webmailes felületen A következő ismertető segítséget nyújt a szervezeti cím küldőként való beállításában a caesar Webmailes felületén. Ahhoz, hogy a Shared Imaphoz
VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót
VHDL szimuláció Labor II. Dr. Hidvégi Timót Tervezés 1 Lefoglalt szavak abs access after alias all and architecture array assert attribute block body buffer bus case component configuration constant disconnect
HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT
HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT - 2016.04.01 után kötött szerződésekre Díjcsomag neve Go Go+ Go EU Go EU+ Kínált letöltési sebesség - 3G 42 Mbit/s 42 Mbit/s 42 Mbit/s
Mágneses szuszceptibilitás vizsgálata
Mágneses szuszceptibilitás vizsgálata Mérést végezte: Gál Veronika I. A mérés elmélete Az anyagok külső mágnesen tér hatására polarizálódnak. Általában az anyagok mágnesezhetőségét az M mágnesezettség
Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 1/6. Alapműveletek
Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 1/6 A tömbök deklarálásakor Pascal és C/C++ nyelvekben minden esetben meg kell adni az indexelést (Pascal) vagy az elemszámot (C/C++).
Szkennelt térkép vektorizálás QGIS programban 1.7.3 verzió Összeállította: dr. Siki Zoltán
Szkennelt térkép vektorizálás QGIS programban 1.7.3 verzió Összeállította: dr. Siki Zoltán Egy szkennelt ingatlan-nyilvántartási térkép részlet vektorizálását mutatjuk be. A munka a további részekre bontható:
MATEMATIKA HETI 3 ÓRA
EURÓPAI ÉRETTSÉGI 010 MATEMATIKA HETI 3 ÓRA IDŐPONT : 010. június 4. A VIZSGA IDŐTARTAMA : 3 óra (180 perc) MEGENGEDETT SEGÉDESZKÖZÖK : Európai képletgyűjtemény Nem programozható, nem grafikus kalkulátor
ORSZÁGOS KÖRNYEZETEGÉSZSÉGÜGYI INTÉZET
ORSZÁGOS KÖRNYEZETEGÉSZSÉGÜGYI INTÉZET 197 Budapest, Gyáli út 2-6. Levélcím: 1437 Budapest Pf.: 839 Telefon: (6-1) 476-11 Fax: (6-1) 21-148 http://efrirk.antsz.hu/oki/ A PARLAGFŰ POLLENSZÓRÁSÁNAK ALAKULÁSA
MATLAB. 4. gyakorlat. Lineáris egyenletrendszerek, leképezések
MATLAB 4. gyakorlat Lineáris egyenletrendszerek, leképezések Menetrend Kis ZH MATLAB függvények Lineáris egyenletrendszerek Lineáris leképezések Kis ZH pdf MATLAB függvények a szkriptekhez hasonlóan az
3. KÖRGEOMETRIA. 3.1. Körrel kapcsolatos alapismeretek
3. KÖRGEOMETRIA Hajós György: Bevezetés a geometriába, Tankönyvkiadó, Budapest, 89 109. és 121. oldal. Pelle Béla: Geometria, Tankönyvkiadó, Budapest, 86 97. és 117 121. oldal. Kovács Zoltán: Geometria,
A táblázatkezelő felépítése
A táblázatkezelés A táblázatkezelő felépítése A táblázatkezelő felépítése Címsor: A munkafüzet címét mutatja, és a program nevét, amivel megnyitottam. Menüszalag: A menüsor segítségével használhatjuk az
Lemezkezelés, RAID, partícionálás, formázás, defragmentálás.
Lemezkezelés, RAID, partícionálás, formázás, defragmentálás 1 Lemezkezelési szabványok ATA (Advanced Technology Attachment with Packet Interface (ATA/ATAPI)) újabban (P-ATA), vagy IDE (Intelligent Drive
BOLYAI MATEMATIKA CSAPATVERSENY FŐVÁROSI DÖNTŐ SZÓBELI (2005. NOVEMBER 26.) 5. osztály
5. osztály Írd be az ábrán látható hat üres körbe a 10, 30, 40, 60, 70 és 90 számokat úgy, hogy a háromszög mindhárom oldala mentén a számok összege 200 legyen! 50 20 80 Egy dobozban háromféle színű: piros,
Osztályozó és Javító vizsga témakörei matematikából 9. osztály 2. félév
Osztályozó és Javító vizsga témakörei matematikából 9. osztály 2. félév IV. Háromszögek, négyszögek, sokszögek Pontok, egyenesek, síkok és ezek kölcsönös helyzete Néhány alapvető geometriai fogalom A háromszögekről.
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Kombinációs LABOR feladatok Laborfeladat: egyszerű logikai kapuk vizsgálata Logikai műveletek Tervezz egy egyszerű logikai kapukat
Laborgyakorlat Windows 7 upgrade-je, felhasználói adatok költöztetése
Információtechnológiai alapok Operációs rendszerek Laborgyakorlat Windows 7 upgrade-je, felhasználói adatok költöztetése Bevezetés Nyomtasd ki és oldd meg a feladatokat! A laborgyakorlaton Windows 7 operációs
Csoportosított adatok megjelenítése sorhalmaz függvények használatával
Csoportosított adatok megjelenítése sorhalmaz függvények használatával Célkitűzés A használható sorhalmaz függvények azonosítása A sorhalmaz függvények használatának leírása Adatok csoportosítása a GROUP
A C programozási nyelv VI. Parancssori argumentumok File kezelés
A C programozási nyelv VI. Parancssori argumentumok File kezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv VI. (Parancssori argumentum, file kezelés) CBEV6 / 1 Parancssori
1.4 fejezet. RGB színrendszerek
1 1.4 fejezet. RGB színrendszerek 1. sz. ábra. Számítógépes monitorról készült nagyítás Az RGB színrendszer a katódsugárcso képernyo összeadó színképzéséhez igazodik, amely a vörös, zöld és kék színeket
FEJLETT GRAFIKAI ALGORITMUSOK
Írta: NAGY ANTAL FEJLETT GRAFIKAI ALGORITMUSOK Egyetemi tananyag 2011 COPYRIGHT: 2011 2016, Dr. Nagy Antal, Szegedi Tudományegyetem Természettudományi és Informatikai Kar Képfeldolgozás és Számítógépes
14.2. OpenGL 3D: Mozgás a modellben
14. Fotórealisztikus megjelenítés 1019 14.2. OpenGL 3D: Mozgás a modellben A program az OpenGL technika alkalmazásával gyors lehetőséget biztosít a modellben való mozgásra. A mozgás mellett lehetőség van
Az első lépések. A Start menüből válasszuk ki a Minden program parancsot. A megjelenő listában kattintsunk rá az indítandó program nevére.
A számítógép elindítása A számítógépet felépítő eszközöket (hardver elemeket) a számítógépház foglalja magába. A ház különböző méretű, kialakítású lehet. A hátoldalán a beépített elemek csatlakozói, előlapján
Osztály szint tagok. Krizsán Zoltán 1 [2012. március 12.] Objektumorientált programozás C# alapokon tananyag
Krizsán Zoltán 1 [2012. március 12.] Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Bevezetés Outline Bevezetés Bevezetés Példány
Számítógépes grafika
Számítógépes grafika XVII. rész A grafikai modellezés A modellezés A generatív számítógépes grafikában és a képfeldolgozás során nem a valódi objektumokat (valóságbeli tárgyakat), hanem azok egy modelljét
Vodafone GPRS Kapcsolat létrehozása Win2000 alatt a Connect Me használata nélkül
Vodafone GPRS Kapcsolat létrehozása Win2000 alatt a Connect Me használata nélkül - A képek az angol verziót mutatják - 29/03/2004 1 Start menü Magyar: Start menü Beállítások Telefonos kapcsolatok Ha itt
Dr. Schuster György. 2014. február 21. Real-time operációs rendszerek RTOS
Real-time operációs rendszerek RTOS 2014. február 21. Az ütemező (Scheduler) Az operációs rendszer azon része (kódszelete), mely valamilyen konkurens hozzáférés-elosztási problémát próbál implementálni.
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás Önálló projektek - 2015. február 6. http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr.
Árverés kezelés ECP WEBSHOP BEÉPÜLŐ MODUL ÁRVERÉS KEZELŐ KIEGÉSZÍTÉS. v2.9.28 ECP WEBSHOP V1.8 WEBÁRUHÁZ MODULHOZ
v2.9.28 Árverés kezelés ECP WEBSHOP BEÉPÜLŐ MODUL ÁRVERÉS KEZELŐ KIEGÉSZÍTÉS ECP WEBSHOP V1.8 WEBÁRUHÁZ MODULHOZ AW STUDIO Nyíregyháza, Luther utca 5. 1/5, info@awstudio.hu Árverés létrehozása Az árverésre
Amit a Hőátbocsátási tényezőről tudni kell
Amit a Hőátbocsátási tényezőről tudni kell Úton-útfélen mindenki róla beszél, már amikor épületekről van szó. A tervezéskor találkozunk vele először, majd az építkezéstől az épület lakhatási engedélyének
Elemi adatszerkezetek
2015/10/14 13:54 1/16 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria
005-05 MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett
3. gyakorlat. 1/7. oldal file: T:\Gyak-ArchiCAD19\EpInf3_gyak_19_doc\Gyak3_Ar.doc Utolsó módosítás: 2015.09.17. 22:57:26
3. gyakorlat Kótázás, kitöltés (sraffozás), helyiségek használata, szintek kezelése: Olvassuk be a korábban elmentett Nyaraló nevű rajzunkat. Készítsük el az alaprajz kótáit. Ezt az alsó vízszintes kótasorral
2000 db speciális komposztláda, 0,3 m3 térfogatú
2000 db speciális komposztláda, 0,3 m3 térfogatú Közbeszerzési Értesítő száma: 2005/13 Beszerzés tárgya: Árubeszerzés; Árubeszerzés Hirdetmény típusa: Tájékoztató az eljárás eredményéről (14-es minta)
Máté: Számítógépes grafika alapjai
Bevezetés Bevezetés Történeti áttekintés Hordozható szoftverek, szabványok Interaktív grafikai rendszerek A számítógépes grafika osztályozása Valós és képzeletbeli objektumok (pl. tárgyak képei, függvények)
F2. OpenGL grafika. Vertex szintű művelet Raszteriz. Pixelművelet. Textúra. F2.1. ábra A megjelenítési cső
F2. OpenGL grafika Az OpenGL hardverfüggetlen programozási felületet biztosító háromdimenziós grafikus alprogramrendszer, melyet a Silicon Graphics Inc. fejlesztett ki Unix alapú hálózatban működő számítógépekre.
Címzett: Markus Goddemeier E-mail: markus.goddemeier@proteinsimple.com Fax: +49 (0)162 985 79 53
8. melléklet a 92/2011. (XII.30.) NFM rendelethez A SZERZŐDÉS TELJESÍTÉSÉRE VONATKOZÓ INFORMÁCIÓK I. SZAKASZ: A SZERZŐDÉS ALANYAI I.1) AZ AJÁNLATKÉRŐKÉNT SZERZŐDŐ FÉL NEVE ÉS CÍME Hivatalos név: MTA Kísérleti
irányítószám: Ország: Magyarország
25/23-2/2015. A SZERZŐDÉS TELJESÍTÉSÉRE VONATKOZÓ INFORMÁCIÓK I. SZAKASZ: A SZERZŐDÉS ALANYAI I.1.) AZ AJÁNLATKÉRŐKÉNT SZERZŐDŐ FÉL NEVE ÉS CÍME Hivatalos név: Országos Nyugdíjbiztosítási Főigazgatóság