1. Rysy OpenGL. Popište, které grafické operace OpenGL umožňuje a které nikoli.

Rozměr: px
Začít zobrazení ze stránky:

Download "1. Rysy OpenGL. Popište, které grafické operace OpenGL umožňuje a které nikoli."

Transkript

1 1. Rysy OpenGL. Popište, které grafické operace OpenGL umožňuje a které nikoli. Rysy: - není hardwarově závislá - nemá žádné příkazy pro ovládání okenních úloh - není (pixel exact) pixelově přesný - stejná posloupnost příkazů může vést k mírně jiným výsledkům na různých platformách - můžeme použít různé algoritmy Co GL umí? - renderovat trojúhelníky, linky, polygony (3D) - manipulace s obrazem (2D) - texturování - osvětlení - stíny - mlhu - výpočet viditelnosti - alfa míchání (alfa blending) - transformace - akumulační buffer - stencil buffer Co GL neumí? - okenní operace - definice objektů - NURBS - Stíny (vržené) - Odrazy - Voxely 2. OpenGL jakožto stavový automat. OpenGL je stavový automat můžeme jej nastavit nebo se ptát na jeho stav

2 - nastavování stavu: glenable(), gldisable(), atd. - získání stavu: glgetsomething() 3. OpenGL related API's. Popište a vysvětlete vztahy. - platformově nezávislá okenní aplikace - platformově závislá okenní aplikace 4. Blokový diagram OpenGL. Nakreslete a vysvětlete význam jednotlivých uzlů diagramu.

3 Renderování obrázků - rychlejší datový přenos - vyžaduje široký datový tok - obvykle BitBlt (bit-block-transfer) instrukce Renderování trojúhelníků - rasterizace je nejvíce důležitá - z-buffer je po pixelech (per-fragment) - mnoho věcí můžeme předpočítat Renderování texturovaných mnohoúhelníků (první krok) - uložení textury do paměti - připravení pro další použití Renderování texturovaných mnohoúhelníků (druhá část)

4 - použití textury 5. Vysvětlete princip pipeliningu v OpenGL a uveďte příklady. - OpenGL je zamýšlena jako pipeling (potrubní) architektura - Každá jednotka má jednu instrukci paralelně - Aplikace může mít prospěch (application can benefit) - Velké množiny dat mohou být renderovány efektivně - Můžeme používat dříve uložené informace (triangle strip) 6. Popište kompletní syntax příkazů OpenGL a uveďte příklad.

5 Typ Prefix Příklad Volání procedury gl glpopmatrix() Konstanty GL_ GL_FOG_COLOR Datový typ GL Glfloat Typický příkaz: Prefix jméno příkazu počet a typ argumentů (tři floaty) Sufix Datový typ Typicky C OpenGL definice b 8 bit integer singed char GLbyte s 16 bit integer short GLshort i 32 bit integer int GLint, GLsizei ub 8 bit uns. int unsigned char GLubyte us 16 bit uns. int unsigned short GLushort ui 32 bit uns. int unsigned long GLuint, GLenum, GLbitfield f 32 bit float float GLfloat, GLclampf d 64 bit float double GLdouble, GLclampd v syntax některé příkazy mohou končit v glcolor3fv(color) argument je pak vektor GLfloat color[]={1.0,0.0,1.0} glcolor3fv(color); a GLfloat r=1.0, g=0.0, b=1.0 glcolor3f(r, g, b) jsou ekvivalentní ale první příkaz je obvykle rychlejší. glvertex2i(1,3) je ekvivalentní glvertex2f(1.0, 3.0) ale někdy je závislý na kontextu např. barva je <0.0,1.0> GLdouble <0,255> GLbyte <-128,127> GLubyte atd.

6 7. Vynucené dokončení vykreslování scény. K čemu slouží a kdy je vhodné je použít? OpenGL je grafická pipeline (roura) pro optimalizaci některých příkazů může být upevněna pomoci dvou chimney-sweeper command void glflush() void glfinish() glflush() příkaz donutí OpenGL k dokončení všech dříve spuštěných příkazů v konečném (finite) čase glfinish() příkaz donutí OpenGL k dokončení všech dříve spuštěných příkazů a čeká na jejich výsledek 8. Vykreslování jednoduchých objektů. glbegin(), glend(), principy a vykreslování jednotlivých primitiv. - všechno v OpenGl je složeno z vrcholů - důležité výpočty jsou založeny na vrcholech (světlo) - vrchol je určen v homogenních kartézských souřadnicích [x, y, z, w] Kartézské souřadnice [X, Y, Z] jsou určeny jako [X, Y, Z] = [x/w, y/w, z/w] poznámka: pro w<0 výsledek není garantován void glvertex{234}{sifd}[v](souřadnice) Pokud w souřadnice není určena je defaultně 1.0 Pokud z souřadnice není určena je dafaultně všechny vnitřní výpočty jsou v 3D glbegin glend paradigma glbegin příkay nastaví OpenGl do stavu nyní kresli něco glend příkaz řekne že toto je konec ve smyslu sémantické závorky glbegin(gl_points) glbegin(gl_lines) glbegin(gl_line_strip) glbegin(gl_line_loop) glbegin(gl_triangles)

7 glbegin(gl_triangle_strip) glbegin(gl_triangle_fan) glbegin(gl_quads) glbegin(gl_quad_strip) glbegin(gl_polygon) 9. Polygons - face culling. Popište k čemu slouží, jak funguje a uveďte příklady. - polygon je množina vyplněných pixelů ohraničených hranicí - má dvě strany přední(front) a zadní(back) - můžeme vyřadit neviditelné plochy před rasterizací (Z-buffer) - to se nazývá back face culling - defaultní hodnota: obě plochy jsou renderovány zabírá čas - určení vykreslovacího módu plochy void glpolygonmode(glenum face, GLenum mode) kde face - GL_FRONT, GL_BACK, GL_FRONT_AND_BACK mode GL_POINT, GL_LINE, GL_FILL Polygon je vykreslován jako body, linky (hraniční čára), nebo vyplněný - defaultně: glpolygonmode(gl_front_and_back, GL_FILL) - přední plocha má vrcholy v uspořádání proti směru hodinových ručiček (CCW) - zadní plocha má vrcholy v uspořádání ve směru hodinových ručiček (CW)

8 přední zadní - a tuna dalších věci 10. Vysvětlete použití příkazu gledgeflag() a uveďte příklad. - v glpolygonmode(gl_front, GL_LINE) módu jsou všechny čáry brány jako hraniční můžeme určit které jsou a které ne pomocí: void gledgeflag(glboolean flag) void gledgeflagv(const GLboolean *flag) kde flag určuje vrchol zda je hraniční hrana vrchol je GL_TRUE (default) nebo GL_FALSE poznámka: to může fungovat pro všechny druhy mnohoúhelníkůa le Microsoft-tí implementace po Wokna pracuje jen pro GL_POLYGON 11. glpolygonstipple(), gllinestipple(). Vysvětlete použití, uveďte příklad. - polygon může být vyplněn vzorkem 32 bit x 32 bit void glpolygonstipple(const BLubyte *mask) kde mask je ukazatel na 32 bit x 32 bit unsigned bytes Poznámka: UNIX program bitmap není přesně totéž Poznámka: pixely jsou interpretovány podle glpixelsstore*() módu (bude vysvětleno později) gllinestipple(pattern, factor) -- to nechápu slide 25 přednáška 03

9 12. Co je to rasterizace, kde, kdy a jak probíhá? Vysvětlete význam pojmu fragment z hlediska OpenGL. je proces převodu primitiv do 2D obrazu dvě části: (kde a co) 1) které čtverečky okenní mřížky je zabráno 2) přiřazení barvy a hloubkové hodnoty pro každý čtverec výsledek je poslán do per-fragment operační jednotky

10 Fragment: Čtvereček mřížky podle které jsou přiřazovány parametry - barva (RGBA nebo index) - z (hloubka) hodnota - souřadnice v textuře je nazýván fragment parametry jsou nazývány asociovaná data fragmentu jsou umístěny podle levého spodního roku leží vždy na integer hodnotě Střed fragmentu je offset 1/2 x a y od středu(..by 1/2 x and y by the center) (je to vždy půl integer) 13. Glut basis. Co je to Glut, co všechno umožňuje a jaké je jeho použití? The OpenGL Utility Toolkit (GLUT) je programovací interface pro psaní OpenGL programů nezávislých na window systémů. GLUT podporuje následující funkcionalitu: - Vícenásobná okna pro OpenGL renderování - řízení událností - idle (smyčka) rutiny a časovače - pop-up menu - Procedury pro generování plných a drátových objektů - Podporu bitmap a (stroke) fontů 14. Glut initialisation Co všechno může obsahovat a jak se používá inicializace Glutu. void glutinit(int *argcp, char *argv[]) kde argcp argc proměnná z main argv argv proměnná z main - inicializuje GLUT knihovnu a vyjedná session s window systémem - může ukončit program s chybovou zprávou, když systém nepodporuje OpenGL

11 - parametry procesu z příkazové řádky ale je specifické parsování parametrů závislé na window systému void glutinitwindowsize(int w, int h) void glutinitwindowposition(int x, int y) kde w h x,y je šířka okna v pixelech je výška okna v pixelech je pozice okna v pixelech void glutinitdisplaymode(unsigned int m) m určuje display mode je logický součet display mode bit masek: GLUT_RGBA RGBA mode (default) GLUT_INDEX INDEX mode (přepisuje RGBA) GLUT_RGB alias pro GLUT_RGBA GLUT_SINGLE jeden buffer (default) GLUT_DOUBLE dva buffery GLUT_ACCUM akumulační buffer GLUT_ALPHA alfa komponenty GLUT_DEPTH hloubkový (Z) buffer GLUT_STENCIL stencil buffer GLUT_STEREO stereo projekce Příklad: glutinitdisplaymode(glut_rgba GLUT_DEPTH GLUT_SINGLE) určuje často používaný mód, RGBA barevný mód, jeden buffer a Z-buffer 15. Glut event process. Co všechno může obsahovat a jak se používá zpracování událostí v Glutu. - některé události v okně může znamenat nějaké akce, např. stisk klávesy, stisk tlačítka myši, exposing okna, překreslení okna, atd. - každé akci může být přidělena procedura - argumenty procedury nesou nějaké informace o událostech void glutdisplayfunc(void (*foo)(void)) - funkce void foo(void) je volána když okno je (pře)vykreslováno (minimalizováno, atd.) void glutredisplayfunc(void (*foo)(int w, int h)) - funkce void (*foo)(int w, int h) je volány když se změní velikost okna w a h je šířka a výška okna

12 void glutkeyboardfunc(void (*foo)(unsigned char key, int x, int y)) - funkce void (*foo)(unsigned char key, int x, int y) je volána když je stištěna klávesa. key je stištěná klávesa a x a y určují pozici myši 16. Glut windows management. Co všechno obsahuje a jak se používá správa oken v Glutu. int glutcreatewindow(char *name) - vytvoří hlavní (top level) okno nazvané name - renderování je neúčinné dokud není zavolán glutmainloop není zavolán - vrací unikátní číslo int glutcreatesubwindow(int win, int x, int y, int w, int h) vytváří pod-okno win na relativní pozici [x, y] w x h pixelů velké void glutsetwindow(int n) nastaví okno a jako aktuální int glutgetwindow(void) získá číslo aktivního okna void glutdestroywindow(int n) zruší okno n void glutpositionwindow(int x, int y) změní pozici aktuálního okna void glutreshapewindow(int w, int h) změní velikost okna void glutfullscreen(void) void glutpopwindow(void) void glutpushwindow(void)

