Stručný přehled OpenGL Jiří Danihelka. Co je OpenGL?  Open Graphics Library  Knihovna pro počítačovou grafiku  Zhruba 120 funkcí  Představuje standard.

Slides:



Advertisements
Podobné prezentace
Číslo DUM: VY_32_INOVACE_04_01 Autor: Mgr. Ivana Matyášková
Advertisements

Počítačová grafika Nám umožňuje:
Počítačová grafika.
Počítačová grafika.
1. Seznámení 2. Objekty a nástroje
Davy v počítačové grafice
Vizualizace částicových systémů Marek Gayer Computer Graphics Group Department of Computer Science and Engineering Faculty of Electrical.
Programová rozhraní pro grafické adaptéry
Formáty grafických souborů
Vzhled prezentace - šablony
RASTROVÁ A VEKTOROVÁ GRAFIKA
Vektorová a bitmapová grafika
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Počítačová grafika Základní pojmy.
Operační systémy.
C# - Grafika Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Bitmapová (rastrová) grafika
Počítačová grafika 18. Marcel Svrčina.
SIPVZ – úvodní modul P Počítačová grafika a prezentace metodické poznámky (4 h)
Bitmapová a Vektorová grafika
Základní pojmy Grafiky
Počítačová grafika.
Řadič obrazového podsystému
Windows Presentation Foundation 2D grafika. 2D tvary Elementy UI stromu Stejné jako jiné ovládací prvky a elementy Mohou mít k sobě připojeny události,
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_060 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Ing. Roman Bartoš Předmět Informatika.
3D CG. Základy geometrie Vertex A (x,z,y,(w)) Faceta(triangle) F(A,B,C) (polygon) F(A,B,C,D), konvexní, nekonvexní Objekt Většinou (0,1) rozměr.
Gymnázium, Broumov, Hradební 218 Tematická oblast: Informační a komunikační technologie Číslo materiálu: E Název: Počítačová grafika - teorie Autor:
Lotus NotesJiří Beran Počítačová grafika. Lotus NotesJiří Beran Základní dělení počítačové grafiky: 1) Vektorová grafika – obrázek bereme jako množinu.
Úvod do 3D geometrie První přednáška mi vyšla na 90 minut po slajd 31 (3D representace modelů). Ten zbytek jsem pak prolítnul tak za pět minut, ale myslím.
VY_32_INOVACE_E3-01 MONITOR AUTOR: Mgr. Vladimír Bartoš VYTVOŘENO: SRPEN 2011 STRUČNÁ ANOTACE: VÝKLAD LÁTKY K TÉMATU: PERIFERIE POČÍTAČE – MONITOR Časová.
GRAFIKA.
Vektorová grafika Výpočetní technika. jméno autoraMgr. Petr Jonáš název projektu Modernizace výuky na ZŠ Česká Lípa, Pátova ulice číslo projektuCZ.1.07/1.4.00/
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
VY_32_INOVACE_E3-07 KRESLÍME VEKTOROVOU GRAFIKOU I. AUTOR: Mgr. Vladimír Bartoš VYTVOŘENO: SRPEN 2011 STRUČNÁ ANOTACE: VÝKLAD LÁTKY K TÉMATU KRESBY VEKTOROVOU.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Počítačová grafika a prezentace
Rastrová grafika Výpočetní technika.
Adobe Flash CS5.5 – seznámení s programem Název školyGymnázium Zlín - Lesní čtvrť Číslo projektuCZ.1.07/1.5.00/ Název projektuRozvoj.
Základní škola a mateřská škola Bzenec Číslo projektu: CZ.1.07/1.4.00/ Číslo a název šablony klíčové aktivity: III/2: využívání ICT – inovace Vypracoval/a:
Informatika Základní formáty počítačové grafiky Obrázek: Žaneta Lažková 2012.
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
OPERAČNÍ SYSTÉMY.
POČÍTAČOVÉ HRY CVIČENÍ 9. Shadery Z „Shading“ = „stínování“ Logika vykreslování Vertex data >> obraz Implementováno na GPU PHA cvičení 9 2.
Základní škola a Mateřská škola, Šumná, okres Znojmo OP VK Tematický celek: Informatika Název a číslo učebního materiálu VY _32_INOVACE_04_10.
Bitmapová (rastrová) grafika
Vytvoření dokumentu bylo financováno ze zdrojů Evropského sociálního fondu a státního rozpočtu ČR. Registrační číslo projektu: CZ.1.07/1.1.32/ Rastrová.
Vytvoření dokumentu bylo financováno ze zdrojů Evropského sociálního fondu a státního rozpočtu ČR. Registrační číslo projektu: CZ.1.07/1.1.32/ Počítačová.
Počítačová grafika Rastrová a vektorová grafika, barevné modely
Rastrová grafika (bitmapová) Obrázek poskládaný z pixelů Televize, monitory, fotoaparáty Kvalitu ovlivňuje barevná hloubka a rozlišení Barevná hloubka.
Počítačová grafika.
Kreslíme vektorovou grafiku (1) v programu Zoner Callisto
Geografické informační systémy pojetí, definice, součásti
ČVUT FEL Katedra počítačů Matematické a fyzikální výpočty na grafických kartách (DirectX 9 + DirectX 10) Bc. Jindřich Gottwald vedoucí: Ing. Ivan Šimeček,
Grafické systémy II. Ing. Tomáš Neumann Interní doktorand kat. 340 Vizualizace, tvorba animací.
Operační systémy Grafický subsystém © Milan Keršláger Obsah:
Počítačová grafika. Rastrová grafika Fungování monitoru Jak může monitor zobrazit barvy tak věrně? Kolik barev vůbec dokáže zobrazit?
Cesta do nitra počítače. Hardware Hardware Hardware označuje veškeré fyzicky existující technické vybavení počítače. Základní deska: procesor operační.
Počítačová grafika Rastrová a vektorová grafika Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Růžena Hynková. Dostupné z Metodického.
Grafické programy - opakování
Financováno z ESF a státního rozpočtu ČR.
Nástroj pro prezentace
Financováno z ESF a státního rozpočtu ČR.
Počítačová grafika základní pojmy. Počítačová grafika základní pojmy.
Základní pojmy z počítačové grafiky
GRAFIKA.
Střední odborná škola a Střední odborné učiliště, Hradec Králové, Vocelova 1338, příspěvková organizace Registrační číslo projektu: CZ.1.07/1.5.00/
VY_32_INOVACE_09_ICT_538_Jnc
Počítačová grafika Mgr. Petra Toboříková.
Počítačová grafika.
SVG vektorová grafika Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Transkript prezentace:

