1 / 17

Module 02

Module 02. Grafické primitíva a geometrické transformácie. Obsah. Typy grafických primitív Kreslenie primitív v OpenGL Pridávanie farby primitívam v OpenGL Základne geometrické transformácie v OpenGL Demonštračný program. Základné primitíva.

kelsey-lamb
Télécharger la présentation

Module 02

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Module 02 Grafické primitíva a geometrické transformácie

  2. Obsah • Typy grafických primitív • Kreslenie primitív v OpenGL • Pridávanie farby primitívam v OpenGL • Základne geometrické transformácie v OpenGL • Demonštračný program

  3. Základné primitíva • Takmer všetky objekty v OpenGL sú reprezentované pomocou primitív (najčastejšie sapoužívajú trojuholníky) • Podporované primitíva sú:

  4. Primitíva v OpenGL GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_LOOP GL_QUADS GL_QUAD_STRIP GL_POLYGON

  5. Kreslenie primitív v OpenGL(1) • Na kreslenie objektov v OpenGL sa používa dvojica príkazov glBegin /glEnds parametrom typu primitíva v príkaze glBegin. • Medzi glBegin /glEndsa vkladajú informácie o geometrii , ktorú chceme vykresliť. • Tieto funkcie môžu byť použité pri popise geometrie: • glVertex - definuje vrchol • glColor - nastavenie farby vrcholu • glIndex - nastavenie indexu farby • glNormal - nastavenie normály • glEvalCoord - vyhodnoť, či je povolený daný typ textúrovania • glCallList - vykonaj display list • glCallLists - vykonaj zoznam display listov • glTexCoord - nastav textúrovacie koordináty • glEdgeFlag - príznak, či kreslený objekt je ohraničený alebo nie • glMaterial - špecifikuj materiál pre osvetľovací model

  6. Kreslenie primitív v OpenGL(2) • Syntax kreslenia primitíva v OpenGL: glBegin(typ primitíva); … glVertexNT(x.xf, y.y f, z.zf);// koordináty primitíva … glEnd(); • Konvencia vytvárania názvov funkcii v OpenGL glVertexNT(x.xf, y.y f, z.zf);gl – gl knižnica Vertex – koreňový výraz pre zadanie koordinátov N – počet argumentov (2, 3, 4) T – typ argumentov (d, f, i, s) x.xf – x koordinát y.yf – y koordinát z.zf – z koordinát

  7. Kreslenie primitív v OpenGL(3) Príklad: glBegin(GL_TRIANGLES);// Kreslenie trojuholníkov glVertex3f( 0.0f, 1.0f, 0.0f); // Vrchol trojuholníka glVertex3f(-1.0f, 0.0f, 0.0f); // Ľavý vrchol trojuholníka glVertex3f( 1.0f, 0.0f, 0.0f); // Pravý vrchol trojuholníka glEnd();// Ukonči kreslenie trojuholníka

  8. Farby(1) • V OpenGL je popísaná farba pomocou RGB trojice. T.j. špecifikujeme množstvo červenej, zelenej a modrej farebnej zložky Aditívne miešanie týchto zložiek definuje výslednú farbu. Týmto spôsobom vieme vymiešať milióny farebných odtieňov. • Keďže farba je definovaná pomocou 3 kladných čísel. Je teda možne farbu reprezentovať ako objem kocky nazývanej model RGB.

  9. Nastavenie farby primitívamv OpenGL (2) • Syntax pridelenia farby primitívam v OpenGL: glBegin( typ primitíva); … glColorNT(r.rf, g.gf, b.bf, alpha); // nastavenie farby pre nasledujúce primitíva glVertexNT(x.xf, y.y f, z.zf);// koordináty vrcholu … glEnd(); • Konvencia tvorby mien funkcii glColorNT(r.rf, g.gf, b.bf, alpha); gl – gl knižnica Color – koreňový výraz pre farbenie N – počet argumentov (3, 4) T – typ argumentov (b, d, f, i, s) r.rf – intenzita červenej farby v rozsahu <0.0 , 1.0> g.gf – intenzita zelenej farby v rozsahu <0.0 , 1.0> b.bf – intenzita modrej farby v rozsahu <0.0 , 1.0> alpha - alfa zložka indikujúca úroveň priehľadnosti. Len pri glColor4 funkcii

  10. Nastavenie farby primitívamv OpenGL(3) Príklad: glBegin(GL_TRIANGLES); // Kresli trojuholník glColor3f(1.0f,0.0f,0.0f); // Nastav červenú farbu glVertex3f( 0.0f, 1.0f, 0.0f); // Zadaj horný vrchol trojuholníka glColor3f(0.0f,1.0f,0.0f); // Nastav zelenú farbu glVertex3f(-1.0f,-1.0f, 0.0f); // Zadaj ľavý vrchol trojuholníka glColor3f(0.0f,0.0f,1.0f); // Nastav modrú farbu glVertex3f( 1.0f,-1.0f, 0.0f); // Zadaj pravý vrchol trojuholníka glEnd(); // Ukonči kreslenie trojuholníkov

  11. Transformácie v OpenGL • Transformácie sa používajú pri manipulácii s modelom reprezentujúcim konkrétny objekt. • Transformácie umožňujú pohybovať s objektom otáčať ho okolo osí a škálovať ho. Rotation Scaling Translation

  12. Posúvanie objektov • Na posúvanie objektov sa v OpenGL používa: glTranslateT(X, Y,Z); • Konvencia tvorby mien funkcii glTranslateT(X, Y,Z); gl – gl knižnica Translate – koreňový názov pre funkciu posunutia T – typ argumentov (d, f) X – posun v X_ovom smere Y – posun v Y_ovom smere Z – posun v Z_ovom smere

  13. Posúvanie objektov v OpenGL (2) Príklad: glLoadIdentity(); // Resetni aktuálnu modelovaciu maticu glTranslatef(-1.5f, 0.0f, -10.0f); // Posuň sa vľavo o 1.5 a do obrazovky 10.0 glBegin(GL_TRIANGLES); // Nastav kreslenie trojuholníkov glColor3f(1.0f,0.0f,0.0f); // Nastav červenú farbu glVertex3f( 0.0f, 1.0f, 0.0f); // Vykresli prvý vrchol glColor3f(0.0f,1.0f,0.0f); // Nastav zelenú farbu glVertex3f(-1.0f,-1.0f, 0.0f); // Vykresli druhý vrchol glColor3f(0.0f,0.0f,1.0f); // Nastav modrú farbu glVertex3f( 1.0f,-1.0f, 0.0f); // Vykresli tretí vrchol glEnd(); // ukonči kreslenie trojuholníkov

  14. Škálovanie objektov v OpenGL (1) • Syntax škálovania objektov v OpenGL: glScaleT(X, Y,Z); • Konvencia tvorby mien funkcii glScaleT(X, Y,Z); gl – gl knižnica Scale – koreňový výraz pre škálovanie T – typy argumentov (d, f) X – zmena mierky v X_ovom smere Y – zmena mierky v Y_ovom smere Z – zmena mierky v Z_ovom smere

  15. Škálovanie objektov v OpenGL(2) Príklad: glLoadIdentity(); // Resetni aktuálnu modelovaciu maticu glTranslatef(-1.5f,0.0f,-10.0f); // Posuň sa vľavo o 1.5 a do obrazovky 10.0 glScalef(2.0f, 1.0f, 0.0f) // Nastav nelineárne škálovanie glBegin(GL_TRIANGLES); // Vykresli trojuholník glVertex3f( 0.0f, 1.0f, 0.0f); // Prvý vrchol trojuholníka glVertex3f(-1.0f,-1.0f, 0.0f); // Druhý vrchol trojuholníka glVertex3f( 1.0f,-1.0f, 0.0f); // Tretí vrchol trojuholníka glEnd(); // Ukonči kreslenie trojuholníkov

  16. Otočenie objektov v OpenGL (1) • Syntax otáčania objektov v OpenGL : glRotateT(angle, X, Y,Z) • Konvencia tvorby mien funkcií glRotateT(Angle, X vector,Y vector,Z vector); gl – gl knižnica Rotate – koreňový výraz pre funkciu otočenia T – typy argumentov (double , float) angle – uhol otočenia v stupňoch X – X_ový koordinát vektoru Y – Y_ový koordinát vektoru Z – Z_ový koordinát vektoru

  17. Otočenie objektov v OpenGL(2) Príklad: glLoadIdentity(); // Resetni modelovaciu maticu glTranslatef(0.0f,0.0f,-10.0f); // Posuň sa do obrazovky o 10 glRotatef(rtri,0.0f,1.0f,0.0f); // Otoč sa okolo osy Y glBegin(GL_TRIANGLES); // Vykresli trojuholníky glColor3f(1.0f,0.0f,0.0f); // Nastav červenú farbu glVertex3f( 0.0f, 1.0f, 0.0f); // Nastav prvý vrchol glColor3f(0.0f,1.0f,0.0f); // Nastav zelenú farbu glVertex3f(-1.0f,-1.0f, 0.0f); // Nastav druhý vrchol glColor3f(0.0f,0.0f,1.0f); // Nastav modrú farbu glVertex3f( 1.0f,-1.0f, 0.0f); // Nastav tretí vrchol glEnd(); // ukončí kreslenie rtri+=0.2f; // Zväčši uhol otočenie pre nasledujúci snímok

More Related