13 void glutshowwindow(void) void gluthidewindow(void) void GlutIconifyWindow(void) Příklad: glutfullscreen(void); glutsetcursor(glut_cursor_none); nastaví full screen bez kurzoru 17. Co jsou to homogenní souřadnice? Uveďte a vysvětlete Plückerovu a Möbiovu definici homogenních souřadnic. - Homogenní souřadnice mají přirozenou aplikaci v počítačové grafice - Formují základy pro projektivní geometrii užívanou značně pro projekci třídimenzionální scény do dvou-dimenzionálního obrazu - Sjednocují ošetření běžných grafických operací. Začneme s dvou-dimenzionálním příkladem a pak použijeme intuici získaný pro prezentaci aplikace homogenních souřadnic ve třech dimenzích. Möbius: Daný fexed trojúhelník v rovině, Möbius definoval množinu homogenních souřadnic pro bod p jako váhy požadované ve vrcholech trojúhelníka jako to p become těžiště trojúhelníka. Bod p je vypočten jako (w a a,w b b,w c c) w a + w b + w c = 1 => barycentrické souřadnice Plücker: Uvažme označenou (signed) vzdálenost od bodu ke hranám pevného trojúhelníka.

14 - a+1 souřadnice reprezentují a-dimenzionální bod - Jeden okamžitý atribut systému je invariant bodu když měníme velikost (scaled): změna velikost Möbiusových vah z velikosti Plückerových souřadnic nemění pozici p 18. Definujte homogenní souřadnice pro projektivní rovinu a ideální (nekonečně vzdálené body). Homogenní souřadnice pro projektivní plochu - Plücker realizoval že homogenní souřadnice [x, y, w] poskytli změnu velikosti (scale) invariant reprezentace pro body (x, y ) v Euklidovské rovině, s x x/w, y y/w a w 0 - Pohlížel na homogenní bod s w = 0 jako odpovídající bodům v běžné rovině protože jsou nekonečně daleko. - Běžná rovina rozšířená o body v nekonečnu je známa jako projektivní rovina. Popisujeme projektivní rovinu pomocí uvážení všech čar a rovin procházející skrz daný bod s. Pokud jsou protnuty rovinou P která neprotíná s, všechny body (nebo přímky) na P mohou být přidruženy s přímkou (nebo plochou) skrz s. - Podle dohody paralelní přímky jsou nazývány průniky P na ideálních (nekonečně vzdáleném) bodech. - Projektivní rovina ρ 2 je uvážena pro obsahování obou ideálních bodů a ideální přímky. Následující sdělení každé definuje dvou-dimensionální projektivní prostor ρ 2 :

15 1) Množina všech tříd ekvivalence uspořádaných trojic nenulových vektorů v ε 3, kde ekvivalence je vzájemná úměrnost(mutual proportionality) dvou vektorů. 2) Množina všech přímen (lines) procházejících počátkem ε 3 3) Množina všech dvojic opačných bodů z S 2, jednotková koule v ε 3 V praxi, homogenní souřadnice reprezentují ρ 2 pomocí mapování všech euklidovských bodů (x, y ) ε 2 do [x, y, z] ε 3 (w 0), který je počet ekvivalenčních tříd bodů v ρ 2. Mapování je dosažen pomocí ekvivalencí x x/w, y y/w ρ 2 není vektorový prostor v stejném chování jako ε Popište homogenní souřadnice ve 2D, uveďte význam a maticový zápis pro translace, rotace a scaling. Homogenní souřadnice pro dvě dimenze Důležitý, praktický aspekt systému homogenních souřadnic je jejich sjednocení posunutí, změny velikosti (scaling) a rotací geometrických objektů. V Euklidově prostoru, hlavní afinní mapování je: - p a p jsou body v ε 3 - A je 2x2 matice reprezentující změnu velikosti (scaling) a rotaci - c reprezentuje posunutí Pokud p je reprezentováno homogenním bodem [p x, p y, 1] a 2x3 matice je použita s posunutím může být zacházeno stejně jako rotací a změnou velikosti (scaling): Konzistentnější a jednodušší výsledek je získán pomocí zahrnutí třetí (homogenní) souřadnice do výsledku: Nyní sumarizujeme použití homogenních souřadnic.

16 Afinní Transformace 20. Popište homogenní souřadnice a jejich použití pro perspektivní projekce ve 3D. Je dobře známo že matice 3x3 může reprezentovat třídimenzionální změnu velikosti (scale) a rotaci, ale ne posunutí. Jako ve dvou-dimenzionálním případě, posunutí začíná být možný s přidáním řádku a sloupce do matice: Perspektivní projekce Renderování objektů v ε 3 je přirozeně vykonáváno její projekce do ε 2

17 Homogenní souřadnice reprezentují projekci Obrázek reprezentuje boční pohled Obrázek bodu (x, y ) je počítán z objektového bodu (x, y, z) pomocí podobných (similar) trojúhelníků. Jako D přiblížení nekonečna, w = 1/D blízké 0 a transformované body získají nekonečnou vzdálenost. 21. Popište jednotlivé typy transformací v OpenGL a místa a způsoby jejich použití. - pod z CG je pro vytvoření 2D obrazu 3D objektů - potřebujeme myslet ve 3D

18 - způsob jak to získat transformace - transformace (v pořadí použití): - viewing - modeling - projection - cliping - viewport Analogie kamery Stavy transformací bodu - souřadné systémy - objekty - používaný pro definování objektu - kamera(oko) - pozice pozorovatele - clip - normalizované zařízení - okno - měřené v pixelech - Pohled složený z částí: positioning(umístění) a projekce - OpenGL podporuje ortografické a perspektivní projekce - některé další projekce mohou být definovány ručně - souřadný systém je reprezentováno jako matice - transformace je reprezentována jako maticové násobení - matice jsou typu 4x4

19 22. Popište transformační matice, příkazy pro práci s nimi a použití. - Nový (transformovaný) vrchol souřadnice v je vypočten z - starého: v - a matice: M v =Mv (vždy na pravé straně) void glmatrixmode(glenum mode) kde mode je GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE následující příkazy se projeví na určené matici (pamatujte je to pipelining) - zobrazení a modelové transformace jsou nevyprostitelně související s OpenGL a jsou ve skutečnosti kombinovány v jedné modelview matici - ale to je jednodušší přemýšlet o tom touto cestou - můžeme umístit kameru dvěma způsoby - posunutím objektů (modeling transformations) - posunutím kamery (viewing transformations) void glloadidentity(void) - nastaví modifikační matici na 4x4 matici identity void glloadmatrix{fd}(const TYPE *m) nastaví příslušné hodnoty matice tak jak je určeno v m poznámka: glmatrixmode(gl_projection); glloadmatrix(mymatrix); je způsob jak definovat vlastní projekci například dvoubodovou projekci void glmultmatrix{fd}(const TYPE *m)

20 vynásobí příslušnou hodnotu matice šestnácti hodnotami v m, a uloží výsledek jako příslušnou matici - pamatujte, je to násobení zprava 23. Vysvětlete globální a lokální přístup k transformacím. Uveďte příklady. Jak můžeme rozumět transformacím? první přístup: velký fixovaný systém souřadnic příklad: - příslušná matice je C = NML - body jsou transformovány v = Cv = NMLv vektor je nejprve transformován pomocí L transformace! poslední volaná transformace je první aplikována na vrchol => musíme určit matice v opačném pořadí Jak můžeme rozumět transformacím? druhý přístup: lokální souřadný systém svázaný s objektem - operace jsou aplikovány na lokální souřadný systém

21 - operace se vyskytují v přirozeném pořadí - druhý přístup je užitečnější pro modelování množin kloubů (ruka robota) - druhý přístup je problematický v případě změny velikosti (neuniformní ~ osy mohou být nekolmé) - pohledová transformace mohou být provedeny před modelovými transformacemi v programu pohledové transformace se provedou první - modelové transformace jsou diskutovány první - pohledové transformace jsou provedeny první např. nejprve vytvoříme scénu než nastavíme kameru 24. Popište Modeling transformations, uveďte příkazy pro práci s nimi a tvary matic pro posun a zvětšení.

22 - je příliš složité určit transformaci pomocí matice jsou předdefinované transformace v OpenGL - takzvané afinní transformace jako translation, rotation a scaling - to je obvykle mnohem rychlejší než používání matic, protože to může být provedeno hardwarem void gltranslate{fd}(type x, TYPE y, TYPE z) kde x, y, z určuje posunutí, tento příkaz provede násobení příslušné matice maticí T: void glscale{fd}(type x, TYPE y, TYPE z) kde x, y, z určují změny velikosti ve směru os x, y, z 25. Popište Viewing transformations, uveďte příkazy pro práci s nimi a příklady použití. Nápověda:??(Gldouble eyex,gldouble eyey,gldouble eyez, GLdouble posx,gldouble posy,gldouble posz, GLdouble upx,gldouble upy,gldouble upz) - Můžeme umisťovat kameru dvěma způsoby - posunutím objektů (modeling transformations) - posunutím kamery (viewing transformations) - jsou aplikace rotace, posunutí a změny velikosti(scale) kamery

23 - posun kamery = posun všech objektů v opačném směru - rotace kamery CW = rotace všemi objekty CCW - zobrazení transformačních příkazů může být voláno před modelovacími - počáteční pozice a orientace kamery například po - pozice [0, 0, 0] - pohled směrem (0, 0, -1) - pozice kamery ve 3D prostoru je příliš složitá - může být zjednodušena pomocí funkce knihovny GLU 26. Popište Projection transformations, uveďte příkazy pro práci s nimi a příklady použití. Vysvětlete výpočet fovy. Nápověda:??(GLdouble left,gldouble right, GLdouble bottom,gldouble top, GLdouble near, GLdouble far),??(gldouble fovy, GLdouble aspect, GLdouble znear, GLdouble zfar). jsou nastaveny pomocí glmatrixmode(gl_projective) - účelem je definovat zobrazovaný obsah (viewing volume) - objekty v tomto obsahu jsou renderovány - ostatní jsou odstraněny (clipped) Projektivní transformace mohou být: - ortografické projekce (paralelní) - perspektivní projekce - uživatelem definované

24 Uživatelem definované projekce dosažena pomocí: kde m definuje projekční matici, např. dvoubodovou perspektivu, axonometrii atd. ortografická projekce - velikost objemu není měněna - velikost projektovaných objektů nezávisí na vzdálenosti od kamery - užívá se v CAD, architektonických pohledech atd. ( kde aktuální úhly jsou rozhodující) perspektivní projekce - objekty jsou promítány směrem k vrcholu kamery - objekty blíže kameře jsou větší - užívá se pro simulaci reality (podobné lidskému oku) - fovy je zorné pole v ose y - aspect je (aspect ratio) poloměr x a y aktuálního záběru (viewport) - může být asymetrický (někdy požadováno)

25 Jak nastavit fovy pro vzdálenost a velkost objektu? 28. Popište Clipping transformations a Viewport transformations, Uveďte příkazy pro práci s nimi a příklady použití. nastavení viewportu void glviewport(glint x, GLint y, GLsizei w, GLsizei h) - x a y určuje spodní dolní roh - w a h jsou velikosti obdélníku záběru (viewport) Příklad: rednerování ve dvou viewportech transformace z souřadnice void gldepthrange(glclampd near, GLclampd far) - defaultní hodnoty near = 0.0