Stručný přehled OpenGL Jiří Danihelka

Co je OpenGL?  Open Graphics Library  Knihovna pro počítačovou grafiku  Zhruba 120 funkcí  Představuje standard grafického rozhraní pro přístup k akcelerovaným grafickým kartám

Vlastnosti OpenGL  Využívá jazyk C, ale dá se používat i v jiných jazycích ( Fortran,Pascal,Java )  Velká snaha o platformovou nezávislost  Hardwarově nepodporované operace jsou softwarově simulovány

Platformová nezávislost OpenGL  OpenGL používá vlastní primitivní datové typy  GLbyte, GLint, GLdouble

Platformová nezávislost OpenGL  OpenGL neobsahuje žádné příkazy pro práci s okny  Je třeba využít jiné knihovny pro otevření okna pro kreslení  Vhodné knihovny: SDL, GLUT, GLX, WGL

Co OpenGL není  Komplexní knihovna pro počítačové hry  Knihovna pro ovládání periférií  Zvuková knihovna  Knihovna pro komunikaci po síťi  Knihovna pro načítání formátů souborů Je potřeba použít jiné knihovny SDL, GLUT, GLX, WGL, DirectX…

Ukázka programu v OpenGL void draw(void) { glClear(GL_COLORBUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); glFlush(); }

Výsledek

Ukázka programu v OpenGL void draw(void) { glClear(GL_COLORBUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); glFlush(); }

Zápis volání funkcí v OpenGL  např.: glVertex3fv(v[0]);  názvy všech funkcí začínají gl...  dále následuje jméno funkce (Vertex)  3 – značí počet parametrů  f – značí typ parametrů (GLfloat)  v – značí předání parametrů ukazatelem

Zápis funkcí v OpenGL  Většinu funkcí OpenGL lze volat s různým počtem a druhem parametrů  např.: glVertex3fv glVertex3f glVertex4d glVertex2i

Zápis funkcí v OpenGL  Význam jednotlivých písmen b – GLbyte (8 bitů) ub – GLubyte (8 bitů) s – GLshort (16 bitů) us – GLushort (16 bitů) i – GLint (32 bitů) ui – GLuint (32 bitů) f – GLfloat (32 bitů) d – GLdouble (64 bitů)

Základní příkazy OpenGL  98% veškerého kreslení je prováděno pomocí následujících tří funkcí: glBegin(základní_tvar); glVertex...(souřadnice); glVertex...(souřadnice);... glVertex...(souřadnice); glEnd();

Základní tvary OpenGL  GL_POINTS  GL_LINES  GL_LINE_STRIP  GL_LINE_LOOP  GL_POLYGON  GL_TRIANGLES  GL_TRIANGLE_STRIP  GL_TRIANGLE_FAN  GL_QUADS  GL_QUAD_STRIP

Základní tvary OpenGL  GL_POINTS  GL_LINES

Základní tvary OpenGL  GL_LINE_STRIP  GL_LINELOOP

Základní tvary OpenGL  GL_TRIANGLES  GL_TRIANGLE_STRIP

