Zobrazovací řetězec a obrazová paměť, operace s fragmenty
|
|
- Miloslava Nováková
- před 6 lety
- Počet zobrazení:
Transkript
1 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í felkel@fel.cvut.cz S použitím materiálů Bohuslava Hudce, Jaroslava Sloupa a úprav Vlastimila Havrana Poslední změna:
2 Zbývající bloky zobrazovacího řetězce Obrázek převzat od Davida Ambrože 2
3 Od vrcholu k fragmentu Obrázek převzat od Davida Ambrože 3
4 Od vrcholu k fragmentu Po průchodu vertex shaderem vstupují vrcholy do fixní části zobrazovacího řetězce sestavení primitiva (primitive assembly) ořezání do pohledového jehlanu (clipping) převod z homogenních souřadnic (Divide-by-W) umístění na obrazovku (Viewport) rasterizace a interpolace (Rasterizer) Pak následuje fragment shader V něm se spočítá výsledná barva fragmentu Fragment jsou všechna data adresovaná souřadnicemi jednoho konkrétního pixelu, viz dále. 4
5 Od vrcholu k fragmentu VS VS VS Primitive Assembler [Gortler] 5
6 Ořezání (clipping) Ořezání odstraní geometrii mimo pohledový jehlan (viewing frustrum) - top, bottom, left, right, near, far Tedy i části primitiv za kamerou Šetří se tím rasterizace a výpočty (nepočítá se to, co není vidět) Vznikají nové vrcholy [ Okraj okna [ 6
7 Ve kterých souřadnicích ořezávat? V souřadnicích kamery? => Ne, ještě neproběhla projekce. V normalizovaných souřadnicích (po dělení )? => Ne, již došlo k překlopení vrcholů za kamerou V ořezových souřadnicích (clip-space)? => ANO ještě nedošlo k dělení, trojúhelník je ve 4D < < < < < < Závěr: Pozice i atributy nových vrcholů se počítají v ořezových souřadnicích a v nich se lineárně interpolují (až pak se násobí interpolovaným => perspektivně správná interpolace) 7
8 Odstranění části primitiv za kamerou Trojúhelník na podlaze se promítne na stínítko jako úsečka Frustrum stínítko Rasterizované fragmenty mezi promítnutými vrcholy Vrchol před kamerou trojúhelník z boku Chybně mezi průměty vrcholů (po dělení w) Vrchol za kamerou Fragmenty od průmětu předního vrcholu dolů Správně má být od průmětu předního dolů (před dělením w) Vykreslujeme totiž fragmenty mezi průměty koncových bodů adělení = překlopí oba vrcholy do stejné průmětny [Gortler] tedy průmět po ořezání 8
9 Backface Culling Eliminace odvrácených plošek U uzavřených těles (watertight) nikdy nevidíme odvrácenou stěnu Vrcholy zadáváme proti směru hodinových ručiček (ccw) Pak stačí vyřadit plošky s odvrácenou normálou = [flylib.com] back face = if(. < ) front back 9
10 Viewport Transformuje pozici vrcholu z normalizovaných souřadnic zařízení 1, 1, do souřadnic na obrazovce (pozice fragmentu na stínítku) do intervalu 0, 1, reprezentující vzdálenost od stínítka znear => 0, zfar => 1!!! používá se k určování viditelnosti vykreslovaných objektů Normalizované souřadnice zařízení [x d y d z d ] t Souřadnice formátu na obrazovce [x w y w z w ] t 1 w screen o viewport h 1 x y 10 0
11 Viewport zvlášť posun a scale Matice transformace záběru (pracoviště) viz předn = h h Normalizované souřadnice zařízení [x d y d z d ] t Souřadnice formátu na obrazovce [x w y w z w ] t 1 w screen o viewport h 1 x y 11 0
12 Viewport Matice transformace záběru (pracoviště) viz předn = h h Normalizované souřadnice zařízení [x d y d z d ] t Souřadnice formátu na obrazovce [x w y w z w ] t 1 w screen o viewport h 1 x y 12 0
13 Pixel coordinates y ová souřadnice okna levý dolní roh okna Souřadnice pixelu = souřadnice jeho levého dolního rohu - pixel (x, y) pokrývá plochu mezi x,y a x+1, y+1 střed tedy má v bodě [x+0,5, y+0,5] region occupied by a pixel (2, 1) X-ová souřadnice okna 13
14 Rasterizace Vygeneruje fragmenty Interpoluje hodnoty atributů (detaily viz 2) 14
15 Framebuffer vrstvy obrazové paměti Obrázek převzat od Davida Ambrože 15
16 Obrazová paměť framebuffer dříve 3.3 Součásti (vrstvy, roviny) obrazové paměti akumulační (accum.) šablona (stencil) hloubka (depth) minimum barva (AUXi) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) Pixel v různých rovinách obrazové paměti 16
17 Obrazová paměť framebuffer nyní 4.0 Součásti (vrstvy, roviny) obrazové paměti minimum šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) 17
18 Paměť barvy - color buffer (1) Barva RGB(A) Kreslí se do ní viditelné šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) neviditelné barva (BACK-RIGHT) barva (FRONT-RIGHT) 18
19 Paměť barvy - color buffer (2) Minimální konfigurace OpenGL - FRONT_LEFT Stereo, double buffer - podporován? glgetbooleanv( GL_STEREO, &b ); glgetbooleanv( GL_DOUBLEBUFFER, &b ); šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) Výběr, kam se kreslí barva fragmentů gldrawbuffer( GLenum mode ); // jedna paměť GL_NONE, nekreslí se nic GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, jedna paměť gldrawbuffers(glsizei n, const GLenum * bufs); // n pamětí multiple rendering targets (viz 2) GL_COLOR_ATTACHMENTn pro FBO (framebuffer object) 19
20 Paměť barvy - color buffer (3) Barva v BACK bufferu RGB(A), Kreslí se do ní na pozadí (není vidět) Přepíná se s FRONT bufferem glutswapbuffers(); Má typicky bitů (RGBA) šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) Výběr roviny na kreslení Mono: gldrawbuffer(gl_back_left); // GL_BACK Stereo: gldrawbuffer(gl_back_left); cameral();draw(); gldrawbuffer(gl_back_right);camerar();draw(); Výběr zdroje pro čtení glcopypixels(); glreadbuffer(gl_back_left); 20
21 Paměť hloubky depth buffer (1) Hloubka (depth-, Z-buffer Br [zed], Am [zee]) vzdálenost oko-pixel typické použití: viditelnost (vzdálenější pixel je přepsán bližším) akumulační(accum.) šablona (stencil) hloubka (depth) barva (AUXi) barva (BACK-LEFT) barva (FRONT-LEFT) Blízká tělesa zakrývají vzdálená tělesa Bližší fragmenty překreslí ty vzdálenější Fragmenty, které jsou dále se zahodí (stejně by nebyly vidět) Lze řešit viditelnost bez paměti hloubky? 21
22 Princip paměti hloubky (2) Pro každý pixel je uložena hloubka naposledy nakresleného fragmentu Fragment se nakreslí, jen když je blíž Pro přehlednost s celočíselnou hloubkou (namísto ) Rendering order of triangles first second depth buffer fragments new depth buffer 22
23 Paměť hloubky depth buffer (3) Hloubka (depth) Vzdálenost pixelu od stínítka <0,1> Near je 0.0, far je 1.0 Má obvykle 24 bitů na pixel šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) Nastavení v programu při výběru kontextu glutinitdisplaymode( GLUT_DEPTH ); glenable( GL_DEPTH_TEST ); // zapnutí hloubkového testu gldepthmask( GL_TRUE ); // povolení aktualizace Použití viz dále glclear(. GL_DEPTH_BUFFER_BIT ); // smazání DrawObjectsInTheScene(); 23
24 Paměť šablony stencil buffer Šablona (stencil) lze označit pixely, kam se smí / nesmí kreslit jedna či více bitových rovin (bitplane) pomocí masky se zvolí bitová rovina přímo se nekreslí (dle paměti barvy) používá se ve víceprůchodových algoritmech pro speciální efekty: obtisky (decals), získání obrysu (outlining), odrazy (v zrcadle, ve vodě), a zobrazování CSG modelů (constructive solid geometry). Typicky 8 bitů na pixel šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGH barva (FRONT-RIGHT 24
25 Šablona stencil a zrcadlový odraz Nakreslí se 1. Zrcadlo do šablony 2. Převrácená scéna (opačný test hloubky, CW front triangles) 3. Původní scéna Převrácená scéna Bez šablony Omezeno šablonou 25
26 Šablona - stencil Se šablonou bez šablony [Sulaco] [O Reilly] 27
27 Operace s celou pamětí obrazu Obrázek převzat od Davida Ambrože 28
28 Počet bitových rovin - bitplanes Inicializace paměti obrazu () v GLUTu glutinitdisplaymode( GLUT_RGB // only RGB, no alpha GLUT_DEPTH // depth buffer GLUT_STENCIL // stencil buffer GLUT_DOUBLE // double buffer(front + back) ); Příklad na notebooku: Color buffer: [r,g,b,a] = [8, 8, 8, 8] bits Depth buffer: depth = 24 bits Stencil buffer: 8 bits Auxiliary color buffers: 4 Double buffer: supported Stereo: not supported 29
29 Mazání pamětí (buffers) pro vykreslování Smazání vybraných pamětí void glclear( GLbitfield mask ); mask které paměti smazat GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, GL_STENCIL_BUFFER_BIT, 30
30 Mazání pamětí Nastavení mazací hodnoty pro jednotlivé roviny void glclearcolor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); void glcleardepth( GLclampd h ); void glclearstencil( GLint s ); Hloubka h je z intervalu <0,1>. Implicitní hodnota h = 1.0 ~ zfar Ostatní parametry mají implicitní hodnotu 0, resp 0.0f. 31
31 Maskování zápisu do obrazové paměti Do paměti se zapíše, jen pokud je to povoleno maskou Nastavení masky (true zapisuje, false ne) void glcolormask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); void gldepthmask( GLboolean flag ); void glstencilmask( GLuint mask ); Implicitně všechny na GL_TRUE a GLuint na samé jedničky 32
32 Testy a operace s jednotlivými fragmenty Obrázek převzat od Davida Ambrože 33
33 Testování fragmentů Po rasterizaci víme, které fragmenty vznikly, jakou mají barvu, hloubku, případně i další informace - normálu, vektor ke světlu, (fragmenty = možné budoucí pixely s hloubkou, barvou, ) Fragment musí projít ještě řadu testů a operací Test. na konci je obrazová paměť (color, depth, stencil) povolí či zakáže daný fragment může změnit hodnotu příslušné paměti test hloubky aktualizuje hloubku pixelu v paměti hloubky test šablony změní hodnotu v šabloně 34
34 Testování fragmentů a operace s fragmenty Enable/Disable Scissor test šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) 35
35 Testování fragmentů a operace s fragmenty 1. Výstřižek (Scissor test) 2. Test šablony (Stencil test) 3. Test hloubky (Depth test) 4. Míchání (Blending) 5. Logické operace 3 testy 2 operace 36
36 1. test: Výstřižek (scissor test) (1) Enable/Disable Scissor test šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) 37
37 1. test: Výstřižek (scissor test) (2) Kreslení pouze do obdélníkové oblasti okna rychlá verze šablony (stencil) vhodná k aktualizaci změněné části obrazu y h w void glscissor( GLint x, GLint y, GLsizei w, GLsizei h ); x, y dolní levý roh w, h šířka a výška 1 x Tři různé výstřižky glenable( GL_SCISSOR );
38 3. test Hloubkový test (depth test) (1) Enable/Disable Scissor test šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) 39
39 3. test Hloubkový test (depth test) (2) Pro každý pixel uložena vzdálenost ke stínítku rozsah jako složky barvy 0, 1 znear => 0, zfar => 1!!! Hloubkový test určí viditelnost fragmentu if( depth_test_passes ) propusť pixel a nahraď hloubku novou hodnotou Nastavení testovací funkce void gldepthfunc( GLenum func ); func funkce pro porovnávání ( fragmentu s uloženou pixelu) GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, a GL_ALWAYS 41
40 3. test Hloubkový test (depth test) (3) Režimy paměti hloubky (Z-buffer) Test vypnut gldisable( GL_DEPTH_TEST ); Test zapnut glenable( GL_DEPTH_TEST ); povolena aktualizace zbufferu gldepthmask( GL_TRUE ); zakázána aktualizace zbufferu gldepthmask( GL_FALSE ); 42
41 3. test Hloubkový test (depth test) (4) Pro každý pixel uložena vzdálenost k oku (ke kameře) if(enabled) if( test depth passed ) pass the fragment if( mask ) update Z-buffer else // depth failed discard the fragment else // disabled pass the fragment do not update Z-buffer // ignore the depth mask 43
42 ++ 3. test Hloubkový test (depth test) (5) void gldepthrange( GLclampd znear, GLclampd zfar ); defines the linear mapping of NDC with window space z normalized device coordinates NDC z -1, 1 window space coordinates z window 0, 1 range as colors Standard settings: znear => 0, zfar => 1!!! Special usage: When using the GL_EQUAL and GL_NOTEQUAL depth comparisons in order to reduce the number of available values Selectively clear the depth buffer behind object (e.g. mirror) gldepthrange(1,1); // selective depth clear gldepthfunc(gl_always); // pass all ignore depth drawobject(); 44
43 Example: Selectively clear the depth buffer (e.g. in place of mirror) Set mask values to 1 in place of visible parts of the mirror 2. Selectively clear Z behind reflections - where (stencil == 1) glcolormask(0,0,0,0); // draw no color gldepthrange(1,1); // selective depth clear gldepthfunc(gl_always); // pass all fragments ignore depth glstencilfunc(gl_equal, 1, ~0); // visible fragments of the mirror glstencilop(gl_keep, GL_KEEP,GL_KEEP); // keep the stencil drawreflections(); // just clear the depth behind 45
44 Z-fighting Two ore more primitives have similar values in Z-buffer (precision of n-bits) Typical for coplanar polygons Fragments are rendered randomly from one or another who wins the z test on that particular position Overall effect Flickering when moving Noisy rasterization polygons fight to color the pixel Reduction Set the near plane farther away from camera Increase size of z-buffer 8-bit, (16-bit), 24-bit or 32-bit Z-buffer Z-buffer offset in screen space (after transformations) Stencil buffer (do not draw 2 nd polygon to the fragment of the 1 st one) 46
45 2. test: Šablona (stencil test) (1) Enable/Disable Scissor test šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) 48
46 2. test: Šablona (stencil test) (2) Stencil test Porovná referenční hodnotu ref s hodnotou pixelu v šabloně s Podle výsledku porovnání (true / false) propustí či nepropustí fragment - glstencilfunc() a modifikuje obsah šablony (3) - glstencilop() porovnává jen bity které mají 1 v masce mask Modifikace závisí i na testu hloubky (depth test) Tři různé kombinace -> tři modifikující operace fail porovnání šablony neuspělo zfail porovnání šablony uspělo, neuspěl test hloubky (vzadu, zakryto) zpass porovnání šablony uspělo, uspěl test hloubky (nebo je zakázán) (vpředu) glenable(gl_stencil_test); Povolí test i modifikaci šablony glstencilmask(gluint mask); Maskování jen některých bitů 49
47 2. test: Šablona (stencil test) (3) Funkcionalita nad fragmenty je následující: fragment Stencil test Testovací funkce a maska: glstencilfunc(glenum func, GLint ref, GLuint mask); sfail Depth test (z-test) zfail zpass Aktualizace stencil bufferu: glstencilop(sfail, zfail, zpass); 50
48 2. test: Šablona (stencil test) (4) void glstencilfunc( GLenum func, GLint ref, GLuint mask ); Nastavuje porovnávání porovnávací funkci func GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL a GL_ALWAYS např.: GL_LESS => if( ref < pixelstencilvalue ) then true referenční hodnotu ref (default 0) = konstanta S ní se porovnává, nebo se zapíše do masky masku mask (samé 1) přesněji dolních s bitů odpovídá s bitům šablony bitový AND (&) určí bitové roviny k porovnání např.: GL_LESS => if( ref & mask) < ( stencil & mask) then true Porovnávácí funkce GL_LESS, GL_GREATER atd. 51
49 2. test: Šablona (stencil test) (5) void glstencilop( GLenum fail, GLenum zfail, GLenum zpass ) Nastavuje modifikující operace pro hodnoty ve stencil buffer funkce modifikující data ve stencil bufferu fail porovnání šablony neuspělo zfail porovnání šablony uspělo, neuspěl test hloubky zpass porovnání šablony uspělo, uspěl test hloubky (nebo je zakázán) GL_KEEP (nemění šablonu) GL_ZERO (nastaví na 0) GL_REPLACE (nastaví na ref zadané glstencilfunc) GL_INCR, GL_INCR_WRAP (inkrementace šablony ) GL_DECR, GL_DECR_WRAP (dekrementace šablony ) GL_INVERT (inverze bitů) 52
50 2. test: Šablona (stencil test) (6) Příklad kreslení vymezené trojúhelníkem Červený trojúhelník se nakreslí a přitom naplní šablonu 1 Pak se kreslí zelený čtverec pouze tam, kde je v šabloně 1 (zbyde z něj jen zelená část bez rohů) Pak se kreslí modrý čtverec pouze tam, kde je v šabloně 0 (zbydou z něj jen modré rohy) glstencilfunc(gl_always, 1, 1); zpass glstencilop(gl_keep, GL_KEEP, GL_REPLACE); drawredtriangle(); ref mask glstencilfunc(gl_equal, 1, 1); zpass glstencilop(gl_keep, GL_KEEP, GL_KEEP); drawgreenpolygon(); glstencilfunc(gl_notequal, 1, 1); drawbluepolygon(); 53
51 2. test: Šablona (stencil test) (6a) RGB fragment Stencil 1 == 1 <> 1 Passed Frame buffer 54
52 2. test: Šablona (stencil test) (7) Příklad kreslení do kosočtverce a mimo něj hodnota 1 pro replace rovina č. 1 (maska) 1. inicializovat glclearstencil(0x0); glenable(gl_stencil_test); 2. naplnit šablonu jedničkami (kosočtverec na obrázku) vynulovat glclear(gl_stencil_buffer_bit); nastavit glstencilfunc (GL_ALWAYS, 0x1, 0x1) glstencilop(,gl_replace,gl_replace); nakreslit tvar drawstencil(); // kosočtverec, tvar šablony 3. Kreslit scénu glstencilop(gl_keep, GL_KEEP,GL_KEEP); glstencilfunc(gl_equal, 0x1, 0x1); // 1 drawbluesphere() // uvnitř šablony glstencilfunc(gl_notequal, 0x1, 0x1); // 0 drawtoriscene(); // mimo šablonu glstencilop( GLenum fail, GLenum zfail, GLenum zpass ) 55
53 2. test: Šablona (stencil test) (8) Vyplnění děr v uzavřených tělesech po oříznutí rovinou ( uzavření tělesa, aby nebylo vidět dovnitř) musí mít sudý počet přivrácených a odvrácených stěn -> XOR vynulovat šablonu glclearstencil(0x0); glclear(gl_stencil_buffer_bit); povolit update, invertovat (1x bude 1, 2x bude 0, 3x bude 1, ) glenable(gl_stencil_test); glstencilfunc (GL_ALWAYS,, 0x1); glstencilop (, GL_INVERT, GL_INVERT); dokreslit čepice (všechny najednou 1 velký bílý obdélník) glstencilfunc (GL_NOTEQUAL, 0x0, 0x1); glstencilop( GL_KEEP, GL_KEEP,GL_KEEP); drawlargerectanglecap(); glstencilop( GLenum fail, GLenum zfail, GLenum zpass ) 56
54 4. operace: Míchání barev (blending) míchání nové barvy s barvou v obrazové paměti v režimu RGBA Následuje Nastavení míchací funkce Pořadí vykreslování průhledných a neprůhledných objektů Jak nastavit hloubkový test? 57
55 Aplikace míchání barev sklo Průhledný ukazatel DP: Pavel Nemec 58
56 Míchání barev (Blending) Při míchání barev ( -míchání, blending) se kombinuje barva aktuálně vykreslovaných fragmentů (src) s barvou pixelů uložených v obrazové paměti (dst) používá se na zobrazování poloprůhledných objektů přes již vykreslenou scénu, prolínání obrazů, klíčování na barvu, apod. Příklad: Pohled přes modré sklo. Všechny barvy se zabarvují do modra a my vidíme část původních barev a část modré Zapnutí míchání Vypnutí míchání glenable(gl_blend); gldisable(gl_blend); 59
57 Operace míchání 4. operace s fragmenty Enable/Disable Scissor test šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT)
58 Míchání barev toky hodnot Pro každý fragment src (R s, G s, B s, A s ) Blending (RGBA) dst (a new one) (R d, G d, B d, A d ) dst (previous one) (R d, G d, B d, A d ) Frame buffer 61
59 Blok míchání barev podrobně Do míchání vstupuje: vykreslovaná barva fragmentu (R s, G s, B s, A s ) src barva uložená v obrazové paměti (R d, G d, B d, A d ) dst Složky vstupu se vynásobí míchacími činiteli sfactor a dfactor glblendfunc A spočítá se míchací rovnice -> nová hodnota dst ořízne se na 0, 1 glblendequation vstupní fragment src (R s, G s, B s, A s ) Činitelé dle sfactor Blend equation Činitelé dle dfactor dst (a new one) (R d, G d, B d, A d ) dst (R d, G d, B d, A d ) 62
60 Nastavení míchacích činitelů glblendfunc(glenum sfactor, GLenum dfactor); Příkaz pro hromadné nastavení míchacích činitelů S a D (platí pro všechny následně vykreslené fragmenty) sfactor míchací činitelé pro zdrojové složky - např. srcalpha (právě vykreslované fragmenty) (S R,S G,S B,S A ) dfactor míchací činitelé pro cílové složky (již vykreslené pixely) (D R,D G,D B,D A ) např. (1-srcAlpha) dst * dfactor (R d D R, G d D G, B d D B, A d D A ) src (R s, G s, B s, A s ) Činitelé dle sfactor src * sfactor (R s S R, G s S G, B s S B, A s S A ) dst (R d, G d, B d, A d ) Činitelé dle dfactor 63
61 Některé míchací činitele Příklady míchacích činitelů (S R,S G,S B,S A ), (D R,D G,D B,D A ): míchací funkce míchací činitelé (f R,f G,f B,f A ) GL_ZERO (0, 0, 0, 0) GL_ONE (1, 1, 1, 1) GL_DST_COLOR (R d, G d, B d, A d ) GL_SRC_COLOR (R S, G S, B S, A S ) GL_ONE_MINUS_DST_COLOR (1, 1, 1, 1) (R d, G d, B d, A d ) GL_ONE_MINUS_SRC_COLOR (1, 1, 1, 1) (R S, B S, B S, A S ) GL_SRC_ALPHA (A S, A S, A S, A S ) GL_ONE_MINUS_SRC_ALPHA (1, 1, 1, 1) (A S, A S, A S, A S ) GL_DST_ALPHA (A d, A d, A d, A d ) GL_ONE_MINUS_DST_ALPHA (1, 1, 1, 1) (A d, A d, A d, A d ) GL_SRC_ALPHA_SATURATE (f, f, f, 1); f = min(a s, 1 A d ) Těchto míchacích funkcí existuje ve vyšších verzích OpenGL cekem 19, navíc lze nastavit výpočet barvy RGB a Alpha odděleně glblendfuncseparate( srcrgb, dstrgb, srcalpha, dstalpha); 64
62 Nastavení míchací rovnice glblendequation(glenum mode); Příkaz pro nastavení míchací rovnice (blend equation) mode Rovnice pro složku R GL_FUNC_ADD (implicitně) R d = R s S R +R d D R GL_FUNC_SUBTRACT R d = R s S R R d D R GL_FUNC_REVERSE_SUBTRACT R d = R d D R R s S R GL_MIN R d = min(r s, R d ) GL_MAX R d = max(r s, R d ) src (R s, G s, B s, A s ) Činitelé dle sfactor Blend equation Činitelé dle dfactor dst (R d, G d, B d, A d ) dst (a new one) (R d, G d, B d, A d ) 65
63 Nastavení míchání v různých situacích glblendequation() Implicitně nastaveno na GL_FUNC_ADD GL_FUNC_ADD vhodné na antiliasing a průhledné objekty Analýza obrazových dat (prahování vůči konstantní barvě) GL_MIN a GL_MAX glblendfunc() Implicitní hodnoty sfactor = GL_ONE, dfactor = GL_ZERO Průhledné objekty a antialiazing bodů a čar glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); Antialiasing polygonů glblendfunc(gl_src_alpha_saturate, GL_ONE); 66
64 Míchání barev (Blending) příklad I /* initialize alpha blending function */ glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE); drawredquad(); // [1,0,0,0.33] drawgreenquad(); // [0,1,0,0.33] drawbluequad(); // [0,0,1,0.33] Míchání tří obrázků ve stejném poměru (Cílové alpha se nepoužívá) (zdrojové alfa všech fragmentů je 0.33) yellow color (0.33*red+0.33*green) grey color (0.33*red+0.33*green+0.33*blue) magenta color (0.33*red+0.33*blue) cyan color (0.33*blue+0.33*green) 67
65 Míchání barev (Blending) příklad I = glenable(gl_blend); 2. glblendfunc(gl_src_alpha, GL_ONE); 68
66 Pořadí vykreslování je důležité příklad II Míchání v poměru popředí ku pozadí 0.8 : 0.2 glenable(gl_blend); // cílové alpha (na obrazovce) se nepoužívá glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); 1 2 /* žlutý trojuhelnik */ // color=(1.0, 1.0, 0.0, 0.8); drawlefttriangle(); // sám nakreslí (0.8, 0.8, 0.0, 0,64) 2 1 dst src src dst žlutý překryt tyrkysovým 0.8 * (0.0, 1.0, 1.0, 0.8) + src tyrkys2. +(1-0.8)* (0.8, 0.8, 0.0, 0,64) = dst žlutý1 = (0.16, 0.96, 0.8, 0.768) /* tyrkysový trojuhelnik */ // color=(0.0, 1.0, 1.0, 0.8); drawrighttriangle(); // sám nakreslí (0.0, 0.8, 0.8, 0,64) tyrkysový překryt žlutým src žlutý 0.8 * (1.0, 1.0, 0.0, 0.8) + dst tyrkys + (1-0.8)* (0.0, 0.8, 0.8, 0,64) = = (0.8, 0.96, 0.16, 0.768) Pořadí vykreslování objektů je při míchání důležité!!! 69
67 Pořadí vykreslování je důležité příklad III Při zobrazování neprůhledných těles s průhlednými v jedné scéně je pořadí vykreslování objektů velmi důležité!!! Správně je toto pořadí vykreslování: 1. neprůhledné objekty (non-transparent) zobrazit jako první -> naplní se Z-buffer (testování hloubky i zápis do Z povoleny) 2. průhledné objekty zobrazit jako poslední, seřadit dle vzdálenosti k pozorovateli a zobrazit odzadu dopředu (testování hloubky povoleno) (Optim: zakázat zápis do paměti hloubky pomocí příkazu gldepthmask(gl_false) ) a zachovat čtení paměti hloubky - glenable( GL_DEPTH_TEST) Správné pořadí vykreslování depth buffer v režimu read-write depth buffer v režimu read-only Nesprávné pořadí objektů (průhledná rovina vykreslena první) 70
68 Paměť hloubky povolení zápisu Jen pro neprůhledné čajníky (správně) I pro průhledné trojúhelníky (špatně zbytečný) 71
69 Průhledné vykreslovány správně B-F Pokud je správně pořadí (neprůhledné, pak průhledné odzadu dopředu), je obrázek správně (používané vypnutí zápisu do Z-bufferu při kreslení neprůhledných neovlivní správný výsledný obraz, šetří čas) ~ 1.0 ~ (Zde navíc červená průhledná rovina za modrou) 72
70 Průhledné špatně F-B a zapnutý zápis Z Pokud se správně napřed nakreslí neprůhledné objekty, ale je špatně pořadí průhledných (průhledné zepředu dozadu), je obrázek pro 1 špatně. Zapnutý zápis do Z-bufferu řeší aspoň viditelnost bližší roviny. ~ OK ~ 0.5 Červená se nekreslí, protože je dál než modrá Špatně za modrou není vidět červená 73
71 Průhledné špatně F-B a vypnutý zápis Z Pokud se správně napřed nakreslí neprůhledné objekty, ale je špatně pořadí průhledných (průhledné zepředu dozadu), je obrázek pro 1 špatně. Vypnutý zápis do Z-bufferu pokazí i viditelnost bližší roviny ~ OK ~ Špatně: Modrá je překryta vzdálenější červenou 74
72 Míchání v OpenGL 4.x Více výstupních bufferů každý se nastaví zvlášť void glenable( GL_BLEND ); // povolí pro všechny buffery void glenablei( GL_BLEND, GLuint index); // povolí pro jeden index = GL_DRAW_BUFFERi = číslo bufferu v gldrawbuffers glblendequation(glenum mode); // pro všechny buffery glblendequationi(gluint buf, GLenum mode); // pro jeden glblendfunc(glenum sfactor, GLenum dfactor); glblendfunci(gluint buf, GLenum sfactor, GLenum dfactor); 75
73 5. Logické operace (1) Enable/Disable Scissor test šablona (stencil) hloubka (depth) barva (BACK-LEFT) barva (FRONT-LEFT) barva (BACK-RIGHT) barva (FRONT-RIGHT) 76
74 5. Logické operace (2) Logické operace Zdroj S D f (S,D) Zdroj S - bit fragmentu Cíl D - bit pixelu barevné paměti (color buffer) Cíl Hodnoty cíle a zdroje 0 a 1 f(z,d) má 16 možných kombinací 16 módů zápisu Výběr logické operace (módu zápisu) void gllogicop(glenum mód) Povolení / zákaz aplikace logické operace glenable(gl_logic_op) gldisable(gl_logic_op); 77
75 5. Logické operace (3) Logické operace mezi barvou RGBA fragmentu a barvou uloženou v barevné paměti (colorbuferu) 16 operací (módů) S = source, D = destination operationcode meaning operationcode meaning 0 GL_CLEAR 0 8 Gl_AND S D 1 GL_COPY S 9 GL_OR S D 2 GL_NOOP D 10 GL_NAND (S D) 3 GL_SET 1 11 GL_NOR (S D) 4 GL_COPY_INVERT S 12 GL_XOR S xor D 5 GL_INVERT D 13 GL_EQUIV ( S xor D) 6 GL_AND_REVERSE S D 14 GL_AND_INNVERTED S D 7 GL_OR_REVERSE S D 15 GL_OR_INVERTED S D 78
76 Shrnutí Zobrazovací řetězec Část od sestavení primitiv po rasterizaci Součásti obrazové paměti na co se používají jak se mažou a jak se do nich zapisuje Testy a operace s fragmenty provádí se po výpočtu pozice a barvy fragmentu určí, jestli se fragment dostane na obrazovku šablona, test hloubky, 79
77 Zobrazovací řetězec dnes probrané části Obrázek převzat od Davida Ambrože 80
78 Odkazy Steve Baker, Learning to Love your Z-buffer. Precision calculator/. OpenGL FAQ 12: The Depth Buffer, M. Kilgard: Improving Shadows and Reflections via the Stencil Buffer 81
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ů
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 )
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
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é
Zobrazování a osvětlování
Zobrazování a osvětlování 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ů Bohuslava Hudce, Jaroslava Sloupa
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í
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
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ýpočet vržených stínů
Výpočet vržených stínů 1996-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Shadows 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 18 Metody vícenásobný
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
Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení
Třída DrawingTool strana 1 1. Základ Třída DrawingTool Třída DrawingTool je určena k jednoduchému kreslení pomocí několika základních příkazů do grafického okna zadaných rozměrů (nastavení v konstruktoru),
1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.
Kapitola 5 Řešení viditelnosti Řešit viditelnost ve scéně umí většina grafických programů. Cílem je určit ty objekty, resp. jejich části, které jsou viditelné z určitého místa. Tyto algoritmy jsou vždy
Souřadnicové prostory
Prostor objektu Tr. objektu Tr. modelu Prostor scény Souřadnicové prostory V V x, y z x, y z z -z x, y Tr. objektu V =V T 1 T n M Tr. modelu Tr. scény x, y Tr. pohledu Tr. scény Tr. pohledu Prostor pozorovatele
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
Transformace (v OpenGL) příklady a knihovna GLM
Transforace (v OpenGL) příklady a knihovna GLM Petr Felkel, Jaroslav Sloup Katedra počítačové grafiky a interakce, ČVUT FEL ístnost KN:E-413 (Karlovo náěstí, budova E) E-ail: felkel@fel.cvut.cz Poslední
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í
Pokročilé techniky Josef Pelikán, MFF UK Praha
Pokročilé techniky 2004-2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz Obsah vylepšení osvětlovacího modelu dynamické mapy okolí ( environment maps ) generová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
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
. Grafika a plovoucí prostředí. Zpracování textů na počítači. Ing. Pavel Haluza, Ph.D. ústav informatiky PEF MENDELU v Brně haluza@mendelu.
Grafika a plovoucí prostředí Zpracování textů na počítači Ing Pavel Haluza, PhD ústav informatiky PEF MENDELU v Brně haluza@mendelucz Kreslení vektorových obrazů Příklad \unitlength=1mm \begin{picture}(50,30)(10,20)
Ú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
Ú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í
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í
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
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
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
Barvy a barevné modely. Počítačová grafika
Barvy a barevné modely Počítačová grafika Barvy Barva základní atribut pro definici obrazu u každého bodu, křivky či výplně se definuje barva v rastrové i vektorové grafice všechny barvy, se kterými počítač
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
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
Jana Dannhoferová Ústav informatiky, PEF MZLU
Počítačová grafika 1. Definice oblasti souvisí: a) s definováním množiny všech bodů, které náleží do hranice a zároveň do jejího vnitřku b) s popisem její hranice c) s definováním množiny všech bodů, které
Úvod Některé algoritmy pro řešení viditelnosti Literatura. Řešení viditelnosti. Pavel Strachota. FJFI ČVUT v Praze. 11. dubna 2012
Řešení viditelnosti Pavel Strachota FJFI ČVUT v Praze 11. dubna 2012 Obsah 1 Úvod 2 Některé algoritmy pro řešení viditelnosti Obsah 1 Úvod 2 Některé algoritmy pro řešení viditelnosti Úvod situace: daná
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
8. VIDITELNOST. Cíl Po prostudování této kapitoly budete umět. Výklad. P i O M. a A. b A. 8. Viditelnost
8. VIDITELNOST Cíl Po prostudování této kapitoly budete umět určit viditelné a neviditelné hrany a stěny 3D objektů Výklad Odstraňování neviditelných hran patří k základním procesům 3D grafiky. Nepatří
1. Paleta History (Historie)
Obsah 1. Paleta History (Historie) 2. History Brush (Štětec historie) 1. Paleta History (Historie) Změny, které provedete v obrázku se objeví na paletě History (Historie) jako samostatné stavy (Obr 11.1).
Geekovo Minimum. Počítačové Grafiky. Nadpis 1 Nadpis 2 Nadpis 3. Božetěchova 2, Brno
Geekovo Minimum Nadpis 1 Nadpis 2 Nadpis 3 Počítačové Grafiky Jméno Adam Příjmení Herout Vysoké Vysoké učení technické učení technické v Brně, v Fakulta Brně, Fakulta informačních informačních technologií
Watkinsův algoritmus řádkového rozkladu
Watkinsův algoritmus řádkového rozkladu 1995-2015 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 15 Watkinsův algoritmus nepotřebuje výstupní buffer rastrový výstup
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ů
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
1.1. Spuštění ArchiCADu 16 1.2. Práce s projektem 16. 1.3. Pracovní plocha 19
Obsah 1 Seznámení s ArchiCADem 15 1.1. Spuštění ArchiCADu 16 1.2. Práce s projektem 16 Vytvoření nového projektu 16 Vytvoření nového projektu při spuštění ArchiCADu 17 Možné způsoby nastavení nového projektu:
LabView jako programovací jazyk II
LabView jako programovací jazyk II - Popis jednotlivých funkcí palety Function II.část - Funkce Numeric, Array, Cluster Ing. Martin Bušek, Ph.D. Práce s daty typu NUMERIC Numerické funkce obsahuje funkce
1. Nastavení dokumentu
Obsah as a asta 2. Okno / více dokumentů otevírání, zavírání, vytváření nového, přepínání, ukládání 3. Barevný režim dokumentu 4. Zobrazení, vlastní pohledy 5. Objekty vkládání 1. Nastavení dokumentu Uprostřed
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
Bloky, atributy, knihovny
Bloky, atributy, knihovny Projekt SIPVZ 2006 Řešené příklady AutoCADu Autor: ing. Laďka Krejčí 2 Obsah úlohy Procvičíte zadávání vzdáleností a délek úsečky kreslící nástroje (text, úsečka, kóta) vlastnosti
Algoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
B4B35OSY: Operační systémy
B4B35OSY: Operační systémy Grafika a HW akcelerace Michal Sojka 1 14. prosince 2017 1 michal.sojka@cvut.cz 1 / 27 Obsah I 1 Uživatelské rozhraní 2 Grafický subsystém OS HW akcelerace grafických operací
ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014
Zadání projektu Texturování Základy počítačové grafiky (IZG) ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014 1 První seznámení Cílem projektu je pochopení praktických souvislostí témat přednášek
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
Reprezentace 3D scény
Reprezentace 3D scény 1995-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 36 Metody reprezentace 3D scén objemové reprezentace přímé informace o vnitřních
MRBT M8. VIDITELNOST OBJEKTŮ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Bc. MARTIN MAŠTERA
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY MRBT M8. VIDITELNOST OBJEKTŮ AUTOŘI PRÁCE Bc. JAKUB BERÁNEK Bc. MARTIN MAŠTERA VEDOUCÍ
Transformace (v OpenGL)
Transformace (v OpenGL) 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 Podle knihy SJ Gortlera: Foundations of Computer
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.
VYUŽITÍ POČÍTAČOVÉ GRAFIKY
POČÍTAČOVÁ GRAFIKA VYUŽITÍ POČÍTAČOVÉ GRAFIKY ÚPRAVA FOTOGRAFIÍ NAFOCENÉ FOTOGRAFIE Z DIGITÁLNÍHO FOTOAPARÁTU MŮŽEME NEJEN PROHLÍŽET, ALE TAKÉ UPRAVOVAT JAS KONTRAST BAREVNOST OŘÍZNUTÍ ODSTRANĚNÍ ČERVENÝCH
Hardware pro počítačovou grafiku NPGR019
Hardware pro počítačovou grafiku NPGR019 Matematika pro real-time grafiku Josef Pelikán Jan Horáček http://cgg.mff.cuni.cz/ MFF UK Praha 2012 Obsah 1 Homogenní souřadnice, maticové transformace Převod
2D grafika. Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace. Počítačová grafika, 2D grafika 2
2D grafika Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace Počítačová grafika, 2D grafika 2 2D grafika PC pracuje s daným počtem pixelů s 3 (4) kanály barev (RGB
13 Barvy a úpravy rastrového
13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
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
Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO
Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO 1 Základní dělení 3D grafika 2D grafika vektorová rastrová grafika 2/29 Vektorová grafika Jednotlivé objekty jsou tvořeny křivkami Využití: tvorba diagramů,
Návod k použití softwaru Solar Viewer 3D
Návod k použití softwaru Solar Viewer 3D Software byl vyvinut v rámci grantového projektu Technologie a systém určující fyzikální a prostorové charakteristiky pro ochranu a tvorbu životního prostředí a
TECHNICKÉ KRESLENÍ A CAD. Přednáška č.6
TECHNICKÉ KRESLENÍ A CAD Přednáška č.6 Kótování Požadavky na kótování Všeobecné zásady kótování Hodnoty rozměrů se kótují v milimetrech. Značka mm se neuvádí. Úhly se kótují v stupních, minutách a sekundách,
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527
Projekt: Příjemce: Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527 Střední zdravotnická škola a Vyšší odborná škola zdravotnická, Husova 3, 371 60 České Budějovice
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
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í
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
Full HD 3D Projektor pro domácí kino PT-AE8000 PT-AT6000. Srpen 2012
Full HD 3D Projektor pro domácí kino PT-AE8000 PT-AT6000 Srpen 2012 Vývoj projektorů Panasonic pro domácí kino První projektor pro domácí kino Technologie Smooth Screen Počátek koncepce Záměr tvůrců filmu
5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
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
Programování v jazyku LOGO - úvod
Programování v jazyku LOGO - úvod Programovací jazyk LOGO je určen pro výuku algoritmizace především pro děti školou povinné. Programovací jazyk pracuje v grafickém prostředí, přičemž jednou z jeho podstatných
Stručný návod na program COMSOL, řešení příkladu 6 z Tepelných procesů.
Stručný návod na program COMSOL, řešení příkladu 6 z Tepelných procesů. Zadání: Implementujte problém neustáleného vedení tepla v prostorově 1D systému v programu COMSOL. Ujistěte se, že v ustáleném stavu
Výukový manuál 1 /64
1 Vytvoření křížového spojovacího dílu 2 1. Klepněte na ikonu Geomagic Design a otevřete okno Domů. 2. V tomto okně klepněte na Vytvořit nové díly pro vložení do sestavy. 3 1. 2. 3. 4. V otevřeném okně
Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných
Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro
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,
Rekurzivní sledování paprsku
Rekurzivní sledování paprsku 1996-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 21 Model dírkové kamery 2 / 21 Zpětné sledování paprsku L D A B C 3 / 21 Skládání
TDS-TECHNIK 13.0 pro ZwCAD
TDS-TECHNIK 13.0 pro ZwCAD V následujícím textu jsou uvedeny informace o hlavních novinkách strojírenské nadstavby TDS-TECHNIK pro ZwCAD v rozsahu sady Komplet. Poznámka: Pokud máte předplacený Aktualizační
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
Deskriptivní geometrie I zimní semestr 2017/18
Deskriptivní geometrie I zimní semestr 2017/18 Rys č. 2 Lineární perspektiva, zrcadlení Pokyny pro vypracování platné pro všechny příklady Pokud není v zadání příkladu uvedeno jinak, zobrazujte pouze viditelné
GstarCAD8 Aktualizovaná verze ze dne Podpora 64-bitové verze systému. Nové dodatky. Poznámky (OBJECTSCALE / Měřítko objektu poznámek)
GstarCAD8 Aktualizovaná verze ze dne 03.07.2014 Dne 3. července 2014 uvedla společnost Gstarsoft aktualizovanou verzi programu GstarCAD8 zaměřenou zejména na podporu 64-bitového systému, což znamená, že
DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ
DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ UMT Tomáš Zajíc, David Svoboda Typy počítačové grafiky Rastrová Vektorová Rastrová grafika Pixely Rozlišení Barevná hloubka Monitor 72 PPI Tiskárna
DUM 01 téma: Úvod do počítačové grafiky
DUM 01 téma: Úvod do počítačové grafiky ze sady: 02 tematický okruh sady: Bitmapová grafika ze šablony: 09 Počítačová grafika určeno pro: 2. ročník vzdělávací obor: vzdělávací oblast: číslo projektu: anotace:
Šablony, kontejnery a iterátory
7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
Počítačová grafika. OBSAH Grafické formy: Vektorová grafika Bitmapová (rastrová grafika) Barevné modely
Počítačová grafika OBSAH Grafické formy: Vektorová grafika Bitmapová (rastrová grafika) Barevné modely Vektorová grafika Vektorová grafika Příklad vektorové grafiky Zpět na Obsah Vektorová grafika Vektorový
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);
Programátorská dokumentace
Programátorská dokumentace Požadavky Cílem tohoto programu bylo představit barevné systémy, zejména převody mezi nejpoužívanějšími z nich. Zároveň bylo úkolem naprogramovat jejich demonstraci. Pro realizaci
Android OpenGL. Pokročilé shadery
Android OpenGL Pokročilé shadery Struktura programu Reálná aplikace zpravidla obsahuje více než jeden shader Kód pro inicializaci shaderu je dobré mít ve třídě (méně opisování stejného kódu) Shadery není
Manuál k aplikaci FieldGIS v.2.27
Manuál k aplikaci FieldGIS v.2.27 Petr Pala Copyright 2008 CENIA, laboratoř GIS 1. Úvod 1. Systémové požadavky 2. Části základního okna aplikace 1. Menu 1.1. File 1.2. Tools 1.3. Hlavní lišta 2. Editor
Digitální učební materiál
Střední hotelová škola, s.r.o. Floriánské náměstí 350, 272 01 Kladno Digitální učební materiál Číslo projektu Název projektu Název školy Předmět Tematický okruh Téma CZ.1.07/1.5.00/34.0112 Moderní škola
Fergusnova kubika, která je definována pomocí bodu P1, vektoru P1P2, bodu P3 a vektoru P3P4
Která barva nepatří do základních barev prostoru RGB? a. Černá b. Zelená c. Modrá d. Červená Úloha 2 Jakým minimálním počtem bodů je jednoznačně určena interpolační křivka 5. řádu? a. 6 b. 3 c. 5 d. 7
Struktura scény. Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 (Karlovo náměstí, budova E)
Struktura scény 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 Sloupa
Malířův algoritmus. 1995-2015 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 15
Malířův algoritmus 1995-2015 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 15 Malířův algoritmus kreslení do bufferu video-ram, rastrová tiskárna s bufferem vyplňování
1. Blok Bloky a hladiny Barva a typ čáry v blocích 2. Vytvoření bloku příkaz BLOK [BLOCK]
1. Blok Velmi silnou vlastností AutoCADu je možnost seskupit několik entit výkresu dohromady a vytvořit z nich jeden objekt blok. Blok při vytvoření dostane svoje jméno, kterým se pak na něj odkazujeme.
Bitmapová grafika: Vrstvy - interakce (režimy prolnutí)
VY_32_INOVACE_PG3108 ; Mgr. Pavel Hauer ; 5/2012; 1.ročník; bitmapová grafika, Počítačová grafika; názorná pomůcka pro výuku, opakování, doplnění látky Bitmapová grafika: Vrstvy - interakce (režimy prolnutí)
Rozšíření bakalářské práce
Rozšíření bakalářské práce Vojtěch Vlkovský 2011 1 Obsah Seznam obrázků... 3 1 Barevné modely... 4 1.1 RGB barevný model... 4 1.2 Barevný model CMY(K)... 4 1.3 Další barevné modely... 4 1.3.1 Model CIE
Inovace a zkvalitnění výuky prostřednictvím ICT Design a vzhledové vlastnosti webových stránek Vlastnosti CSS pro pozicování Ing.
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Design a vzhledové vlastnosti webových
umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora
umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www:
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.
12 Metody snižování barevného prostoru
12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů
1. Dva dlouhé přímé rovnoběžné vodiče vzdálené od sebe 0,75 cm leží kolmo k rovine obrázku 1. Vodičem 1 protéká proud o velikosti 6,5A směrem od nás.
Příklady: 30. Magnetické pole elektrického proudu 1. Dva dlouhé přímé rovnoběžné vodiče vzdálené od sebe 0,75 cm leží kolmo k rovine obrázku 1. Vodičem 1 protéká proud o velikosti 6,5A směrem od nás. a)
9 Prostorová grafika a modelování těles
9 Prostorová grafika a modelování těles Studijní cíl Tento blok je věnován základům 3D grafiky. Jedná se především o vysvětlení principů vytváření modelů 3D objektů, jejich reprezentace v paměti počítače.