26 far = toto je zamýšleno pro jednodušší manipulaci - pokud určíte různé hodnoty, všechno je transformováno do [0.0, 1.0] v OpenGL s ořezávacími rovinami (clipping planes) se musí zacházet opatrně - můžeme přidat více ořezávacích rovin void glclipplane(glenum plane, const GLdouble *eqn) - plane je GL_CLIP_PLANE0,, GL_CLIP_PLANE5 - *eqn je ukazatel na pole čtyř čísel A, B, C, D a Ax + By + Cz + D = 0 určuje rovinu - body (x y z w) odpovídající (A B C D)M -1 (x y z w) T >= 0 nejsou renderovány (M je příslušná modelview matice) - plocha musí být povolena např: glenable(gl_clip_plane1) Příklad: 29. Popište Display lists, princip, způsob použití a příkazy. Uveďte jednoduchý příklad. - display list je skupina příkazů uložených pro pozdější spuštění

27 - To je občas nazýváno retained(zadržený) mode zatímco normální renderování je immediate(okamžitý) mode - to je účinné zejména v síťovém prostředí - ale je to alespoň tak rychle jako immediate mode - jednou je display list vytvoře a nemůže být modifikován - mohou být vytvořeny hierarchicky Co je obvykle účinnějšího na display listech: - maticové operace množina příkazů je vyhodnocena do jedné matice složité výpočty jsou předpočítány je voláno jen glmultmatrix() - bitmapy a textury jsou uloženy do hardwaru vhodný formát - světla, vlastnosti materiálu něco může být předpočítáno - tečkování (stippling) polygonu Vytváření display listu void glnewlist(gluint list, GLenum mode) kde list je unikátní číslo určené uživatelem mode jedno z GL_COMPILE, GL_COMPILE_AND_EXECUTE void glendlist() ukončuje definici display listu void glcalllist(gluint list) spouští dříve definovaný display list zakázané příkazy v display listu - dotazovací příkazy glis*(), glget*(), glreadpixels(), glselectbuffer() - manipulace s display listem gldeletelists(), glislist(), glgenlists() - a některé další glflust(), glfinish(), glrendermode(), glpixelstore(), glfeedbacbuffer() - když vytváříme display list pokud je číslo již použito display list je vymazán

28 GLboolean glislist(gluing list) vrací TRUE pokud číslo je použito GLuint glgenlist(glsizei range) - alokuje spojitý rozsah display-listy indexů nebo nulu - vrací ukazatel na první z nich void gldeletelists(gluint list, GLsize range) - smaže display listy a nastaví indexy jako volné hierarchické display listy 30. Popište rozpoznávání barev lidským okem, a chromatický diagram. C

29 K hlubšímu pochopení problematiky barev je nutno vědět více o vnímání barev lidským okem. V něm jsou umístěny receptory citlivé na určité vlnové délky světla, teda na paprsky určité barvy. Na základě podnětů od různých typů receptorů je v mozku složena odpovídající barva, resp. barevný vjem. Chromatický diagram CIE (commission Internationale de l Éclairage) Každá skutečná barva je ve standardu určena množstvím základních barev potřebných pro její vytvoření. Označme pro danou barvu tato množství barev jako A, B a C. V normalizovaném tvaru je zapíšeme jako A B C x = , y = , z = A + B + C A + B + C A + B + C Protože platí, že x+y+z = 1, stačí k úplnému určení bervy libovolné dvě složky. Vybereme-li například x a y, můžeme reprezentovat všechny barvy dvojrozměrným diagramem. Křivka, která ohraničuje barvy viditelného spektra, se nazývá chronomatický diagram CIE. Barevné body tvořící obalovou spektrální křivku jsou označeny vlnovou délkou v nanometrech počínaje červenou části spektra a konče fialovou částí spektra. Bod C v diagramu odpovídá poloze bílého světla. V anglické terminologii je tento bod označován jako illuminant C a je považován jako standard pro průměrné denní světlo.

30 PV112 Vypracované otázky Vypracoval Martin Herodes 31. Uveďte jakým způsobem se zapínají světla v OpenGL. Popište nastavení vlastností světel v OpenGL. - OpenGL pracuje s barvami nebo se světly. Příkazy pro přepínání mezi těmito módy jsou: glenable(gl_lighting); // povolení osvětlení gldisable(gl_lighting); // zakázání osvětlení Použití barev specifikujeme barvu u každého vrcholu Použití světel barva každého vrcholu je vypočítána podle Dopadajícího světla a vlastností materiálu - OpenGL podporuje nejméně 8 světel GL_LIGHT0,, GL_LIGHT7 Každé n-té světlo musí být povoleno příkazem: glenable(gl_lightn); - Nastavení vlastností světel příkazem: gllight{if}[v](glenum light,glenum p,type val); kde light=gl_lightn (které světlo nastavujeme) p=jeden z možných parametrů val=je hodnota Parametry: GL_AMBIENT intenzita okolního světla př. (0.0,0.0,0.0,1.0) GL_DIFFUSE intenzita rozptýleného světla př. (1.0,1.0,1.0,1.0) nebo (0.0,0.0,0.0,1.0) GL_SPECULAR barva odlesku světla př. (1.0,1.0,1.0,1.0) nebo (0.0,0.0,0.0,1.0) GL_POSITION pozice světla (x,y,z,w) př. (0.0,0.0, 1.0, 0.0) pozice (x,y,z,1) znamená lokální světlo local light pozice (x,y,z,0) znamená směrové světlo directional light GL_SPOT_DIRECTION - směr bodového světla (x,y,z) př. (0.0, 0.0, -1.0) GL_SPOT_EXPONENT exponent bodového světla př. 0.0 (koncentrace světla) GL_SPOT_CUTOFF úhel ořezání bodového světla př nebodové světlo GL_CONSTANT_ATTENUATION - konstantní faktor útlumu př. 1.0 (c1) GL_LINEAR_ATTUNEATION - lineární faktor útlumu př. 0.0 (c2) GL_QUADRATIC_ATTUNEATION kvadratický faktor útlumu př. 0.0 (c3)

31 - Stínování: glshademodel(glenum mode); kde mode=gl_flat nebo GL_SMOOTH GL_FLAT nastavení konstantního stínování GL_SMOOTH nastavení Gouraudova stínování 32. Popište nastavení vlastností světelného modelu v OpenGL. - každé světlo přispívá ke zvýšení intenzity okolního světla můžeme nastavit globální osvětlení GLfloat color = {0.2, 0.2, 0.2, 1.0}; gllightmodefv(gl_light_model_ambient,color); - pozice pozorovatele ovlivňuje hlavně odraz světla. Pokud je pozorovatel v nekonečnu, je výpočet mnohem jednodušší (rychlejší). gllightmodefv(gl_light_model_local_viewer,gl_true); defaultně jsou osvětleny jen přední plošky. Zapnutí osvětlení zadních plošek příkazem: gllightmodefv(gl_light_model_two_side,gl_true); - barva odrazu je počítána odděleně od výpočtů ambientní a difuzní barvy a je aplikována až po texturování - gllightmodefv(gl_light_model_color_control, GL_SEPARATE_SPECULAR_COLOR); default value: GL_SINGLE_COLOR 33. Popište nastavení vlastností materiálů pro osvětlení v OpenGL. Nastavení vlastností materiálu příkazem: void glmaterial{if}[v](glenum face, GLenum p, TYPE val) kde face = GL_FRONT, GL_BACK, nebo GL_FRONT_AND_BACK p = jeden z možných parametrů val = je hodnota Parametry: GL_AMBIENT příspěvek k ambientnímu světlu př. (0.2,0.2,0.2,1) GL_DIFFUSE příspěvek k difuznímu světlu př. (0.8,0.8,0.8,1) GL_AMBIENT_AND_DIFFUSE GL_SPECULAR příspěvek k barvě odlesku světla př. (0,0,0,1) GL_SHININESS exponent př. 0.0 [ ] GL_EMISSION samostatné osvětlení př. (0,0,0,1) - objekt může mít odlišný materiál uvnitř a venku

32 - nejdůležitější je difuzní složka materiálu, protože nejvíce určuje výslednou barvu - difúzní odraz NEZÁVISÍ na pozici pozorovatele (diffuse reflectance) - zrcadlový odraz ZÁVISÍ na pozici pozorovatele (specular reflectance) - v reálném světě jsou difuzní a ambientní složky materiálu stejné parametr GL_AMBIENT_AND_DIFFUSE - na objektech se objevuje světlo, ale není přítomen světelný zdroj! Volání glmaterial() je náročné. Proto se při více změnách materiálových vlastností používá příkaz void glcolormaterial(glenum face, GLenum mode) kde face = GL_FRONT, GL_BACK, nebo GL_FRONT_AND_BACK mode = GL_AMBIENT, GL_DIFFUSE atd. Používáme, když se vlastnost materiálu mění pro více vrcholů. Musí být použit příkaz glenable(gl_color_material). Příklad: glcolormaterial(gl_front,gl_diffuse); glenable(gl_color_material); glcolor3fv(color1); Render1(); glcolor3fv(color2); Render2(); glcolor3fv(color3); Render3(); gldisable(gl_color_material); 34. Uveďte, jakým způsobem probíhá výpočet barev v osvětlovacím modelu OpenGL. V osvětlovacím modelu OpenGL probíhá výpočet barev odděleně pro červenou, zelenou a modrou složku. Je to jednodušší. Všechny barevné složky (emission, ambient, diffuse a specular) jsou sečteny a následně převedeny do rozsahu [0,1].

33 Difuzní složka nezávisí na pozici pozorovatele a je větší, když světlo dopadá kolmo na povrch Odrazová složka (specular reflection) závisí na pozici pozorovatele. 35. Popište Blending v OpenGL, způsob výpočtu barev, používané funkce a často používané parametry. Ukažte použití na příkladu. Popište rozdíly ve 2D a 3D. Blending vytváří průhlednost části scény. Průhlednost zajišťuje alfa kanál. Blending nepracuje v barvovém módu. Musí být povolen příkazem glenable(gl_blend). Obsahuje dvě části zdroj a cíl. - Rovnice blendingu: zdrojová barva (R s, G s, B s, A s ) cílová barva (R d, G d, B d, A d ) zdrojový faktor blendingu (S r, S g, S b, S a ) cílový faktor blendingu (D r, D g, D b, D a ) nová čtveřice RGBA: (R s.s r +R d.d r, G s.s g +G d.d g,b s.s b +B d.d b, A s.s a +A d.d a ) - faktor blendingu může být odlišný pro každou komponentu glblendfunc(glenum src, GLenum, dst) kde src, dst specifikují faktor blendingu pro zdroj a cíl Faktory blendingu: (většina aplikací využívá jen malou podmnožinu)