Základní tvary OpenGL  GL_TRIANGLE_FAN  GL_QUADS

Základní tvary OpenGL  GL_TRIANGLE_FAN  GL_QUAD_STRIP

Barvy v OpenGL  Barvu lze nastavit pomocí funkce glColor{3,4}{b,i,f,d}{v}(parametry);  Barvu lze měnit kdykoliv a výsledek se projeví na všech dalších vrcholech až do příští změny barvy

Barevný trojúhelník void draw(void) { glClear(GL_COLORBUFFER_BIT); glColor3f(0, 1.0f, 0); glBegin(GL_TRIANGLES); glVertex3f(...); glVertex3f(...); glVertex3f(...); glEnd(); glFlush(); }

Vícebarevný trojúhelník void draw(void) { glClear(GL_COLORBUFFER_BIT); glBegin(GL_TRIANGLES); glColor3f(1.0f, 0, 0); glVertex3f(...); glColor3f(0, 1.0f, 0); glVertex3f(...); glColor3f(0, 0, 1.0f); glVertex3f(...); glEnd(); glFlush(); }

Stavy OpenGL  Některé příkazy mění globálně způsob vykreslování (=stav)  glColor...(...);  glClearColor(...);  Používání stavů má výhody i nevýhody

Animace – první pokus void draw(int faze) { glClear(GL_COLORBUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(0.0f+faze, 10.0f, 0.0f); glVertex3f(-10.0f+faze, -10.0f, 0.0f); glVertex3f(10.0f+faze, -10.0f, 0.0f); glEnd(); glFlush(); }

Double buffer  Máme dvě místa na kreslení (buffery), jedno na monitoru, druhé v paměti  Kreslíme nejprve do paměti  Až bude kresba dokončená buffery prohodíme a obrázek se objeví na monitoru bez nepříjemného blikání

Double buffer - poznámka  Operace s double bufferem nejsou součástí příkazů OpenGL, ale jsou obsažené v jiných knihovnách  Například: glutSwapBuffers();  Pro některá zobrazovací zařízení může být bufferů i více než 2 (brýle virtuální reality)

3D grafika

Co je potřeba nastavit v 3D  polohu kamery  čočku kamery  polohu zobrazovaných objektů

Nastavení polohy kamery  void glTranslate{f,d}(x, y, z);

Nastavení polohy kamery  void glRotate{f,d}(uhel,x, y, z);

Nastavení polohy kamery  void glScale{f,d}(x, y, z);

Poloha kamery - poznámky  Na výslednou polohu kamery má zásadní vliv pořadí transformačních operací  Kameru je potřeba nastavit ještě před kreslením  Polohu kamery je možné měnit i během vykreslování.  Neměňte polohu mezi glBegin a glEnd

Funkce gluLookAt  3 trojice čísel  poloha kamery  poloha objektu  vektor nahoru

Ortogonální projekce  Pomocí funkce glOrtho(...);

Nastavení čočky kamery  Pomocí funkce glFrustum(...);

Nastavení čočky kamery

Využití změn kamery

Animace – druhý pokus void draw(int faze) { glTranslate(-faze,0,0); glClear(GL_COLORBUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(0.0f, 10.0f, 0.0f); glVertex3f(-10.0f, -10.0f, 0.0f); glVertex3f(10.0f, -10.0f, 0.0f); glEnd(); glFlush(); }

Pořadí vykreslování

Z-Buffer  Paměť do které se ukládá vzdálenost nakresleného pixelu od pozorovatele  Je obvykle hardwarově akcelerována  glEnable(GL_DEPTH_TEST);  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

Z-Buffer demonstrace

Textury

Zvolení textury  glTexImage2D(...);  Parametry: výška, šířka, barevná hloubka, ukazatel na pole bytů

Nastavení souřadnic textury void draw(void) { glClear(GL_COLORBUFFER_BIT); glBegin(GL_QUADS); glTexCoord2f(1.0f, 0); glVertex3f(...); glTexCoord2f(1.0f, 1.0f); glVertex3f(...); glTexCoord2f(0, 1.0f); glVertex3f(...); glTexCoord2f(0.0f, 0.0f); glVertex3f(...); glEnd(); glFlush(); }

Výsledek použití textury

Druhy světelných zdrojů  všesměrový zdroj  reflektor  rovnoběžné paprsky  všudypřítomné světlo

Příkazy pro práci se světlem  glLight...v(index, vlastnosti, intenzita); Vytvoří nový světelný zdroj  glNormal3f(x,y,z); Nastaví normálový vektor ve vrcholu Píše se většinou před každý glVertex

Výpočet pseudonormálů

Stínovací metody

Display Lists id = glGenLists(1); glNewList(id, GL_COMPILE;.... glEndList(id);

Použité zdroje    nehe.opengl.cz   jiné internetové stránky

Konec Dotazy?