KATEDRA INFORMATIKY. Demonstrace OpenGL v prostředí LispWorks
|
|
- Alois Vaněk
- před 7 lety
- Počet zobrazení:
Transkript
1 PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE Demonstrace OpenGL v prostředí LispWorks 2014 Martin Křetínský
2 Anotace Pojem OpenGL je v moderní počítačové grafice velmi známý a rozšířený. V mojí bakalářské práci chci představit implementaci OpenGL v netradičním vývojovém prostředí LispWorks. Toto vývojové prostředí se hojně využívá k výuce programování a proto si myslím, že rozšíření o možnosti 3D grafiky studenti uvítají.
3 Tímto bych chtěl poděkovat vedoucímu této bakalářské práce doc. RNDr. Michalu Krupkovi, Ph.D., za vstřícné jednání a odbornou pomoc. Dále svojí rodině, zejména manželce, za trpělivost a podporu.
4 Obsah 1. OpenGL v LispWorks Instalace LispWorks Implementace OpenGL v LispWorks Zdrojové soubory z adresáře opengl Další možnost implementace Program DemonstraceOpenGL Instalace Spuštění programu Popis programu Demonstrační příklady Programátorská dokumentace OpenGL Co je OpenGL? Datové typy a konvence názvů Princip práce OpenGL Definice primitiv Geometrické transformace Osvětlení Texturování Závěr 30 Reference 31 A. Tvary, konstanty a příkazy 32 B. Obsah přiloženého CD 35 4
5 Seznam obrázků 1. Okno programu DemonstraceOpenGL Princip práce OpenGL. Zdroj [5] Módy zadávání primitiv
6 Seznam tabulek 1. Použití kláves Datové typy Tvary příkazu ZAČÍT-TVAR Seznam příkazů Barvy
7 1. OpenGL v LispWorks 1.1. Instalace LispWorks Vývojové prostředí LispWorks je multiplatformní nástroj pro vývoj software. K dispozici je webových stránkách v sekci Downloads. Bezplatná verze má název LispWorks Personal Edition a je k dispozici pro platformy: Windows, Macintosh, Linux, FreeBSD a x86/x64 Solaris. Bezplatné stažení je podmíněno vložením platné ové adresy. Vzhledem k tomu, že vlastním počítač s operačním systémem Windows, zvolil jsem pro svoji bakalářskou práci verzi pro systém Windows. V této edici je ovšem k dispozici pouze 32-bitová verze s označením LispWorks Personal Edition Po vyplnění jednoduchého formuláře jsem si stáhnul soubor LispWorksPersonal61.exe o velikosti 46,2 MB. Je to standardní instalátor a po jeho spuštění jsem si do počítače nainstaloval toto vývojové prostředí. Toto je v podstatě jediná podmínka pro běh programu DemonstraceOpenGL, který jsem vytvořil jako téma bakalářské práce Implementace OpenGL v LispWorks Součástí standardní instalace LispWorks je adresář examples\opengl. V tomto adresáři jsou zdrojové kódy pro implementaci OpenGL do prostředí LispWorks. Aby bylo možné používat funkce OpenGL je nutné otevřít a zkompilovat soubor load.lisp z výše uvedeného adresáře. Druhou možností, kterou jsem použil ve své práci já, je na začátku zdrojového souboru použít příkaz: (load (format nil alib\ \examples\opengl\load.lisp *lispworks-directory*)) Dále je možné použít příkaz (use-package opengl), pro psaní názvů funkcí a konstant bez specifikace balíku opengl. Datové typy Protože Common Lisp patří mezi slabě typované jazyky, je nutné dávat pozor na správné datové typy parametrů volaných funkcí. OpenGL používá vlastní datové typy jejich konverze může být zdrojem chyb. Názvy funkcí a konstant Vzhledem k tomu, že prostředí LispWorks není case-sensitive, tj. nerozlišují se malá a velká písmena, je konvence pro psaní názvů funkcí a konstant následující. Předpona gl zůstává. Kde je ve specifikaci OpenGL velké písmeno, tak v LispWorks je před písmenem pomlčka. Například funkce v OpenGL glvertex3f() v LispWorks (gl-vertex3-f). Z předchozího příkladu je patrné, že pomlčka se dává také před zkratku datového typu. 7
8 CAPI interface Pro vykreslování scén je v balíku implemnetována třída OPENGL:OPENGL- PANE, která je podtřídou CAPI:OUTPU-PANE. Volání funkcí pro kreslení musí být uvnitř makra opengl:rendering-on. Tedy takto: (OPENGL:RENDERING-ON (OPENGL-PANE) <příkazy opengl>) Pro správné vykreslení musí posledním příkazem uvnitř tohoto makra být (opengl:gl-flush). Pokud je použitý dvojí buffer pro openglpane, ještě za příkazem gl-flush, musí být prohození bufferů příkazem (opengl:swap-buffers opengl-pane) Zdrojové soubory z adresáře opengl V této části bych se chtěl věnovat souborům v adresáři examples\opengl resp. obzvláště těm s příponou.lisp. Tyto soubory obsahují spoustu užitečných informací a já jsem z nich při psaní této práce čerpal. doc.txt V tomto souboru je popsána instalace, CAPI rozhraní, konfigurace opengl okna a názvy funkcí. Je v angličtině a popisuje v podstatě to, co jsem psal v předchozí sekci v odstavci CAPI interface. constants.lisp Obsahuje definice všech konstant použitých v balíku opengl. fns.lisp V tomto souboru jsou definice veškerých funkcí včetně jejich syntaxe a typů parametrů. Často jsem jej využíval pro vyhledání správného tvaru příkazu. ufns.lisp Zde je možné nalézt vybrané funkce z knihovny GLU (Graphics Library Utility). V mojí práci využívám příkazu (glu-perspective) k nastavení perspektivního zobrazení a příkaz (glu-look-at) pro nastavení kamery. Použití těchto příkazů je snadnější a intuitivnější, než přímé nastavení projekční matice *GL-PROJECTION*. vectors.lisp Protože parametrem mnoha příkazů opengl je ukazatel (pointer) na pole tzv. gl-vector, v tomto souboru jsou užitečné informace, jak tuto strukturu vytvořit - příkaz (make-gl-vector) a příkaz pro přístup k prvkům tohoto jednorozměrného pole (gl-vector-aref). Ve své práci tyto příkazy používám pro uložení textury, pozici světla, nastavení světelného zdroje apod. 8
9 1.4. Další možnost implementace. Je možná další implementace OpenGL včetně balíků GLU (Graphics Library Utility) a GLUT (Graphics Library Utility Toolkit). Pro načtení do LispWorks je pořeba dalších balíků. Jsou to ASDF (Another System Definition Facility), Alexandria (portable public domain utiliy), Babel (charset encoding/decoding library), CFFI (Common Foreign Functions Interface), Trivialfeatures a cl-opengl(balík obsahuje i GLU a GLUT). Výhodou je možnost využití i balíků GLU a GLUT, které umožňují např. celoobrazovkový režim apod. Ovšem potřeba tolika výše uvedených balíků mě odradila od použití v této bakalářské práci. Program je určen pro žáky středních škol, a proto si myslím, že tato možnost je spíše pro odborníky. Tolik k implementaci OpenGL v prostředí LispWorks. Bohužel, v manuálech k LispWorks nejsou téměř žádné informace k této problematice. Vše, co jsem popsal v této sekci, jsem načerpal až při práci na této bakalářské práci. 9
10 2. Program DemonstraceOpenGL Ve druhé části se věnuji programu, který je určen studentům středních škol pro jednoduchou prezentaci OpenGL. Program jsem vytvářel a testoval v prostředí MS Windows. Nicméně většina kódu byla částečně otestována i na počítači Macintosh Instalace Program DemonstraceOpenGL není nutné instalovat. Je distribuován jako zdrojový soubor DemonstraceOpenGL.lisp. Pokud tedy byla provedena instalace LispWorks viz. Instalace LispWorks, je možné tento soubor otevřít přímo ve vývojovém prostředí (volba File->Open) a zkompilovat (volba Works->Buffers- >Compile). Součástí je i soubor help.html, který je potřeba umístit do složky se zdrojovým souborem Spuštění programu Po kompilaci zdrojového souboru DemonstraceOpenGL je možné program spustit zadáním příkazu (spustit-demonstraci). Příkaz se standardně zadává v okně Listeneru. Součástí kompilace programu je i načtení a kompilace balíku opengl Popis programu Po spuštění příkazu (spustit-demonstraci) se objeví hlavní okno programu, jak ukazuje následující obrázek. 10
11 Obrázek 1. Okno programu DemonstraceOpenGL Okno programu je rozděleno na dvě části. V levé části je umístěno vykreslovací okno opengl a v pravé části je pět záložek s nastavením. Názvy záložek korespondují s pěti prvky systému OpenGL, které jsem vybral pro prezentaci grafické knihovny. První dvě záložky Vertexy a Transformace jsou věnovány tvorbě scény, ostatní potom ovlivňují vykreslenou scénu. V horní části okna je standardní menu. Menu Soubor obsahuje položky pro ukládání, či načítání do souboru. Editace obsahuje standardní položky pro editaci. V menu Panely je možné přepínat jednotlivé panely a v poslední položce Nápověda jsou informace o programu a nápověda k programu. Nápověda k programu je dodávána společně se zdrojovým souborem a v případě nenalezení souboru help.html se zobrazí dialogové okno pro vyhledání tohoto souboru. Vykreslovací okno slouží ke zobrazení scény, která je definovaná a nastavená v záložkách. Ve spodní části okna jsou informace o pozici kamery a směru pohledu. Pozici kamery i směr pohledu je možné v tomto okně měnit pomocí klávesnice a myši jak ukazuje následující tabulka. 11
12 Klávesa w nebo šipka nahoru s nebo šipka dolů a nebo šipka vlevo d nebo šipka vpravo PgUp PgDn c x levé tlačítko myši + pohyb pravé tlačítko myši + pohyb Popis pohyb kamery vpřed pohyb kamery vzad pohyb kamery vlevo pohyb kamery vpravo pohyb kamery vzhůru pohyb kamery dolů defaultní nastavení kamery defaultní nastavení světla rozlížení změna pozice světla ve směru x,y Tabulka 1. Použití kláves Nyní k jednotlivým záložkám: Vertexy Tato část se věnuje zadávání grafických primitiv. Jednotlivá primitiva lze vybrat z rozbalovacího seznamu ZAČÍT-TVAR. Výběr tvaru je oznámen v editačním okně, pod rozbalovacími tlačítky. Dále je možno pokračovat zadáním vrcholu (tzv. vertex), barvy, normály, nebo kotvy textury. Zadání vrcholu: - příkaz ZADAT-VRCHOL - má tři parametry x, y, z. Označují tři souřadnice v prostoru a podmínkou je, že mají všechny tři stejný datový typ: bud integer, nebo float. Zadání barvy: - příkaz ZADAT-BARVU - opět má tři parametry r, g, b. Hodnoty parametrů jsou v rozmezí a označují RGB hodnotu barvy. Zadání normály: - příkaz ZADAT-NORMÁLU - má tři parametry x, y, z. Podmínky jsou stejné jako u příkazu ZADAT-VRCHOL. Zadání kotvy textury: - příkaz ZADAT-KOTVU-TEXTURY - má dva parametry s, t. Protože je v programu použita jedna dvojrozměrná textura, jsou parametry pouze dva s pozice ve směru osy x a t pozice ve směru osy y. Po zadání jedné z výše uvedených vlastností, je možné tuto vlastnost přidat do editačního okna tlačítkem Přidat. Po zadání vlastností celého primitiva, je potřeba stisknutím tlačítka UKONČIT-TVAR, toto primitivum ukončit. Vykreslení řetězce je možné vyvolat stiskem tlačítka Vykreslit. Editační okno - zde je možné nejen sledovat to, co jste zadali výše uvedenými tlačítky, ale také editovat příkazy v něm uvedené popř. přímo psát příkazy bez použití výše uvedených tlačítek. Možnost přímé editace pravděpodobně více využijí uživatelé, kteří už s tímto programem mají zkušenosti. 12
13 Příkazy je možno psát bez závorek, nebo i s nimi (jako v Lispu). V případě psaní kódu bez závorek je nutné psát každý příkaz na samostatný řádek. Příkazy skriptu je ovšem nutno psát velkými písmeny, protože prostředí převádí malá písmena na velká. V případě české diakritiky je převod chybný, či žádný. V příloze A jsou uvedeny všechny příkazy, barvy i tvary použitelné v editačním okně. Editační okno ovšem akceptuje i jiné příkazy a to jak příkazy opengl např.: (gl-enable *gl-lighting*), tak i příkazy Common Lispu. Ovšem příkazy Common Lispu doporučuji psát se závorkami. Je možné i použití komentářů. Komentáře pište na samostané řádky a začínají znakem ; - středník. Transformace Na této záložce je možné zadávat příkazy pro posunutí, rotaci a změnu měřítka. Postup je takový, že z rozbalovacího seznamu je možné vybrat transformaci, zadat parametry do boxů úhel, x, y, z a přidat do vykreslovacího řetězce tlačítkem Přidat. Parametry je nutno opět zadat třemi, popř. čtyřmi čísly stejného datového typu. Zde pouze jedno malé upozornění. Záleží na pořadí prováděných transformací: posloupnost rotace -> posunutí není to stejné jako posunutí -> rotace i když oba příkazy mají stejné parametry! Viz. kapitola Geometrické transformace Projekce a Test hloubky Pomocí voleb na této záložce je možné měnit projekční matici *GL-PROJECTION*. Defaultně je v programu nastavena perspektivní projekce. Čísla vyjadřují průnik osy s ořezovou rovinou, tj. bližší, vzdálenější s osou z, levá, pravá s osou x, horní, dolní s osou y. Pro nastavení perspektivní projekce jsem použil příkaz (glu-perspective), proto se zadává jen zorný úhel, bližší a vzdálenější ořezová rovina. Použití tohoto příkazu je více intuitivní, než při použití příkazu (gl-frustum). Ortogonální, neboli kolmé zobrazení nastavuji příkazem (gl-ortho) a tudíž je nutné definovat všech šest ořezových rovin. Tvar prostoru definovaného perspektivní projekcí má tvar komolého čtyřbokého jehlanu, kde menší podstava je bližší (near) ořezová rovina a větší podstava je vzdálenější (far) ořezová rovina. U ortogonální (kolmé) projekce má prostor tvar kvádru. Pozor - změna projekční matice u již vykreslené scény může způsobit změnu definovaného prostoru a tím pádem nemusí být objekty správně vykresleny! Vrcholy objektů, které jsou mimo definovaný prostor, se samozřejmě nevykreslují. Test hloubky - použitím volby Povolit/Zakázat se systému OpenGL říká, jestli má u každého obrazového fragmentu testovat jeho vzdálenost od projekční roviny. Tato vzdálenost (resp. převrácená hodnota) je uložena 13
14 v tzv. depth bufferu. Pokud je test hloubky zakázán, jsou stěny objektů vykreslovány v tom pořadí, jak jsou zadány v editačním okně. Následkem toho, se nemusí stěny těles ve scéně správně překrývat. Při každém překreslení scény by se tyto stěny musely seřadit od nejvzdálenější po nejbližší. Proto byl do OpenGL implementován depth buffer a při vykreslování se kontroluje vzdálenost každého obrazového elementu. Pokud před vykreslením elementu do barvového bufferu, tento element projde testem hloubky, je vykreslen. V opačném případě je z dalšího zpracování vyloučen. Pokud je tedy test hloubky zapnutý, jsou všechna tělesa vykreslena správně. Světlo Zde je možné povolit, nebo zakázat použití osvětlení ve scéně. V mém programu je použito pouze jedno světlo, i když OpenGL disponuje až osmi světly. Značí se LIGHT0 - LIGHT7, dle implementace OpenGL jich ovšem může být i více. Před použitím osvětlení je nutné pro každou plošku tělesa definovat normálový vektor, tj. vektor, který je kolmý k této plošce. Směr tohoto vektoru udává, která strana plošky je přední. V mém programu není nutné tento vektor normalizovat, jelikož jsem ve vykreslovací funkci povolil automatickou normalizaci příkazem (gl-enable *gl-normalize*). Nicméně u složitějších těles ve scéně by tato automatická normalizace mohla způsobit pomalejší vykreslení, proto se doporučuje normalizovat vektory před samotným vykreslením těles a automatickou normalizaci nepoužívat. Dále je na výběr použití stínování. Ploché stínování znamená, že se celá ploška vykreslí jednou barvou, která je pro tuto plošku vypočtena. Naopak u Goraudova stínování jsou spočteny barvy pro jednotlivé vrcholy plošky a ta je vykreslena přechodem mezi barvami pro tyto vrcholy. Goraudovo stínování je tedy bližší reálnému osvětlení. Další vlastností zdroje světla, kterou jsem do programu začlenil, je to, zda se jedná o bodové, či směrové světlo. Bodové světlo si můžeme představit, jako žárovku v místnosti. Paprsky světla vychází jakoby z jednoho bodu, který je relativně blízko osvětlené scény. Má určitě jiné vlastnosti než osvětlení směrové, které si můžeme připodobnit k osvětlení od okna v místnosti. Pochází z jednoho směru a není možné určit přesně bod odkud se šíří. Pro nastavení rozdílu mezi bodovým a směrovým světlem se používá toho faktu, že pokud pozici světla určuje bod, jedná se o bodové, pokud vektor, jedná se o směrové. Zadání pozice světla určují čtyři souřadnice (tzv. homogenní souřadnice) x, y, z, w, kde právě w určuje, zda se jedná o bod, nebo o vektor. Když je w nastaveno na jedničku tj. x, y, z, 1, jedná se o bod, když na nulu tj. x, y, z, 0 jedná se o vektor. Zadání pozice světla je možné přímo vložením hodnot do polí v programu, nebo je možné světlo přesouvat pohybem myši se současně stisknutým pravým tlačítkem myši. Myší se mění souřadnice ve směru os x a y. 14
15 Nastavení barev světelného zdroje umožňuje změnit RGB hodnoty každé složky světla. V OpenGL je použit tzv. Phongův osvětlovací model, který sice neumí nastavit světlo tak, jak jej známe z reality, ale není výpočetně náročný. V tomto modelu se světlo na povrchu tělesa rozkládá na tři složky: okolní (ambient), odražené (difuse) a odlesky (specular). Celková intenzita světla se tedy počítá pro každou barevnou složku RGB a je aplikována na každou složku zvlášt. Nastavení barev světelného zdroje má souvislost s dalším nastavením a to barvou materiálu. Pokud je Barva materiálu zakázána je barva ve scéně ovlivněna nastavením světelného zdroje. Pokud je povolena, je barva těles určena příkazem ZADAT-BARVU (popř. (gl-color3-ub)), tak jak je uvedena v editačním okně. Textury Ve své práci používám jednu texturu o velikosti 64x64 pixelů - znázorňuje logo OpenGL. Pro její použití je potřeba na této záložce povolit texturování. Dále pro každý vrchol tělesa, které chceme mít pokryto texturou, je potřeba zadat koordináty do textury příkazem ZADAT-KOTVU-TEXTURY (popř. (gl-texcoord2-f)). Tyto koordináty mají pro dvojrozměrnou texturu souřadnice: 0.0, 0.0 pro levý dolní roh a pro pravý horní roh 1.0, 1.0. Pokud pro pravý horní roh nastavím například koordináty 4.0, 4.0 a bude nastaveno opakování textury, na povrch bude vykresleno 4x4 těchto textur. V případě, že bude nastaveno protažení, nebude protažena celá textura, nýbrž pouze poslední sloupec/řádek pixelů textury. Při nanášení textury na povrch tělesa, je nutné někdy texturu zmenšit jindy zvětšit. Pro tyto operace je v OpenGL definován parametr, který říká jaký filtr se pro tyto operace má použít. Pokud je použit filtr *gl-nearest*, jeví se textura jakoby kostičkovaná. Při použití filtru *gl-linear* se textura zjemní. Proto jsem v programu uvedl možnost zapnout/vypnout zjemnění textury. Veškerá nastavení provedená na záložkách, včetně obsahu editačního okna je možné uložit do souboru pomocí volby v menu (Soubor -> Uložit jako...). Pomocí volby v menu (Soubor -> Otevřít) lze načíst jak obsah editačního okna, ale také nastavení na záložkách. Název souboru je vždy zobrazen v názvu okna programu. Změny v otevřeném souboru je také možné uložit pomocí volby v menu (Soubor - > Uložit). V další části bych se chtěl věnovat demostračním příkladům, které jsou součástí mojí práce Demonstrační příklady Tyto příklady je možné použít přímo v programu Demonstrace OpenGL. Pro načtení souboru použijte v menu položku (Soubor -> Otevřít). 15
16 1-primitiva.gllisp - tento soubor zobrazí všechna grafická primitiva, která podporuje OpenGL. 2-transformace.gllisp - zde jsou zobrazeny celkem tři jehlany se stejnými souřadnicemi vrcholů. Zelený je bez použití transformací. Poté jsou použity transformace v pořadí posunutí -> rotace a je vykreslen modrý jehlan. Nakonec jsou použity další transformace v pořadí rotace -> posunutí a následně vykreslen červený jehlan. Z tohoto příkladu je vidět, že opravdu záleží na pořadí transformací. 3-kolma-projekce.gllisp - v této ukázce jsou vykresleny 3 krychle různé velikosti, ale se stejným středem. Je nastavena ortogonální projekce a je zde patrné, zvláště při různém nastavení kamery, že nedochází ke zkreslení délek jednotlivých hran krychlí. 4-test-hloubky.gllisp - jsou vykresleny dva jehlany, mají různou vzdálenost a jiné pořadí vykreslování. Se zapnutým testem hloubky je pořadí jehlanů správné, s vypnutým se dříve vykreslí červený, poté zelený. 5-osvetleni.gllisp - v ukázce jsou vykresleny dvě tělesa. Jedno má definovány normály pro každou plochu tělesa a je tudíž v pořádku osvětleno. Druhé těleso (trojboký jehlan postavený na špici) nemá definovány normály. Ve scéně je proto jehlan velmi tmavý (neosvětlený). V ukázce je nastaveno obyčejné bílé světlo. Můžete zkusit měnit hodnoty nastavení barev světelného zdroje. Zkuste povolit/zakázat barvu materiálu. 6-textury.gllisp - v poslední ukázce je vykreslena krychle pokrytá texturou. Každá strana kostky je jinak otexturována. Zkuste vypnout/zapnout zjemnění textury, nebo měnit vlastnosti ve směrech s a t Programátorská dokumentace Celý zdrojový kód je rozdělen do pěti částí: Definice CAPI rozhraní - (capi:define-interface demonstraceopengl (capi:interface) ) - okno, záložky, menu - (defun spustit-demonstraci) - spuštění programu Obsluhy událostí (callbacks) - (defun print-tab-layout-item) - zobrazení názvu záložek - (defmethod select-layout-from-tab-layout-item) - výběr záložky - (defmethod current-view) - nastavení viditelné záložky Menu - (defun novy-callback) - menu - nový soubor 16
17 - (defun ulozit-callback) - menu - uložit, uložit jako... - (defun nacist-callback) - menu - otevřít Záložka Vertexy - (defun gl-begin-pane-callback) - výběr z rozbalovacího menu Začít-tvar - (defun gl-type-pane-callback) - výběr z rozbalovacího menu zadání vrcholu, apod. - (defun pridat-callback) - kliknutí na tlačítko Přidat - (defun gl-end-callback) - kliknutí na tlačítko Ukončit tvar - (defun vykreslit-callback) - kliknutí na tlačítko Vykreslit - (defun text-pane-change-callback) - změna textu v editačním okně Záložka Transformace - (defun transformace-option-callback) - výběr z rozbalovacího menu Transformace - (defun transformace-pridat-callback) - kliknutí na tlačítko Přidat Záložka Projekce a Test hloubky - (defun depth-test-callback) - Povolit/Zakázat test hloubky - (defun p-radio-callback) - výběr perspektivní projekce - (defun o-radio-callback) - výběr ortogonální projekce - (defun aplikovat-callback) - kliknutí na tlačítko Aplikovat - (defun svetlo-test-callback) - Povolit/Zakázat osvětlení - (defun stinovani-test-callback) - Ploché/Goraudovo stínování - (defun typ-svetla-test-callback) - Bodové/Směrové světlo - (defun barva-svetla-callback) - změna nastavení barev světla - (defun pozice-svetla-callback) - změna pozice světla - (defun barva-materialu-test-callback) - Povolit/Zakázat barvení materiálu Záložka Textury - (defun textury-test-callback) - Povolit/Zakázat texturování Vykreslovací okno OpenGL - (defun on-resize) - obsluha události změna velikosti okna - (defun on-display) - vykreslení řetězce - (defun on-destroy) - obsluha události ukončení okna aplikace Obsluha klávesnice a myši - (defun input) - vstup z klávesnice - (defun l-tlacitko-kamera-pohyb) - levé tlačítko + pohyb - (defun p-tlacitko-svetlo-pohyb) - pravé tlačítko + pohyb - (defun l-tlacitko-mysi) - test na stisknuté levé tlačítko myši - (defun p-tlacitko-mysi) - test na stisknuté pravé tlačítko myši Pomocné funkce - (defun my-eval) - vyhodnocení výrazu s obsluhou chyb - (defun nastavit-panely) - po načtení souboru nastavení záložek - (defun input-to-cislo-callback) - převod vstupu na číslo - (defun string-to-list) - převod textu z editačního okna na list - (defun pridat-do-textu) - přidá příkaz do textu editačního okna 17
18 - (defun aktualizovat-pomocne-vektory) - aktualizace vektorů r a h - (defun vrat-double) - přetypování na typ double-float, nebo chyba - (defun vrat-single) - přetypování na typ single-float, nebo chyba - (defun vrat-integer) - přetypování na typ integer, nebo chyba - (defun number3p) - testuje 3 parametry, zda jsou čísla - (defun integer2p) - testuje 2 parametry na typ integer - (defun integer3p) - testuje 3 parametry na typ integer - (defun unsigned-byte3p) - testuje 3 parametry, na typ unsigned-byte - (defun float2p) - testuje 2 parametry na typ float - (defun float3p) - testuje 3 parametry na typ float - (defun ulozitp) - dotaz na uložení změn Nápověda - (defun zobraz-napovedu) - zobrazí nápovědu v defaultním prohlížeči - (capi:define-interface O-aplikaci (capi:interface)) - okno O aplikaci - (defun zobraz-o-aplikaci) - zobrazí okno O aplikaci Příkazy skriptovacího jazyka - (defun ZADAT-BARVU) - gl-color3-ub, gl-color3-f - zadání barvy - (defun ZAČÍT-TVAR) - gl-begin tvar - (defun ZADAT-VRCHOL) - gl-vertex3-i, gl-vertex3-f - zadání vrcholu - (defun ZADAT-NORMÁLU) - gl-normal3-f, zadání normály - (defun ZADAT-KOTVU-TEXTURY) - gl-tex-coord2-i, gl-tex-coord2-f - koordináty textury - (defun POSUNUTÍ) - gl-translated - transformace posunutí - (defun ROTACE) - gl-rotatef - transformace rotace - (defun ZMĚNA-MĚŘÍTKA) - gl-scaled - transformace změna měřítka - (defun UKONČIT-TVAR) - gl-end - ukončení zadání tvaru Zdrojový kód dále obsahuje definice proměnných, konstant barev, tvarů a definici textury. 18
19 3. OpenGL V této části se věnuji stručnému představení grafické knihovny OpenGL Co je OpenGL? OpenGL (Open Graphics Library) je knihovna funkcí pro práci s trojrozměrnou grafikou. Představuje jednotné API (Application Programming Interface) mezi programem a grafickým hardware (grafickou kartou). Hlavním rysem OpenGL je nezávislost na cílové platformě a programovacím jazyku. Knihovna OpenGL vznikla v roce 1992 ve společnosti Silicon Graphics Inc. Jejím předchůdcem byla knihovna IRIS GL, z jehož konceptu OpenGL vychází. Základem tohoto konceptu je proudové zpracování obrazových elementů z nichž je vytvářena trojrozměrná scéna. V současnosti je trojrozměrná grafika široce využívána v různých aplikacích, CAD/CAM inženýrských systémech, virtuální realitě a v počítačových hrách. Standard OpenGL spravuje konsorcium označované jako ARB (Architecture Review Board), jehož členy jsou firmy jako např. NVidia, SGI, Microsoft, AMD apod. Jak plyne z názvu, OpenGL je otevřeným standardem. To znamená, že konsorcium pouze dohlíží, je-li implementace v souladu s jeho specifikací a nestojí nutně za každou realizací OpenGL na určité platformě. Z pohledu programátora je knihovna souborem asi 150 funkcí, které umožňují vytvářet geometrické objekty ve dvou, nebo třech dimenzích. Tyto objekty lze dále zpracovávat. Autor programu nemusí znát konfiguraci počítače, na kterém jeho program bude pracovat. V podstatě lze říci, že programátor pouze zadá vrcholy objektů, popř. jak namapovat textury na tyto objekty a vlastní vykreslení zařídí OpenGL. Je možné dále zapínáním či vypínáním různých voleb OpenGL ovlivňovat vykreslení výsledné scény. Vykreslování scény probíhá procedurálně. Voláním funkcí OpenGL se vykreslí výsledný rastrový obrázek, který je uložen v tzv. framebufferu. Z tohoto framebufferu putují data přímo na zobrazovací zařízení Datové typy a konvence názvů Z důvodu co největší platformové nezávislosti zavádí OpenGL vlastní datové typy. V následující tabulce je uveden přehled základních typů. Pojmenování se řídí konvencí - první dvě písmena jsou GL poté následuje vlastní jméno typu. 19
20 OpenGL typ odpovídající C typ minimální počet bitů přípona GLbyte signed char 8-bit signed integer b GLshort short 16-bit signed integer s GLint, GLsizei int, long 32-bit signed integer i GLfloat, GLclampf float 32-bit floating point f GLdouble, GLclampd double 64-bit floating point d GLubyte, GLboolean unsigned char 8-bit unsigned integer ub GLushort unsigned short 16-bit unsigned short us GLuint, GLenum unsigned int 32-bit unsigned integer ui GLbitfield unsigned short 32-bit unsigned integer ui Tabulka 2. Datové typy. Podobnou konvenci jako datové typy mají i výčtové typy a funkce. Předpona funkce gl udává knihovnu, ze které pochází. gl - OpenGL, glu - OpenGL Utility Library, glut - OpenGL Utility Toolkit. Některé funkce v OpenGL provádí stejnou činnost, ale přijímají jiný počet parametrů, nebo jsou parametry jiného datového typu apod. Proto je konvence pro pojmenování těchto funkcí následující: předpona gl + název funkce + číslice udávající počet parametrů + písmeno udávající datový typ viz. tabulka 2. + v pokud je uvedeno, ukazatel na pole příslušného rozměru a typu. Například: glvertex3f(glfloat x, GLfloat y, GLfloat z) // tři souřadnice typu float glvertex4i(glint x, GLint y, GLint z, GLint w) // čtyři souřadnice typu integer glvertex2dv(gldouble x, GLdouble y) // dvě souřadnice typu double zadány v poli 3.3. Princip práce OpenGL Vykreslení scény, nebo obrazce do vykreslovacího řetězce (rendering pipeline) OpenGL probíhá tak, že se do tohoto řetězce nahrávají dva typy dat: a) geometrická data - údaje o vrcholech objektů b) rastrová data - bitmapy, pixmapy a textury Tato data se při rasterizaci spojí a dále putují do framebufferu. Z něj potom přímo do zobrazovacího zařízení - monitoru apod. Data uložená ve framebufferu je dále možné číst do paměti procesoru, nebo kombinovat s právě vznikajícím snímkem. Tohoto se využívá pro vykreslení zrcadlících efektů, nebo při tzv. blendingu tj. kreslení průhledných objektů např. pohled ven z okna aj. 20
21 Následující obrázek přehledně znázorňuje celý proces vykreslení. Obrázek 2. Princip práce OpenGL. Zdroj [5] Vysoké rychlosti vykreslování se dosahuje především tím, že geometrická a rastrová data jsou zpracovávána odděleně, takže mohou pracovat paralelně. Mo-duly na předchozím obrázku mohou pracovat samostatně a jsou řízeny pouze daty. Uvnitř modulů probíhají operace, které je také možné rozdělit na jednodušší úlohy a ty zpracovávat zřetězeně. Všechny tyto vlastnosti umožňují zřetězené zpracování (pipeline) na vysoké úrovni. Tok dat, převážně geometrických, je jednosměrný, takže je možné použít techniku streamingu, čímž dojde ke snížení objemu dat mezi grafickým procesorem a grafickou pamětí. A nyní k jednotlivým modulům na obrázku. 1. Vertex data - jednotlivé vrcholy objektů. U nichž je možno specifikovat barvu (glcolor), normálu (glnormal), texturovací souřadnice (gltexcoord), parametry materiálu (glmaterial) a další. 2. Pixel data - jednobarevné rastrové obrázky (bitmapy) např. písmo, rastrové obrázky s vyšší bitovou hloubkou (pixmapy), textury pro povrch těles. 3. Display list - posloupnost příkazů OpenGL pojmenovaná a uložená v paměti (grafické, nebo hlavní). Jedním příkazem lze tento display list vyvolat. 21
22 4. Evaluators - použití při vykreslování parametrických ploch. 5. Per-vertex operations and primitive assembly - transformace jednotlivých vertexů pomocí matice ModelView, výpočet osvětlení, vyřazení vertexů, které nebudou vidět z pohledu kamery. 6. Pixel operations - dekódování barev jednotlivých pixelů do interního formátu na grafické kartě, po dekódování jsou pixely bud uloženy do texturovací paměti, nebo poslána dále do rasterizační jednotky. 7. Rasterization - vlastní projekce trojrozměrného obrazu na plochu. 8. Texture assembly - jednoduché operace s texturami; kombinování, mipmapping apod. 9. Per-fragment operations - generování textelů (textel = jeden pixel z textury), výpočet mlhy, antialiasing, blending. 10. Framebuffer - obsahuje barvový buffer (color buffer), buffer hloubky (Z-buffer), buffer šablony (stencil buffer), akumulační buffer (accumulation buffer). Barvových bufferů může být i více např. při doublebufferingu jsou minimálně dva. Jeden z nich vždy představuje to, co je na obrazovce Definice primitiv Základními stavebními prvky z nichž OpenGL vytváří výslednou scénu jsou body, čáry a polygony. Tyto základní prvky se definují v sekci uzavřené funkcemi glbegin() a glend(). Vstupním parametrem funkce glbegin() je konstanta, která určuje jaké primitivum má být vytvořeno. Následující obrázek znázorňuje názvy konstant všech primitiv a způsob jakým jsou vykreslovány. V případě, že je zadán větší počet jednotlivých vrcholů primitiva (vertexů), než je zapotřebí k jeho vykreslení, budou zbylé vrcholy ignorovány. Například pro trojúhelník jsou potřeba 3 vrcholy, pokud budou zadány 4, nebude poslední použit. V této sekci je možné každému vrcholu také přiřadit barvu (funkcí glcolor()), normálový vektor (funkcí glnormal()) nebo nastavení souřadnic textury (funkcí gltexcoord()). 22
23 Obrázek 3. Módy zadávání primitiv Geometrické transformace Pro pohyb objektů ve scéně, nebo pohyb kamery se využívá transformací. Jsou tři typy transformací: modelovací, zobrazovací a projekční. Modelovací transformace Při transformacích jako posunutí, nebo rotace dochází k manipulaci s vrcholy objektů. K této manipulaci dochází tím, že se násobí vektory souřadnic vrcholů aktuální maticí. Transformační příkazy vynásobí aktuální matici vybranou maticí (např. GL MODELVIEW) a výsledek opět uloží do aktuální matice. Před použitím transformací je vždy potřeba nastavit vybranou matici na jednotkovou (funkcí glloadidentity). Pořadí transformací je velmi důležité; například pořadí rotace->posunutí není to stejné jako posunutí->rotace. Zobrazovací transformace Je možné přirovnat tyto transformace k umístění a rotaci kamery, která snímá danou scénu. Pozice kamery je dána jejími souřadnicemi a vektorem, který určuje směr vzhůru. Imlicitně je nastaven na (0,1,0), tedy ve směru osy y. Posunutí kamery vzad má ve scéně stejný účinek, jako posunutí objektu vpřed. Z toho plyne, že tyto dvě transformace jsou v určitém vztahu. Projekční transformace Jakým způsobem se bude promítat scéna do okna aplikace, respektive jak se bude mapovat do roviny, určuje projekční transformace. V OpenGL jsou známy dva typy projekčních matic: kolmá (ortogonální) a perspektivní. 23
24 Při kolmé projekci nedochází ke zkreslení délek a rovnoběžky zůstávají rovnoběžné. Toto má využití například v technických aplikacích typu CAD/CAM. Naopak perspektivní projekce nám podává realistický pohled na danou scénu Osvětlení Pro výpočty osvětlení se v OpenGL používá Phongův osvětlovací model. Tento model sice nepodává fyzikálně nejpřesnější výsledky, ale je výpočetně poměrně rychlý a podává poměrně realistické zobrazení scény. Základem je rozdělení světla na tři složky: Ambientní složka - také se označuje jako okolní světlo. Je to světlo, které dopadá na povrch tělesa rovnoměrně ze všech stran. Toto světlo není vyzařováno ze žádného zdroje, vzniká odrazem světla od okolních těles, stěn apod. Tělesa osvětlená pouze ambientní složkou světla se jeví jakoby plochá, bez prostorového vjemu. Difúzní složka - toto světlo dopadá na povrch tělesa z konkrétního zdroje a od povrchu se odráží všemi směry se stejnou intenzitou. Také se označuje jako odražené světlo. Těleso osvětlené pouze difúzní složkou se jeví prostorově, ale je matné. Proto se toto světlo používá k vykreslení matných povrchů. Spekulární složka - také se označuje jako odlesky. Jde o světlo, které je vyzařováno z určitého zdroje a od tělesa se odráží, podle zákona dopadu a odrazu. Pokud je těleso osvětleno pouze odlesky, jsou vidět jen lesklé plochy tělesa. V praxi se, stejně jako v realitě, používá všech tří složek najednou. V OpenGL lze měnit u každé složky intenzita jednotlivých barev RGB modelu, čímž lze dosáhnout zajímavých grafických efektů. Pro použití světel v OpenGL je potřeba zapnout výpočet osvětlení funkcí glenable(gl LIGHTING). Pro zakázání výpočtu osvětlení potom slouží funkce gldisable(gl LIGHTING). Dále je nutné specifikovat pro které světlo se výpočet provádí. V OpenGL je k dispozici celkem osm světel označených LIGHT0...LIGHT7, ale některé implementace jich podporují i více. Použití více světel ovšem zabírá více systémových zdrojů a může způsobovat pomalejší vykreslování. Světla lze zapínat funkcí glenable(gl LIGHT?), kde za znak otazník je číslo 0-7, značící světelný zdroj. U každého světla lze nastavit parametry funkcí gllight*(). Za znak hvězdičky je potom označení typu předávaných parametrů tj. i, iv, f, fv. Kromě nastavení světelného zdroje popř. světelných zdrojů, je důležité nastavit optické vlastnosti materiálů těles ve scéně. K tomu slouží funkce 24
25 glmaterial*(), kde za znak hvězdičky se opět doplní typ předávaných parametrů i, iv, f, fv. Nastavení materiálu je možné zvlášt pro přední (Front) i pro zadní (Back) stranu povrchu tělesa. Aby osvětlení korektně fungovalo, je nezbytné u každé plošky povrchu vykreslovaného tělesa zadat normálový vektor. Tento vektor je totiž zapotřebí k výpočtům osvětlení a na jeho směru závisí, jak se bude od konkrétní části povrchu tělesa světlo odrážet. K zadání normálových vektorů slouží funkce glnormal3*(), která přijímá vždy 3 parametry a za znak hvězdičky je možné použít tyto zkratky typů b, s, i, f, d, bv, sv, iv, fv, dv. Zadaný normálový vektor by měl být v jednotkovém tvaru neboli normalizován, tj. délka vektoru je jedna. Normalizaci těchto vektorů je v OpenGL možné povolit funkcí glenable(gl NORMALIZE), s tím ovšem souvisí opět další výpočetní nároky, které mohou snížit celkový výkon vykreslování. Doporučuje se proto normalizaci provést programově před vykreslením, nebo je možné je mít předem uložené např. v poli. V souvislosti s osvětlením je potřeba zmínit typ stínování. V OpenGL jsou podporovány dva typy a to ploché a Goraudovo. Ploché stínování se někdy označuje jako konstantní. Principem plochého stínování je výpočet barvy pro celý povrch plošky, která je částí povrchu tělesa. To znamená, že celá tato ploška je obarvena vypočtenou barvou. U Goraudova stínování se provede výpočet barvy pro každý vrchol této vykreslované plošky, a ta je potom obarvena přechodem mezi těmito barvami. Ploché stínování je sice rychlejší, nicméně na vykresleném povrchu jsou viditelné hrany jednotlivých plošek. Goraudovo stínování tyto hrany minimalizuje. Ploché stínování se zapíná funkcí glshademodel(gl FLAT) a Goraudovo glshademodel(gl SMOOTH). Každý světelný zdroj má svoje vlastnosti. Například žárovka v místnosti má jiné vlastnosti, než denní světlo přicházející od slunce, nebo světlo ze svítilny. Můžeme proto typ světla rozdělit do tří kategorií: Bodové světlo - je například výše zmíněná žárovka. Zdroj tohoto světla je umístěn v prostoru v jednom bodě. Světlo se z něj šíří stejnou intenzitou všemi směry. V OpenGL pro zadání pozice světla slouží funkce gllightfv(light?, GL POSITION, pozice). V poli pozice je potom uložena poloha světla ve formě homogenních souřadnic. To znamená, že pro určení bodu v prostoru je zapotřebí 4 souřadnice (x, y, z, 1), kde právě ta čtvrtá souřadnice s hodnotou 1 značí, že se jedná o bod. Směrové světlo - je světlo přicházející z jednoho směru. Například okno v místnosti, nebo sluneční světlo. Sluneční světlo je možné považovat i za bodové, ale protože přichází z poměrně velké vzdálenosti, je možné ho považovat i za směrové. Chceme-li v OpenGL použít směrové světlo, stačí, když pro zadání pozice světla použijeme místo bodu vektor. Opět použijeme funkci gllightfv(), ovšem do pole pozice umístíme jako čtvrtou souřadnici nulu, tedy (x, y, z, 0). U homogenních souřadnic právě čtvrtá souřadnice 25
26 nastavená na nulu určuje, že se jedná o vektor. Ve směru vektoru se potom šíří světelné paprsky, které jsou rovnoběžné. Reflektorové světlo - je téměř shodné jako bodové světlo, rozdíl je ovšem v tom, že reflektorové světlo se šíří ve tvaru kužele. V OpenGL se jedná o nejsložitější typ světla. Pozice světelného zdroje se zadává stejně jako u bodového světla. Dále ovšem musíme specifikovat vektor směru světelného kužele. To lze nastavit vlastností GL SPOT DIRECTION pomocí funkce gllightfv(light?, GL SPOT DIRECTION, směr). V poli směr je potom směrový vektor, který je zavoláním funkce gllight() normalizován. Další vlastností je šíře kužele světelného paprsku. Vlastností GL SPOT CUTOFF výše zmiňované funkce gllight() lze nastavit úhel, který svírá okraj kužele a vektor směru. Hodnota tohoto úhlu je defaultně nastavena na 180 stupňů, takže se jedná o všesměrové světlo. Zadání úhlu je ovšem možné pouze v rozmezí 0-90 stupňů. Hodnota 180 je speciální. Hodnota 0 znamená, že se jedná o velice úzký paprsek, hodnota 90 potom značí reflektor, který svítí do celé šíře prostoru Texturování Název této kapitoly označuje techniku, jak obarvit stěny těles různými vzory, nebo obrazci. Tyto obrazce se nazývají textury, odtud tedy texturování. Nanášení textur na povrch těles nijak neovlivňuje jejich geometrické vlastnosti. Nejběžnější používané textury jsou dvojrozměrné, ale je možné použít i jednorozměrné a u některých grafických systémů i trojrozměrné. Dvojrozměrnou texturou se rozumí klasický obrázek ve formátu bmp, png apod. Jednorozměrná textura je v podstatě dvojrozměrná textura s výškou 1 - tedy jakýsi pruh pixelů. Trojrozměrná textura se někdy též nazývá objemová a nese v sobě i informace o struktuře materiálu, ze kterého je těleso vykresleno. Tyto objemové textury se spíše používají ve specializovaných systémech, například v medicíně a pod. Při texturování je potřeba dodržet následující postup: - vytvořit, nebo ze souboru načíst texturu, - vytvořit texturovací objekt, - povolit nanášení textur, - vykreslit tělesa se zadanými texturovacími koordináty. Textury je možné vytvářet nějakou procedurou přímo v aplikaci - těmto se říká procedurální textury, nebo načíst z nějakého grafického souboru. Tuto část musí provést programátor sám, OpenGL nenabízí žádnou funkcionalitu pro načítání textur ze souboru, nebo jejich vytváření. V každém vývojovém prostředí jsou techniky jak toho lze dosáhnout. Pro potřeby texturování by obrázky měly být 26
27 čtvercové a velikost strany by měla být mocninou 2. Tedy například 8x8, 16x16, 32x32, 64x64, 128x128 pixelů apod. Pokud máme nějakým způsobem k dispozici rastrová data textury, můžeme přistoupit k vytvoření texturovacího objektu. K tomu v OpenGL slouží funkce glteximage2d(target, level, components, width, height, border, format, type, *pixels), pro jednorozměrnou texturu by to byla funkce glteximage1d, které přijímají celkem devět parametrů: - target - pro jednorozměrnou texturu se nastaví GL TEXTURE 1D, pro dvojrozměrnou GL TEXTURE 2D. - level - slouží při mipmappingu, pro běžné textury se nastaví 0. - components - určuje počet barevných složek jednoho pixelu. Možné hodnoty jsou 1 - R, 2 - RA, 3 - RGB a 4 - RGBA, kde R-red, G-green, B-blue, A-alpha. - width - značí šířku textury v pixelech. - height - značí výšku textury v pixelech. - border - označuje šířku okraje textury, běžně se nastavuje na hodnotu 0. - format - udává formát dat použitý pro textury, nastavuje se např. GL RGB, GL RGBA, GL RED, apod. - type - udává typ dat použitých pro popis barevných složek pixelů, např. GL BYTE, GL UNSIGNED BYTE, apod. - *pixels - ukazatel na rastrová data textury, většinou ukazatel na pole. Po zadání tohoto příkazu jsou data textury odeslána do texturovací paměti. Povolení nanášení textur na povrch těles umožňuje funkce glenable(gl TEXTURE 2D), popř. 1D, nebo 3D. Pokud by nanášení textur nebylo povoleno, pro určení barev objektů, by bylo použito barev osvětlení, popř. barvy jednotlivých vrcholů (vertexů). Texturovací koordináty je zapotřebí zadat k zadání každého vrcholu vykreslovaného tělesa. K souřadnicím vrcholu se pomocí funkce gltexcoord*() zadávají souřadnice do textury. Namísto hvězdičky se doplní počet souřadnic a jejich datový typ tj. např. gltexcoord1f(), gltexcoord2f(), gltexcoord2dv, apod. Každá souřadnice textury má velikost v rozsahu od 0.0 do 1.0. Běžná dvojrozměrná textura je tedy čtverec o straně délky 1.0. Je ovšem možné zadávat souřadnice textur i větší než 1.0, pokud je zapnuto opakování motivu, můžeme zadat např. gltexcoord2f(4.0, 0.5). Textura se potom bude na povrchu 4x opakovat na ose x a na ose y bude použita pouze polovina textury. Pro nastavení různých parametrů textur, jako například 27
28 výše zmíněné opakování motivu, můžeme použít funkci gltexparametr*(target, pname, value). Za hvězdičku je opět možno dosadit f, i, fv, iv, podle použitých parametrů. - target - podle dimenze textury bud GL TEXTURE 1D, GL TEXTURE 2D, GL TEXTURE 3D. - pname - parametr GL TEXTURE WRAP? - za otazník se dosadí směr bud s, t,, popř. r a hodnota ( value ) GL REPEAT, pro opakování motivu, nebo GL CLAMP pro protažení posledního řádku/sloupce pixelů textury. Dalším parametrem může být GL MAG FILTER, který nastavuje filtr použitý při zvětšování textury, nebo GL MIN FILTER, použitý při zmenšování textury. Hodnotou ( value ) těchto parametrů potom může být bud G L NEAREST, nebo GL LINEAR. První filtr je rychlý, ale textura je potom jakoby kostičkovaná, druhý je složitější, ale textura vypadá lépe. V závěru této kapitoly bych se ještě zmínil o tzv. mipmappingu. Je to technika, která se snaží minimalizovat vizuální chyby při texturování. Podstatou je to, že se textura uloží ve více rozlišeních. Při vykreslování se potom z těchto textur vybere ta, která má optimální rozlišení vůči relativní velikosti povrchu. 28
29 Pro detailní popis systému OpenGL doporučuji knihu OpenGL(R) programming guide [2]. Výborným zdrojem o OpenGL pro začínající vývojáře je seriál Grafická knihovna OpenGL od pana Tišnovského [5]. 29
30 Závěr Při vývoji této práce jsem zjistil, že jakkoliv je knihovna OpenGL rozšířená, je jen velmi malá podpora pro prostředí LispWorks. Největší podpory se těší vývojáři v jazyce C++. Nicméně i přes všechny obtíže jsem se dostal až sem, k závěru mojí práce. Věřím, že v ní bude hledat inspiraci řada studentů, nejen středoškolských, ale i vysokoškolských. Program DemonstraceOpenGL jednoduše a přehledně předvádí možnosti 3D počítačové grafiky. Součástí je i šest demonstračních souborů, které mohou pomoci v začátcích práce s programem. Doufám, že program budou využívat nejen učitelé a jejich studenti, ale i další začínající vývojáři. Jsem přesvědčen, že se mi podařilo naplnit cíle této bakalářské práce. Námětem pro další práci by byla možnost načítání obrázků textur přímo z grafických souborů a převod rastrových dat do formátu gl-vector. 30
31 Reference [1] Graham, Paul. ANSI Common Lisp Prentice Hall, [2] Shreiner, Dave. Mason, Woo. Neider, Jackie. Davis, Tom. OpenGL(R) programming guide:the official guide to learning OpenGL Addison-Wesley, [3] Sieble, Peter. Practical Common Lisp. - internetový zdroj [4] LispWorks User Guide and Reference Manual. - internetový zdroj [5] Tišnovský, Pavel. Seriál - Grafická knihovna OpenGL. - internetový zdroj 31
32 A. Tvary, konstanty a příkazy Tvar konstanta OpenGL ekvivalent Lispu BODY GL POINTS *GL-POINTS* ČÁRY GL LINES *GL-LINES* TROJÚHELNÍKY GL TRIANGLES *GL-TRIANGLES* OBDÉLNÍKY GL QUADS *GL-QUADS* LOMENÉ-ČÁRY GL LINE STRIP *GL-LINE-STRIP* UZAVŘENÉ-ČÁRY GL LINE LOOP *GL-LINE-LOOP* TRS-TROÚHELNÍKŮ PÁS-TROJÚHELNÍKŮ PÁS-OBDÉLNÍKŮ GL TRIANGLE FAN *GL-TRIANGLE-FAN* GL TRIANGLE STRIP *GL-TRIANGLE-STRIP* GL QUAD STRIP *GL-QUAD-STRIP* POLYGON GL POLYGON *GL-POLYGON* Tabulka 3. Tvary příkazu ZAČÍT-TVAR 32
33 Příkaz Parametry Popis ZAČÍT-TVAR tvar viz. tabulka Tvary ZADAT-VRCHOL x y z tři čísla stejného datového typu ZADAT-BARVU barva viz. tabulka Barvy ZADAT-BARVU x y z tři celá čísla v rozmezí hodnot ZADAT-NORMÁLU x y z tři čísla stejného datového typu ZADAT-KOTVU-TEXTURY s t dvě čísla stejného datového typu POSUNUTÍ x y z tři čísla ROTACE uhel x y z čtyři čísla ZMĚNA-MĚŘÍTKA x y z tři čísla Tabulka 4. Seznam příkazů 33
34 Barva R G B ČERNÁ BÍLÁ ČERVENÁ SVĚTLE-ČERVENÁ TMAVĚ-ČERVENÁ MODRÁ SVĚTLE-MODRÁ TMAVĚ-MODRÁ ZELENÁ SVĚTLE-ZELENÁ TMAVĚ-ZELENÁ RŮŽOVÁ FIALOVÁ ORANŽOVÁ ŽLUTÁ MAGENTA HNĚDÁ OKROVÁ ŠEDÁ Tabulka 5. Barvy 34
35 B. Obsah přiloženého CD V samotném závěru práce je uveden stručný popis obsahu přiloženého CD/DVD, tj. závazné adresářové struktury, důležitých souborů apod. doc/ src/ Dokumentace práce ve formátu PDF, vytvořená dle závazného stylu KI PřF pro diplomové práce, včetně všech příloh, a všechny soubory nutné pro bezproblémové vygenerování PDF souboru dokumentace (v ZIP archivu), tj. zdrojový text dokumentace, vložené obrázky, apod. Kompletní zdrojové texty programu demonstraceopengl se všemi potřebnými (převzatými) zdrojovými texty, knihovnami a dalšími soubory pro bezproblémové vytvoření spustitelných verzí programu. readme.txt Instrukce pro instalaci a spuštění programu demonstraceopengl, včetně požadavků pro jeho provoz. Navíc CD/DVD obsahuje: data/ Ukázková a testovací data použitá v práci. U veškerých odjinud převzatých materiálů obsažených na CD/DVD jejich zahrnutí dovolují podmínky pro jejich šíření nebo přiložený souhlas držitele copyrightu. Pro materiály, u kterých toto není splněno, je uveden jejich zdroj (webová adresa) v textu dokumentace práce nebo v souboru readme.txt. 35
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
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
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
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
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
Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1)
Závěrečná práce AutoCAD Inventor 2010 (Zadání D1) Pavel Čurda 4.B 4.5. 2010 Úvod Tato práce obsahuje sestavu modelu, prezentaci a samotný výkres Pákového převodu na přiloženém CD. Pákový převod byl namalován
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
Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý
Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části
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
Zobrazování bannerů podporují pouze nově vytvořené šablony motivů vzhledu.
Bannerový systém ProEshop od verze 1.13 umožňuje zobrazování bannerů na popředí e-shopu. Bannerový systém je přístupný v administraci e-shopu v nabídce Vzhled, texty Bannerový systém v případě, že aktivní
Formulář pro křížový filtr
Formulář pro křížový filtr Formulář pro křížový filtr je určen zejména autorům křížovek a má sloužit jako pomůcka při jejich tvorbě. Levé části formuláře dominuje tzv. šablona, což je síť 20 krát 20 políček
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
pro začátečníky pro pokročilé na místě (dle požadavků zákazníka)
Semináře pro začátečníky pro pokročilé na místě (dle požadavků zákazníka) Hotline telefonická podpora +420 571 894 335 vzdálená správa informační email carat@technodat.cz Váš Tým Obsah Obsah... -2- Úvod...
KAPITOLA 3 - ZPRACOVÁNÍ TEXTU
KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KLÍČOVÉ POJMY textové editory formát textu tabulka grafické objekty odrážky a číslování odstavec CÍLE KAPITOLY Pracovat s textovými dokumenty a ukládat je v souborech různého
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č
UniLog-D. v1.01 návod k obsluze software. Strana 1
UniLog-D v1.01 návod k obsluze software Strana 1 UniLog-D je PC program, který slouží k přípravě karty pro záznam událostí aplikací přístroje M-BOX, dále pak k prohlížení, vyhodnocení a exportům zaznamenaných
Manuál k programu IDP 1.0
Příloha B Manuál k programu IDP 1.0 Toto je manuál k programu IDP - Interakční diagram průřezu 1.0, který byl vytvořen v rámci této diplomové práce za podpory grantu Studentské grantové soutěže ČVUT v
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
Reliance 3 design OBSAH
Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních
Novinky v Solid Edge ST7
Novinky v Solid Edge ST7 Primitiva Nově lze vytvořit základní geometrii pomocí jednoho příkazu Funkce primitiv je dostupná pouze v synchronním prostředí Těleso vytvoříme ve dvou navazujících krocích, kde
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
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
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
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
Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání
Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou
Název: VY_32_INOVACE_PG3315 Umisťování textur pomocí modifikátoru UVW Map. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max
Název: VY_32_INOVACE_PG3315 Umisťování textur pomocí modifikátoru UVW Map Autor: Mgr. Tomáš Javorský Datum vytvoření: 09 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max
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
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
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ů,
Začínáme pracovat s tabulkovým procesorem MS Excel
Začínáme pracovat s tabulkovým procesorem MS Excel Nejtypičtějším představitelem tabulkových procesorů je MS Excel. Je to pokročilý nástroj pro tvorbu jednoduchých i složitých výpočtů a grafů. Program
Stručný postup k použití programu PL7 Junior (programování TSX Micro)
Stručný postup k použití programu PL7 Junior (programování TSX Micro) 1. Připojení PLC TSX Micro k počítači Kabel, trvale zapojený ke konektoru TER PLC, je nutné zapojit na sériový port PC. 2. Spuštění
Vytvoření a úpravy geologického modelu
Inženýrský manuál č. 39 Aktualizace 11/2018 Vytvoření a úpravy geologického modelu Program: Stratigrafie Soubor: Demo_manual_39.gsg Úvod Cílem tohoto inženýrského manuálu je vysvětlit základní práci s
Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy
Úloha 1 Úloha 2 Otázka se týká předchozího kódu. Určete pravdivost následujícího tvrzení: "Pro každý bod vytvoří úsečku mezi ním a středem panelu." Úloha 3 Otázka se týká předchozího kódu. Určete pravdivost
MS Word. verze Přehled programů pro úpravu textu
MS Word verze 2013 Přehled programů pro úpravu textu Pro úpravu textu slouží textový editor Jednoduché (zdarma, součást operačního systému MS Windows): Poznámkový blok, WordPad Komplexní: MS Word, Writer
StatSoft Jak vyzrát na datum
StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek
Windows - základy. Hlavním vypínačem na základní jednotce. K datům uloženým do výchozí složky.
Práce se soubory a složkami Windows - základy Otázka Jakým způsobem se zapíná počítač? Jaká vstupní pole musí být vyplněna v přihlašovacím panelu Windows? K čemu slouží postup "Nabídka Start" - "Vypnout"
Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.
Program pro tvorbu technických výpočtů VIKLAN - Výpočty Uživatelská příručka pro seznámení se základními možnostmi programu Ing. Josef Spilka VIKLAN - Výpočty Verse 1.10.5.1 Copyright 2010 Ing. Josef Spilka.
Vektorové grafické formáty
Vektorové grafické formáty Semestrální práce na předmět KAPR Fakulta stavební ČVUT 28.5.2009 Vypracovali: Petr Vejvoda, Ivan Pleskač Obsah Co je to vektorová grafika Typy vektorových formátů Souborový
FORTANNS. havlicekv@fzp.czu.cz 22. února 2010
FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku
Manuál k programu KaraokeEditor
Manuál k programu KaraokeEditor Co je KaraokeEditor? Program slouží pro editaci tagů v hudebních souborech formátu mp3. Tagy jsou doprovodné informace o písni, uložené přímo v mp3. Aplikace umí pracovat
TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ
TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí
Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu
sq Program ZK EANPRINT verze 1.20 Uživatelská dokumentace programu Úvod Základní vlastnosti programu Jednoduchost ovládání - umožňuje obsluhu i málo zkušeným uživatelům bez nutnosti většího zaškolování.
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:
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
KAPITOLA 4 ZPRACOVÁNÍ TEXTU
KAPITOLA 4 ZPRACOVÁNÍ TEXTU TABULÁTORY Jsou to značky (zarážky), ke kterým se zarovná text. Můžeme je nastavit kliknutím na pravítku nebo v dialogovém okně, které vyvoláme kliknutím na tlačítko Tabulátory
Co je nového v aplikaci PaperPort 12?
Vítejte! Aplikace PaperPort společnosti Nuance je softwarový balíček pro správu dokumentů pracovní plochy, který vám usnadní skenování, uspořádání, sdílení, správu a přístup k papírovým a digitálním dokumentům
Comenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo
Úterý 20. března Comenius Logo je objektově orientovaný programovací nástroj pracující v prostředí Windows. Byl vyvinut na Slovensku jako nástroj k výuce programování na základních školách. Rozvíjí tvořivost
Archive Player Divar Series. Návod k obsluze
Archive Player Divar Series cs Návod k obsluze Archive Player Obsah cs 3 Obsah 1 Úvod 4 2 Použití 5 2.1 Spuštění programu 5 2.2 Popis hlavního okna 6 2.3 Tlačítko Otevřít 6 2.4 Pohledy kamery 6 2.5 Tlačítko
43 HTML šablony. Záložka Šablony v systému
43 HTML šablony Modul HTML šablony slouží ke správě šablon pro výstupy z informačního systému modularis ve formátu HTML. Modul umožňuje k šablonám doplňovat patičku, dokumentaci a vázat šablony na konkrétní
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
APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6
APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...
Mapová aplikace HZS Ústeckého kraje
Mapová aplikace HZS Ústeckého kraje Stručný návod Tato aplikace vznikla z důvodu potřeby prezentace geografických dat HZS Ústeckého kraje a dalších poskytovatelů dat v jednotné mapové aplikaci. Dalším
Ú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
Prostředí Microstationu a jeho nastavení. Nastavení výkresu
Prostředí Microstationu a jeho nastavení Nastavení výkresu 1 Pracovní plocha, panely nástrojů Seznámení s pracovním prostředím ovlivní pohodlí, rychlost, efektivitu a možná i kvalitu práce v programu Microstation.
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),
MS SQL Server 2008 Management Studio Tutoriál
MS SQL Server 2008 Management Studio Tutoriál Vytvoření databáze Při otevření management studia a připojením se ke konkrétnímu sql serveru mám v levé části panel s názvem Object Explorer. V tomto panelu
Název: VY_32_INOVACE_PG3311 Kamera a její použití, světelné efekty. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max
Název: VY_32_INOVACE_PG3311 Kamera a její použití, světelné efekty Autor: Mgr. Tomáš Javorský Datum vytvoření: 06 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max Anotace:
Styly odstavců. Word 2010. Přiřazení stylu odstavce odstavci. Změna stylu odstavce
Styly odstavců V textu, který přesahuje několik stránek a je nějakým způsobem strukturovaný (což znamená, že se dá rozdělit na části (v knize jim říkáme kapitoly) a jejich podřízené části (podkapitoly),
DUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
Práce s texty, Transformace rastru, Připojení GPS
Školení programu TopoL xt Práce s texty, Transformace rastru, Připojení GPS Obsah: 1. Uživatelské rozhraní (heslovitě, bylo součástí minulých školení) 2. Nastavení programu (heslovitě, bylo součástí minulých
1. Úvod do obsluhy AutoCADu
1. Úvod do obsluhy AutoCADu Studijní cíl V této lekci se naučíme: Seznámíme se s potřebným zařízením. Způsoby ovládání. Nastavení AutoCADu. Doba nutná k procvičení 1,5 hodiny 1.1 AutoCAD AutoCAD je plnohodnotný
Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec
StatSoft Vzorce Jistě se Vám již stalo, že data, která máte přímo k dispozici, sama o sobě nestačí potřebujete je nějak upravit, vypočítat z nich nějaké další proměnné, provést nějaké transformace, Jinak
Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost
Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence
Manuál k ovládání aplikace INFOwin.
Manuál k ovládání aplikace INFOwin. Základní práce s formuláři je ve všech modulech totožná. Vybereme tedy například formulář Pokladní kniha korunová na kterém si funkce ukážeme. Po zápisech se lze pohybovat
CARAT Fórum května 2017 TIPY & TRIKY
CARAT Fórum 2017 18. května 2017 TIPY & TRIKY AGENDA RAYTRACER App CARAT view RAYTRACER 1. Přednastavené a vlastní profily 2. Hodnoty pro zobrazeni perspektivy 3. Doporučení při práci s Raytracer 4. Editace
Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina
Program LibTex Uživatelská příručka 1 Obsah Program Textilní Design... 1 Uživatelská příručka... 1 1 Obsah... 2 2 Rejstřík obrázků... 2 3 Technické požadavky... 3 3.1 Hardware... 3 3.1.1 Procesor... 3
OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel
OPERAČNÍ SYSTÉM základní ovládání Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel Pár otázek na začátek popište k čemu se používá počítač v jakých oborech lidské činnosti se využívá počítačů?
Geometrické algoritmy pro počítačovou grafiku
České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Katedra fyzikální elektroniky Informatická fyzika Geometrické algoritmy pro počítačovou grafiku Semestrální práce Autor práce:
František Hudek. červenec 2012
VY_32_INOVACE_FH14 Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek červenec 2012 8.
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 )
Comenius Logo. Princip programování. Prostředí Comenius Logo
Comenius Logo je objektově orientovaný programovací nástroj pracující v prostředí Windows. Byl vyvinut na Slovensku jako nástroj k výuce programování na základních školách. Rozvíjí tvořivost a schopnost
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií Softwarový nástroj pro tvorbu a správu genealogických dat Manuál pro uživatele Bc. František Hlaváček Součást
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
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
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í
Tisk map z LPIS - rozšířené
Evropský zemědělský fond pro rozvoj venkova: Evropa investuje do venkovských oblastí Tisk map z LPIS - rozšířené Podklady pro školení Říjen 2011 PV-Agri s.r.o. 2011 http://www.pvagri.cz pvagri@pvagri.cz
Formátování pomocí stylů
Styly a šablony Styly, šablony a témata Formátování dokumentu pomocí standardních nástrojů (přímé formátování) (Podokno úloh Zobrazit formátování): textu jsou přiřazeny parametry (font, velikost, barva,
SCHÉMA aplikace ObčanServer 2 MENU aplikace Mapové kompozice
ObčanServer Nápověda SCHÉMA aplikace ObčanServer 2 MENU aplikace Mapové kompozice Příklady mapových kompozic Katastrální mapa Územní plán Funkční plochy Letecký snímek Pasport hřbitova Císařské otisky
Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 23 FORMÁT SOUČÁSTI]
Aplikované úlohy Solid Edge SPŠSE a VOŠ Liberec Ing. Jan Boháček [ÚLOHA 23 FORMÁT SOUČÁSTI] 1 CÍL KAPITOLY V této kapitole se zaměříme na Formát součásti, pod kterým si můžeme představit nastavení uživatelského
Popis programu: Popis přípon důležitých souborů: *.qpf projektový soubor Quartusu
Software Quartus II Popis programu: Quartus II Web Edition je označení bezplatného software, s jehož pomocí lze napsat, zkompilovat, odsimulovat a naprogramovat FPGA a CPLD obvody firmy Altera. Cílem tohoto
Název: VY_32_INOVACE_PG3314 Rendering - vykreslení vytvořené scény. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max
Název: VY_32_INOVACE_PG3314 Rendering - vykreslení vytvořené scény Autor: Mgr. Tomáš Javorský Datum vytvoření: 05 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max Anotace:
Controlweb. Úvod. Specifikace systému
Controlweb Úvod ControlWeb je aplikace pro řízení a indikaci v průmyslu v reálném čase. Mezi jeho základní funkce patří ovládání různých veličin spojitých, binárních nebo textových a zobrazování stavu
Předpoklady správného fungování formulářů
Předpoklady správného fungování formulářů Uživatelská příručka Aktualizováno: 19. 2. 2018 Obsah 1 Úvod... 3 2 Systémové požadavky... 3 3 Práce s přílohami... 3 4 MS Internet Explorer... 3 4.1 Instalace
Možnosti tisku v MarushkaDesignu
0 Možnosti tisku v MarushkaDesignu OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 - 1 Cíl příkladu V tomto příkladu si ukážeme
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Č í sla slovy 1.3. verze dokumentu: 1.02.141029 vytvořil: Ing. Pavel Randák předmět: Uživatelský manuál vydavatel: Austro-Bohemia, s.r.o.
Austro-Bohemia, s.r.o. Na Hrázi 178/25, 180 00 Praha 8 Č í sla slovy 1.3 verze dokumentu: 1.02.141029 vytvořil: Ing. Pavel Randák předmět: Uživatelský manuál vydavatel: Austro-Bohemia, s.r.o. V tomto uživatelském
Satori. Uživatelský manuál
Satori Uživatelský manuál Obsah Satori...1 1. Program... 3 1.1 Cíle hry... 3 1.2 Požadavky...3 1.3 Instalace... 4 1.4 Ovládání... 4 1.5 Grafika...4 1.6 Zvuky...4 1.7 Soubory...4 1.8 Menu...5 1.9 Nastavení...
SignEditor 1 - návod k použití
SignEditor 1 - návod k použití Tomáš Ryba tryba@kky.zcu.cz Zdeněk Krňoul zdkrnoul@kky.zcu.cz Jakub Kanis jkanis@kky.zcu.cz 27. března 2012 1 Vznik za podpory projektu Pojabr - Potlačení jazykové bariéry
Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.
Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,
František Hudek. červen ročník
VY_32_INOVACE_FH17_WIN Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek červen 2013
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
Copyright 2013 Martin Kaňka;
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Popis aplikace Hlavním cílem aplikace Cubix je výpočet a procvičení výpočtu objemu a povrchu těles složených z kostek. Existují tři obtížnosti úkolů
VoiceOver v ios s QWERTY klávesnicí
VoiceOver v ios s QWERTY klávesnicí Poslední aktualizace článku: 18/11/2015 Tento článek přináší přehled klávesových zkratek, které můžete z QWERTY klávesnice při práci s odečítačem VoiceOver v systému
Uživatelská příručka.!instalace!průvodce.!dialogová okna!program zevnitř
Uživatelská příručka!instalace!průvodce!použití!dialogová okna!program zevnitř KAPITOLA 1: INSTALACE PROGRAMU Svitek...4 HARDWAROVÉ POŽADAVKY...4 SOFTWAROVÉ POŽADAVKY...4 INSTALACE PROGRAMU Svitek NA VÁŠ
Aplikační profily v PLC Tecomat
Aplikační profily v PLC Tecomat TXV 003 39.01 první vydání září 2012 změny vyhrazeny 1 TXV 003 39.01 Historie změn Datum Vydání Popis změn Září 2012 1 První vydání OBSAH 1 Úvod...3 2 Kontrola aplikačních
CZ.1.07/2.2.00/28.0021)
Metody geoinženýrstv enýrství Ing. Miloš Cibulka, Ph.D. Brno, 2015 Cvičen ení č.. 1 Vytvořeno s podporou projektu Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)
MS PowerPoint ZÁKLADY
MS PowerPoint ZÁKLADY UKÁZKA ŠKOLÍCÍCH MATERIÁLŮ Centrum služeb pro podnikání s.r.o. 2014, I. Verze, TP OBSAH 1. Úvod do PowerPointu... 1 2. Otevření PowerPointu... 1 3. Pracovní prostředí PowerPointu...
Nápověda k aplikaci EA Script Engine
Nápověda k aplikaci EA Script Engine Object Consulting s.r.o. 2006 Obsah Nápověda k aplikaci EA Script Engine...1 1. Co je EA Script Engine...2 2. Důležité upozornění pro uživatele aplikace EA Script Engine...3