34 - Využití blendingu billboarding pozadí obrázku přiřadíme nulový alfa kanál a následně se objekt zobrazí bez pozadí - Vypnutí z-bufferu příkazem gldepthmask(gl_false) zapnutí GL_TRUE Výsledná barva závisí na pořadí rendrování, protože při vypnutí z-bufferu ztrácíme informace o hloubce objektů ve scéně. Proto bychom měli pro správné zobrazení objekty seřadit podle hloubky a následně vykreslovat zepředu dozadu. - ve 2D se na rozdíl od 3D nemusíme starat o seřazení podle hloubky Příklad: gldepthmask(gl_false); // Z-buffer v rezimu read-only glenable(gl_blend); // povoleni michani glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA);// michaci funkce render(); // vykresleni průhledných ploch gldepthmask(gl_true); // Z-buffer v rezimu readwrite gldisable(gl_blend); // zakazani michani 36. Uveďte příklady Aliasingu. Popište principy Antialiasingu v OpenGL a přístupy pomocí blendingu a accumulation bufferu. Alias vzniká při podvzorkování spojité funkce pod Nyquistův limit (vzorkovací frekvence musí být dvakrát větší než frekvence vzorkované funkce) a projevuje se jako nová, nízkofrekvenční informace, která nebyla v původním signálu přítomna. - prostorový alias interference rychle se měnícího obrazu s pixelovým rastrem. Zubaté zobrazení šikmých linií. Při kreslení husté sítě čar vzniká tzv. Moiré efekt. Příliš jemná nebo příliš vzdálená pravidelná textura. Příklad:šachovnice ve velké vzdálenosti - časový alias interference cyklického pohybu se snímkovou frekvencí. Blikání na obvodu pohybujících se objektů. V extrémním případě se celé malé objekty objevují a opět mizí.příklad:otáčející se kolo se zdánlivě zastaví nebo se pomalu točíopačně Antialiasing je metoda, kterou se částečně zbavujeme aliasingu. V OpenGL jsou min. dvě metody: - antialiasing objektů - regular super sampling pomocí alfa míchání (blending) OpenGL v RGBA módu počítá pokrytí fragmentů. Tato hodnota je uložena jako alfa. 1. umožnění antialiasingu příkazem glenable(gl_point_smooth) nebo GL_LINE_SMOOTH nebo GL_POLYGON_SMOOTH 2. umožnění blendingu příkazem glenable(gl_blend);

35 3. rendrování (s 3D blendingem) Příklad: glenable(gl_polygon_smooth); //umožnění antialiasingu glenable(gl_blend); //umožnění blendingu glblendfunc(gl_src_alpha,gl_one_minus_src_alpha);//míchací fce glhint(gl_line_smooth_hint,gl_nicest); //nastavení kvality glbegin(gl_triangles); Přístup pomocí blendingu při rendrování průhledných ploch musíme vypnout z-buffer. Tím ale ztrácíme informace o hloubce u průhledných objektů. Musíme je proto uspořádat podle hloubky, což může být docela problém, a následně kreslit zepředu dozadu. - antialiasing celých scén - jittered super sampling (roztřesení). 1. Rendrujeme scénu několikrát a na každém pixelu provádíme roztřesení 2. Ukládáme výsledky do akumulačního bufferu 3. Zobrazíme průměr void glaccum(glenum op, GLfloat value) kde op = jedna z operací GL_ACCUM, GL_LOAD,GL_RETURN, GL_ADD, GL_MULT Přístup pomocí akumulačního bufferu - jednodušší na programování, ale časově náročnější. Používá akumulační buffer a jittering (roztřesení). Tato metoda převádí artefakty vzniklé aliasingem na šum, což je pro lidské oko přirozenější. 37. Co se označuje v OpenGL pod názvem fog? Jak se fog používá a jaké jsou v OpenGL módy pro fog? Uveďte funkce pro práci a příklad použítí. Fog - je obecný termín používaný pro simulování mlhy, kouře, znečištění apod. Je definována jednoduše intenzita mlhy závisí na vzdálenosti a rovnici mlhy. Použití mlhy příkazem void glfog{if}[v](glenum name, TYPE val) kde možné kombinace jsou: Parametry GL_FOG_START a GL_FOG_END mají význam jen v módu GL_LINEAR. Funkce pro práci s mlhou jsou:

36 glfogi(gl_fog_mode,gl_linear) glfogi(gl_fog_mode,gl_exp) glfogi(gl_fog_mode,gl_exp2) Příklad použití mlhy: GLfloat fogcolor[4]={0.5, 0.5, 0.5, 1.0}; glenable(gl_fog); glfogi(gl_fog_mode, GL_EXP); // nastavení módu mlhy glfogfv(gl_fog_color, fogcolor); // nastavení barvy mlhy glfogf(gl_fog_density, 0.35); // nastavení hustoty glhint(gl_fog_hint, GL_NICEST); // způsob rendrování 38. Popište použití bitmap a s nimi souvisejících příkazů v OpenGL. Nápověda:??(GLsizei w,glsizei,glfloat x, Lfloat y,glfloat xx, GLfloat yy,const GLubyte *bitmap) Bitmapa je matice obsahující jen nuly a jedničky. Bitmapy jsou určeny především pro definici fontů, které by měly být použity společně s display listy. Obrázek (Image) je matice obsahující pixely Příkazy: - Pozice, na kterou je rendrována mapa, se určuje příkazem: glrasterpos{234}{sifd}[v](type x,type y,type z,type w) Souřadnice jsou transformovány stejně jako vrcholy. - Vrací aktuální pozici v rastru glgetfloatv(gl_current_raster_position, pos) - Říká, jestli byla pozice změněna nebo ne glgetboolean(gl_current_raster_position_valid, result) - void glbitmap(glsizei w,glsizei h,glfloat x, GLfloat y,glfloat xx, GLfloat yy,const GLubyte *bitmap); kde w a h určují šířku a výšku bitmapy x a y je umístění zdroje obrázku (použitého pro fonty) xx a yy je nová pozice glrasterpos*() bitmap = ukazatel na bitmapu

37 39. Popište použití obrázků v OpenGL a s nimi souvisejících příkazů. Nápověda:??(GLint x,glint y,glsizei w, GLsizei h, GLenum format, GLenum type, GLvoid *data) Obrázek (Image) je matice obsahující pixely - obrázek je obvykle obdélníková oblast (frame) bufferu - oblasti se mohou číst nebo zapisovat z nebo do z-bufferu a stencil bufferu - obrázky mohou být použity pro texturové mapy - aktuální pozice v rastru je základem pro mnoho operací Příkazy: - Čtení dat ze zadané pozice a o zadané velikosti do datové struktury příkazem: void glreadpixels(glint x,glint y,glsizei w, GLsizei h, GLenum format, GLenum type,glvoid *dta) - Vykreslení dat na aktuální pozici v rastru se zadanou velikostí příkazem: void gldrawpixels(glsizei w, GLsizei h, GLenum format, GLenum type, GLvoid *dta) - Kopírování dat ze zadané pozice a o zadané velikosti do aktuální pozice v rastru příkazem void glcopypixels(glint x,glint y,glsizei w, GLsizei h, GLenum type) kde x a y určují pozici obrázku pro kopírování a čtení w a h určují velikost obrázku format určuje druh pixelových datových elementů GL_RGB, GL_RGBA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE - osvětlovací model GL_LUMINANCE_ALPHA osvětlovací model s alfa složkou GL_STENCIL_INDEX stencil index GL_DEPTH_COMPONENT komponenta hloubky type určuje datový typ GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT dta je ukazatel na data Další příkazy pro práci s obrázky: - Zvětšení nebo zmenšení pixelů příkazem void glpixelzoom(glfloat x, GLfloat y) - Zvětšení nebo zmenšení obrázku příkazem void gluscaleimage(glenum format, GLint w_in,glint h_in,glenum type_in,const void *in,glint w_out, GLint h_out,glenum type_out,const void *out) - Nastavení použité interpolace při zvětšování nebo zmenšování gltexparameteri(gl_texture_2d,w,type) kde type = GL_NEAREST nebo GL_LINEAR w = GL_TEXTURE_MAG_FILTER nebo GL_TEXTURE_MIN_FILTER Během zobrazování se mohou měnit hodnoty R, G, B, A použitím afinních transformací (strojově nezávislé) nebo použitím vyhledávací tabulky (strojově závislé). Afinní transformace: - void glpixeltransfer{if}(glenum pname,type param) Transformace pomocí vyhledávací tabulky (strojově závislé): - void glpixelmap{ui us f}v(glenum map,glint size, consttype *array)

38 40. Co to jsou textury? Jaké známe druhy textur a jakým způsobem se v OpenGL používají? Uveďte mechanizmus OpenGL pro použití textur a podrobně popište specifikaci textury, Nápověda:??(GLenum target,glint level,glint components, GLsizei w, GLsizei h, GLint border, GLenum format, GLenum type, const GLvoid *texels) Textura - je vlastnost povrchu a je simulována obrázky umístěnými na polygonech. Textury mohou být aplikovány na všechna primitiva body, čáry, polygony, bitmapy, obrázky Textury jsou obdélníková pole dat(texelů)obsahující barvu, jas, alfa složku, normálový vektor Textury mohou být 1, 2 nebo 3 dimenzionální. Proces přiřazení textur je nazýván texturové mapování: 1) Specifikace textury obrázek nebo mipmapa 2) Určení, jak bude textura aplikována blending, modulace, scale 3) Umožnění mapování textur příkazem glenable(gl_texture_ 1D) _2D _3D Pokud je definováno více textur, je vybrána ta s vyšší dimenzí. 4) Vykreslení scény se zadanými texturovacími souřadnicemi pro každý vrchol Specifikace textury: - void glteximage2d(glenum target,glint level,glint components, GLsizei w, GLsizei h, GLint border,glenum format, GLenum type, const GLvoid *texels) kde target = GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D level = číslo určující úroveň detailů 0~jednoduchá textura components použito pro modulaci a blending. 1~red, 2~red+alpha, 3~RGB, 4~RGBA w, h určují rozsah textury border = šířka okraje format = GL_COLOR_RGB, _RGBA, _RED, _GREEN, _BLUE,_ALPHA, _LUMIANCE, _LUMIANCE_ALPHA type určuje datový typ - GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT texels = pole dat Texturu lze také vytvořit přečtením vykresleného obrázku přímo z frame bufferu příkazem glcopyteximage2d(). 41. Co jsou to souřadnice textury? Uveďte funkce OpenGL a příklad použití. Každá textura je přiřazena objektu a může být transformována společně s objektem rotace,.. Nastavení módu texturování objektů příkazem glmatrixmode(gl_texture) Každý vrchol má přiřazeny souřadnice textury tím se určuje, který texel je přiřazen vrcholu. Souřadnice textury jsou mezi vrcholy lineárně interpolovány. void gltexcoord{1234}{sifd}[v](type coords) určuje souřadnice textury pro daný vrchol Souřadnice textury se označují s, t, r, q.

39 Příklad: glbegin(gl_quads); gltexcoord2f(0.1, 0.1); glvertex3f(-2.0, -1.0, 0.0); gltexcoord2f(0.0, 0.9); glvertex3f(-2.0, 1.0, 0.0); gltexcoord2f(1.1, 0.8); glvertex3f(0.0, 1.0, 0.0); gltexcoord2f(1.0, 0.0); glvertex3f(0.0, -1.0, 0.0); glend(); 42. K čemu slouží Repeating a Clamping? Jak se v OpenGL používá? Uveďte funkce OpenGL a příklady použití. Textury jsou definovány v rozsahu [0,1]. Repeating a Clamping slouží k nastavení mapování textur při překročení tohoto rozsahu. Repeating nastavuje opakování textury pomocí parametru GL_CLAMP a Clamping provádí roztažení textury pomocí parametru GL_ REPEAT. Způsob, jakým je textura mapována na povrch vykreslovaného tělesa lze nastavit příkazem void gltexparameter{if}[v](glenum target, GLenum name,type param) kde target = GL_TEXTURE_2D, _1D or _3D name = GL_TEXTURE_WRAP_S opakování nebo protažení ve směru osy s GL_TEXTURE_WRAP_T - opakování nebo protažení ve směru osy t GL_TEXTURE_WRAP_R - opakování nebo protažení ve směru osy r GL_TEXTURE_BORDER_COLOR nastavení barvy rámečku textury param = pro GL_TEXTURE_WRAP_S, _T, _R GL_CLAMP - roztažení, GL_REPEAT - opakování pro GL_TEXTURE_BORDER_COLOR color barva rámečku okolo textury, pokud má rámeček nenulovou šířku Opakování a roztažení může být kombinováno viz. 2 příklad: 1. gltexparameterf(gl_texture_2d,gl_texture_wrap_s,gl_clamp); gltexparameterf(gl_texture_2d,gl_texture_wrap_t,gl_clamp); 2. gltexparameterf(gl_texture_2d,gl_texture_wrap_s,gl_repeat); gltexparameterf(gl_texture_2d,gl_texture_wrap_t,gl_clamp); 43. K čemu slouží filtrování textur? Jak se v OpenGL používá? Uveďte funkce OpenGL a příklady použití. Při zmenšování a zvětšování textur máme dvě možnosti použít vzorkování pomocí

