-STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST
|
|
- Lubomír Kříž
- před 9 lety
- Počet zobrazení:
Transkript
1 -STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST Obor SOČ: 18. Informatika QEditor 3D editor terénu 3D terrain editor Lukáš Veteška David Podzimek Hradec Králové 2015
2 STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST Obor SOČ: 18. Informatika QEditor 3D editor terénu QEditor 3D terrain editor Autoři: Lukáš Veteška David Podzimek Škola: Střední škola a vyšší odborná škola aplikované kybernetiky s.r.o Hradecká 1151, Hradec Králové Kraj: Královéhradecký kraj Konzultant: Ing. Milan Hloušek Hradec Králové 2015
3 Prohlášení Prohlašujeme, že jsme naši práci SOČ vypracovali samostatně a použili jsme pouze podklady (literaturu, projekty, SW atd.) zmíněné v seznamu uvedeném v práci SOČ. Prohlašujeme, že tištěná verze a elektronická verze soutěžní práce SOČ jsou shodné. Nemáme závažný důvod proti zpřístupňování této práce v souladu se zákonem č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon) v platném znění. V Hradci Králové dne podpis:... podpis:
4 Poděkování Děkujeme Ing. Milanu Hlouškovi a Mgr. Richardu Rejtharovi za obětavou pomoc a podnětné připomínky, které nám během práce poskytovali.
5 ANOTACE V odborné práci QEditor představujeme program, podle nehož lze vytvořit grafické prostředí pro simulaci světa či virtuální svět hry. Na bázi tohoto programu je možné vyvíjet nové počítačové hry. Intuitivní ovládání aplikace umožňuje rychlé seznámení s prostředím programu samotného. Naše práce představuje hlavní nástroje programu a jejich pomocné funkce. Konkrétní použití základních nástrojů a jejich demonstrace v praxi je přiblížena v praktické části naší práce. Klíčová slova: editor terénu; 3D svět; výškový editor; software na vytváření krajin; 3D počítačová grafika; grafický software. ANNOTATION In professional work QEditor is introduced program which has purpose to create graphics environment for virtual world or simulation of world. Based on this program can teams develop new computer games. Intuitive application control allows to quick introduction with environment of program. In work are described main tools of program and their auxilliary functions. In practical part are described specific using of basing tools and their demonstration in practice. Key words: terrain editor; 3D world; heightmap editor; landscape software; 3D computer graphics; graphics software.
6 OBSAH 1 Úvod Cíle projektu 3 2 Použité technologie Systémové požadavky Cross-platform Únik paměti (memory leak) D matematika GLSL 10 3 Nástroje, nepostradatelné pro aplikaci Ukazatel Nástroj k upravování terénu Nástroj na kreslení textur Nástroj Vertex shading Nástroj Voda Nástroj 3D modelů Nástroj Kamera Skybox Ostatní Plánované funkce 22 4 Realizace aplikace Implementace ukazatele Implementace upravování terénu, kreslení textur a Vertex shadingu 27
7 4.4 Implementace 3D modelů 31 5 Mobilní platformy Windows Phone 33 6 Závěr 34 PŘÍLOHA A: Seznam použité literatury a pramenů 35 PŘÍLOHA B: Seznam obrázků a tabulek 37 PŘÍLOHA C: License 38 2
8 1 Úvod QEditor je aplikace s rozsáhlou škálou nástrojů, jejichž společným cílem je pomoc při vytvoření virtuálního světa nebo modelování simulace světa. V současné době existuje bohatá nabídka řešení pro vytvoření virtuálního světa, potažmo počítačové hry. U hlavních nástrojů jsou ale nutná mnohá další nastavení, aby je bylo možno použít. Domníváme se, že současná řešení obsahují i funkce, které považujeme za zbytečné přežité. 1.1 Cíle projektu Výše uvedené důvody nás motivovaly k pokusu, navrhnout a posléze i realizovat vlastní projekt, který by vytvořil aplikaci, umožňující uživatelům obejít se bez těchto podle nás přebytečných bezvýznamných funkcí. Program se nachází v tzv. Alfa verzi, kdy není zcela hotový. Přesto se domníváme, že počítačovou hru či simulaci světa lze s verzí programu tak, jak se nachází v momentální fázi, postavit. K vytvoření jedné části mapy potřebujeme časový prostor v řádu několika hodin. Finální aplikace by neměla vyžadovat více času než jednu hodinu. 3
9 2 Použité technologie Vzhledem k nevyrovnaným ekonomickým možnostem byly pro testování aplikace použity i starší verze z předchozích let. Pro vývoj celé aplikace byly použity nejmodernější softwarové i hardwarové technologie dnešní doby. Přesné informace o určitých technologiích a platformách níže. 2.1 Systémové požadavky Každá aplikace vyžaduje pro svůj provoz technickou infrastrukturu (klientské počítače, síťové prvky, atd) s parametry odpovídajícími zejména zatížení aplikace v plném provozu. Na celkový datový výkon aplikace má rozhodující vliv optimální dimenzování všech prvků infrastruktury a jejich vyvážené sestavení. Níže jsou minimální a doporučené systémové požadavky specifikované pro QEditor pro Windows, Mac a Linuxů. Kvůli možným změnám v programu se mohou minimální systémové požadavky pro QEditor změnit časem. Tabulka č. 1. Systémové požadavky Operační systém Procesor Grafická karta Minimální požadavky Windows XP (poslední service pack) / Mac OS X / Linux Debian 6 s OpenGL 4.2 Intel Core i3-4000m Processor (3M Cache, 2.40 GHz) nebo AMD Athlon II GeForce GTX 460 nebo AMD Radeon HD 6450 Doporučené požadavky Windows 7 (poslední service pack) / Mac OS X 10.8 / Linux Debian 7 Intel Core i5-4310u Processor (3M Cache, up to 3.00 GHz) nebo AMD FX GeForce GTX 650 nebo AMD Radeon HD 7730 Operační paměť 2 GB RAM 4 GB RAM Uložiště 1 GB Internet Bez připojení 0.5 Mbps Rozlišení obrazovky 1024x x1080 4
10 2.2 Cross-platform Cross-platform česky Multiplatformní software je termín, který je nejčastěji užíván ve spojení s aplikací, jež může běžet na více počítačových platformách. V našem případě to znamená, že QEditor je napsaný, aby běžel pod Microsoft Windows na architektuře x86, tak například pod zmiňovaným Mac OS X na architektuře PowerPC či Linux. Že aplikace může být spustitelná na platformě více než jednou, je dalším významem pojmu multiplatformní. Aplikace QEditor je navržena tak, aby bylo možné ji spustit i na ostatních platformách. QEditor je naprogramován v programovacím jazyku C++ (viz následující kapitola). Kromě toho, že C++ je cross-platform, využíváme zde ještě open source [1] framework [2] nazývaný Qt. Qt je cross-platform UI [3] framework pro vyvíjení v C++. Je taktéž open source, proto je to vhodná volba pro náš projekt. Mimo jiné má Qt využití i komerční, ale náš projekt se po uvolnění chystá být open source, nebude nás tedy finančně zatěžovat. Momentálně je Qt ve verzi a projekt na ní funguje. Pro zajímavost uvádíme příklad: aplikace Skype je cross-platform a naprogramována v Qt frameworku. V současné době bylo staženo více jak kopií Qt s aktuální verzí. [1] open source v češtině otevřený software, software či framework s otevřeným zdrojovým kódem [2] framework soubor knihoven pro programování v daném jazyce [3] UI User Interface, v češtině uživatelské rozhraní 5
11 Tabulka č. 2. Jazyk Charakteristika jazyka Především dnešní využítí v mikročipech Jeden z nejvíce rozšířených a používaných programovacích jazyků C Výhoda --- Nevýhoda Neobsahuje objekty, které usnadňují práci v programování - jedna z nejvíce zásadních úloh C++ Charakteristika jazyka Vychází z C Jinak postavené používaní paměti než C#/Java. Proto je lepší tento jazyk použít, je více stavěný na ovládání paměti přímo, což vylepšuje výkon Cross-platform STL Standartní templatová knihovna (algoritmy, základní funkce apod) Globální proměnné a globální funkce Výhoda Lepší ovládání OpenGL [2] Podporuje i DirectX [3] Nevýhoda Únik paměti (viz Kapitola č ) C# Charakteritika jazyka Výhoda DirectX Vychází z C++ a Javy Gargbage kolektor uvolňuje paměť, průběhu času se již nepoužívá.net-framework Knihovny pro vývoj především na platformě Windows Nevýhoda Pro velké hry Java Charakteristika jazyka Výhoda --- Cross-plaftorm Obsahuje konstantní parametry Pro malé a střední hry velice vhodný Nevýhoda Velké nároky na paměti Neobsahuje dynamické proměnné jako C# [1] API Application Programming Interface, v češtině označuje rozhraní pro programování aplikací. Jde o sbírku procedur, funkcí, tříd či protokolů nějaké knihovny [2] OpenGL Open Graphics Library, v češtině označuje otevřená grafická knihovna, která je cross-platform API pro vykreslování 2D a 3D vektorové grafiky. API komunikuje s grafickou kartou (GPU) [3] DirectX Kolekce API pro řízení multimedia úloh především v herním programování nebo videa na Microsoftí platformě 6
12 2.3 Únik paměti (memory leak) V pravém názvu Memory leak označuje situaci, kdy program, ať již úmyslně nebo neúmyslně, alokuje [1] opěrační paměť a není ji schopen uvolnit poté, co ji nadále ani nepotřebuje, ani nevyužívá. Především se s tímto problémem setkáme v jazyce C a C++, v předchozí kapitole jsme uváděli informace o jazyce, nyní zde rozebereme výhodu a nevýhodu ovládání paměti. Při restartování počítače se na malou chvíli paměť RAM ocitne bez el. proudu, na kterém je energeticky závislá. V C++ může mnoho zapomenutých objektů snížit výkon. Pokud ale zkušený programátor nezapomene na jediný objekt ke smazání, tak bude C++ prosperovat v rychlosti více než C# či Java. Obava, že programy, které se programují v jazyce C/C++, mohou být nebezpečné nebo neefektivní z důvodu úniku paměti, není opodstatněná. Vzniklo mnoho ladících nástrojů (anglicky Debugger) např. oblíbený Valgrind. Avšak dnešní počítačové systémy jsou tak inteligentní, že uvolní veškerou paměť, kterou aplikace alokovala. To, že k tomu je třeba ještě krátkého časového prostoru po ukončení programu, můžeme považovat za nedostatek. Kdyby proto došlo k malým únikům paměti v řádech kb tak nemusí být ani odhaleny, neboť dnešní počítače jsou vybavené pamětí RAM o velikosti 4GB a výše. Pokud se jedná již o desítky MB, jsou lehce odhalitelné a převážně jednoduché k nalezení a opravení. Příklad laického vysvětlení úniku paměti: Bylo stisknuto tlačítko: Vezmi část paměti, která bude použita na zapamatování čísla patra Dej číslo patra do paměti Jsi již v cílovém patře? Pokud ano, není co dělat: hotovo Jinak: Počkej, dokud nebude výtah v klidu Jeď do požadovaného patra Uvolni paměť používanou k zapamatování čísla patra [1] alokace proměna objektu se uloží do paměti RAM s patřičnou adresou [2] objekty jednotlivé prvky, pamatují si stav a navenek poskytují operace 7
13 2.4 3D matematika U počítačové grafiky nám ulehčí práci Qt framework a základní znalost 3D matematiky. Bezpodmínečná je znalost matematiky, zejména lineární algebry, matice, vektorů, kvatertion a goniometrie. Matice pro aplikaci: Prohlížející směr, kterým se kamera dívá (tzv. pohledová transformace) Modelovací skrze ni vkládáme objekty do scény Projekční tvar záběru (měníme ohnisko, vzdálenost, atd.) Zobrazovací zvětšení/zmenšení a na mapování výsledné scény Nejčastější matice v 3D matematice jsou o velikosti 3x3 nebo 4x4. Používají se k transformaci kamery, přes kterou koukáme skrze okno aplikace do prostoru. Vektory pro aplikaci od 1D až po 4D (x, y, z, w): 2D vektor - pro kurzor na obrazovce v operačním systému 3D vektor - pozice kamery, prohlížející vektor kamery, data mapy Kvatertion: rotace kamery objektů animace kostí u objektů * * na animacích momentálně pracujeme 8
14 Příklad z praxe na získání 3D pozice v prostoru z 2D pozice kurzoru operačního systému QVector3D MapView::getWorldCoordinates(float mousex, float mousey) // funkce getworldcoordinates s návratovým typem QVector3D (x, y, z) { QMatrix4x4 viewmatrix = camera->viewmatrix(); // získáme pohledovou matici QMatrix4x4 modelviewmatrix = viewmatrix * modelmatrix; // vytvoříme modelview matici z pohledové matice * model matice QMatrix4x4 modelviewproject = camera->projectionmatrix() * modelviewmatrix; // vytvoříme modelviewproject matici z projekční matice * modelviewmatrix (pohledová * model matice) QMatrix4x4 inverted = viewportmatrix * modelviewproject; // vytvoříme proměnou QMatrix4x4 inverted a zkombinujeme do ní matici scény s předešlou maticí modelviewproject inverted = inverted.inverted(); // invertujeme QMatrix4x4 inverted float posz; // založíme proměnou posz float posy = viewportsize.y() - mousey - 1.0f; // založíme proměnou posy a vložíme do ní hodnotu world->getglfunctions()->glreadpixels(mathhelper::toint(mousex), MathHelper::toInt(posY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &posz); // přečteme pomocí OpenGL knihovny hloubku na pozici mousex a posy, zapíšeme hloubku do posz QVector4D clickedpointonscreen(mousex, posy, 2.0f * posz - 1.0f, 1.0f); // vytvoříme si QVector4D, vložíme do ní, kde se nachází kurzor již s hloubkou QVector4D clickedpointin3dorgn = inverted * clickedpointonscreen; // vynásobíme invertující matici s pozicí, kde se nachází kurzor clickedpointin3dorgn /= clickedpointin3dorgn.w(); // vydělíme (x, y, z, w) hodnotou w return clickedpointin3dorgn.tovector3daffine(); // vrátíme z 4D vektoru jen 3D vektor (x, y, z) } 9
15 2.5 GLSL OpenGL Shading Language je programovací jazyk pro psaní shaderů, který vychází ze syntaxe [1] jazyka C. Shadery jsou programy určené k řízení jednotlivých fází programovatelného grafického řetězce grafické karty neboli GPU [2]. Původní GLSL verze přišla s verzí OpenGL 1.4. Oficiálně bylo GLSL představeno až ve verzi OpenGL 2.0 (rok 2004). Nejnovější GLSL verze je 4.40 a běží s OpenGL 4.4 zhruba od poloviny roku Flexibilitu ve vykreslování zvyšují nové funkce, jimiž jsou dnešní grafické karty obohaceny. Výhoda GLSL: Cross-platform kompatibilita (Windows, Linux, Mac OS X) Každý hardwarový [3] výrobce přikládá GLSL kompilátor [4] ve svých ovladačích, toto přináší výrobcům možnost optimalizovat kód pro svou architekturu grafické karty Schopnost psát shadery, které můžou být použity na kterékoliv grafické kartě, podporující GLSL [1] syntax zápis programovacího jazyka [2] GPU Graphics processing unit, česky grafický procesor [3] hardware fyzické technické vybavení počítače [4] kompilátor překladač programovaího jazyka 10
16 GLSL architektura: Aplikace Vertex Shader Provede na každém vrcholu vstupní geometrie operace, nejčastěji transformace vrcholu. Můžeme zde udělat např. simulaci pohybu vodní hladiny. Vertex Shader Tessellation Control Shader Tessellator Shadery pro teselaci Dva z těchto tří stupňů jsou programovatelné. Umožňují měnit geometrii objektů. Díky teselaci zakotvené přímo v GPU je možné do scény přidat velké množství detailů (např. podle kamery, kde jsou potřeba). Tessellation Evaluation Shader Geometry Shader Fragment Shader Geometry Shader Na rozdíl od vertex shaderu umožňuje přidávat nebo odebírat vrcholy a tím ovlivňovat výslednou geometrii. Fragment Shader Je prováděn na každém pixelu scény - pracuje tedy s 2D obrazem. Můžeme např. aplikovat texturu či modifikovat barvu pixelu. 11
17 3 Nástroje nepostradatelné pro aplikaci Ukazatel Nástroj k upravování terénu Nástroj na kreslení textur Nástroj Vertex shading Nástroj voda Nástroj 3D modelů Pro efektivní práci v programu má využití a nastavení každého nástroje své opodstatnění a význam. Jednotlivé nástroje vám nyní představíme. 3.1 Ukazatel Obrázek 1: Ukazatel Ukazatel je výchozím nástrojem v případě, že chcete krajinu pouze prohlížet a v žádném případě ji nechcete upravit. Dojde-li ke stisknutí klávesové zkratky u ostatních nástrojů, může být tímto proveden pokyn, který nebude moci být zvrácen. Tento nástroj umožňuje vybrat tzv. chunky na mapě (viz kapitola č. 3.2). Po vybrání chunku je možné zjistit, které textury obsahuje ve widgetu [1] Výběr textur. V tomto widgetu můžete mazat textury nebo vyměňovat pozice textur na chunku. Přklad: na pozici textury 1 je tráva, na pozici textury 2 je hlína, pro záměnu stačí jedno tlačítko, tím dosáhneme, že hlavní vrstva, tedy textura 1, bude hlína. [1] widget ovládácí prvek 12
18 3.2 Nástroj k upravování terénu Obrázek 2: Upravování terénu Tento nástroj slouží k upravování terénu. Zmíníme metodiky pro tvoření terénu samotného: Metodika č. 1 - Moderní algoritmy pro visualizaci terénu: ROAM 2.0 Real-time Optimally-Adapting Meshes (Optimálně adaptované síťování v reálném čase) Geometrické mip-mapování Geometrické klip mapování BDAM Batched Dynamic Adaptive Meshes (Dynamicky adaptivně dávkovaná síť) Chunkovaná úroveň detailů Metodika č. 2 - Vykreslování terénu: glbegin / glend Stará technika, od verze OpenGL 3.0 nepodporovaná. Z důvodu velkého počtu příkazů na procesoru pomalá. VBO Vertex Buffer Object Objekt, který je používán jako zdroj pro pole vertex dat (pozice, barvy, atd.). Je umístěn ve vysokorychlostní paměti grafické karty. Oficiálně přidáno ve verzi 2.1, lze najít již ve verzi 1.5. Tuto techniku používáme, pokud nepotřebujeme u každého snímku přenášet informace z procesoru do grafické karty, tedy jako statické vykreslování (neočekává se tedy, že se terén nebo geometrie bude měnit). Proto je uložena v grafické kartě. VBO je jedinou cestou jak uložit geometrická data v OpenGL ES 2 a WebGL (používají se v mobilních zařízení a webových rozhraních). 13
19 VAO Vertex Array Objects Objekt, který obsahuje jeden nebo vícero VBO, je navržen pro ukládání informací pro kompletní vykreslení objektu. Je umístěn v paměti RAM. Oficiálně přidáno ve verzi 3.0. Tato technika je přímým opakem VBO, každý snímek se přenáší z paměti RAM do grafické karty. Z popisu naší aplikace je patrno, že v ní používáme algoritmus Chunkovaná úroveň detailů s vykreslovací metodou VAO. Volbu této metody vysvětlíme takto: Chunkovaná úroveň detailů je algoritmus, přímo ušitý na míru pro program, kterým je náš QEditor. Neznáme požadavek uživatele na velikost mapy, neznáme poměr šířky a výšky. Heightmapa neboli výšková mapa je ve většině případů rastrový obrázek, který obsahuje výšku v daném bodě, zapsanou v barvě. Nejčastější formát je grayscale [1] 8-bit. My ovšem nezapisujeme heightmapu do obrázku ani nepoužíváme grayscale. Vytvořili jsme si vlastní formát.qem, který ukládá mapu o velikosti 1024x1024 do jednoho určeného souboru. Celý tento soubor budeme dále nazývat dlaždice. V projektu je počet dlaždic omezen na 64x64. Každá dlaždice má v sobě 16 chunků, každý chunk je tedy 256x256 velký. Obrázek 3: Heightmapa (výšková mapa) 14
20 [1] grayscale stupně šedé, 8-bit barev šedé, 16-bit barev šedé, 24-bit milionů barev šedé, 32-bit miliard barev šedé Co v sobě obsahuje jediný chunk: Index 0-15 Heightmapu 32-bit floating-point [2] 4 stringy [3] pro cesty k texturám 4 alphamapy [4] Vertex Shading data (viz kapitola č. 3.4) Vodu (viz kapitola č. 3.5) Heightmapa bývá v poměru 1:1, u nás je tomu již zmíněná velikost 1024x1024, kde je pak v aplikaci zmenšená na floating-point velikost z důvodu větší hladkosti při změně terénu. [2] floating-point reprezentace realných čísel v počítači [3] string znakový řetězec v počítačovém programování [4] alphamapa mapa pixelů, většinou 8-bitová (0-255), která udává většinou textuře jak moc je průhledná, pomocí rozsahu 0-255, kde 0 znamená, že není vidět, 255 znamená, že je vidět 15
21 3.3 Nástroj na kreslení textur Obrázek 4: Kreslení textur Tento nástroj je určen k potexturování terénu. Při využití tohoto nástroje mají význam: Velikosti štětce [1] Rychlost štětce Maximální průhlednost [2] Obrázek 5: Kreslení textur - přechod mezi vnitřním a vnějším štetcem [1] - vnitřní štětec zajišťuje minimální texturu, kde se textura 100% nakreslí na terén a vnější štětec pak slouží k jemnému přechodu (viz obrázek č. 5). 16
22 [2] - Maximální průhlednost může být 0 až 1 Obrázek 6: Kreslení textur - žádný přechod mezi vnitřním a vnějším štetcem V případě, že poloměr vnitřního a vnějšího štětce je stejný, nakreslí se na terén textura bez přechodu (viz obrázek č.6). 3.4 Nástroj Vertex shading Obrázek 7: Vertex Shading Nenechte se odradit neobvyklým názvem. Pro naši aplikaci jeho význam spočívá v použití barvy na texturu. Tímto nástrojem lze přispět k ještě větší kreativitě krajiny, kterou vytváříte, neboť samotné světlo takový obraz nevytvoří. Tento nástroj se od stejných skupinových nástrojů na kreslení textur liší jen tím, že jako zdroj používá barvu. Obrázky č. 8 a 9 str
23 Obrázek 8: Příklad bez Vertex Shading nástroje Obrázek 9: Příklad s Vertex Shading nástrojem I při snížené kvalitě obrázků lze v tištěné verzi tohoto dokumentu zaznamenat rozdíly mezi obrázkem č. 8 a obrázkem č
24 3.5 Nástroj Voda Obrázek 10: Voda Tento nástroj je určen k přidání či odebrání Vody na vybraném chunku. Má stejné ovládání pro vybrání chunku jako Ukazatel. Při volbě nástroje Voda se ihned zapne widget, kde je možno po vybrání chunku nastavit její zapnutí či vypnutí. K dispozici je hladina Vody, která je navržena tak, aby mohl sousední chunk navazovat tam, kde Voda v aktuálním chunku končí. K dispozici jsou tedy nastavitelné strany: vrchní a spodní strana, levá a pravá. Obrázek 11: Příklad Vody na dvou chunkách 19
25 3.6 Nástroj 3D modelů Obrázek 12: Nástroj 3D modelů Tento nástroj je určen k přidání či odebrání objektů na mapě. Protože chceme, aby aplikace podporovala co nejvíce formátů a umožnila uživatelům pracovat v jejich oblíbených programech, existuje zde knihovna Assimp. Je určená pro načítání modelů, ať již bez animace nebo s animací. Důležité podporované formáty: 3ds Max Blender 3D LightWave Wavefront Object 3D GameStudio Nástroj má vlastní widget stejně jako Nástroj kreslení textur. Každý projekt má modely samostatně oddělené. 3.7 Nástroj Kamera Obrázek 13: Kamera Tento nástroj je určen k nastavení několika bodů na mapě, kde se posléze vytvoří beziérova křivka. Uživatel může křivku upravovat, smazat různé body, poté co spustí přehrání, kamera pojede po beziérové křivce. Nástroj byl vytvořen za účelem prohlížení krajiny či natáčení videa. 20
26 3.8 Skybox Obrázek 14: Skybox Tento nástroj je momentálně nepřístupný k úpravě. Jde o základní verzi vykreslení oblohy za pomocí CubeMap [1]. Máme v plánu přidat několik možností skyboxů jako např. vygenerování či z obrázků. [1] CubeMap kostka pokrytá texturou 3.9 Ostatní Je zde i mnoho dalších nástrojů, které jsou tak malé, že je zbytečné se o nich rozepisovat ve velkém, proto jen stručně. Vertex Lightning: Nástroj, který funguje na stejném principu jako Vertex Shading, liší se pouze v algoritmu vykreslení, tedy v tomto případě jako by šlo o světlo. STL: O co jde zde? STL je formát pro tisk na 3D tiskárně či pro 3D systémy CAD. Naším cílem bylo vytvořit 3D model, který by šel posléze i vytisknout z našeho editoru. Na závěr jen dodáme, že tisk byl úspěšný. Map generátor: Nástroj s několika nastaveními, který vygeneruje mapu, je zde možnost vrátit zpět či měnit za běhu. Detail doodads: Nástroj, který po zvolené textuře vygeneruje modely podle uživatelského rozhraní. Funkce zpět/dopředu: Nástroj, který známe např. z Office, velký problém je implementovat ho do aplikací, kde pracujeme s grafickou kartou. Podpora Wacom tabletů: Dalším úspěchem je implementace podpory tabletů, kdy pomocí přítlaku zajišťujeme úplně jiné možnosti než při práci s myší. 21
27 3.10 Plánované funkce Představili jsme vám funkce nezbytné pro začátek aplikace. Jimi začíná vzhledem k tomu, že se jedná o počítačovou grafiku vysoké kvalitativní úrovně obtížná cesta našeho projektu QEditor. Návrh funkcí plánovaných do budoucna: Nástroj: Vybrání plochy Slouží a) k posunutí terénu b) k zneviditelnění terénu (v případě, když se přidá objekt typu dům a má sklep, aby se nezobrazoval terén v této části) c) zkopírování a vložení pro rychlejší tvorbu mapy Vybírání plochy by mělo být podobné, jak tomu je například v operačním systému Windows, když je třeba označit vícero souborů. V budoucnu by měl mít tento nástroj možnost rozšíření. Nástroj: Voda verze 2.0 Voda je jedním z nejtěžších nástrojů, který existuje v počítačové grafice. V našem projektu QEditor nejsme spokojeni s výsledkem, v jaké fázi se Voda nachází. K aktuální verzi v naší aplikaci jsme se uchýlili z důvodu časové tísně, ale dále ji hodláme zdokonalovat. K tomu použijeme tento postup, o kterém se domníváme, že je správný: 1. Vykreslení terénu do bufferu [1] 2. Poslání bufferu do grafické karty, tedy shader programu, který vykresluje vodu 3. Vypočítání v shader programu refrakce (terén pod vodou) a reflekce (odrážení nebe atd.) 4. Vykreslení terénu 5. Vykreslení vody [1] buffer dočastné uchovávání dat před jejich přesunem 22
28 Postup dosud použitý: 1. Vykreslení terénu 2. Zapnutí staré metody na průhlednost 3. Vykreslení vody s konstantní barvou 4. Vypnutí staré metody na průhlednost Nástroj: API Application Programming Interface (rozhraní pro programování aplikací) Knihovna by měla obsahovat tyto základní věci: a) Načtení mapy b) Vykreslení terénu c) Vykreslení vody d) Ostatní vykreslení e) Získání 3D pozice podle 2D kurzoru (viz ukázka v kapitole č ) V budoucnu si představujeme knihovnu s vyšší efektivitou. Nástroj: Pohled hráče Tento nástroj by měl usnadnit vývoj z hlediska koncového uživatele. K dispozici budou dvě varianty: a) Pohled z první pozice b) 3D pohled V naší aplikaci QEditor počítáme ještě s mnoha dalšími funkcemi. 23
29 4 Realizace aplikace Návrh architektury jak bude aplikace fungovat. Legenda diagramu: Ukončení třídy Ukončení třídy, komunikace za běhu aplikace Komunikace za běhu aplikace Třída vytvářející podtřídu Třída je konstrukčním prvkem - objektem v programování. Dá se instancovat. Třída definuje tzv. metody - rozuměj vlastnosti a funkce. Vysvětlení tříd: GLEdit Tato třída je inicializovaná při spuštění aplikace ve vstupní funkci main(). GLEdit třída zajišťuje veškeré nastavení aplikace a zároveň incializuje MainWindow třídu. 24
30 MainWindow Tato třída je hlavní okno celé aplikace. Uvnitř této třídy se nachází QDockWidget, což je okno starající se o přichycení ostatních oken ke stranám. V prostřední části tohoto widgetu se nachází MapView. Ostatní rohy jsou k dispozici pro widgety nastrojů a ostatních oken. World Tato třída kontroluje vše ve světě od mapy, vody, objektů, atd. MapView Účelem třídy MapView je, aby neohrožovala prvky v třídě World. Navrhujeme aplikaci tak, aby bylo co nejrychleji možné vytvořit aplikaci bez problému a odstranění MapView nástrojů. MapTile MapTile se stará o soubor MapChunků, dovoluje číst ostatním jen nejdůležitější věci, aby se struktura nenarušila. Vykresluje objekty do prostoru. MapChunk Vykresluje a stará se o terén. WaterTile Zastává stejnou funkci jako MapTile s tím, že se nejedná o terén, ale o vodu. Bez vykreslování objektů. WaterChunk Zastává stejnou funkci jako MapChunk, ale zde se jedná o vodu. UI Tools Nemusí se nutně jednat o nástroje, a když, tedy jde o nástroj pro modifikaci terénu atd. 25
31 4.1 Implementace ukazatele Ukazatele je vhodné implementovat na vícero částí v různých třídách. Legenda diagramu: Finální předání dat do určeného místa (např. widget Výběr textur, kde je možné vidět chunk index) Zavolání funkce s návratovými daty Zavolání funkce - Třídy spolu komunikují - Třída volá svoji metodu - Metoda přes třídu vrací data a přeposílá je Diagram popisuje, jak se přes okno, v němž se celá scéna odehrává(mapview), dostává pomocí funkce update() do třídy World funkce highlightchunkat() a getmapchunkat(), kam posílá data a ve funkci getmapchunkat() vrací příslušný chunk. Ten se dostává zpět do funkce update(), která přeposílá chunk přes MainWindow do příslušného nástroje. 26
32 4.2 Implementace upravování terénu, kreslení textur a Vertex shadingu V této ukázce implementace vám přímo ukážeme zdrojový kód, jak se tato implementace provádí, aniž bychom vám vysvětlovali diagram. V následujícím zdrojovém kódu představujeme implementaci upravování terénu, jádro je všude stejné, mění se pouze ve vzorcích a jiné proměnné, do které se ukládají. bool MapChunk::changeTerrain(float x, float z, float change) { bool changed = false; const Brush* brush = world->getbrush(); // Odkaz na třídu Brush z třídy World float xdiff = basex - x + CHUNKSIZE / 2; float ydiff = basey - z + CHUNKSIZE / 2; float dist = sqrt(pow(xdiff, 2) + pow(ydiff, 2)); if(dist > (brush->outerradius() + CHUNK_DIAMETER)) // Kontrola jestli se jedná o správný chunk return changed; QList<QPair<float, QVector2D>> changing; int minx = horiztohmapsize(x - brush->outerradius()); // Převedeme na 1024, cykly se dají provádět jen za inkrementace celočíselného typu int maxx = horiztohmapsize(x + brush->outerradius()); int miny = horiztohmapsize(z - brush->outerradius()); int maxy = horiztohmapsize(z + brush->outerradius()); for(int _x = minx; _x < maxx; ++_x) // cyklus pro osu X { for(int _y = miny; _y < maxy; ++_y) // cyklus pro osu Y { xdiff = HMapSizeToHoriz(_x) - x; // Převod 1024 na ydiff = HMapSizeToHoriz(_y) - z; dist = sqrt(pow(xdiff, 2) + pow(ydiff, 2)); štětce if(dist < brush->outerradius()) // Kontrola jestli je uvnitř { 27
33 int X = _x % MAP_WIDTH; int Y = _y % MAP_HEIGHT; X -= chunkx * (MAP_WIDTH / CHUNKS); Y -= chunky * (MAP_HEIGHT / CHUNKS); int index = (Y * (MAP_WIDTH / CHUNKS)) + X; // Výpočet indexu, pro uložení dat do pole při ukládání a načítání float changeformula = 0.0f; switch(brush->brushtypes().shaping) // Jednotlivé vzorce pro zvedání terénu { case Brush::ShapingType::Linear: default: changeformula = change * (1.0f - dist / brush- >OuterRadius() * brush->falloff()); break; case Brush::ShapingType::Flat: changeformula = change; break; case Brush::ShapingType::Smooth: changeformula = change / (1.0f + dist / brush- >OuterRadius() * brush->falloff()); break; case Brush::ShapingType::Polynomial: changeformula = change * (pow(dist / brush- >OuterRadius() * brush->falloff(), 2) + dist / brush->outerradius() + 1.0f); break; case Brush::ShapingType::Trigonometric: changeformula = change * cos(dist / brush- >OuterRadius() * brush->falloff()); break; } mapdata[index] += changeformula; // Přidání výšky changing.append(qmakepair<float, QVector2D>(mapData[index], QVector2D(X, Y))); } } } changed = true; // Na konci funkce se provede nastavení if(changed) // Pokuď jsme něco změnili { for(int i = 0; i < changing.count(); ++i) terraindata->setheight(changing.value(i).first, changing.value(i).second); // Nastavení výšky } } return changed; // Vrací true(pravda) nebo false(lež) podle stavu změny 28
34 4.3 Implementace Vody V této implementaci si ukážeme převážně část, která se zavolá na začátku aplikace a vytvoří Vertex Array Buffers. Ke konci si ukážeme i ukázku GLSL kódu, co je vlastně na povrchu vody. 29
35 void WaterChunk::initialize() { /// Vytváření Vertex Bufferů const int maxtessellationlevel = 64; // max. úroveň tesselace const int trianglesperheightsample = 10; // počet trojúhleníku na výšku const int xdivisions = trianglesperheightsample * MAP_WIDTH / CHUNKS / maxtessellationlevel; // 10 * 1024 / 4 / 64 = 40 const int zdivisions = trianglesperheightsample * MAP_HEIGHT / CHUNKS / maxtessellationlevel; // Výpočet vertex bufferů pro do dálky int patchcount = xdivisions * zdivisions; // Šířka * dálka bufferů QVector<float> positiondata(2 * patchcount); // 2 pozice pro vertex const float dx = 1.0f / MathHelper::toFloat(xDivisions); = 0,025 const float dz = 1.0f / MathHelper::toFloat(zDivisions); 0-1 rozsah for(int j = 0; j < 2 * zdivisions; j += 2) // cyklus, přičítáme +2 { float z = MathHelper::toFloat(j) * dz * 0.5; // výpočet Z pozice for(int i = 0; i < 2 * xdivisions; i += 2) { float x = MathHelper::toFloat(i) * dx * 0.5; // X poz. const int index = xdivisions * j + i; // Výpočet indexu } } positiondata[index] = x; // Vložení X na index positiondata[index + 1] = z; // Vložení Z na index + 1 Mesh.createVertexArrayObject(); // inicializace Vertex Array Objects Mesh.createBuffer(IMesh::Vertices, positiondata.data(), positiondata.size() * sizeof(float)); // Vytvoření několika bufferů Mesh.setNumFaces(patchCount); // Nastavení několika tváří } void WaterChunk::draw(QOpenGLShaderProgram* shader) // funkce na vykreslení { chunkmaterial->bind(shader); // Označíme momentální WaterChunk // Vykreslení jako část { Mesh.bind(); // Označíme mesh Mesh.createAttributeArray(IMesh::Vertices, shader, "vertexposition", GL_FLOAT, 0, 2); // Vytvoříme attribut shader->setpatchvertexcount(1); // Nastavíme počet vertex patchů world->getglfunctions()->gldrawarrays(gl_patches, 0, Mesh.getNumFaces()); // Vykreslíme pole vertexů } } Na zdrojovém kódu jste mohli vidět, jak se vytváří Vertex Array Buffers a poté jeho následné vykreslení, které se volá ve třídě WaterTile. 30
36 vec4 shadewater() { vec4 diffusecolor = texture(basetexture, texcoords + deltatime * 0.01); // Vezmeme texturu pro vodu v pozici texcoords + deltatime * 0.01, deltatime slouží k posunu vody // Výpočet světla, zachováváme komponenty odděleně vec3 ambientanddiff, spec; phongmodel(ambientanddiff, spec); vec4 color = vec4(ambientanddiff, 1.0) * diffusecolor + vec4(spec, 1.0); // Výsledná barva color.a = 0.5; // Nakonec průhlednost } return color; // Funkce vrací barvu v datovém typu vec4 void main() { // Výpočet finální barvy vec4 outcolor = shadewater(); // Základní barva vody float dist = abs(position.z); // Výpočet vzdálenosti float fogfactor = clamp((fog.maxdistance - dist) / (fog.maxdistance - fog.mindistance), 0.0, 1.0); // Výpočet faktoru pro mlhu fragcolor = mix(fog.color, outcolor, fogfactor); // Kombinace mlhy a vody } Výše jste viděli názornou ukázku GLSL. Nejdřívě získáme texturu vody, poté ji zkombinujeme se světlem. V hlavní funkci nakonec provedeme výpočet maximální vzdálenosti od pozice kamery a zkombinujeme vodu s mlhou. 4.4 Implementace 3D modelů Třída MapTile, dále mapa má mnoho objektů IModel, které pracují s třídou ImodelInterface a ta spravuje další třídy, se kterými knihovna Assimp pracuje a vrací jim data ze vstupních dat modelu. Funkce jednotlivých tříd: a) IMesh informace o polygonech b) IBone kostra modelu, slouží pro animaci c) IModelInterface rozdělí data do IMesh, IBone, IAnimation z Assimpu 31
37 V diagramu vidíme, jak probíhá komunikace aplikace s knihovnou Assimp přes jednotlivé třídy. V této ukázce implementace je zobrazení zdrojového kódu nepříliš šťastný nápad. Legenda diagramu: Ukončení třídy Ukončení třídy, komunikace za běhu aplikace Komunikace za běhu aplikace Třída vytvářející podtřídu 32
38 5 Mobilní platformy Prezentační aplikaci QEditor na platformě Windows Phone 8 jsme vytvořili proto, že předpokládáme, že chytrá zařízení (mobilní telefon, tablet) má uživatel dnes téměř vždy při ruce, tudíž nemusí dlouze vyhledávat, jak aplikace funguje. Jde o aplikaci v níž se dozvíte základní informace a seznámíte se zde s funkcemi programu pomocí výukových videí. Najdete zde také příspěvky ze sociální sítě Twitter, které se stále aktualizují. 5.1 Windows Phone Aplikaci vyvíjíme na nové moderní platformě, která je primárně určená spíše pro zákaznický trh. Jelikož je tato platforma nová a momentálně ne moc podporovaná, bylo obtížné naprogramovat novinky ze sociální sítě Twitter. 33
39 6 Závěr Po několikaměsíčním úsilí můžeme konstatovat, že jsme vytvořili spolehlivou aplikaci, která je použitelná k simulaci světa či k vytvoření virtuálního světa. Cílem této práce bylo navrhnout a implementovat terén, vytvořit základní funkce jako uložit, načíst a podobné, implementovat základní nástroje pro upravování virtuálního světa. Zároveň po dobu celé práce byla aplikace koncipována tak, aby výsledný terén mohl být použit i v jiném programu. 34
40 PŘÍLOHA A: Seznam použité literatury a pramenů [1] Qt Cross-platform application and UI Framework 2015 [cit ]. Dostupné z: [2] OpenGL The Industry Standard for High Performance Graphics 2015 [cit ]. Dostupné z: [3] OpenGL Shading Language 2015 [cit ]. [4] Debian Linux The Universal Operating System 2015 [cit ]. Dostupné z: [5] Metodika vývoje software 2015 [cit ]. Dostupné z: [6] Memory leak 2015 [cit ]. Dostupné z: [7] Memory leak 2015 [cit ]. Dostupné z: [8] Assimp Open Asset Import Library 2015 [cit ]. Dostupné z: [9] GitHub 2015 [cit ]. Dostupné z: 35
41 [10] GNU General Public License v [cit ]. Dostupné z: [11] GNU Lesser General Public License v [cit ]. Dostupné z: [12] The New BSD License 2015 [cit ]. Dostupné z: [13] Modern Algorithms for Real-Time Terrain Visualization 2015 [cit ]. Dostupné z: Time_Terrain_Visualization_on_Commodity_Hardware 36
42 PŘÍLOHA B: Seznam obrázků Obrázek 1: Ukazatel Obrázek 2: Upravování terénu Obrázek 3: Heightmapa (výšková mapa) Obrázek 4: Kreslení textur Obrázek 5: Kreslení textur - přechod mezi vnitřním a vnějším štetcem Obrázek 6: Kreslení textur - žádný přechod mezi vnitřním a vnějším štetcem.. 17 Obrázek 7: Vertex Shading Obrázek 8: Příklad bez Vertex Shading nástroje Obrázek 9: Příklad s Vertex Shading nástrojem Obrázek 10: Voda Obrázek 11: Příklad Vody na dvou chunkách Obrázek 12: Nástroj 3D modelů Obrázek 13: Nástroj kamera Obrázek 14: Skybox Seznam tabulek Tabulka č. 1: Systémové požadavky... 4 Tabulka č. 2: Jazyk
43 PŘÍLOHA C: Licence QEditor je dostupný pod licencí GNU GPLv3, licence použitých programů a knihoven jsou následující: Qt Framework je distribuován pod licencí GNU LGPLv2.1 OpenGL je distribuován bez licence Assimp je distribuován pod licencí The New BSD License Všechny tyto licence umožňují svobodné používání a šíření kódu. 38
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
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
VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender
VY_32_INOVACE_INF.19 Inkscape, GIMP, Blender Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Kalous Základní a mateřská škola Bělá nad Radbuzou, 2011 INKSCAPE Inkscape je open source
Novinky. Autodesk Vault helpdesk.graitec.cz,
Novinky Autodesk Vault 2018 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky Autodesk Vault 2018 PDF dokument obsahuje přehled novinek produktu Autodesk Vault 2018. Obsah: Úvod...
Matematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
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
Autodesk AutoCAD 2018
Novinky Autodesk AutoCAD 2018 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky Autodesk AutoCAD 2018 PDF dokument obsahuje přehled novinek produktu AutoCAD 2018. AutoCAD 2018
Autodesk AutoCAD Civil 3D
Novinky 2018 Autodesk AutoCAD Civil 3D www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Obsah: 1. Vyřešení překrytí koridorů (motýlkování)... 3 2. Relativní návrhové linie... 4 3. Dynamické
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
Novinky AutoCAD LT 2017
Novinky AutoCAD LT 2017 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky AutoCAD LT 2017 PDF dokument obsahuje přehled novinek produktu AutoCAD LT 2017. Obsah: 1. Autodesk aplikace...
Autodesk Inventor 2017
Novinky Autodesk Inventor 2017 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky Autodesk Inventor PDF dokument obsahuje přehled novinek produktu Autodesk Inventor 2017. Obsah:
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ý
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
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í...
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
monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura
IBM PC 5150 MS DOS 1981 (7 verzí) DR DOS, APPLE DOS, PC DOS 1. 3. Windows grafická nástavba na DOS Windows 95 1. operační systém jako takový, Windows XP 2001, podporovány do 2014, x86 a Windows 2000 Professional
Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody
Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který
PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou
Datum: 1. 12. 2013 Projekt: Registrační číslo: Číslo DUM: Škola: Jméno autora: Název sady: Název práce: Předmět: Ročník: Obor: Časová dotace: Vzdělávací cíl: Pomůcky: Využití ICT techniky především v uměleckém
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
Stru ný obsah. Úvod do Microsoft.NET Kapitola 1: Vývoj her a ízený kód...15
Stru ný obsah Úvod...11 Úvod do Microsoft.NET Kapitola 1: Vývoj her a ízený kód...15 Základy grafiky, první hra Kapitola 2: Návrh první hry...31 Kapitola 3: Pochopení kostry aplikace DirectX...39 Kapitola
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Profilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
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
Novinky. Autodesk Vault helpdesk.graitec.cz,
Novinky Autodesk Vault 2017 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky Autodesk Vault 2017 PDF dokument obsahuje přehled novinek produktu Autodesk Vault 2017. Obsah: 1.
Představení procesorů od firmy Tilera a jejich architektura
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA ELEKTROTECHNIKY A INFORMATIKY REFERÁT Z PŘEDMĚTU POKROČILÉ ARCHITEKTURY POČÍTAČŮ Představení procesorů od firmy Tilera a jejich architektura Školní
4.6 Zpracování videa na počítači
3. 4.6 Zpracování videa na počítači V řetězci bude na vstupu zapojeno zařízení, které nám poslouží jako zdroj signálu. Nemusí se nutně jednat jen o digitální kameru, web kameru či mobilní telefon. Můžeme
Návod na instalaci a použití programu
Návod na instalaci a použití programu Minimální konfigurace: Pro zajištění funkčnosti a správné činnosti SW E-mentor je potřeba software požívat na PC s následujícími minimálními parametry: procesor Core
Autoevaluace v práci učitele
Autoevaluace v práci učitele Mgr. Jiří Štěpán 1 e-mail: stepan@zsalsova.cz Mgr. Blanka Kozáková 2 e-mail: blanka.kozakova@kvic.cz 1 Základní škola Kopřivnice, Alšova 1123 okres Nový Jičín 2 Krajské zařízení
Informační Systém pro Psychiatrii HIPPO
Informační Systém pro Psychiatrii HIPPO Informace, doporučení a nutná nastavení pro zajištění správné funkce Pinel Plus v OS Windows a Linux Ochranné známky HIPPO je registrovaná ochranná známka společnosti
Grafické karty. Autor: Kulhánek Zdeněk
Grafické karty Autor: Kulhánek Zdeněk Škola: Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, příspěvková organizace Kód: VY_32_INOVACE_ICT_826 1.11.2012 1 1. Grafická
Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
- kvalitní dokumentace k SW je vyžadovaným STANDARDEM. vzájemná provázanost SW (IS) ve velkých společnostech. aktuální přehledná srozumitelná
DOKUMENTACE K SOFTWARU - kvalitní dokumentace k SW je vyžadovaným STANDARDEM - důvody: vzrůstající složitost SW (IS) vzájemná provázanost SW (IS) ve velkých společnostech - smysl má taková dokumentace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Visual Studio Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 19,2 Číslo: V/5 Programování
INFORMATIKA. Grafické studio ve škole
INFORMATIKA Grafické studio ve škole LUKÁŠ RACHŮNEK Přírodovědecká fakulta UP, Olomouc V současné době školy všech typů často potřebují grafické práce. Jedná se například o prezentaci školy ve formě brožur,
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
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
1.2 Operační systémy, aplikace
Informační a komunikační technologie 1.2 Operační systémy, aplikace Studijní obor: Sociální činnost Ročník: 1 Programy (Software - SW) V informatice se takto označují všechny samospustitelné soubory které
VirtualBox desktopová virtualizace. Zdeněk Merta
VirtualBox desktopová virtualizace Zdeněk Merta 15.3.2009 VirtualBox dektopová virtualizace Stránka 2 ze 14 VirtualBox Multiplatformní virtualizační nástroj. Částečně založen na virtualizačním nástroji
Specifikace projektu Ocerus
Specifikace projektu Ocerus Tým Vedoucí: Ondřej Sýkora (ondrasej@centrum.cz) Členové: Michal Čevora (macjariel@gmail.com) Lukáš Hermann (lukas.hermann@seznam.cz) Ondřej Mocný (hardwire@volny.cz) Tomáš
Autodesk AutoCAD 2020
Novinky Autodesk AutoCAD 2020 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com PDF dokument obsahuje přehled novinek produktu AutoCAD 2020. Obsah: Úvod... 3 1. Zjednodušené vkládání bloků...
KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ
KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KLÍČOVÉ POJMY technické vybavení počítače uchování dat vstupní a výstupní zařízení, paměti, data v počítači počítačové sítě sociální
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
09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu
StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již
modrana: flexibilní navigační systém Martin Kolman http://www.modrana.org/openalt2014 modrana@gmail.com
modrana: flexibilní navigační systém Martin Kolman http://www.modrana.org/openalt2014 modrana@gmail.com 1 Nevýhody uzavřených navigací nemožnost modifikovat funkcionalitu co když výrobce přestane podporovat
Základní informace. Operační systém (OS)
Základní informace Operační systém (OS) OS je základní program, který oživuje technické díly počítače (hardware) a poskytuje prostředí pro práci všech ostatních programů. Operační systém musí být naistalován
Elektronické učebnice popis systému, základních funkcí a jejich cena
Elektronické učebnice popis systému, základních funkcí a jejich cena Vytvořil TEMEX, spol. s r. o. Obsah 1. Úvod... 2 Formáty... 2 Cena... 2 2. Systémové požadavky... 3 Interaktivní PDF verze... 3 HTML
Instalace programu ProGEO
Instalace programu ProGEO Obsah dokumentu: 1. Požadavky na systém 2. Průběh instalace 3. Aktivace zakoupené licence 4. Automatické aktualizace Updater 1. Požadavky na systém Softwarové požadavky: MicroStation
ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto
Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Základy programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
Testovací protokol USB Token Cryptomate
Testovací protokol USB Token Cryptomate 1 Úvod 1.1 Testovaný produkt Hardware: ACS CryptoMate Software: ACS Admin Tool 2.4 Datum testování: 24. 12. 2009 1.2 Konfigurace testovacího počítače Příloha č.
Real Time programování v LabView. Ing. Martin Bušek, Ph.D.
Real Time programování v LabView Ing. Martin Bušek, Ph.D. Úvod - související komponenty LabVIEW development Konkrétní RT hardware - cíl Použití LabVIEW RT module - Pharlap ETS, RTX, VxWorks Možnost užití
Nvidia CUDA Paralelní programování na GPU
Mendelova univerzita v Brně Provozně ekonomická fakulta Nvidia CUDA Paralelní programování na GPU 2014 O čem to bude... Trocha historie Shadery Unifikace GPGPU CUDA Využití GPGPU GPU a jeho Hardware Nvidia
Windows a real-time. Windows Embedded
Windows a real-time Windows Embedded Windows pro Embedded zařízení Současnost (2008): Windows Embedded WINDOWS EMBEDDED Windows Embedded CE Windows XP Embedded Windows Embedded for Point of Service Minulé
Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
Microsoft Visio 2013 vypadá jinak než ve starších verzích, proto jsme vytvořili tuto příručku, která vám pomůže se s ním rychle seznámit.
Úvodní příručka Microsoft Visio 2013 vypadá jinak než ve starších verzích, proto jsme vytvořili tuto příručku, která vám pomůže se s ním rychle seznámit. Aktualizované šablony Šablony vám pomáhají při
Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25
Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci
aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš E-mail: tomas.d@centrum.cz
aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš E-mail: tomas.d@centrum.cz Operační systém Windows - první operační systém Windows byl představen v roce
1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
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ů
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
Testovací protokol čipová karta ACOS5
Testovací protokol čipová karta ACOS5 1 Úvod 1.1 Testovaný produkt Hardware: čipová karta ACS ACOS5-32-G Software: ACS Admin Tool 2.4 Datum testování: 24. 12. 2009 1.2 Konfigurace testovacího počítače
Windows 10 (5. třída)
Windows 10 (5. třída) Pracovní plocha: takto vypadá Pracovní plocha u nás ve škole - pozadí Pracovní plochy - ikony na Pracovní ploše ikona Student 17 (se jménem přihlášeného uživatele) ikona Tento počítač
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Projekt Obrázek strana 135
Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Úvod 13 O čem je tato kniha? Pro koho je tato kniha? Jak studovat tuto knihu? Poděkování 16 Zpětná vazba od čtenářů Zdrojové kódy ke knize Errata 17
Úvod 13 O čem je tato kniha? 13 Pro koho je tato kniha? 15 Jak studovat tuto knihu? 16 Poděkování 16 Zpětná vazba od čtenářů 17 Zdrojové kódy ke knize 17 Errata 17 KAPITOLA 1 Trocha teorie na úvod 19 Něco
www.infopanels.eu Instalace demoverze
www.infopanels.eu Instalace demoverze SOLUTIONS Instalace demoverze Hasičská 53 700 30 Ostrava-Hrabůvka www.infopanels.eu www.elvac.eu Obchod: +420 597 407 511 solutions@infopanels.eu +420 597 407 511
Android OpenGL. Práce s texturami
Android OpenGL Práce s texturami Textura Obrázek, který jsme schopní nanášet na 3D objekty S použitím shaderů mnohem víc než to Může obsahovat jiné vlastnosti povrchu, než jen barvu (reliéf, lesklost,
VÝUKA PČ NA 2. STUPNI základy technického modelování. Kreslící a modelovací nástroje objekty, čáry
VÝUKA PČ NA 2. STUPNI základy technického modelování Kreslící a modelovací nástroje objekty, čáry Název šablony: III/2-9, Výuka PČ na 2. stupni základy technického modelování Číslo a název projektu: CZ.1.07/1.4.00/21.3443,
Osobní počítač. Zpracoval: ict Aktualizace: 10. 11. 2011
Osobní počítač Zpracoval: ict Aktualizace: 10. 11. 2011 Charakteristika PC Osobní počítač (personal computer - PC) je nástroj člověka pro zpracovávání informací Vyznačuje se schopností samostatně pracovat
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Autodesk AutoCAD LT 2019
Novinky Autodesk AutoCAD LT 2019 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky Autodesk AutoCAD LT 2019 PDF dokument obsahuje přehled novinek produktu AutoCAD LT 2019. AutoCAD
Programování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
Paměťový podsystém počítače
Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...
ROBOTIKA M3A 2018/2019 ING. VLADIMÍR VYHŇÁK
ROBOTIKA M3A 2018/2019 ING. VLADIMÍR VYHŇÁK Návrh robotizovaných pracovišť Program ABB Robot Studio (dále jen ABB-RS) slouží k přípravě programů průmyslových robotů a jejich nejbližší periférie, k jejich
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Software programové vybavení. 1. část
Software programové vybavení 1. část Software Vše co není HW je SW = pojem se někdy vztahuje jak na programy, tak na data Oživuje hardware (zdaleka ne jen počítače) Je-li přítomen procesor, musí být i
Profilová část maturitní zkoušky 2013/2014
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce
Scribus. Vypracovali : Hana Bartošová Tomáš Dvořáček
Scribus Vypracovali : Hana Bartošová Tomáš Dvořáček Seznámení Program Scribus je počítačový program pro profesionální sazbu tzv. Desktop Publisingu (DTP), který byl poprvé předveden v roce 2001. Program
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01
Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník
Testovací protokol. webový generátor PostSignum. sada PIIX3; 1 GB RAM; harddisk 20 GB IDE OS: Windows Vista Service Pack 2 SW: Internet Explorer 9
Příloha č. 4 1 Informace o testování estovaný generátor: 2 estovací prostředí estovací stroj č. 1: estovací stroj č. 2: estovací stroj č. 3: Certifikáty vydány autoritou: estovací protokol webový generátor
Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií
VY_32_INOVACE_31_15 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední
Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz
Efektivní vývoj mobilních aplikací na více platforem současně Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Osnova 1. Kam míří platforma Windows Phone 2. Seznámení s univerzálními Windows
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),
Karel Bittner bittner@humusoft.com. HUMUSOFT s.r.o. HUMUSOFT s.r.o.
Karel Bittner bittner@humusoft.com COMSOL Multiphysics Co je COMSOL Multiphysics? - sw určený k simulaci fyzikálních modelů, na něž působí jeden nebo několik fyzikálních vlivů - sw úlohy řeší metodou koneč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