40 nejbližšího souseda (rychlejší) nebo lineární interpolaci (pěknější). Způsob, jakým je textura mapována na povrch vykreslovaného tělesa lze nastavit příkazem void gltexparameter{if}[v](glenum target, GLenum name,type param) kde target = GL_TEXTURE_2D, _1D or _3D name = GL_TEXTURE_MIN_FILTER filtr použitý při zmenšování textury GL_TEXTURE_MAG_FILTER filtr použitý při zvětšování textury param = pro GL_TEXTURE_MAG_FILTER GL_NEAREST je použita interpolace pomocí nejbližšího souseda GL_LINEAR je použita lineární interpolace pro GL_TEXTURE_MIN_FILTER GL_NEAREST je použita interpolace pomocí nejbližšího souseda GL_LINEAR je použita lineární interpolace GL_NEAREST_MIPMAP_NEAREST mipmaping s interpolací sousedem mezi různými úrovněmi mipmapy a s interpolací sousedem mezi texely GL_NEAREST_MIPMAP_LINEAR mipmaping s interpolací sousedem mezi různými úrovněmi mipmapy a s lineární interpolací mezi texely GL_LINEAR_MIPMAP_NEAREST mipmaping s lineární interpolací mezi různými úrovněmi mipmapy a s interpolací sousedem mezi texely GL_LINEAR_MIPMAP_LINEAR mipmaping s lineární interpolací mezi různými úrovněmi mipmapy a s lineární interpolací mezi texely Příklad použití: gltexparameteri(gl_texture_2d,gl_texture_mag_filter,gl_linear); gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 44. K čemu slouží Mip Maps? Jak se v OpenGL používá? Uveďte funkce OpenGL a příklady použití. Nápověda:??(GLenum target,glint level,glint components, GLsizei w, GLsizei h, GLint border, GLenum format, GLenum type, const GLvoid *texels) Mip mapping je technika LOD (Level Of Detail). OpenGL automaticky vybere dvě úrovně mipmapy (podle vzdálenosti objektu od pozorovatele) mezi kterými provede interpolaci. Tím se odstraní alias. Mipmapy jsou textury v rozlišeních 2mx2n, 2m/2x2n/2, 2m/4x2n/4,,1 pixel, které musíme vytvořit a uložit pomocí příkazu glteximage2d(), ve kterém parametr level určuje úroveň detailů LOD.

41 - void glteximage2d(glenum target,glint level,glint components, GLsizei w, GLsizei h, GLint border,glenum format, GLenum type, const GLvoid *texels) kde target = GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D level = číslo určující úroveň detailů 0~jednoduchá textura components použito pro modulaci a blending. 1~red, 2~red+alpha, 3~RGB, 4~RGBA w, h určují rozsah textury border = šířka okraje format = GL_COLOR_RGB, _RGBA, _RED, _GREEN, _BLUE,_ALPHA, _LUMIANCE, _LUMIANCE_ALPHA type určuje datový typ - GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT texels = pole dat Způsob, jakým je textura mapována na povrch vykreslovaného tělesa lze nastavit příkazem void gltexparameter{if}[v](glenum target, GLenum name,type param) kde target = GL_TEXTURE_2D, _1D or _3D name = GL_TEXTURE_MIN_FILTER filtr použitý při zmenšování textury GL_TEXTURE_MAG_FILTER filtr použitý při zvětšování textury param = pro GL_TEXTURE_MAG_FILTER GL_NEAREST je použita interpolace pomocí nejbližšího souseda GL_LINEAR je použita lineární interpolace pro GL_TEXTURE_MIN_FILTER GL_NEAREST je použita interpolace pomocí nejbližšího souseda GL_LINEAR je použita lineární interpolace GL_NEAREST_MIPMAP_NEAREST mipmaping s interpolací sousedem mezi různými úrovněmi mipmapy a s interpolací sousedem mezi texely GL_NEAREST_MIPMAP_LINEAR mipmaping s interpolací sousedem mezi různými úrovněmi mipmapy a s lineární interpolací mezi texely GL_LINEAR_MIPMAP_NEAREST mipmaping s lineární interpolací mezi různými úrovněmi mipmapy a s interpolací sousedem mezi texely GL_LINEAR_MIPMAP_LINEAR mipmaping s lineární interpolací mezi různými úrovněmi mipmapy a s lineární interpolací mezi texely Příklad použití mipmapingu: glteximage2d(gl_texture_2d,0,3,32,32,0,gl_rgb,gl_unsigned_byte,&image32[0 ][0][0]);//32x32 glteximage2d(gl_texture_2d,1,3,16,16,0,gl_rgb,gl_unsigned_byte,&image16[0 ][0][0]);//16x16

42 glteximage2d(gl_texture_2d,2,3,8,8,0,gl_rgb,gl_unsigned_byte,image8[0][0][0 ]);//8x8 glteximage2d(gl_texture_2d,3,3,4,4,0,gl_rgb,gl_unsigned_byte,&image4[0][0] [0]); //4x4 glteximage2d(gl_texture_2d,4,3,2,2,0,gl_rgb,gl_unsigned_byte,&image2[0][0] [0]); //2x2 glteximage2d(gl_texture_2d,5,3,1,1,0,gl_rgb,gl_unsigned_byte,&image1[0][0] [0]); //1pixel gltexparameterf(gl_texture_2d,gl_texture_mag_filter,gl_nearest); gltexparameterf(gl_texture_2d,gl_texture_min_filter,gl_nearest_mipmap _NEAREST); 45. Popište automatické souřadnice textur v OpenGL. K čemu slouží a jak se používají? Nápověda:??(GLenum coord,glenum pname,type p) Souřadnice textur nemusíme uvádět u každého vrcholu, ale mohou být také generovány automaticky. Možnosti jsou: - použití lineárního mapování parametrem GL_OBJECT_LINEAR - použití pohledově závislého lineárního mapování parametrem GL_EYE_LINEAR - použití mapování okolního prostředí na zobrazované těleso (environment mapping) parametrem GL_SPHERE_MAP Příkaz, který zapíná automatické generování souřadnic: void gltexgen{ifd}[v](glenum coord,glenum pname,type p) kde coord = GL_S, GL_T, GL_R, nebo GL_Q pname = GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE, GL_EYE_PLANE pro GL_TEXTURE_GEN_MODE p = GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP pro GL_OBJECT_PLANE, GL_EYE_PLANE p = (GLfloat,GLfloat,GLfloat,GLfloat) Příklad mapování prostředí na kouli: gltexgenfv(gl_s, GL_SPHERE_MAP,0); gltexgenfv(gl_t, GL_SPHERE_MAP,0); glenable(gl_texture_gen_s);

43 glenable(gl_texture_gen_t); 46. Popište texturové objekty v OpenGL, způsob generování, funkce a použití. Texturové objekty v OpenGL ukládají data a umožňují jejich čtení. Použití texturových objektů je obvykle nejrychlejší cestou k aplikování textur. - Pojmenování texturových objektů příkazem void glgentextures(glsizei n, GLuint *texturenames); // vytvoření jmen textur kde n = počet textur v poli texturenames texturenames = pole jmen textur - Ověření, jestli existuje texturový objekt se zadaným jménem příkazem GLboolean glistexture(gluint texturename); vrací GL_TRUE jestliže texturename je jméno textury, která je dostupná - Vytvoření texturového objektu příkazem void glbindtexture(glenum target, GLuint TextureName); // vytvoření textury kde target = GL_TEXTURE_1D, _2D, nebo_3d Příklad: glgentextures(2, texname); glbindtexture(gl_texture_2d, texname[0]); glbindtexture(gl_texture_2d, texname[1]); void display(void) { glbindtexture(gl_texture_2d, texname[0]); renderobject(); } 47. Co to je Frame Buffer? Z čeho se skládá? Popište obecný způsob mazání bufferů v OpenGL. Framebuffer je buffer, do kterého se ukládají fragmenty. Fragmenty jsou pixely s informacemi o hloubce a dalšími informacemi. Framebuffer se skládá z následujících bufferů: - buffery pro uložení barev fragmentů (color buffers) dva buffery pro double-buffering (přední a zadní) a dva buffery pro stereoprojekci (pro levé a pravé oko). Musí být vytvořen alespoň jeden barvový buffer. - paměť hloubky fragmentů (depth buffer, z-buffer) v tomto bufferu jsou uloženy informace o hloubce fragmentů, tj. vzdálenost fragmentů od projekční roviny. - paměť pro šablonu (stencil buffer) slouží k maskování fragmentů, tj. určuje, které se mají z vykreslovacího řetězce vyloučit - akumulační buffer (accumulation buffer) používá se pro sloučení více scén nebo více pohledů na jednu scénu do výsledného obrazu. V tomto bufferu jsou uloženy barevné složky fragmentů, většínou ve formátu RGBA.

44 Příkazy pro mazání jednotlivých bufferů jsou: void glclearcolor(glclampf red,glclampf green,glclampf blue,glclampf alpha); void glclearindex(glfloat index); void glcleardepth(glclampd depth); void glclearstencil(glint s); void glclearaccum(glfloat red,glfloat green, Glfloat blue, Glfloat alpha); Nebo příkaz void glclear(glbitfield mask); kde mask = GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, GL_STENCIL_BUFFER_BIT, GL_ACCUM_BUFFER_BIT 48. Popište, jak se v OpenGL vybírá Color buffer pro zápis a jak se do něj zapisuje. Jaké existují druhy Color buffers a k čemu slouží? Buffery pro uložení barev fragmentů (color buffers): - normální zobrazení jeden buffer nebo dva buffery pro double-buffering (přední a zadní) - stereoskopické zobrazení - dva buffery pro stereoprojekci (pro levé a pravé oko) levý a pravý, a pokud je umožněn double-buffering, jsou potřebné následující buffery levý přední, levy zadní, pravý přední a pravý zadní. Musí být vytvořen alespoň jeden barvový buffer. Současně lze zapisovat do více barvových bufferů. - umožnění zápisu příkazem void gldrawbuffer(glenum mode); kde mode = GL_FRONT, GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK, GL_BACK_LEFT, GL_BACK_RIGHT, GL_LEFT, GL_RIGHT, GL_NONE, GL_FRONT_AND_BACK, GL_AUXi - umožnění čtení příkazem void glreadbuffer(glenum mode); kde mode = stejné ale bez GL_FRONT_AND_RIGHT a GL_NONE Stereoprojekci je třeba inicializovat příkazem glutinitdisplaymode() s příznaky GLUT_STEREO a GLUT_DOUBLE. 49. Jakým způsobem se pracuje se Stencil bufferem a k čemu tento buffer slouží? Uveďte funkce OpenGL pro stencilový test a příklady použití stencilového bufferu. Paměť pro šablonu (stencil buffer) slouží k maskování vytvářených fragmentů, tj. určuje, které fragmenty se mají z vykreslovacího řetězce vyloučit. Paměť šablony nachází své uplatnění při vytváření stínů, zrcadlení, těles pomocí CSG nebo simulace stereopohledů bez alokace stereo barvových bufferů. Jak pracuje stencil buffer: Stencil test (test na šablonu) se provádí pro každý vykreslovaný fragment tak, že se porovnává hodnota ve stencil bufferu se zadanou referenční hodnotou. V závislosti na výsledku testu může být hodnota ve stencil bufferu změněna

45 - pro vytvoření paměti šablony ve framebufferu je zapotřebí při inicializaci volat funkci glutinitdisplaymode() s nastaveným bitovým příznakem GLUT_STENCIL a umožnit stencil test příkazem glenable(gl_stencil_test); - nastavení stencil testu pomocí příkazu void glstencilfunc(glenum func, Glclampf ref,gluint mask); defaultní nastavení: func = GL_ALWAYS // fragment projde vždy do dalšího zpracování ref = 0, mask = 1 - co se má stát s hodnotou ve stencil bufferu v případě,že: fail test na šablonu fragment odmítne z dalšího zpracování zfail test na hloubku fragmentu bude neúspěšný zpass test na hloubku fragmentu bude úspěšný určuje příkaz void glstencilop(glenum fail, Glenum zfail,glenum zpass); kde fail, zfail, zpass = GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR, GL_DECR defaultní nastavení: GL_KEEP, GL_KEEP, GL_KEEP (KEEP - ponechat původní hodnotu) Příklad použití stencilového bufferu: void init(void){, glclearstencil(0x0); glenable(gl_stencil_test); } void display(void) { glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glstencilfunc(glequal, 0x1, 0x1); glstencilop(gl_keep, GL_KEEP, GL_KEEP); glutsolidsphere(0.5, 15, 15); glstencilfunc(... } 50. Jakým způsobem se pracuje s Accumulation Bufferem a k čemu tento buffer slouží? Uveďte funkce OpenGL pro použití accumulation bufferu a příklady použití accumulation bufferu. Akumulační buffer (accumulation buffer) slouží ke sloučení více scén nebo více pohledů na jednu scénu do výsledného obrazu. V tomto bufferu jsou uloženy barevné složky fragmentů, většinou ve formátu RGBA. Příklady použití akumulačního bufferu: - na antialiasing scény princip antialiasingu: 1. rendrování scény několikrát a roztřesení všech pixelů (jittering) 2. sečtené výsledky se uloží do akumulačního bufferu 3. zobrazí se průměr - motion blur - vykreslování těles, které jsou rozmazány pohybem nebo rozmazání příliš blízkých nebo naopak vzdálených těles - simulace hloubky ve fotografii - výpočet měkkých stínů Příkazy: - pro vytvoření akumulačního bufferu je zapotřebí při inicializaci volat funkci glutinitdisplaymode() s nastaveným bitovým příznakem GLUT_ACCUM

27. listopadu 2013, Brno Připravil: David Procházka

27. listopadu 2013, Brno Připravil: David Procházka 27. listopadu 2013, Brno Připravil: David Procházka Texturování Počítačová grafika 2 Obsah přednášky Strana 2 / 37 Obsah přednášky 1 Obsah přednášky 2 Texturování 3 Multum In Parvo 4 Modulace textury ve

Více

Textury. Petr Felkel, Jaroslav Sloup a Vlastimil Havran

Textury. Petr Felkel, Jaroslav Sloup a Vlastimil Havran Textury Petr Felkel, Jaroslav Sloup a Vlastimil Havran Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí E-mail: felkel@fel.cvut.cz Poslední změna: 25.3.2015 Textury

Více

Osvětlování a stínování

Osvětlování a stínování Osvětlování a stínování Pavel Strachota FJFI ČVUT v Praze 21. dubna 2010 Obsah 1 Vlastnosti osvětlovacích modelů 2 Světelné zdroje a stíny 3 Phongův osvětlovací model 4 Stínování 5 Mlha Obsah 1 Vlastnosti

Více

Připravil: David Procházka. Vykreslování grafických primitiv

Připravil: David Procházka. Vykreslování grafických primitiv 24. září 2013, Brno Připravil: David Procházka Vykreslování grafických primitiv Počítačová grafika 2 Vykreslování grafických primitiv Strana 2 / 38 Obsah přednášky 1 Vykreslování grafických primitiv 2

Více

Textury v real-time grafice. 2004-2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz

Textury v real-time grafice. 2004-2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz Textury v real-time grafice 2004-2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz Textury vylepšují vzhled povrchu těles modifikace barvy ( bitmapa ) dojem hrbolatého

Více

Surfels: Surface Elements as Rendering Primitives

Surfels: Surface Elements as Rendering Primitives Surfels: Surface Elements as Rendering Primitives Výzkum v počítačové grafice Martin Herodes Nevýhody plošných primitiv Reprezentace složitých objektů pomocí plošných primitiv (trojúhelníků, čtyřúhelníků

Více

Připravil: David Procházka. Vertex Buffer Objects

Připravil: David Procházka. Vertex Buffer Objects 30. září 2013, Brno Připravil: David Procházka Vertex Buffer Objects Počítačová grafika 2 Obsah přednášky Strana 2 / 22 Obsah přednášky 1 Obsah přednášky 2 Vertex Buffer Objects 3 Příklady 4 Shrnutí Obsah

Více

Připravil: David Procházka. Základy OpenGL

Připravil: David Procházka. Základy OpenGL 24. září 2013, Brno Připravil: David Procházka Základy OpenGL Počítačová grafika 2 Grafické knihovny Strana 2 / 25 Obsah přednášky 1 Grafické knihovny 2 Vykreslování rastrového obrazu 3 OpenGL aplikace

Více

Grafická data jsou u 2D vektorové grafiky uložena ve voxelech NEPRAVDA Grafická data jsou u rastrové grafiky uložena v pixelech PRAVDA Grafická data

Grafická data jsou u 2D vektorové grafiky uložena ve voxelech NEPRAVDA Grafická data jsou u rastrové grafiky uložena v pixelech PRAVDA Grafická data Grafická data jsou u 2D vektorové grafiky uložena ve voxelech Grafická data jsou u rastrové grafiky uložena v pixelech Grafická data jsou u vektorové grafiky uložena v pixelech Na rozdíl od rastrové grafiky

Více

KAPITOLA 13. Grafika a zvuk. Linux a grafika

KAPITOLA 13. Grafika a zvuk. Linux a grafika KAPITOLA 13 Grafika a zvuk Mnoho aspektů profesionálního programování vyžaduje pokročilou podporu grafiky a zvuku. Vše od vytváření matematických modelů až po psaní nejnovějších akčních her vyžaduje schopnost

Více

Připravil: David Procházka. Knihovna GLUT

Připravil: David Procházka. Knihovna GLUT 22. října 2013, Brno Připravil: David Procházka Knihovna GLUT Počítačová grafika 2 Obsah přednášky Strana 2 / 38 Obsah přednášky 1 Obsah přednášky 2 Inicializace aplikace 3 Zpracování událostí 4 Časovač

Více

Vyplňování souvislé oblasti

Vyplňování souvislé oblasti Počítačová grafika Vyplňování souvislé oblasti Jana Dannhoferová (jana.dannhoferova@mendelu.cz) Ústav informatiky, PEF MZLU. Které z následujících tvrzení není pravdivé: a) Princip interpolace je určení

Více

OpenGL. referát na praktikum z informatiky. Daniel Čech

OpenGL. referát na praktikum z informatiky. Daniel Čech OpenGL referát na praktikum z informatiky Daniel Čech Co je OpenGL OpenGL (Open Graphics Library) je nízkoúrovňová knihovna pro práci s trojrozměrnou grafikou. Od doby svého uvedení na počátku devadesátých

Více

Připravil: David Procházka. Projekce

Připravil: David Procházka. Projekce 15. října 2013, Brno Připravil: David Procházka Projekce Počítačová grafika 2 Projekce Strana 2 / 38 Obsah přednášky 1 Projekce 2 Ortografická projekce 3 Perspektivní projekce 4 Nastavení pohledové matice

Více

Reflections, refractions, interreflections

Reflections, refractions, interreflections :: gs Reflections, refractions, interreflections Odrazy a lomy světla Grafické systémy David Sedláček 2004 :: fyzika Zákon odrazu Lom světla Snellův zákon Fresnelova rovnice poměr prošlého a odraženého

Více

Programování grafiky ÚVOD

Programování grafiky ÚVOD Programování grafiky ÚVOD Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 (Karlovo náměstí, budova E) E-mail: felkel@fel.cvut.cz S použitím materiálů Bohuslava Hudce, Jaroslava

Více

Programování grafiky ÚVOD

Programování grafiky ÚVOD Programování grafiky ÚVOD Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 (Karlovo náměstí, budova E) E-mail: felkel@fel.cvut.cz S použitím materiálů Bohuslava Hudce, Jaroslava

Více

Reprezentace 3D modelu

Reprezentace 3D modelu Ing. Jan Buriánek (ČVUT FIT) Reprezentace 3D modelu BI-MGA, 2010, Přednáška 8 1/25 Reprezentace 3D modelu Ing. Jan Buriánek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké

Více

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně Animace a geoprostor První etapa: Animace 3. přednáško-cvičení Jaromír Landa jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně Náplň přednáško-cvičení Nasvícení scény Světelné zdroje umělé

Více

Základy programování shaderů v OpenGL Část 2 - přenos dat

Základy programování shaderů v OpenGL Část 2 - přenos dat Základy programování shaderů v OpenGL Část 2 - přenos dat Petr Felkel, Jaroslav Sloup Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 (Karlovo náměstí, budova E) E-mail: felkel@fel.cvut.cz

Více

Hierarchický model. 1995-2013 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16

Hierarchický model. 1995-2013 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16 Hierarchický model 1995-2013 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16 Hierarchie v 3D modelování kompozice zdola-nahoru složitější objekty se sestavují

Více

Fakulta informačních technologíı. IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL 1 / 38

Fakulta informačních technologíı. IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL 1 / 38 IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL Tomáš Milet Ústav počítačové grafiky a multimédíı Fakulta informačních technologíı Vysoké učení technické Brno IZG cvičení 6. - Zobrazování 3D scény

Více

Pokročilé programování v jazyce C pro chemiky (C3220) 3D grafika v knihovně Qt

Pokročilé programování v jazyce C pro chemiky (C3220) 3D grafika v knihovně Qt Pokročilé programování v jazyce C pro chemiky (C3220) 3D grafika v knihovně Qt Rozhraní pro 3D grafiku Běžné grafické knihovny zpravidla podporují pouze 2D grafický výstup Pro 3D grafický výstup jsou využívány

Více

Textury. Petr Felkel, Jaroslav Sloup a Vlastimil Havran

Textury. Petr Felkel, Jaroslav Sloup a Vlastimil Havran Textury Petr Felkel, Jaroslav Sloup a Vlastimil Havran Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí E-mail: felkel@fel.cvut.cz Poslední změna: 16.6.2016 Textury

Více

Multimediální systémy. 11 3d grafika

Multimediální systémy. 11 3d grafika Multimediální systémy 11 3d grafika Michal Kačmařík Institut geoinformatiky, VŠB-TUO Osnova přednášky Princip 3d objekty a jejich reprezentace Scéna a její osvětlení Promítání Renderování Oblasti využití

Více

Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013

Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013 Katedra informatiky, Univerzita Palackého v Olomouci 27. listopadu 2013 Rekonstrukce 3D těles Reprezentace trojrozměrných dat. Hledání povrchu tělesa v těchto datech. Představení několika algoritmů. Reprezentace

Více

IDEA Frame 4. Uživatelská příručka

IDEA Frame 4. Uživatelská příručka Uživatelská příručka IDEA Frame IDEA Frame 4 Uživatelská příručka Uživatelská příručka IDEA Frame Obsah 1.1 Požadavky programu... 6 1.2 Pokyny k instalaci programu... 6 2 Základní pojmy... 7 3 Ovládání...

Více

Pokročilé osvětlovací techniky. 2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz

Pokročilé osvětlovací techniky. 2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz Pokročilé osvětlovací techniky 2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz Obsah nefotorealistické techniky hrubé tónování kreslení obrysů ( siluety ) složitější

Více

KATEDRA INFORMATIKY. Demonstrace OpenGL v prostředí LispWorks

KATEDRA INFORMATIKY. Demonstrace OpenGL v prostředí LispWorks PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE Demonstrace OpenGL v prostředí LispWorks 2014 Martin Křetínský Anotace Pojem OpenGL je v moderní počítačové grafice velmi

Více

3D počítačová grafika na PC. 2003 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/

3D počítačová grafika na PC. 2003 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/ 3D počítačová grafika na PC 2003 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/ Pokroky v hardware 3D akcelerace běžná i v konzumním sektoru zaměření na hry, multimedia vzhled kvalita prezentace

Více

Multimediální systémy. 02 Reprezentace barev v počítači

Multimediální systémy. 02 Reprezentace barev v počítači Multimediální systémy 02 Reprezentace barev v počítači Michal Kačmařík Institut geoinformatiky, VŠB-TUO Osnova přednášky Reprezentace barev v PC Způsoby míchání barev Barevné modely Bitová hloubka Barvy

Více

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze Promítání Pavel Strachota FJFI ČVUT v Praze 30. března 2011 Obsah 1 Úvod 2 Typy promítání 3 Matematický popis promítání 4 Implementace promítání Obsah 1 Úvod 2 Typy promítání 3 Matematický popis promítání

Více

Android OpenGL. Práce s texturami

Android OpenGL. Práce s texturami Android OpenGL Práce s texturami Textura Obrázek, který jsme schopní nanášet na 3D objekty S použitím shaderů mnohem víc než to Může obsahovat jiné vlastnosti povrchu, než jen barvu (reliéf, lesklost,

Více

Počítačová grafika 1. Úvod do grafiky, základní pojmy. Rastrová grafika.

Počítačová grafika 1. Úvod do grafiky, základní pojmy. Rastrová grafika. Počítačová grafika 1 Úvod do grafiky, základní pojmy. Rastrová grafika. Proč vůbec grafika? Zmrzlinový pohár s převažující červenou barvou. Základem je jahodová zmrzlina, která se nachází ve spodní části

Více

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016 Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016 Obsah 1 Zadání 1 2 Analýza úlohy 2 2.1 Uložení dat ze vstupního souboru................ 2 2.2 Graf

Více

Fakulta informačních technologíı. Rendering Seminář 1. 1 / 28

Fakulta informačních technologíı. Rendering Seminář 1. 1 / 28 Rendering Seminář 1. Tomáš Milet, Tomáš Starka Ústav počítačové grafiky a multimédíı Fakulta informačních technologíı Vysoké učení technické Brno Rendering Seminář 1. 1 / 28 OpenGL OpenGL je architektura

Více

Základy programování shaderů v OpenGL Část 2 - přenos dat

Základy programování shaderů v OpenGL Část 2 - přenos dat Základy programování shaderů v OpenGL Část 2 - přenos dat Petr Felkel, Jaroslav Sloup Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 (Karlovo náměstí, budova E) E-mail: felkel@fel.cvut.cz

Více

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro SCIA CZ, s. r. o. Slavíčkova 1a 638 00 Brno tel. 545 193 526 545 193 535 fax 545 193 533 E-mail info.brno@scia.cz www.scia.cz Systém programů pro projektování prutových a stěnodeskových konstrukcí NEXIS

Více

SPIRIT 2012. Nové funkce. SOFTconsult spol. s r. o., Praha

SPIRIT 2012. Nové funkce. SOFTconsult spol. s r. o., Praha SPIRIT 2012 Nové funkce SOFTconsult spol. s r. o., Praha Informace v tomto dokumentu mohou podléhat změnám bez předchozího upozornění. 01/2012 (SPIRIT 2012 CZ) Revize 1 copyright SOFTconsult spol. s r.

Více

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48 LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám

Více

GRAFICKÉ ADAPTÉRY. Pracovní režimy grafické karty

GRAFICKÉ ADAPTÉRY. Pracovní režimy grafické karty GRAFICKÉ ADAPTÉRY Grafický adaptér (též videokarta, grafická karta, grafický akcelerátor) je rozhraní, které zabezpečuje výstup obrazových dat z počítače na zobrazovací jednotku (monitor, displej, dataprojektor,

Více

Základní ovládání a práce s programem CorelDraw 11

Základní ovládání a práce s programem CorelDraw 11 2. Základní ovládání a práce s programem CorelDraw 11 Základní informace Program Corel Draw je produktem kanadské společnosti Corel corporation a je jedním z mnoha programů které při zakoupení balíku Corel

Více

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1 SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ SOFTWARE FOR PROCESSING OF POINT CLOUDS FROM LASER SCANNING Martin Štroner, Bronislav Koska 1 Abstract At the department of special geodesy is

Více

NPGR019. Geometry & tessellation shaders. MFF UK Praha. Vykreslování v OpenGL Tessellation shaders Geometry shaders Literatura

NPGR019. Geometry & tessellation shaders.   MFF UK Praha. Vykreslování v OpenGL Tessellation shaders Geometry shaders Literatura Hardware pro počítačovou grafiku NPGR019 Geometry & tessellation shaders Jan Horáček http://cgg.mff.cuni.cz/ MFF UK Praha 2012 Jan Horáček Geometry & Tesselation 1 / 42 Obsah Propojení Vykreslování Instancované

Více

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. haptického pera

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. haptického pera Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce Ohmatávání a modifikace geometrických modelů pomocí haptického pera Plzeň, 2013 Barbora

Více

Obsah. Položkování 1: Prefix dřívějších osamocených dílů se zachovává...23 Položkování 2: Editace předběžných čísel...23

Obsah. Položkování 1: Prefix dřívějších osamocených dílů se zachovává...23 Položkování 2: Editace předběžných čísel...23 Obsah VÍTEJTE V ADVANCE STEEL 2013, ČÁSTÍ ŘEŠENÍ GRAITEC BIM... 5 ADVANCE CAD DOSTUPNÁ 64BITOVÁ PLATFORMA... 6 VYLEPŠENÍ PLATFORMY ADVANCE CAD 2013... 7 NOVÁ PALETA NÁSTROJŮ... 8 MODELOVÁNÍ... 9 Modelování

Více

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d. Úloha 1 Která barva nepatří do základních barev prostoru RGB? a. Černá b. Červená c. Modrá d. Zelená Úloha 2 V rovině je dán NEKONVEXNÍ n-úhelník a bod A. Pokud paprsek (polopřímka) vedený z tohoto bodu

Více

Programování v jazyku C# II. 4.kapitola

Programování v jazyku C# II. 4.kapitola Programování v jazyku C# II. 4.kapitola Obsah GDI + Vlastní kontrolky 2/37 GDI+ Graphics Device Interface Služba Windows framework poskytuje obalující třídy Umožňuje programování 2D grafiky bez znalosti

Více

Počítačové zpracování obrazu Projekt Učíme se navzájem

Počítačové zpracování obrazu Projekt Učíme se navzájem Počítačové zpracování obrazu Projekt Učíme se navzájem Tomáš Pokorný, Vojtěch Přikryl Jaroška 15. ledna 2010 Tomáš Pokorný email: xtompok@gmail.com Jaroška 1 Obsah Abstrakt! 4 Začátky! 5 M&M 5 Původní

Více

PB001: Úvod do informačních technologíı

PB001: Úvod do informačních technologíı PB001: Úvod do informačních technologíı Luděk Matyska Fakulta informatiky Masarykovy univerzity podzim 2013 Luděk Matyska (FI MU) PB001: Úvod do informačních technologíı podzim 2013 1 / 29 Obsah přednášky

Více

CGI. Computer generated imagery Počítačové triky Animované filmy Počítačové hry. Technologické trendy v AV tvorbě, CGI 2

CGI. Computer generated imagery Počítačové triky Animované filmy Počítačové hry. Technologické trendy v AV tvorbě, CGI 2 CGI Computer generated imagery Počítačové triky Animované filmy Počítačové hry Technologické trendy v AV tvorbě, CGI 2 CGI Šíření světla v prostoru Možnosti simulace šíření v PC Pohyby CGI objektů Technologické

Více

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6 Lubomír Vašek Zlín 2013 Obsah... 3 1. Základní pojmy... 3 2. Princip rastrové reprezentace... 3 2.1 Užívané

Více

Základní ovládání a práce s programem Rhinoceros 3D

Základní ovládání a práce s programem Rhinoceros 3D přednáška 2 Základní ovládání a práce s programem Rhinoceros 3D Program Rhinoceros 3D po spuštění zobrazí základní pracovní prostor, který je složen ze čtyř pracovních oken zobrazujících vytvářený model

Více

Univerzita Pardubice Fakulta ekonomicko-správní. Počítačová grafika a geometrické transformace v rovině a prostoru. Eva Hladíková

Univerzita Pardubice Fakulta ekonomicko-správní. Počítačová grafika a geometrické transformace v rovině a prostoru. Eva Hladíková Univerzita Pardubice Fakulta ekonomicko-správní Počítačová grafika a geometrické transformace v rovině a prostoru Eva Hladíková Bakalářská práce 2010 Čestné prohlášení Prohlašuji, že jsem tuto práci

Více

BRICSCAD V13 X-Modelování

BRICSCAD V13 X-Modelování BRICSCAD V13 X-Modelování Protea spol. s r.o. Makovského 1339/16 236 00 Praha 6 - Řepy tel.: 235 316 232, 235 316 237 fax: 235 316 038 e-mail: obchod@protea.cz web: www.protea.cz Copyright Protea spol.

Více

Perspektiva jako matematický model objektivu

Perspektiva jako matematický model objektivu Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Semestrální práce z předmětu KMA/MM Perspektiva jako matematický model objektivu Martin Tichota mtichota@students.zcu.cz

Více

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,

Více

Počítačová grafika letem světem

Počítačová grafika letem světem 1 Počítačová grafika letem světem 2002 Jiří Sochor FI MU Brno sochor@fi.muni.cz http://www.fi.muni.cz/usr/sochor/ 2 Analýza a syntéza obrazu (obrazová) data modelová ní modely analýza (obrazu) syntéza

Více

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace 1) Charakterizujte křížový překladač Překlad programu probíhá na jiném procesoru, než exekuce. Hlavním důvodem je náročnost překladače na cílovém stroji by ho nemuselo být možné rozběhnout. 2. Objasněte

Více

Program pro zobrazení černobílých snímků v nepravých barvách

Program pro zobrazení černobílých snímků v nepravých barvách Rok / Year: Svazek / Volume: Číslo / Number: 2010 12 6 Program pro zobrazení černobílých snímků v nepravých barvách Pseudo-colour Paging of the Monochromatic Picture Libor Boleček xbolec01@stud.feec.vutbr.cz

Více

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li: 13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže

Více

Reprezentace bodu, zobrazení

Reprezentace bodu, zobrazení Reprezentace bodu, zobrazení Ing. Jan Buriánek VOŠ a SŠSE P9 Jan.Burianek@gmail.com Obsah Témata Základní dělení grafických elementů Rastrový vs. vektorový obraz Rozlišení Interpolace Aliasing, moiré Zdroje

Více

Programovací stanice itnc 530

Programovací stanice itnc 530 Programovací stanice itnc 530 Základy programování výroby jednoduchých součástí na CNC frézce s řídícím systémem HEIDENHAIN VOŠ a SPŠE Plzeň 2011 / 2012 Ing. Lubomír Nový Stanice itnc 530 a možnosti jejího

Více

Zobrazovací řetězec a obrazová paměť, operace s fragmenty

Zobrazovací řetězec a obrazová paměť, operace s fragmenty Zobrazovací řetězec a obrazová paměť, operace s fragmenty Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí E-mail: felkel@fel.cvut.cz S použitím materiálů

Více

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

Seznámení Corel Draw. PDF vytvořeno zkušební verzí pdffactory Pro www.fineprint.cz. Panel Vlastnosti. panel základních kreslicích nástrojů

Seznámení Corel Draw. PDF vytvořeno zkušební verzí pdffactory Pro www.fineprint.cz. Panel Vlastnosti. panel základních kreslicích nástrojů Seznámení Corel Draw Okno programu Objeví se po spuštění, většinou je připraven nový, prázdný dokument, obvyklá velikost A4. Pamatujme, že na běžném monitoru se stránka zobrazí menší, takže při tisku budou

Více

2. RBF neuronové sítě

2. RBF neuronové sítě 2. RBF neuronové sítě Kapitola pojednává o neuronových sítích typu RBF. V kapitole je popsána základní struktura tohoto typu neuronové sítě. Poté následuje definice a charakteristika jednotlivých radiálně

Více

ÚVOD DO PROBLEMATIKY PIV

ÚVOD DO PROBLEMATIKY PIV ÚVOD DO PROBLEMATIKY PIV Jiří Nožička, Jan Novotný ČVUT v Praze, Fakulta strojní, Ú 207.1, Technická 4, 166 07, Praha 6, ČR 1. Základní princip PIV Particle image velocity PIV je měřící technologie, která

Více

OBSAH. ÚVOD...5 O Advance CADu...5 Kde nalézt informace...5 Použitím Online nápovědy...5. INSTALACE...6 Systémové požadavky...6 Začátek instalace...

OBSAH. ÚVOD...5 O Advance CADu...5 Kde nalézt informace...5 Použitím Online nápovědy...5. INSTALACE...6 Systémové požadavky...6 Začátek instalace... OBSAH ÚVOD...5 O Advance CADu...5 Kde nalézt informace...5 Použitím Online nápovědy...5 INSTALACE...6 Systémové požadavky...6 Začátek instalace...6 SPUŠTĚNÍ ADVANCE CADU...7 UŽIVATELSKÉ PROSTŘEDÍ ADVANCE

Více

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování problematika geometrického modelování manifold, Eulerova rovnost základní typy modelů hranový model stěnový model objemový model datové reprezentace modelů základní metody geometrického modelování těleso

Více

Přibližný výpočet efektů globálního osvětlení na GPU

Přibližný výpočet efektů globálního osvětlení na GPU České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce Diplomová práce Přibližný výpočet efektů globálního osvětlení na GPU Bc. Miroslav Novotný Vedoucí práce:

Více

Programování shaderů GLSL

Programování shaderů GLSL Programování shaderů GLSL Příklad vertex shader Tutor1-Flat Změna geometrie ve VS Nastavení z podle hodnoty získané z aplikace uniform App: loc=gl.glgetuniformlocation(sp,"ftime0_x"); gl.gluniform1f(loc,time);

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Úlohy nad rastrovými daty Daniela

Více

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010 Ing. Jan Buriánek (ČVUT FIT) Reprezentace bodu a zobrazení BI-MGA, 2010, Přednáška 2 1/33 Ing. Jan Buriánek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické

Více

Základy OpenGL Josef Pelikán CGG MFF UK Praha. OpenGL / 34

Základy OpenGL Josef Pelikán CGG MFF UK Praha.  OpenGL / 34 Základy OpenGL 2003-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 34 Pokroky v hardware 3D akcelerace běžná i v konzumním sektoru hry, multimedia, i mobilní

Více

Transformace 2D. Transformace. Souřadnicové systémy. Vektorová a rastrová grafika. Přednáška 7

Transformace 2D. Transformace. Souřadnicové systémy. Vektorová a rastrová grafika. Přednáška 7 Přednáška 7 Transformace D Transformace Transformace je proces, při kterém dochází ke změně poloh, orientace nebo velikosti jednotlivých zobrazovaných objektů (geometrie objektů. Transformace souřadnicového

Více

Sada 1 CAD1. 13. Zobrazování RGB

Sada 1 CAD1. 13. Zobrazování RGB S třední škola stavební Jihlava Sada 1 CAD1 13. Zobrazování RGB Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a zkvalitnění

Více

Semestrální práce KIV/MHS

Semestrální práce KIV/MHS Semestrální práce KIV/MHS Mixed-reality displej 14. července 2012 Lukáš Jirkovský stativ@students.zcu.cz 1 Zadání Cílem práce je sestavit displej založený na projekci obrazu na průhlednou holografickou

Více

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech."

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: Grafická data jsou u 2D vektorové grafiky uložena ve voxelech. Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech." Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Na

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS VIRTUÁLNÍ INTERAKTIVNÍ

Více

11 Zobrazování objektů 3D grafiky

11 Zobrazování objektů 3D grafiky 11 Zobrazování objektů 3D grafiky Studijní cíl Tento blok je věnován základním algoritmům zobrazení 3D grafiky. Postupně budou probrány základní metody projekce kolmé promítání, rovnoběžné promítání a

Více

Teorie barev. 1. Barvený model. 2. Gamut. 3. Barevný prostor. Barevný prostor různých zařízení

Teorie barev. 1. Barvený model. 2. Gamut. 3. Barevný prostor. Barevný prostor různých zařízení Teorie barev 1. Barvený model Barevný model představuje metodu (obvykle číselnou) popisu barev. Různé barevné modely popisují barvy, které vidíme a se kterými pracujeme v digitálních obrazech a při jejich

Více

Co je grafický akcelerátor

Co je grafický akcelerátor Co je grafický akcelerátor jednotka v osobním počítači či herní konzoli přebírá funkce hlavního procesoru pro grafické operace graphics renderer odlehčuje hlavnímu procesoru paralelní zpracování vybaven

Více

Úvod do počítačové grafiky

Úvod do počítačové grafiky Úvod do počítačové grafiky elmag. záření s určitou vlnovou délkou dopadající na sítnici našeho oka vnímáme jako barvu v rámci viditelné části spektra je člověk schopen rozlišit přibližně 10 milionů barev

Více

Text úlohy. Vyberte jednu z nabízených možností:

Text úlohy. Vyberte jednu z nabízených možností: 2. pokus 76% Úloha 1 V rovině je dán NEKONVEXNÍ n-úhelník a bod A. Pokud paprsek (polopřímka) vedený z tohoto bodu A má (po vynechání vodorovných hran a rozpojení zbývajících hran) celkově 4 průsečíky

Více

3D ANIMACE POSTAVY V POČÍTAČOVÉ GRAFICE ANIMATION OF 3D CHARACTER IN COMPUTER GRAPHICS

3D ANIMACE POSTAVY V POČÍTAČOVÉ GRAFICE ANIMATION OF 3D CHARACTER IN COMPUTER GRAPHICS VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

Více

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry. Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít

Více

Algoritmus sledování objektů pro funkční vzor sledovacího systému

Algoritmus sledování objektů pro funkční vzor sledovacího systému Algoritmus sledování objektů pro funkční vzor sledovacího systému Technická zpráva - FIT - VG20102015006 2014-04 Ing. Filip Orság, Ph.D. Fakulta informačních technologií, Vysoké učení technické v Brně

Více

LIGHTS AND SHADOWS SCENE ILLUMINATION RADIOSITY HDRI

LIGHTS AND SHADOWS SCENE ILLUMINATION RADIOSITY HDRI 3.1 LIGHTS AND SHADOWS - SVĚTLA A STÍNY Použití správných světel a osvětlení je ve scéně stejně důležité jako kvalitní nastavení materiálů. Vhodný model osvětlení dodá scéně patřičný efekt a hloubku. Každá

Více

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k 1. 9. 2009)

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k 1. 9. 2009) Střední průmyslová škola Jihlava tř. Legionářů 1572/3, Jihlava Dodatek č. 3 ke školnímu vzdělávacímu programu Strojírenství (platné znění k 1. 9. 09) Tento dodatek nabývá platnosti dne 1. 9. 13 (počínaje

Více

Kde se používá počítačová grafika

Kde se používá počítačová grafika POČÍTAČOVÁ GRAFIKA Kde se používá počítačová grafika Tiskoviny Reklama Média, televize, film Multimédia Internetové stránky 3D grafika Virtuální realita CAD / CAM projektování Hry Základní pojmy Rastrová

Více

Rámcový manuál pro práci s programem TopoL pro Windows

Rámcový manuál pro práci s programem TopoL pro Windows Rámcový manuál pro práci s programem TopoL pro Windows Příkazy v nabídce Předmět Volba rastru rychlá klávesa F4 Příkaz otevře vybraný rastr; tj. zobrazí ho v předmětu zájmu. Po vyvolání příkazu se objeví

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

TECHNICKÁ UNIVERZITA V LIBERCI FAKULTA UMĚNÍ A ARCHITEKTURY. Studijní program: B8206 Výtvarná umění. Obor: Vizuální komunikace BAKALÁŘSKÁ PRÁCE

TECHNICKÁ UNIVERZITA V LIBERCI FAKULTA UMĚNÍ A ARCHITEKTURY. Studijní program: B8206 Výtvarná umění. Obor: Vizuální komunikace BAKALÁŘSKÁ PRÁCE TECHNICKÁ UNIVERZITA V LIBERCI FAKULTA UMĚNÍ A ARCHITEKTURY Studijní program: B8206 Výtvarná umění Obor: Vizuální komunikace BAKALÁŘSKÁ PRÁCE JAN VALENTA Vedoucí bakalářské práce: Doc. Stanislav Zippe

Více

Základní techniky zobrazování Josef Pelikán, MFF UK Praha

Základní techniky zobrazování Josef Pelikán, MFF UK Praha Základní techniky zobrazování 2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz Obsah výpočet viditelnosti ( depth-buffer ) obrazové buffery ( frame buffers )

Více

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Jazyk VHDL zápis čísel, znaků a řetězců Jazyk VHDL základní datové typy a operátory Kurz

Více

Práce na počítači. Bc. Veronika Tomsová

Práce na počítači. Bc. Veronika Tomsová Práce na počítači Bc. Veronika Tomsová Barvy Barvy v počítačové grafice I. nejčastější reprezentace barev: 1-bitová informace rozlišující černou a bílou barvu 0... bílá, 1... černá 8-bitové číslo určující

Více

Obsah. Začínáme pracovat v InventorCAMu - frézování. 1995-2009 SolidCAM WWW.INVENTORCAM.CZ. All Rights Reserved.

Obsah. Začínáme pracovat v InventorCAMu - frézování. 1995-2009 SolidCAM WWW.INVENTORCAM.CZ. All Rights Reserved. Obsah Začínáme pracovat v InventorCAMu - frézování WWW.INVENTORCAM.CZ 1995-2009 SolidCAM All Rights Reserved. 1 2 2 Obsah Obsah 1. Přehled modulů InvnetorCAMu... 11 1.1 2.5D Frézování... 12 1.2 Obrábění

Více

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006 Vypracoval: Marek Handl Datum: červen 2006 X36SOJ Strojově orientované jazyky Semestrální práce Téma: Arkanoid Úvod Program je verzí klasické hry Arkanoid. Na herní ploše jsou rozloženy kostičky, které

Více