2 Grafické knižnice a systémy

Size: px
Start display at page:

Download "2 Grafické knižnice a systémy"

Transcription

1 2 Grafické knižnice a systémy 2.1 Prehľad vývoja, základné pojmy, určenie a klasifikácia Zobrazovací podsystém Zobrazovací podsystém počítačového systému je obvykle najdrahšia a energicky najnáročnejšia časť počítačového systému. Obraz sa tvorí pomocou dvoch hlavných prvkov zobrazovacieho podsystému: grafického adaptéra a monitora (displeja). Zobrazovací podsystém môže pracovať v dvoch režimoch: 1. Textový - obrazovka monitora je rozdelená na malé políčka a každé zobrazí jeden znak. Na zobrazovacej ploche displeja je najčastejšie 80 stĺpcov a 25 riadkov (MS DOS). Pri tomto režime je farebné zobrazenie obmedzené, môžeme zmeniť farbu znaku a pozadia. 2. Grafický obrazovka je formátovaná ako matica bodov (pixel). Rozsvietením určitých bodov sa tvorí obraz. Dôležitým kritériom je rozlišovacia schopnosť, ktorá udáva koľko pixelov tvorí jeden riadok a koľko riadkov je na obrazovke, napr. 640x480 pre VESA VGA štandard, 800x600 pre SVGA, 1024x768 pre XGA, 1280x720 a 1920x1080 pre vysoké rozlíšenie (HD) atď. Grafický adaptér Základom grafického adaptéra (HW) je GPU (grafický procesor). Spracúva inštrukcie z CPU, vykonáva výpočty, odovzdáva dáta prevodníku (DAC) a ten ich prenáša ďalej na monitor. Jedným z jeho dôležitých parametrom je dátová šírka 32, 64, 128 bitov. GPU zapisuje dáta do video pamäte (frame buffer). Zapisuje do nej informácie o každom zobrazovanom bode. Požiadavky sú veľká kapacita, ktorá sa vypočíta podľa vzťahu: veľkosť pamäte = rozlíšenie x počet bitov na určenie farby / 8 a veľká prenosová rýchlosť. Obraz sa má do pamäte kresliť okamžite a zároveň dáta z videopamäte sa majú rýchlo prenášať na monitor. Rýchle počítače s grafickým zobrazovaním umožnili veľký pokrok smerom k počítačom, s ktorými sa ľahšie pracuje. Pri práci v grafickom prostredí sa používa priama manipulácia, aby bolo vzájomné pôsobenie jednoduché a intuitívne. Prenesenie týchto princípov do oblasti programovania vedie k tzv. grafickému (vizuálnemu) programovaniu. Tento pojem sa používa v súvislosti s grafickou reprezentáciou pre vizualizáciu programov a dátových štruktúr a pre

2 vývoj algoritmov prostredníctvom priameho manipulovania s grafikou. Zámer Graphical programming je stále používaný nedôsledne, lebo nie vždy sú grafické objekty na obrazovke priamo použité k tvorbe programu. Grafický zobrazovací reťazec (graphics pipeline) Pre 2D grafické výstupné zariadenia musí zobrazovaná scéna pozostávať z rovinných útvarov. Proces, ktorý prevedie množinu mnohouholníkov reprezentujúcich scénu do rastrového obrazu, sa nazýva aj display traversal. Tento proces sa skladá z určitej postupnosti krokov, ktoré sú pre väčšinu grafických systémov podobné. Postupnosť týchto krokov sa označuje ako graphics pipeline. Vstupom do tohto procesu je zoznam vrcholov grafických prvkov (napr. trojuholníkov), prípadne s doplnkovými údajmi o farbe, normále atď.. Výstupom z tohto procesu je rastrový obraz s farebnými hodnotami, ktoré sú zobrazené na obrazovke. Graphics pipeline sa delí na tri základné vrstvy: 1. Spracovanie geometrie (vertex operations) transformuje (rotuje, posúva, škáluje atď.) vstupné údaje z modelových súradníc do svetových súradníc a potom premieta do dvojrozmernej roviny, kde sú spoločné vrcholy pospájané do geometrických prvkov (primitives) ako body, čiary, trojuholníky a pod. 2. Rasterizácia rozkladá dané primitívy na fragmenty, ktorým priraďuje textúrové hodnoty mapovanie textúry. Každý fragment zodpovedá jednému pixelu na monitore. 3. Fragmentové (per-fragment) operácie sú aplikované následne ako boli fragmentom priradené hodnoty ako farba a priehľadnosť v rasterizačnej jednotke. Posledným krokom pred vykreslením daného fragmentu na monitor sú fragmentové testy, ktoré rozhodujú či bude daný fragment vykreslený alebo nie. Alfa blending Technika, ktorá umožňuje simulovať priehľadnosť alebo priesvitnosť v scéne. Alfa blending kombinuje farbu prichádzajúceho fragmentu s farbou príslušného fragmentu už uloženého vo video pamäti. Po tom, čo je scéna kompletne vykreslená, môže byť zobrazená na obrazovku. Grafika pod MS DOS a Windows Windows sú ovládané graficky objektovo a to znamená, že každý program a väčšina jeho ovládacích prvkov sú zobrazené na obrazovke ako grafické objekty - obrázky. Tie sú použité ako

3 jednoduchý spôsob pre spustenie programu, jednoduchým ukázaním na požadovaný objekt grafickým kurzorom myši a stlačením tlačidla. Grafické rozhranie má niekoľko výhod a to najmä umožňuje rýchlejšie pochopiť a osvojiť si prácu s prostredím a spôsob jeho ovládania. Programy pracujúce pod MS DOS nepôsobili jednotným dojmom čo sa odrážalo aj na vyššej zložitosti ich ovládania, niektoré sa ovládali klávesnicou, iné myšou alebo klávesnicou aj myšou, niektoré používajú roletové menu a iné klávesové skratky a niektoré príkazový riadok. Programy pracujúce pod Windows majú v podstate jednotný vzhľad. Základné ovládacie prvky sa nachádzajú vždy na rovnakom mieste a rovnaké sú aj niektoré podstatné klávesové skratky či funkcie myši. Programy bežiace pod OS MS DOS si väčšinou zabezpečujú ovládanie grafických periférií sami, čo v niektorých prípadoch vedie k problémom, zvlášť pri práci s tlačiarňou. Inak je to pri práci s Windows, kde ako náhle je nainštalované periférne zariadenie so zodpovedajúcim ovládačom, prechádza pod správu OS a ten riadi jeho činnosť nech je volané z ktoréhokoľvek programu pracujúceho pod ich systémom. Pod Windows sa môže spustiť niekoľko aplikácií naraz, ich počet je limitovaný len dostupnou pamäťou. Môžeme ich uložiť na pracovnú plochu, aby boli súčasne viditeľné a prepínať medzi nimi a s určitými obmedzeniami medzi nimi premiestňovať dáta. Windows sa v podstate snaží nahradiť pracovnú dosku stola. Jeho koncepcia je založená na myšlienke poskytnúť užívateľovi priestor a nástroje, ktoré sú potrebné pre činnosti, ktoré vykonáva sediac za pracovným stolom. MS DOS neponúka nijaké grafické okná, ale môže spúšťať programy, ktoré si grafické prostredie vytvárajú. Jeho nevýhodou je textová orientácia, čo je pri dnešných nárokoch na grafické užívateľské rozhranie už zastaraným riešením a nemožnosť prevádzkovania viacerých programov súčasne neobsahuje multitasking. V MS DOS existujú dva video režimy: textový a grafický. Jedným z dobrých riešení, ako pracovať s grafikou pod týmto OS bolo rozhranie BGI (Borland Graphics Interface). BGI malo podporu pre EGA, CGA a VGA monitory. Grafika používala vlastnú knižnicu graphics.h. Knižnica obsahovala funkcie pre kreslenie čiar, mnohouholníkov, kružníc a pod. Pod MS DOS existoval ešte aj špeciálny mód označovaný ako Mode 13h, ktorý bol síce rýchlejší ako BGI, mal obrazové rozlíšenie 320x200 px a dovoľoval 256 farieb a jednu stranu pre animáciu. Na rozdiel od BGI ale mód 13h nemohol používať

4 knižnicu graphics.h a tým bolo jeho použitie obmedzené len na priame programovanie grafického hardvéru. 2.2 Grafické knižnice a aplikačné programové rozhrania (API) Knižnica (library) je v programovaní funkčný logický celok, ktorý poskytuje služby pre programy. Väčšinou sa jedná o zbierku procedúr, funkcií a dátových typov, alebo pri objektovo orientovanom prístupe o sadu tried, uložených v jednom diskovom súbore. Knižnica môže poskytovať aj aplikačné programové rozhranie, ktoré umožňuje programu volať funkcie knižnice. Existuje veľa knižníc pre rôzne účely, napríklad pre využívanie služieb operačného systému, grafické funkcie, riadenie periférií, vedecko-technické výpočty a podobne. API je skratka z Application Programming Interface (rozhranie pre programovanie aplikácií, aplikačné programové rozhranie). Ide o zbierku funkcií resp. tried (ale aj iných programov), ktoré určujú akým spôsobom sa majú funkcie knižníc volať zo zdrojového kódu programu. API funkcie sú programové celky, ktoré programátor volá namiesto vlastného naprogramovania. Windows API (neformálne WinAPI) je API vyvinuté firmou Microsoft pre operačný systém Microsoft Windows. Je navrhnuté pre použitie v jazyku C alebo C++. Z technického hľadiska je možné rozdeliť knižnice podľa spôsobu prepojenia s programom, ktorý ho bude využívať: statická knižnica (static linking library), dynamická knižnica (dynamic linking library). Statické knižnice sú spojované linkerom v dobe budovania programu. Linker do výsledného spustiteľného súboru vloží všetok kód odkazovaný z kódu (volanej funkcie) a rekurzívnej funkcie volanej z týchto funkcií. Po technickej stránke je statická knižnica archívom jedného alebo viacerých objektových súborov. Výsledkom je jeden spustiteľný súbor, ktorý v sebe obsahuje časť statickej knižnice, ktorá je potrebná pre chod daného programu. Typickou príponou súboru statickej knižnice je.lib alebo.a. Prípona závisí na použitom operačnom systéme a linkeru.

5 Pri linkovaní programu s dynamickou knižnicou sa do výsledného spustiteľného súboru ukladajú iba tabuľky odkazov na symboly definované v dynamickej knižnici. Pre chod programu je potom nutné okrom vlastného programu mať na počítači nainštalovanú i príslušnú dynamickú knižnicu. Pri spustení programu potom operačný systém spúšťa tzv. dynamické linkovanie. Počas tohto procesu operačný systém načíta do operačnej pamäte kód vlastného programu (spustiteľný súbor) ako aj kód dynamickej knižnice, ktorú program vyžaduje k svojej činnosti. Dynamicky sa dajú linkovať i dynamické knižnice. Výsledkom je potom dynamická knižnica závislá na inej dynamickej knižnici. Väčšina dnešných operačných systémov ďalej umožňuje programom načítať knižnice do pamäte za behu programu. Toho sa dá využiť k implementácií tzv. zásuvných modulov (plug-in). Typickou príponou súborov obsahujúcich dynamickú knižnicu je.dll v Microsoft Windows a.so v rôznych Unixoch a v Linuxe. Porovnanie statickej a dynamickej knižnice Statická knižnica sa spojuje so spustiteľným súborom v dobe linkovania programu, zatiaľ čo dynamická knižnica sa spojuje so spustiteľným súborom v dobe spustenia programu. Pokiaľ sa spustí niekoľko programov, ktoré všetky využívajú jednu statickú knižnicu, je táto knižnica v operačnej pamäti opakovaná (v každej inštancií programu). Kód dynamickej knižnice naproti tomu môže byť v pamäti zdieľaný všetkými inštanciami. Staticky zlinkovaný program je prenositeľnejší, stačí preniesť jeden súbor. Pri dynamicky zlinkovanom programe je nutné zaistiť, že na počítači sú nainštalované správne verzie požadovaných dynamických knižníc alebo pri prenose pridať správne verzie ako ďalšie súbory. Toto pravidlo platí rekurzívne (dynamické knižnice môžu vyžadovať ďalšie dynamické knižnice). Pokiaľ je chyba v statickej knižnici, je nutné po opravení chyby v knižnici s touto knižnicou zostaviť všetky programy, ktoré knižnicu používajú. Pri dynamickej knižnici stačí nahradiť súbor dynamickej knižnice jej novšou (opravenou) verziou. Všetky programy používajúce túto dynamickú knižnicu potom pracujú už s opravenou verziou.

6 Automatické použitie novšej verzie knižnice je možné využiť aj inokedy ako pri oprave chyby. Novšia verzia môže obsahovať napríklad optimalizácie a v niektorých prípadoch i novú funkčnosť ktorú je možné využiť aj v prípade starého API. Spustenie staticky zlinkovaného programu typicky trvá o niečo kratšiu dobu, pretože pri spustení dynamicky linkovaného programu,operačný systém musí zaistiť načítanie dynamickej knižnice do pamäti zvlášť a vykonať relokáciu, teda nahradiť odkazy na dáta v knižnici ich výslednou adresou. Dynamicky zlinkovaný program je výrazne menší. Pokiaľ knižnicu používa viacej než jeden program, ušetríme teda miesto i na disku. Zdieľané knižnice V dôsledku toho, že knižnice môžu byť načítavané staticky alebo dynamicky, sú často klasifikované podľa zdieľania programov. Dynamické knižnice vždy ponúkajú nejakú formu zdieľania, ak vezmeme do úvahy, že rovnaké knižnice používajú rôzne programy v rovnaký čas. Statické knižnice podľa definície nemôžu byť zdieľané. Výraz "linker" prichádza z procesu kopírovania procedúr a subrutín, ktoré možno prišli z premiestniteľných knižníc a nastavení alebo "linking" strojovej adresy ku konečnej lokalite každého modulu. Shared library - výraz je trochu ambiciózny,pretože pokrýva dva odlišné koncepty. Poprvé je to zdieľanie kódu lokalizovaného na disku v nepríbuzných programoch. Druhá koncepcia je zdieľanie kódu v pamäti, keď programy prevádzajú rovnaké fyzické spracovanie v RAM, zapísané do rozličných adresárov. Mohlo by to vyzerať tak, že neskoršie spomenuté, by bolo vhodnejšie, a v skutku to má mnoho výhod. Napríklad v "open step systéme" aplikácie mali často len niekoľko stoviek kilobytov a boli okamžite načítavané. Veľká väčšina ich kódu sa nachádzala v knižniciach, ktoré už boli načítané pre iné účely operačným systémom. Zdieľaný kód musí byť špecificky napísaný, aby mohol bežať v multitaskingovom (viac úlohovom) prostredí. V starších typoch ako 16 bitové Windows alebo MPE pre HP 3000 boli povolené len uložené dáta alebo aj iné významné obmedzenia boli uložené na písanie DLL. RAM zdielanie môže byť vykonané pozične nezávislým kódom ako v UNIXe, ktorý vedie ku komplexnej,ale flexibilnej architektúre, alebo použitie pozične závislého kódu ako vo Windows a OS/2.

7 Tieto systémy zabezpečia rôznymi trikmi ako je pre-mapping adresového priestoru a rezervovanie slotov pre každý DLL, že kód má velkú prevdepodobnosť toho, že bude zdielaný. Windows DLL nie sú zdieľanými knižnicami v UNIXovskom zmysle. Vo väčšine moderných operačných systémoch, zdielané knižnice môžu byť v rovnakom formáte ako "regulárne" spúšťače (executables). Smeruje to k dvom hlavných výhodám : Po prvé ide o vytvorenie iba jedného čítača pre oba z nich, lepšie ako dva(majúc len jeden loader sa považuje za prijateľnú cenu za ich pridanú zložitosť). Po druhé, povoľuje to spúšťačom taktiež, aby boli používané ako DLL, ak majú tabuľku symbolov. Vo Windows bol tento koncept posunutý ďalej, s rovnakými systémovými prostriedkami ako napríklad fonty sú pribalené do formátu súboru DLL. Extenzia DLL je obyčajne používaná v OS Windows a OS/2. V OS UNIX a platformách UNIX, význam shared library alebo shared object je bežnejší v dôsledku čoho väčšina bežných názvov prípon súborov pre zdieľané knižnice je.so obvykle nasledovaná ďalšou bodkou a verziou. V niektorých prípadoch, operačný systém môže byť preťažený s rozličnými verziami DLL,ktoré bránia výkonu a stabilite. Takýto scenár je známy ako DLL hell. Veľa moderných operačných systémov po roku 2001 má metódy upratovania na eliminovania takýchto situácií. Prehľad grafických knižníc Gandalf - je knižnica implementujúca numerické algoritmy a algoritmy počítačového videnia. Je napísaná v jazyku C. Knižnica je voľne dostupná a je použiteľná vo väčšine OS. Overená je v unixových systémoch (Linux, IRIX), v OS Windows 2000/NT/XP a MacOS X. Knižnica nemá oficiálne rozhrania pre iné programovacie jazyky. Keďže je napísaná v jazyku C, tak okrem tohto jazyka je použiteľná aj v jazyku C++. IM - je knižnica (toolkit) pre digitálne spracovanie obrazu. Umožňuje získavanie obrazu, podporuje niekoľko obrazových formátov a implementuje mnoho funkcií pre operácie spracovania obrazu. Animácie a video sú podporované ako sekvencie obrazov. Knižnica poskytuje jednoduché API pre vedecké aplikácie. IM je voľne šíriteľný softvér. Image Magick - určená na vytváranie, editovanie a tvorbu kompozícií bitmapových obrázkov. Knižnica je použiteľná pre všetky známe operačné systémy. Knižnica je voľne šíriteľná. Pre nasledujúce OS je k dispozícii binárna verzia knižnice: Fedora Core 6 i386 RPM, Fedora Core 6 x86 64 RPM, Mac OS X (10.4), Solaris Sparc 2.10, FreeBSD 6.1,

8 Cygwin, Windows statická aj dynamická verzia. Pre všetky operačné systémy, pre ktoré nie je k dispozícii binárna verzia je potrebná inštalácia knižnice zo zdrojového kódu. ITK - je open-source objektovo-orientovaný systém pre spracovanie obrazu. Hlavným zameraním sú aplikácie v medicínskom prostredí (segmentácia a registrácia). Knižnica je implementovaná v jazyku C++. Je použiteľná pre viaceré platformy. Slúži na to utilita CMake určená na riadenie procesu kompilácie, pomocou ktorého je možné vytvoriť súbory pre rôzne platformy pre OS Windows alebo Unix. Matrox Imaging Library (MIL) - je knižnica (toolki) s množstvom funkcií pre získavanie, spracovanie a archiváciu obrazu. Využíva inštrukcie MMX/SSE/SSE2 a procesory firmy Matrox. Má štandardné rozhranie v jazyku C. Knižnica nie je voľne šíriteľná. Knižnice je k dipozícii pre nasledujúce OS: Microsoft Windows 2000, Windows XP, Windows CE.NET a Linux. OpenCV - voľne dostupná vysoko-úrovňová knižnica pre spracovanie obrazu v reálnom čase a počítačové videnie pôvodne vyvinutá firmou Intel (1999). Napísaná je v jazyku C/C++ a obsahuje okolo 500 funkcií. Knižnica je multiplatformová (Windows, MacOs X, Linux,...). Ďalšie grafické knižnice a nástroje (toolkits): VTK, NAG IRIS Explorer, POV-Ray, Breeze Designer, VisPack, 3DViewnix, cairo, vxt a vxtrl (C++), Intel IJL library, GLIDE (3Dfx) GDI (Graphics Device Interface) Graphics Device Interface (GDI alebo niekedy nazývané aj ako Graphical Device Interface) je spolu s kernelom a užívateľským rozhraním jednou z troch hlavných súčastí operačného systému Windows. GDI slúži na reprezentáciu grafických objektov a ich transformácie na výstupné zariadenia ako sú monitory alebo tlačiarne. Vo Windows XP je k dispozícií vylepšená verzia GDI+. GDI má na starosti úlohy ako je kreslenie čiar a kriviek, renderovanie fontov a zaobchádzanie s farebnými paletami. GDI nie je priamo zodpovedné za vykresľovanie okien, menu, atd. To je vyhradené pre užívateľský subsystém, ktorý sa nachádza v knižnici user32.dll a je na GDI postavený. GDI je podobný QuickDraw od Apple. Pravdepodobne najvýznamnejšia vlastnosť GDI, okrem metódy priameho prístupu k hardvéru, je vlastnosť Scaling a čerpanie z cieľového zariadenia. S použitím GDI je veľmi ľahké kresliť a zobrazovať na viacero zariadeniach, akými sú napríklad obrazovka a tlačiareň, a na každom z týchto zariadení môžeme očakávať správnu

9 reprodukciu. Táto vlastnosť je centrom celej koncepcie WYSIWYG aplikácií pre Microsoft Windows. GDI využívajú jednoduché hry, ako napríklad FreeCell a míny, ktoré nepotrebujú rýchle vykresľovanie. GDI neni schopné dôkladne animovať a chýba mu 3D vykresľovanie. Moderné hry používajú DirectX alebo OpenGL, ktoré umožňujú programátorom lepší prístup k hardvérovým vlastnostiam. S príchodom Windows XP, bolo GDI kritizované a tak sa v C++ založil nový subsystém GDI+. GDI+ má vylepšené 2D grafické prostredie, daľej funkcie ako 2D Anti-aliasing, koordináciu pomocou plávajúcej čiarky, alpha blending, gradiálne tienovanie, komplexnejšia správa, podporu moderných grafických formátov ako JPEG a PNG (ktoré v predchádzajúcej verzií GDI viditelne chýbali) a hlavne podporu pre skladanie afinnej transformácie v 2D zobrazení. Použitie týchto rysov je viditeľné v užívateľskom rozhranní Windows XP a ich prítomnosť v základnej grafickej vrstve Windows XP veľmi zjednodušilo implementáciu vektorovej grafiky (napríklad Flash alebo SVG). Dynamická knižnica GDI+ je dodávaná spolu s aplikáciami a dá sa použiť pod staršími verziami Windows. GDI+ je podobné (účelom a štruktúrou) Apple Quartz 2D, alebo cairo OpenGL Charakteristika OpenGL OpenGL (z anglického Open Graphics Library) predstavuje softvérové rozhranie pre grafický hardvér. OpenGL je platformovo nezávislý de facto štandard pre 3D vizualizáciu geometrických objektov. Pozostáva z množiny asi 120 príkazov (procedúr a funkcií) umožňujúcich programátorovi definovať, zobrazovať a animovať trojrozmerné objekty a operácie s nimi. Koncepcia OpenGL je odvodená od štandardu IRIS GL Graphics Language od firmy Silicon Graphics, Inc. (SGI). Funkčnosť pôvodného rozhrania GL je v prípade OpenGL rozšírená o možnosti adaptability na rôzne platformy a operačné systémy. V súčasnosti sú dostupné verzie pre platformy X Windows, OS/2, SUN, DEC, SGI a Microsoft Windows. Hlavnou výhodou štandardu OpenGL je to, že je nezávislý od operačného systému, od systému správy okien (Window System) a v neposlednom rade aj od hardvéru. Je tiež podporovaný mnohými dodávateľmi. Verzia OpenGL 1.0 bola predstavená 1. júla 1992 a už o 5 dní neskôr bol tento štandard demonštrovaný na konferencii vývojárov Win32 ako riešenie implementované na pracovných

10 staniciach IRIS Indigo. V súčasnosti sa na správe a údržbe OpenGL podieľa konzorcium nazvané OpenGL Architecture Review Board (ARB), ktorého zakladajúcimi členmi sú také spoločnosti ako SGI, Digital Equipment Corporation, IBM, Intel a Microsoft. Toto konzorcium ratifikovalo v decembri 1995 konečnú špecifikáciu verzie OpenGL 1.1. Koncom roku 1997 bola konzorciom ratifikovaná špecifikácia OpenGL 1.2. OpenGL poskytuje široké možnosti prispôsobenia scény tak podľa požiadaviek používateľa, ako aj z hľadiska výkonu jeho počítača. Okrem základných funkcií na opis objektov a definíciu scény obsahuje táto knižnica aj prostriedky pre : Vykreslenie iba viditeľných hrán (tzv. Z-buffer, alebo Depth Buffer). Nastavenie parametrov kamery snímajúcej scénu. Aplikovanie textúr na objekty. Definovanie svetelných zdrojov v scéne a nastavenie ich vlastností. Špeciálne funkcie pre vytvorenie hmly v scéne, charakteristiky materiálov objektu (zrkadlový, rozptýlený obraz). Antialiasing (vyhľadzovanie). Motion blur. Distribuované spracovanie (výpočty na serveri, zobrazenie na pracovnej stanici - slúži ako grafický terminál). Optimalizácia spracovávania množiny operácií. Existuje však aj niekoľko operácií, ktoré nedokáže štandardná knižnica zabezpečiť. Ide hlavne o prácu s komplexnými objektmi. Všetky zložité objekty sa musia vytvoriť zo základných grafických prvkov (z angl. primitives), ako sú body, priamky, trojuholníky, polygóny a pod. Pretože OpenGL bola vyvinutá ako systémovo nezávislá knižnica, nemôže obsahovať funkcie pre správu okien, spracovanie udalostí od myši a klávesnice a pod. Na odstránenie týchto nedostatkov boli vytvorené tieto rozširujúce knižnice: OpenGL Utility Library (GLU) - obsahuje funkcie pre definovanie typov projekcie a jej vlastností, pre delenie nekonvexných polygónov na konvexné, pre definíciu jednoduchých plôch (guľa, valec, časti kruhu a kváder ), pre definíciu kriviek a plôch NURBS, pre prevod chybových hlásení z číselnej formy do textovej. OpenGL X Window System Extension (GLX) - poskytuje prostriedky pre prepojenie OpenGL so systémom X Windows slúžiace na inicializáciu, prácu s grafickým kontextom

11 okna, animáciu (tzv. Double Buffer, t.j. dve stránky, jedna je viditeľná a do druhej sa vykresľuje ďalší obraz, po vykreslení sa iba zamení práve zobrazovaná stránka) a pre prácu s fontami systému X Window. OpenGL Programming Guide Auxiliary Library obsahuje nástroje pre otváranie a zatváranie okien, spracovanie udalostí vstupu používateľa, používanie vlastných farieb, prácu s preddefinovanými trojrozmernými objektami, využitie času procesora v prípadoch, keď počítač nič nespracováva Programátorský pohľad na OpenGL OpenGL je množina príkazov dovoľujúcich špecifikovať geometrické objekty v 2D a 3D priestore spolu s príkazmi definujúcimi, ako sa zobrazia v obrazovej pamäti (tzv. frame buffer). Základná filozofia programu používajúceho OpenGL spočíva vo vytvorení okna v obrazovej pamäti, do ktorého sa bude realizovať jeho výstup. Potom nasleduje volanie funkcií pre pridelenie GL kontextu a jeho asociovanie s oknom. V tomto štádiu môže programátor volať jednotlivé funkcie na tvorbu požadovanej scény (alebo jednotlivých jej geometrických objektov), alebo funkcie pre renderovanie týchto objektov (definujúce ako sú osvetlené a kolorované), vrátane funkcií slúžiacich na prevod z používateľského modelového priestoru (2D alebo 3D) do fyzického priestoru obrazovky Základné vlastnosti OpenGL Na docenenie schopností OpenGL je nutné aspoň trochu porozumieť podstate tohto rozhrania. OpenGL poskytuje abstraktnú hladinu medzi grafickým zariadením a aplikačným programom. Všetky objekty sú prostredníctvom príkazov OpenGL kreslené do oblasti obrazovej pamäte. Frame buffer predstavuje základnú kresliacu plochu pre OpenGL. Môže to byť okno vytvorené systémom okien (window system) na danom počítači alebo v pamäti uložená údajová štruktúra. Je reprezentovaný ako 2D pole hodnôt. Každý pixel je jednoduchá množina určitého počtu bitov. Korešpondujúce bity každého pixelu tohto zásobníka sú zoskupované do bitových rovín (tzv. bitplane), čo nie je v podstate nič iné ako pole bitov mapovaných priamo na obrazovku. Pod pojmom buffer (vyrovnávacia pamäť, zásobník) si môžeme logicky predstaviť množinu ďalších zásobníkov. Najdôležitejší je tzv. image buffer, ktorý obsahuje informáciu o aktuálnej farbe a podľa možnosti aj hodnotu alpha (pozri odsek "Farby v OpenGL") komponenty, ale existujú aj iné typy týchto zásobníkov. Základné typy zásobníkov sú tieto:

12 1. Color buffer obsahuje informácie o farbe daného fragmentu (image buffer). GMS / L2 2. Depth buffer nesie informáciu o hĺbke daného fragmentu a je používaný pri efekte odstraňovania skrytých plôch metódou z-bufferingu. Ak sú 3D grafické prvky renderované, sú rasterizované do kolekcií fragmentov. Každý fragment korešponduje k jednému pixelu a obsahuje hodnotu farby, hĺbky a niekedy aj hodnotu textúry (texturecoordinate). Hodnoty X a Y každého fragmentu určujú, kde sa bude na obrazovke nachádzať. A tzv. Z hodnota fragmentu (hĺbka) hovorí o tom, ako blízko daný fragment je. 3. Stencil buffer obsahuje hodnoty obnovované v momente, keď sa korešpondujúci fragment uloží do zásobníka. Používa sa hlavne pri tzv. multi-pass algoritme (ide o viacnásobné prekresľovanie renderovanej scény vedúce k dosiahnutiu takého efektu, ako sú CSG operácie zjednotenie, prienik a rozdiel) 4. Accumulation buffer tiež sa používa pri multi-pass algoritme, keď je jeho priemerná hodnota uložená v color zásobníku. Týmto sa dosahujú také efekty ako full-screen antialiasing, depth-of-field, motion blur a renderovanie mäkkých tieňov pre viacnásobný zdroj svetla. Nerenderuje sa priamo do tohto zásobníka. Namiesto toho renderujeme postupnosť obrazov tak, že každý sa uloží do tohto zásobníka (vznikne ich kombinácia). Takto akumulovaný obraz potom môže byť zložený do image zásobníka na zobrazenie. OpenGL tiež podporuje tzv. double buffering, keď máme dve skupiny obrazových (image) zásobníkov, jednu prednú-viditeľnú a druhú zadnú-neviditeľnú. Na podobnom princípe je založený aj stereo efekt, keď jeden obrazový (image) zásobník využíva ako podporný. Použitím dostupných základných grafických prvkov a operácií, ktoré kontrolujú ich rendering, je možné dosiahnuť vysoko kvalitný farebný obraz 3D objektov. Vývojári OpenGL prezentujú ako určitý stavový mechanizmus (state machine), ktorý riadi skupinu operácií na kreslenie. Rutiny, ktoré ponúka OpenGL, predstavujú prostriedok pre programátora na zmenu stavového mechanizmu OpenGL vedúcu k vygenerovaniu požadovaného grafického výstupu. Obrázok 1 ukazuje schematický diagram OpenGL.

13 Obr. 1 Bloková schéma OpenGL Príkazy vstupujú zľava. Väčšia časť príkazov môže byť akumulovaná v špeciálnom zozname príkazov (display list) pre neskoršie použitie. Inak sú príkazy posielané priamo na spracovanie (príkazy sú efektívne zasielané cez tzv. pipeline). Prvý stupeň predstavuje výkonný prostriedok pre aproximáciu geometrie kriviek a plôch vyhodnocovaním polynomických funkcií vstupných hodnôt. Nasledujúci stupeň operuje na základných geometrických prvkoch opísaných vrcholmi (body, segmenty čiar a polynómy). Tu sú transformované a orezané do prázdnych objemov (tzv. náhľadový priestor) ako príprava na spracovanie v ďalšom stupni, v rasterizácii. Rasterizačný blok vytvára sériu adries a hodnôt pre obrazovú pamäť, používajúc 2D opis bodu, čiarového segmentu alebo polygónu. Každý takto vytvorený fragment je poslaný do nasledujúcej časti, ktorá vykonáva operácie na samotných fragmentoch, predtým ako (tieto nakoniec) zmenia obrazovú pamäť. Tieto operácie zahŕňajú podmienkové aktualizovanie do obrazovej pamäte, ktoré je založené na vstupných a predtým uchovaných hodnotách hĺbky (pre efekt hĺbkového bufferingu), zmiešanie vstupujúcich farieb fragmentov so zložkovými hodnotami farieb, a tiež maskovanie a iné logické operácie na hodnotách fragmentov. Nakoniec sú polia pixelov (pravouholníky) a bitmapy transformované cez časť spracovania vrcholov daného transfromačného reťazca. To nakoniec spôsobuje, že blok pixelov bude zapísaný do obrazovej pamäte. Hodnoty môžu byť tiež čítané spätne z tejto pamäte, alebo kopírované z neho do jeho inej časti. Tieto prenosy môžu zahŕňať niektoré typy dekódovania a kódovania.

14 Farby v OpenGL GMS / L2 OpenGL používa dva rozdielne modely farieb, a to tzv. RGBA model a tzv. color index. Napr. funkcia glcolor3f predpokladá RGBA farebný model. Táto rutina má ako parameter definovanú trojicu hodnôt s pohyblivou rádovou čiarkou. Tieto hodnoty postupne reprezentujú stupeň červenej (Red), zelenej (Green) a modrej (Blue) pre aktuálnu farbu. Nadobúdajú hodnoty medzi 0.0 a 1.0. RGBA model korešponduje s typom TrueColor a typ color index s typom PseudoColor (platí predovšetkým pri X Window). Modely RGB a RGBA sa na prvý pohľad zdajú podobné, odlišujú sa však v písmene A (hodnota alpha), ktoré nesie informácie o priehľadnosti farby (opacita). Používa sa vtedy, ak sú dve farby priemerované pre operáciu ich miešania. Hodnoty, ktoré môže nadobúdať, sú v rozmedzí 1.0 (úplne tmavá, nepriehľadná) až po 0.0 (úplne transparentná). Funkcia na nastavovanie tzv. alpha hodnoty glcolor4f je implicitne nastavená na 1.0. Model RGBA podporuje tri-linear paletu pre kompletný rozsah farieb, používaných pre renderovanie realistických scén. OpenGL podporuje osvetľovanie, hmloviny a plynulé tieňovanie najefektívnejšie v móde RGBA. Model color index predpokladá čitateľné a prepisovateľné mapy farieb (colormaps). Pri tomto modeli je ponechaná kontrola alokovania a aranžovania farby úplne na operačnom systéme. Preto OpenGL neobsahuje rutiny spracovávajúce tieto činnosti. Rutiny glindex sa používajú na zmenu hodnoty aktuálneho indexu farby. Výhoda color indexu je tá, že môžeme meniť hodnotu farby daného pixelu. Je tu istý odklon medzi hodnotou pixelu v obrazovej pamäti a farbou na obrazovke Syntax príkazov OpenGL Všetky funkcie knižnice OpenGL používajú prefix "gl", každé slovo v názve funkcie začína veľkým písmenom (napr. glclearcolor). U rozširujúcich knižníc platia podobné syntaktické pravidlá. Knižnica OpenGL Utility Library má prefix "glu". Knižnica OpenGL X Windows Extension používa prefix "glx" a knižnica OpenGL Programming Guide Auxiliary Library zasa "aux". Konštanty sú zapisované veľkými písmenami a používajú v názve predponu GL_ (napr. GL_COLOR_BUFFER_BIT). V rámci zaistenia prenositeľnosti používa OpenGL svoje vlastné údajové typy. Súčasne sú funkcie tejto knižnice programované pre argumenty rôznych typov (existuje viacero exemplárov jednej funkcie). Prvý znak indikuje počet parametrov určitého typu, ktoré musíme definovať pri

15 volaní daného príkazu (v štandardnom ANSI C môžeme špecifikovať 2, 3 a 4 argumenty). Druhý znak (alebo pár znakov) indikuje špecifický údajový typ týchto parametrov : 8-bitové celé číslo, 16-biové celé číslo, 32-bitové celé číslo, desatinné číslo (podľa presnosti môžeme použiť typ float alebo double). No a nakoniec posledný znak v názve funkcie (ak je špecifikovaný) je "v". To znamená, že daný príkaz pracuje so smerníkom na pole hodnôt (čiže vektor) namiesto skupiny jednotlivých argumentov (pozri tabuľku 1). Uvedieme príklad. Majme príkaz : glvertex3fv() kde číslo `3' znamená tri parametre príkazu. Znak `f' indikuje údajový typ týchto parametrov (v tomto prípade je to typ float). A nakoniec znak `v' hovorí, že argumenty sú vo vektorovom formáte. Ďalšie príklady príkazov OpenGL knižnice môžu byť takéto (pozri tabuľku 1): Príkaz glvertex2i(1,3) glvertex3f( 2.5, 6.4, 5.7) glvertex3fv( &vekt ) Vysvetlenie syntaxe Definujeme parametre ako dvojrozmerný vektor. Jednotlivé súradnice sú definované 32 bitovými celými číslami. Súradnice sú definované ako trojrozmerný vektor reálnych čísel Súradnice sú definované ako trojrozmerný vektor reálnych čísel uložených v poli GLfloat vekt[] = (2.5, 6.4, 5.7). Do funkcie sa odovzdávajú odkazom. Tabuľka 1 Príklad definícií príkazov knižnice OpenGL Jednotlivé údajové typy, ktoré sú definované v OpenGL, sú uvedené v tabuľke 2 : Údajový typ Názov v OpenGL Prípona funkcie 8 bitové celé číslo (integer) Glbyte b 16 bitové celé číslo (integer) GLshort s 32 bitové celé číslo (integer) GLint, GLsizei i 32 bitové reálne číslo (float) Glfloat, GLclampf f 64 bitové reálne číslo (double) Gldouble, GLclampfd d 8 bitové celé číslo bez znamienka (unsigned) Glubyte, GLboolean ub 16 bitové celé číslo bez znamienka (unsigned) Glushort us 32 bitové celé číslo bez znamienka (unsigned) Gluint, GLenum, GLbitfield ui Tabuľka 2 Údajové typy definované v OpenGL

16 Základné grafické prvky GMS / L2 Zložitejšie objekty scény môžeme tvoriť v základnej knižnici OpenGL pomocou tzv. základných grafických prvkov (pozri obrázok 2). Obr. 2 Základné grafické prvky OpenGL Každý objekt je opísaný (funkcia glvertex*()) prostredníctvom množiny vrcholov a typom daného základného grafického prvku. Či a ako sú jednotlivé vrcholy napojené, definuje práve tento typ. Všetky volania funkcie glvertex*() musia byť uzavreté medzi volania funkcií glbegin() a glend() (vždy musia tvoriť pár). Je dôležité uviesť, že jednotlivé príkazy OpenGL nemusia byť spracované jednotlivo. Už sme hovorili o tom, že príkazy sa môžu ukladať do zásobníka s tým, že môžeme potom jednoduchým volaním funkcie glflush() všetky vykonať (uvádza sa preto vo všeobecnosti ako posledný príkaz sekvencie kresliacich príkazov). Je veľmi dôležité aj poradie deklarovania jednotlivých vrcholov (spolu s informáciou o ich počte pri danom základnom grafickom prvku, nadbytočné vrcholy budú ignorované). Nasledujúci fragment kódu ukazuje spôsob volania funkcie glflush() : // Nastavenie farby pozadia na modrú glclearcolor(0.0f, 0.0f, 1.0f, 1.0f);

17 // Vyčistenie okna aktuálnou nastavenou farbou pozadia glclear(gl_color_buffer_bit); // Nastavenia farby pera na červenú, a kreslenie obdĺžnika na aktuálnu // pozíciu glcolor3f(1.0f, 0.0f, 0.0f); glrectf(x1, y1, x1+rsize, y1+rsize); glflush(); Tento fragment vytvorí na obrazovke červený štvorec na modrom pozadí (samozrejme nie je kompletný, treba ešte definovať hlavnú funkciu, vytvoriť okno a ostatné prípravné operácie) Implementácia OpenGL vo Windows Systém OpenGL bol spočiatku určený predovšetkým pre použitie na počítačoch navrhovaných a optimalizovaných pre manipuláciu a zobrazenie 3D grafiky. V súčasnosti môžeme však hovoriť aj o tzv. zovšeobecnenej "software-only" implementácii tohto grafického rozhrania. Jedným z príkladov takejto implementácie je aj Microsoft Windows (čoraz viac sa však využívajú prídavné zariadenia rozširujúce grafické možnosti osobného počítača, ako sú grafické 3D akcelerátory, ktoré túto skutočnosť potláčajú). Implementácia OpenGL do Windows NT a Windows 95/98 pozostáva z nasledujúcich častí: 1. Plnohodnotná množina príkazov OpenGL. Tieto základné funkcie sú použité na správu a definíciu tvaru objektov, základné transformácie, osvetlenie, priradenie farby, správu textúr, orezávanie, správu bitových máp, tvorbu hmly a antialiasing. Všetky funkcie sú definované v hlavičkovom súbore <GL\gl.h>. 2. Knižnica OpenGL Utility (GLU). Obsahuje príkazy pre správu a používanie textúr, transformácií súradníc, správu polygónov (polygon tessellation), renderovacie operácie, tvorbu kriviek a plôch NURBS (Non-Uniform Rational B-Spline) a spracovanie chybových hlásení. Sú definované v hlavičkovom súbore <GL\glu.h>. 3. Knižnica OpenGL Programming Guide Auxiliary Library. Obsahuje funkcie pre správu okien a udalostí vstupu. Sú definované v hlavičkovom súbore < GL\glaux.h >. 4. Skupina funkcií WGL (Windows GL). Je to množina funkcií slúžiacich na prepojenie systému Windows a OpenGL. Slúžia na správu renderovacieho kontextu (RC) a pod. Sú analogické s funkciami knižnice GLX, ktorá sa používa pri implementácii OpenGL do systému X Window. Všetky názvy týchto funkcií majú prefix "wgl". Sú definované v hlavičkovom súbore <windows.h>. 5. Nové Win32 funkcie pre "pixel formats" a "double buffering" pre konkrétne okno. Sú definované v hlavičkovom súbore <windows.h>.

18 OpenGL pracuje na podobnom princípe ako GDI vo Windows. Je to iba dodatočná grafická vrstva, ktorú môžu programy používať (pozri obr. 3). GDI je obsiahnuté (celá jeho funkčnosť) v dynamickej knižnici GDI32.DLL. Tá sa zavádza do pamäte vždy, keď sa volajú funkcie GDI. Podobná situácia je aj s OpenGL. Ak program volá funkciu OpenGL, natiahnu sa automaticky do pamäte knižnice OPENGL32.DLL a GLU32.DLL. Architektúra OpenGL je založená na architektúre klient-server. Obr. 3 Architektúra OpenGL vo Windows Dôležitým prvkom pri OpenGL vo Windows je tzv. renderovací kontext (RC). Má podobnú úlohu ako kontext zariadenia (DC) pri GDI. Na nastavenie vlastností RC potrebujeme naplniť štruktúru "pixel format", ktorá predstavuje translačnú vrstvu medzi volaniami OpenGL a aktuálnymi renderovacími operáciami Windows. Existujú na to štyri základné funkcie ChoosePixelFormat(), SetPixelFormat(), GetPixelFormat() a DescribePixelFormat(). Celý proces demonštruje obrázok 4.

19 Obr. 4 Nastavenie DC a RC pre rendering v OpenGL Jednoduchý program v OpenGL Základná knižnica OpenGL nemá implementované funkcie pre tvorbu používateľského rozhrania (GUI). Všetky tieto techniky sú obsiahnuté v knižnici AUX (je súčasťou OpenGL implementácie vo Windows). Bola vytvorená ako nástroj používaný pri osvojovaní si OpenGL (aby nebolo treba vedieť podrobnosti o konkrétnom operačnom systéme alebo používateľskom rozhraní). Predstavuje najschodnejšiu cestu programovania aplikácií s knižnicou OpenGL. Jej funkcie je možné používať na všetkých platformách. Ide predovšetkým o funkcie správy okien a udalostí. Obsahuje aj niektoré funkcie pre tvorbu jednoduchých objektov (guľa, kocka alebo aj čajník a pod.). Jednoduchý výpis programu využívajúceho príkazy OpenGL (odladený vo Visual C++ 6.0): // AuxSolid.c // Používa preddefinované objekty knižnice OpenGL AUX // Kresli plošné objekty #include <windows.h> // štandardný hlavickový súbor Windows #include <gl\gl.h> // hlavičkový súbor OpenGL #include <gl\glaux.h> // hlavičkový súbor AUX knižnice #include <conio.h> // funkcie konzoly I/O // vybraný objekt static char cselection = ' '; // Funkcia volaná pri zmene rozmerov okna void CALLBACK ChangeSize(GLsizei w, GLsizei h) {

20 if(h == 0) h = 1; glviewport(0, 0, w, h); glloadidentity(); if (w <= h) glortho (-100.0f, 100.0f, f, 100.0f*h/w, , 100.0); else glortho (-100.0f, 100*w/h, f, 100.0f, , ); } // Funkcia na prípravu scény void CALLBACK RenderScene(void) { // Vymazanie obrazovky glclear(gl_color_buffer_bit); glrotatef(1.0f,1.0f,0.0f,0.0f); glrotatef(1.0f,0.0f,1.0f,0.0f); glrotatef(1.0f,0.0f,0.0f,1.0f); // Kreslenie vybraného objektu switch(cselection) { case 'a': auxsolidcone(30.0f,75.0f); break; case 'b': auxsolidcylinder(30.0f, 75.0f); break; case 'c': auxsoliddodecahedron(75.0f); break; case 'd': auxsolidicosahedron(75.0f); break; case 'e': auxsolidoctahedron(75.0f); break; case 'f': auxsolidsphere(75.0f);

21 break; case 'g': auxsolidteapot(50.0f); break; case 'h': auxsolidtetrahedron(75.0f); break; case 'i': auxsolidtorus(20.0f, 50.0f); break; case 'j': auxsolidcube(75.0f); break; case 'k': auxsolidbox(75.0f,75.0f,75.0f); break; default: break; } glflush(); auxswapbuffers(); } GMS / L2 // Hlavná funkcia programu void main(void) { // Zobrazenie menu pre výber kreslených objektov cprintf("vyber objekt na kreslenie:\n\n"); cprintf("a - Kuzel (Cone)\n"); cprintf("b - Valec (Cylinder)\n"); cprintf("c - Dvanaststen (Dodecahedron)\n"); cprintf("d - Icosahedron\n"); cprintf("e - Osemsten (Octahedron)\n"); cprintf("f - Gula (Sphere)\n"); cprintf("g - Cajnik (Teapot)\n"); cprintf("h - Stvorsten (Tetrahedron)\n"); cprintf("i - Torus\n"); cprintf("j - Kocka (Cube)\n"); cprintf("k - Kvader (Box)\n");

22 // Ochrana vkladania while(cselection < 'a' cselection > 'k') { cprintf("\nvyber : "); cselection = getche(); } // Nastavenie okna knižnice AUX pre double buffer auxinitdisplaymode(aux_double AUX_RGBA); auxinitposition(100,100,250,250); auxinitwindow("3d Aux library objects"); // Nastavenie pozadia na biele glclearcolor(1.0f, 1.0f, 1.0f, 1.0f); // Nastavenie farby objektov na cervenu glcolor3f(1.0f, 0.0f, 0.0f); // volanie funkcie pre zmenu rozmerov okna auxreshapefunc(changesize); auxidlefunc(renderscene); // Hlavný cyklus auxmainloop(renderscene); } Definované funkcie ChangeSize, RenderScene a main (je vždy v C programe). Prvá z nich slúži na správu okna a jeho obsahu pri zmene jeho veľkosti. Druhá kreslí a rotuje vybratý objekt na obrazovke. Na to, aby sme mohli tento program vyskúšať, musíme ešte nastaviť základné parametre projektového súboru v prostredí Visual C++. Informácie o základných aspektoch programovania vo Visual C++ sme uviedli v kapitole "Programovacie prostredie MSVC++". Postup vytvárania takejto aplikácie je štandardný ako pri vytváraní Win32 aplikácie s tým, že teraz vytvárame tzv. Win32 Console aplikáciu (aplikácia pracujúca v príkazovom riadku, nevytvára žiadne náročnejšie používateľské rozhranie, ak nerátame kresliace okno). Najjednoduchšie, ako si vytvoriť projekt, je pomocou generátora aplikácií v prostredí MSVC++ nechať vygenerovať 32 bitovú aplikáciu príkazového riadku (Win32 Console Application). Názov projektu môžeme mať napr. testgl (vkladáme ho do políčka v okne generátora aplikácií), s tým, že budeme generovať iba jednoduchú aplikáciu (Create an simple application). Do zdrojového súboru (s koncovkou cpp a menom podľa názvu projektu) vložíme zdrojový kód uvedený vyššie. Musíme si zapamätať, že nesmieme prepísať príkaz #include "stdafx.h" (kód vložíme až za tento príkaz, prázdnu funkciu "main" môžeme prepísať, nahradíme ju vlastnou).

23 Teraz je dôležité nastaviť v projekte použitie knižníc OpenGL. Musíme to urobiť manuálne v dialógovom paneli Project Settings (položka Settings v menu Project). Tu v záložke Link (nastavenia linkera) musíme dopísať knižnice OpenGL do zoznamu knižníc (políčko Object/library modules). Musíme tam doplniť tieto názvy knižníc: opengl32.lib, glaux.lib a glu32.lib (pozor, sú oddelené medzerou). Potom už stačí projekt iba skompilovať a na obrazovke sa objaví základné okno konzoly s ponukou objektov na nakreslenie. Po výbere (pomocou písmen a až k) sa nám zobrazí okno s vybraným rotujúcim objektom (pozri obrázok 5 pre objekt valca). Obr. 5 Okno aplikácie OpenGL Ďalšie informácie o OpenGL pre Windows môžeme nájsť napr. na internete na adresách: Direct3D a DirectX Direct3D je aplikačné programové (programovacie) rozhranie pre tvorbu grafických interaktívnych 3D aplikácií. Z pohľadu programátora je to súbor objektových knižníc obsahujúcich funkcie pre zobrazovanie geometrických tvarov, 3D scén a ich animáciu. Obsahuje funkcie aj pre osvetľovanie scén, vyhladzovanie a mapovanie textúr. Direct3D je jednou zo súčastí API od firmy Microsoft s názvom DirectX.

24 DirectX je API určené špeciálne pre programovanie grafických a multimediálnych aplikácií pre OS Microsoft Windows (ide predovšetkým o aplikácie obsahujúce grafiku, video, 3-D animácie a zvuk). Primárnym cieľom tejto sady knižníc je tvorba počítačových hier, ktoré sa výkonom vyrovnajú hrám pod MS-DOS alebo pod špecializovanými hernými konzolami. Do tejto skupiny aplikácií patria aj počítačové hry v prostredí Windows Verzie DirectX Po verzii 1.0 nasledovalo hneď vydanie verzie 2.0. Táto verzia obsahovala chyby: Hlavná nevýhoda bola v tom, že nahradila ovládače výrobcov daného hardvéru svojimi vlastnými ovládačmi. V roku 1996 prišla zdokonalená a opravená verzia 3.0 (išlo hlavne o podporu inštrukčnej sady MMX). Po tejto verzii prišla verzia DirectX 5.0. Táto verzia je považovaná za prelomovú a obsahovala viaceré nové funkcie. Išlo hlavne o nové renderovacie funkcie, ktoré sú zahrnuté pod kódovým označením Talisman. 3D funkcie boli zdokonalené pomocou modulu DrawPrimitive, ktorý je rozšírením Direct3D. Z hardvérového hľadiska obsahovala verzia 5.0 podporu rozhraní Advanced Graphics Port (AGP), Universal Serial Bus (USB), pre zariadenia ako sú zvukové prehrávače, zariadenia pre prenášanie obrazu na dva monitory súčasne a herné konzoly. Za zmienku tiež stojí zdokonalené ovládanie čipov MPEG-1 a MPEG-2. Po verzii 5.0 nasledovala verzia 6.0. V súčasnosti (2009) je dostupná pre Windows XP verzia 9.0 a pre Windows Vista ver. 10. Kompletné programátorské nástroje, knižnice a dokumentácia k DirectX sú obsiahnuté v DirectX Software Development Kit (SDK). DirectX je podporované priamo systémom Windows. Jeho implementácie sa v závislosti od typu tohto systému značne líšia. Prehľad implementácií DirectX vo Windows je uvedený v tabuľke Error! Reference source not found.. Verzie Windows DirectX Windows 95 DirectX 2 Windows 98 DirectX 5.0, 6.1a (SE) Windows NT 4.0 DirectX 3.0a (Service Pack 6 ) Windows 2000 DirectX 7.0a Windows XP DirectX 8.1 Tabuľka 3 Prehľad verzií DirectX natívne dodávaných s OS Windows Najaktuálnejšie verzie rozhrania DirectX pre rôzne verzie Windows môžeme nájsť na adrese: lt.htm.

25 Základný princíp DirectX GMS / L2 DirectX môžeme v princípe porovnávať s OpenGL (konkrétne časť pre prácu s 3D grafikou - Direct3D). Predstavuje ďalšiu vrstvu medzi aplikáciou a hardvérom. Funkcie DirectX zisťujú prítomnosť hardvérových akcelerátorov pre 2D a 3D grafiku a podľa toho potom používa buď priamy prístup na daný hardvér alebo emuluje funkcie týchto zariadení. Nevýhoda emulácie je v tom, že je veľmi pomalá. Preto je obvykle výhodnejšie programovať tieto funkcie priamo v aplikácii. Jednotlivé volania funkcií hardvérových akcelerátorov nezaťažujú procesor, pretože daný hardvér pracuje paralelne s ním. V každom okamžiku môže aplikácia zistiť aktuálny stav daného hardvéru. Všetky základné funkcie, ktoré nie sú v danom hardvéri podmienene viazané, môžu pracovať paralelne. Proces 3D vizualizácie tiež prebieha paralelne v tzv. vizualizačnej pipeline. Týmto spôsobom sú jednotlivé moduly vizualizácie (premietací, orezávací a rastrovací) schopné pracovať paralelne Hardvérové funkcie DirectX HW funkcie obsahujú základné funkcie pre prácu s grafickým hardvérom. Môžeme ich rozdeliť na tieto hlavné skupiny: 1. Funkcie pre prepínanie jednotlivých stránok obrazovej pamäte. To môžeme využiť pri tvorbe animácie alebo prehrávaní videa. Môžeme ho použiť aj na presun blokov obrazovej pamäte. Používa sa pri plynulom presúvaní okien a pod. Všetky tieto operácie používajú DMA (Direct Memory Access) funkcie grafickej karty. 2. Funkcie pre prácu s tzv. sprite objektami. Sú to malé pohybujúce sa animované obrázky, ktoré sú priehľadné cez tzv. masku napr. ľudské postavy v počítačových hrách. 3. Hardvérové zväčšovanie obrázkov, vrátane hardvérovej interpolácie medzi jednotlivými bodmi (pixels), pri dostatku voľnej obrazovej pamäte. 4. Mixovanie obrazov cez alfa kanál (špeciálna farba v zdrojovom alebo cieľovom okne), vrátane miešania farieb v aktuálnom hardvérovom formáte bodov (16 alebo 32 bitov a pod.). 5. Funkcie pre 3D akceleráciu s textúrami v perspektívnom zobrazení, osvetlení, orezávaní a premietaní. 6. Funkcie pre hardvérovú podporu Z-bufferingu.

26 7. Funkcie pre hardvérovú podporu MPEG kompresie videa či DVD, ale aj jednoduchej akcelerácie prevodu YUV videosnímku na RGB formát Opis modulov DirectX Rozhranie DirectX obsahuje tieto základné API (uvádzame vždy aj názov súboru knižnice): DirectDraw - knižnica ddraw.dll. Direct3D - knižnica d3d.dll. DirectInput - knižnica dinput.dll. DirectSound - knižnica dsound.dll. DirectPlay - knižnica dplay.dll DirectDraw DirectDraw je softvérové rozhranie, ktoré zabezpečuje priamy prístup k obrazovým zariadeniam, s ohľadom na kompatibilitu s Windows GDI (Graphics Device Interface). Je to najdôležitejší modul celého rozhrania. Jeho funkcie využívajú aj ostatné moduly. Funguje ako komunikačná vrstva, ktorá priamo komunikuje s obrazovou pamäťou na grafickej doske a umožňuje tak rýchly prenos obrazov (podobne ako knižnica Win-G pre Windows 3.1). Pomalšie GDI (Graphical Device Interface), ktoré sa štandardne stará vo Windows o zobrazovanie grafiky, sa pritom jednoducho obíde. DirectDraw poskytuje možnosť tvorby jednoduchých hier, rôznych Windows systémových programov a 3D aplikácií, nezávisle od používaných zariadení. DirectDraw pracuje so širokou škálou zobrazovacích zariadení. Počínajúc jednoduchým SVGA monitorom a pokračujúc zložitejšími hardvérovými implementáciami, ako sú napríklad orezávanie, rozťahovanie alebo tzv. on-rgb systémy. Rozhranie je navrhnuté tak, aby mohlo emulovať všetky požiadavky prístupného hardvéru a podporovať hardvérovú akceleráciu. Veci, ktoré nie sú systémom hardvérovo podporované, dokáže DirectX emulovať. DirectDraw spravuje obrazovú pamäť. Ak aplikácie potrebujú využívať iba základne vlastnosti zariadení, ktoré sú štandardom v hardvérových implementáciách, ako je napr. RGB color formát, budeme volať iba určité špecifické funkcie pre prácu s paletou. Pomocou DirectDraw môžeme pristupovať do obrazovej pamäti rovnako, nezávisle od toho, aký hardvér sa nachádza v počítači. Medzi základné vlastnosti modulu DirectDraw patrí: podpora double-bufferingu a "flip" režimu.

27 podpora "blit". Pojem blit je skratka pre "bit block transfer", čo umožňuje premiestnenie bloku údajov v obrazovej pamäti z jedného miesta na druhé. Blit sa preto často používa na tzv. sprite animáciu. podpora 3D z-bufferingu, s rozšírením pre hardvérovú asistenciu prekrývania (platí pre z-buffer). paralelný prístup grafickej dosky do operačnej a obrazovej pamäte Direct3D Používa sa pre prácu s 3D grafickými doskami, ktoré sa v súčasnosti dostávajú do popredia už aj v osobných počítačoch. Vznikol hlavne z dôvodu nedostupnosti vhodného 3D štandardu pre operačný systém DOS. V minulosti totiž mohli DOSovské hry ťažiť zo schopností grafických dosiek novej generácie a zobrazovať 3D priestor iba v tom prípade, ak výrobcovia hier dodávali tiež špeciálny ovládač. Pomocou štandardizovaných ovládačov Direct3D však môže aplikácia rovnako dobre využiť akúkoľvek grafickú kartu pre zrýchlené zobrazovanie. Náročné 3D funkcie, ako sú anti-aliasing, mipmapping alebo alpha-blending, môžu byť prostredníctvom Direct3D spracované priamo grafickou doskou, takže už nie je nutné využívať možnosti softvérovej emulácie. To však ešte neznamená, že túto funkčnosť podporujú všetky aplikácie vyžadujúce 3D operácie. 3D grafické dosky môžu naplno ukázať svoje možnosti iba pri aplikáciách (ako sú napr. počítačové hry) programovaných špeciálne pre rozhranie Direct3D. To znamená, že bez podpory Direct3D tieto aplikácie fungujú na bežnej úrovni práce s grafickou kartou, t.j. s nízkou rýchlosťou reprodukcie obrázkov a bodovou textúrou. Na obrázku Error! Reference source not found. je dokumentované prepojenie Direct3D do systému Windows a jeho základná štruktúra. Ako môžeme vidieť, Direct3D nepristupuje k hardvéru priamo (napr. v porovnaní s OpenGL). Je oddelený od hardvéru vrstvou HEL (Hardware Emulation Layer) a vrstvou HAL (Hardware Activation Layer). Každá funkcia volaná aplikáciou je najprv filtrovaná vrstvou HEL, ktorá rozhoduje, či je schopná príslušná grafická karta túto funkciu spracovať.

28 Obr. 6 Štruktúra grafického rozhrania Direct3D Pri zápornej odpovedi je daná funkcia realizovaná touto vrstvou (ako vlastne vyplýva z názvu HEL vrstvy, slúži na emuláciu). V opačnom prípade je funkcia spracovaná vrstvou HAL. Direct3D umožňuje vizualizáciu v reálnom čase s použitím tzv. renderovacej pipeline (podporuje konštantné a Gouraudovo tieňovanie) a transparentného prístupu k hardvérovej akcelerácii. Pipeline obsahuje moduly pre transformáciu, osvetlenie a rastrovanie. Direct3D môžeme používať v dvoch režimoch. Prvý je režim Immediate, ktorý umožňuje prácu s 3D hardvérom nízkej úrovne. Druhý je režim Retained, ktorý, naopak, pracuje s hardvérom na vyššej úrovni. Režim Immediate predstavuje veľmi tenkú vrstvu medzi aplikáciou a 3D hardvérom. Jeho použitie predstavuje najkratšiu cestu k hardvérovej 3D akcelerácii. Čo sa týka režimu Retained, ten tvorí nadstavbu režimu Immediate. A slúži pre komplexnú prácu s 3D priestorom. Ide hlavne o údajový model scény, prácu s týmto modelom a vizualizáciu komplexnej scény. Základné vlastnosti Direct3D sú tieto: Prepínateľný hĺbkový buffering (používajúci z-buffre alebo w-buffre). Flat a Gouraudovo tieňovanie. Viacnásobné svetlá a typy svetiel. Plná podpora materiálov a textúr, vrátane mipmappingu. Mohutné softvérové emulačné ovládače. Transformácia a orezávanie. Hardvérová nezávislosť. Plná podpora Windows NT, 2000a XP.

Grafické a multimediálne systémy

Grafické a multimediálne systémy Grafické a multimediálne lne systémy Ing. Pavol Bezák, PhD. Ústav aplikovanej informatiky, automatizácie a matematiky MTF STU Katedra aplikovanej informatiky a automatizácie m. č. S-325 e-mail: pavol.bezak@stuba.sk

More information

kucharka exportu pro 9FFFIMU

kucharka exportu pro 9FFFIMU požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,

More information

Databázové systémy. SQL Window functions

Databázové systémy. SQL Window functions Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score

More information

Aplikačný dizajn manuál

Aplikačný dizajn manuál Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,

More information

Registrácia účtu Hik-Connect

Registrácia účtu Hik-Connect Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document

More information

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť

More information

Copyright 2016 by Martin Krug. All rights reserved.

Copyright 2016 by Martin Krug. All rights reserved. MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without

More information

VYLEPŠOVANIE KONCEPTU TRIEDY

VYLEPŠOVANIE KONCEPTU TRIEDY VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie

More information

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga.

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga. Ochrana koncových staníc pomocou Cisco Security Agent 6.0 Ľubomír Varga lubomir.varga@lynx.sk Agenda CSA 6.0 refresh Vybrané vlastnosti CSA 6.0 Application Trust levels Notify User Rule Actions User Justifications

More information

1 Komplexný príklad využitia OOP

1 Komplexný príklad využitia OOP 1 Komplexný príklad využitia OOP Najčastejším využitím webových aplikácií je komunikácia s databázovým systémom. Komplexný príklad je preto orientovaný práve do tejto oblasti. Od verzie PHP 5 je jeho domovskou

More information

Spôsoby zistenia ID KEP

Spôsoby zistenia ID KEP Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup

More information

Computer Graphics. Bing-Yu Chen National Taiwan University

Computer Graphics. Bing-Yu Chen National Taiwan University Computer Graphics Bing-Yu Chen National Taiwan University Introduction to OpenGL General OpenGL Introduction An Example OpenGL Program Drawing with OpenGL Transformations Animation and Depth Buffering

More information

VR-programming tools (procedural) More VRML later in this course! (declarative)

VR-programming tools (procedural) More VRML later in this course! (declarative) Realtime 3D Computer Graphics & Virtual Reality OpenGL Introduction VR-programming Input and display devices are the main hardware interface to users Immersion embeds users through the generation of live-like

More information

Graphics Pipeline & APIs

Graphics Pipeline & APIs Graphics Pipeline & APIs CPU Vertex Processing Rasterization Fragment Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,

More information

Obsah. SOA REST REST princípy REST výhody prest. Otázky

Obsah. SOA REST REST princípy REST výhody prest. Otázky REST Peter Rybár Obsah SOA REST REST princípy REST výhody prest Otázky SOA implementácie WEB (1990) CORBA (1991) XML-RPC (1998) WS-* (1998) SOAP RPC/literal SOAP Document/literal (2001) REST (2000) SOA

More information

Programovanie v jazyku Python. Michal Kvasnica

Programovanie v jazyku Python. Michal Kvasnica Programovanie v jazyku Python Michal Kvasnica Organizačné detaily Prednášky aj cvičenia v 638 Povinná účasť na cvičeniach Hodnotenie: priebežné odovzdávanie zadaní (40% známky) záverečný projekt na skúške

More information

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator Anycast Ľubor Jurena CEO jurena@skhosting.eu Michal Kolárik System Administrator kolarik@skhosting.eu O nás Registrátor Webhosting Serverové riešenia Správa infraštruktúry Všetko sa dá :-) Index Čo je

More information

Graphics Pipeline & APIs

Graphics Pipeline & APIs 3 2 4 Graphics Pipeline & APIs CPU Vertex Processing Rasterization Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,

More information

Databázy (1) Prednáška 11. Alexander Šimko

Databázy (1) Prednáška 11. Alexander Šimko Databázy (1) Prednáška 11 Alexander Šimko simko@fmph.uniba.sk Contents I Aktualizovanie štruktúry databázy Section 1 Aktualizovanie štruktúry databázy Aktualizácia štruktúry databázy Štruktúra databázy

More information

Early History of APIs. PHIGS and X. SGI and GL. Programming with OpenGL Part 1: Background. Objectives

Early History of APIs. PHIGS and X. SGI and GL. Programming with OpenGL Part 1: Background. Objectives Programming with OpenGL Part 1: Background Early History of APIs Objectives Development of the OpenGL API OpenGL Architecture - OpenGL as a state machine Functions - Types -Formats Simple program IFIPS

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia mar.18 feb.18 jan.18 dec.17 nov.17 okt.17 sep.17 aug.17 júl.17 jún.17 máj.17 apr.17 mar.17 Internetová populácia SR 12+ 3 904 509 3 802 048 3 870 654 3 830

More information

Programming with OpenGL Part 1: Background

Programming with OpenGL Part 1: Background Programming with OpenGL Part 1: Background Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Development of the OpenGL API

More information

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám.

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL LED svietidlá na osvetlenie športovísk MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL SPORT LL SPORT je sofistikované vysoko výkonné LED svietidlo špeciálne

More information

Xamarin písanie Android a ios aplikácií v C#

Xamarin písanie Android a ios aplikácií v C# www.dotnetcollege.cz Xamarin písanie Android a ios aplikácií v C# Roman Jašek Software Architect, Riganti s.r.o. MSP, MCP roman.jasek@riganti.cz Xamarin vs. Xamarin Forms ios C# UI Android C# UI Windows

More information

Computer Graphics. Chapter 3 Computer Graphics Software

Computer Graphics. Chapter 3 Computer Graphics Software Computer Graphics Chapter 3 Computer Graphics Software Outline Graphics Software Packages Introduction to OpenGL Example Program 2 3 Graphics Software Software packages General Programming Graphics Packages

More information

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Jazyk SQL Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Jazyk SQL - Structured Query Language SQL je počítačový jazyk určený na komunikáciu s relačným SRBD neprocedurálny (deklaratívny) jazyk

More information

Computer Graphics, Chapt 08

Computer Graphics, Chapt 08 Computer Graphics, Chapt 08 Creating an Image Components, parts of a scene to be displayed Trees, terrain Furniture, walls Store fronts and street scenes Atoms and molecules Stars and galaxies Describe

More information

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu Inštalačná príručka Obsah 1 Predpoklady pre inštaláciu D.Signer... 3 1.1 Inštalácia.NET Framework... 3 1.1.1 Windows 8, 8.1... 4 1.1.2

More information

ERKELEY DAVIS IRVINE LOS ANGELES RIVERSIDE SAN DIEGO SAN FRANCISCO EECS 104. Fundamentals of Computer Graphics. OpenGL

ERKELEY DAVIS IRVINE LOS ANGELES RIVERSIDE SAN DIEGO SAN FRANCISCO EECS 104. Fundamentals of Computer Graphics. OpenGL ERKELEY DAVIS IRVINE LOS ANGELES RIVERSIDE SAN DIEGO SAN FRANCISCO SANTA BARBARA SANTA CRUZ EECS 104 Fundamentals of Computer Graphics OpenGL Slides courtesy of Dave Shreine, Ed Angel and Vicki Shreiner

More information

Poradové a agregačné window funkcie. ROLLUP a CUBE

Poradové a agregačné window funkcie. ROLLUP a CUBE Poradové a agregačné window funkcie. ROLLUP a CUBE 1) Poradové a agregačné window funkcie 2) Extrémy pomocou DENSE_RANK(), TOP() - Príklady 3) Spriemernené poradia 4) Kumulatívne súčty 5) Group By a Datepart,

More information

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP Recipient Configuration Štefan Pataky MCP, MCTS, MCITP Agenda Mailbox Mail Contact Distribution Groups Disconnected Mailbox Mailbox (vytvorenie nového účtu) Exchange Management Console New User Exchange

More information

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca Obsah balenia TL-WR743ND Rýchly inštalačný sprievodca PoE injektor Napájací adaptér CD Ethernet kábel Systémové požiadavky

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia dec.16 nov.16 okt.16 sep.16 aug.16 júl.16 jún.16 máj.16 apr.16 mar.16 feb.16 jan.16 Internetová populácia SR 12+ 3 728 988 3 718 495 3 718 802 3 711 581 3 700

More information

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém Crestron Mercury Univerzálny Videokonferenčný a Kolaboračný systém Tradičná malá zasadacia miestnosť CRESTRON Mercury Videokonferenčná miestnosť Možnosť rezervácie miestnosti: Prostredníctvom MS Outlook

More information

CS559: Computer Graphics. Lecture 12: OpenGL Li Zhang Spring 2008

CS559: Computer Graphics. Lecture 12: OpenGL Li Zhang Spring 2008 CS559: Computer Graphics Lecture 12: OpenGL Li Zhang Spring 2008 Reading Redbook Ch 1 & 2 So far: 3D Geometry Pipeline Model Space (Object Space) Rotation Translation Resizing World Space M Rotation Translation

More information

Lecture 2 2D transformations Introduction to OpenGL

Lecture 2 2D transformations Introduction to OpenGL Lecture 2 2D transformations Introduction to OpenGL OpenGL where it fits what it contains how you work with it OpenGL parts: GL = Graphics Library (core lib) GLU = GL Utilities (always present) GLX, AGL,

More information

Lectures OpenGL Introduction

Lectures OpenGL Introduction Lectures OpenGL Introduction By Tom Duff Pixar Animation Studios Emeryville, California and George Ledin Jr Sonoma State University Rohnert Park, California 2004, Tom Duff and George Ledin Jr 1 What is

More information

Lecture 4 of 41. Lab 1a: OpenGL Basics

Lecture 4 of 41. Lab 1a: OpenGL Basics Lab 1a: OpenGL Basics William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc Course web site: http://www.kddresearch.org/courses/cis636 Instructor

More information

Riešenia a technológie pre jednotnú správu používateľov

Riešenia a technológie pre jednotnú správu používateľov Riešenia a technológie pre jednotnú správu používateľov Radovan Semančík Agenda Úvod: Identity Crisis Technológie správy používateľov Postup nasadenia Záver Súčasný stav IT Security Nekonzistentné bezpečnostné

More information

Exercise 1 Introduction to OpenGL

Exercise 1 Introduction to OpenGL Exercise 1 Introduction to OpenGL What we are going to do OpenGL Glut Small Example using OpenGl and Glut Alexandra Junghans 2 What is OpenGL? OpenGL Two Parts most widely used and supported graphics API

More information

Manuál k programu FileZilla

Manuál k programu FileZilla Manuál k programu FileZilla EXO TECHNOLOGIES spol. s.r.o. Garbiarska 3 Stará Ľubovňa 064 01 IČO: 36 485 161 IČ DPH: SK2020004503 support@exohosting.sk www.exohosting.sk 1 Úvod EXO HOSTING tím pre Vás pripravil

More information

Computer Graphics Course 2005

Computer Graphics Course 2005 Computer Graphics Course 2005 Introduction to GLUT, GLU and OpenGL Administrative Stuff Teaching Assistant: Rony Goldenthal Reception Hour: Wed. 18:00 19:00 Room 31 (Ross 1) Questions: E-mail: cg@cs Newsgroups:

More information

Information Coding / Computer Graphics, ISY, LiTH. OpenGL! ! where it fits!! what it contains!! how you work with it 11(40)

Information Coding / Computer Graphics, ISY, LiTH. OpenGL! ! where it fits!! what it contains!! how you work with it 11(40) 11(40) Information Coding / Computer Graphics, ISY, LiTH OpenGL where it fits what it contains how you work with it 11(40) OpenGL The cross-platform graphics library Open = Open specification Runs everywhere

More information

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia Microsoft Azure platforma pre Cloud Computing Juraj Šitina, Microsoft Slovakia m Agenda Cloud Computing Pohľad Microsoftu Predstavujeme platformu Microsoft Azure Benefity Cloud Computingu Microsoft je

More information

Programové vybavenie - softvér. Funkcie operačného systému

Programové vybavenie - softvér. Funkcie operačného systému Programové vybavenie - softvér Funkcie operačného systému Softvér Softvér (software) programové vybavenie počítača. Vzniká programovaním, pričom každý počítačový program obsahuje postupnosť inštrukcií,

More information

QtiPlot Základy práce s programom

QtiPlot Základy práce s programom TECHNICKÁ UNIVERZITA V KOŠICIACH Letecká fakulta QtiPlot Základy práce s programom Ing. Katarína Draganová Ing. Pavol Lipovský Košice 2010 Obsah Obsah Obsah...5 1. Úvod...8 1.1. Na čo QtiPlot slúži...

More information

Nové komunikačné trendy v dátových centrách

Nové komunikačné trendy v dátových centrách Nové komunikačné trendy v dátových centrách Martin Vozár Roman Benko 25. november 2009 Cisco Expo, Bratislava Agenda 1. Konvergovaná architektúra 2. Komponenty architektúry 3. AVNET demo LAB 2 / 17 Konvergovaná

More information

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012 CS450/550 Pipeline Architecture Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012 0 Objectives Learn the basic components of a graphics system Introduce the OpenGL pipeline

More information

To Do. Computer Graphics (Fall 2008) Course Outline. Course Outline. Methodology for Lecture. Demo: Surreal (HW 3)

To Do. Computer Graphics (Fall 2008) Course Outline. Course Outline. Methodology for Lecture. Demo: Surreal (HW 3) Computer Graphics (Fall 2008) COMS 4160, Lecture 9: OpenGL 1 http://www.cs.columbia.edu/~cs4160 To Do Start thinking (now) about HW 3. Milestones are due soon. Course Course 3D Graphics Pipeline 3D Graphics

More information

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára REPORT DESIGNER úprava formulárov v Money S4 / Money S5 Informačný systém Money S4/S5 umožňuje upraviť tlačové zostavy tak, aby plne vyhovovali potrebám používateľa. Na úpravu tlačových zostáv slúži doplnkový

More information

Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava. Diplomová práca

Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava. Diplomová práca Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Diplomová práca Michal Červeňanský 2004 Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Katedra počítačovej

More information

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1 VLSM a CIDR CCNA2 Kapitola 6 1 Trošku histórie Pred rokom 1981 IP adresy používali na špecifikáciu siete len prvých 8 bitov Rok1981, RFC 791 Zaviedol adresný priestor s tromi triedami adries Polovica 90

More information

CS 4204 Computer Graphics

CS 4204 Computer Graphics CS 4204 Computer Graphics OpenGL Basics Yong Cao Virginia Tech References: 2001 Siggraph, An Interactive Introduction to OpenGL Programming, Dave Shreiner,Ed Angel, Vicki Shreiner Official Presentation

More information

CGT521 Introduction to

CGT521 Introduction to CGT521 Introduction to Bedrich Benes, Ph.D. Purdue University Department of Computer Graphics Rendering We have a virtual scene (a model in the memory of computer) and we want to display it What is the

More information

systemove programovanie win32 programovanie

systemove programovanie win32 programovanie systemove programovanie win32 programovanie zakladny princip uzivatel interaguje so systemom klavesnicou, mysou tym generuje udalosti, ktore sa radia do,,message queue" (front sprav) aplikacia vytahuje

More information

CS 543 Lecture 1 (Part 3) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

CS 543 Lecture 1 (Part 3) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI) Computer Graphics CS 543 Lecture 1 (Part 3) Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Recall: OpenGL Skeleton void main(int argc, char** argv){ // First initialize

More information

Návod na odstránenie certifikátov so zrušenou platnosťou

Návod na odstránenie certifikátov so zrušenou platnosťou Návod na odstránenie certifikátov so zrušenou platnosťou Dátum zverejnenia: 7. 11. 2017 Verzia: 1 Dátum aktualizácie: Popis: Tento dokument je určený používateľom, ktorí elektronicky podpisujú dokumenty

More information

OpenGL Basics I. Seoul National University Graphics & Media Lab

OpenGL Basics I. Seoul National University Graphics & Media Lab OpenGL Basics I Seoul National University Graphics & Media Lab Contents Introduction to OpenGL OpenGL sample 01 OpenGL primitives OpenGL colors Introduction to OpenGL Evolution of Computers 4 Graphics

More information

cs123 Lab 3 OpenGL Part One 1 Introduction 2 OpenGL Basics 2.2 The Rendering Pipeline 2.1 The CPU and the GPU 2.3 Basic Syntax of OpenGL commands

cs123 Lab 3 OpenGL Part One 1 Introduction 2 OpenGL Basics 2.2 The Rendering Pipeline 2.1 The CPU and the GPU 2.3 Basic Syntax of OpenGL commands cs123 Lab 3 OpenGL Part One Introduction to Computer Graphics 1 Introduction From now on, our weekly labs will focus on the use of OpenGL. While the lectures and projects will let you get a deeper understanding

More information

Teacher Assistant : Tamir Grossinger Reception hours: by - Building 37 / office -102 Assignments: 4 programing using

Teacher Assistant : Tamir Grossinger   Reception hours: by  - Building 37 / office -102 Assignments: 4 programing using Teacher Assistant : Tamir Grossinger email: tamirgr@gmail.com Reception hours: by email - Building 37 / office -102 Assignments: 4 programing using C++ 1 theoretical You can find everything you need in

More information

CS Computer Graphics: OpenGL, Continued

CS Computer Graphics: OpenGL, Continued CS 543 - Computer Graphics: OpenGL, Continued by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) Last time. OpenGL set up Basic structure OpenGL skeleton Callback functions, etc. R.W.

More information

CS Computer Graphics: OpenGL, Continued

CS Computer Graphics: OpenGL, Continued CS 543 - Computer Graphics: OpenGL, Continued by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) Last time. OpenGL set up Basic structure OpenGL skeleton Callback functions, etc. R.W.

More information

Xerox PARC the office of the future. Michal Winczer

Xerox PARC the office of the future. Michal Winczer Xerox PARC 1970-80 the office of the future Michal Winczer Čo to je? Kde to je? PARC = Palo Alto Research Center Čo bolo pred tým Vojna vo Vietname Hnutie hippies Úspechy XEROXu s kopírkami Neexistencia

More information

18. Matlab figure ako objekt

18. Matlab figure ako objekt 1 Portál pre odborné publikovanie ISSN 1338-0087 18. Matlab figure ako objekt Foltin Martin MATLAB/Comsol 06.11.2009 Dlhším používaním grafických funkcií v Matlabe, dôjdete k poznaniu že ich možnosti sú

More information

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona Popis textového formátu a xsd schémy na zasielanie údajov podľa 27 ods. 2 písm. f) zákona (formu na zaslanie údajov si zvolí odosielateľ údajov) Textový formát na zasielanie údajov podľa 27 ods. 2 písm.

More information

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami)

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) I2AI: Lecture 04 Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) Lubica Benuskova Reading: AIMA 3 rd ed. chap. 6 ending with 6.3.2 1 Constraint satisfaction problems (CSP) We w

More information

Image Rendering. Rendering can be divided into three sub-problems. Image Formation The hidden surface problem visibility determination steps

Image Rendering. Rendering can be divided into three sub-problems. Image Formation The hidden surface problem visibility determination steps Image Rendering Rendering can be divided into three sub-problems Image Formation The hidden surface problem visibility determination steps Illumination Direct illumination Indirect illumination Shading

More information

Computer Graphics. Making Pictures. Computer Graphics CSC470 1

Computer Graphics. Making Pictures. Computer Graphics CSC470 1 Computer Graphics Making Pictures Computer Graphics CSC470 1 Getting Started Making Pictures Graphics display: Entire screen (a); windows system (b); [both have usual screen coordinates, with y-axis y

More information

OpenGL. Jimmy Johansson Norrköping Visualization and Interaction Studio Linköping University

OpenGL. Jimmy Johansson Norrköping Visualization and Interaction Studio Linköping University OpenGL Jimmy Johansson Norrköping Visualization and Interaction Studio Linköping University Background Software interface to graphics hardware 250+ commands Objects (models) are built from geometric primitives

More information

Computer Graphics 1 Computer Graphics 1

Computer Graphics 1 Computer Graphics 1 Projects: an example Developed by Nate Robbins Shapes Tutorial What is OpenGL? Graphics rendering API high-quality color images composed of geometric and image primitives window system independent operating

More information

DICOM Štandard pre vytváranie, ukladanie, tlač a prenos obrazových informácií v zdravotníctve

DICOM Štandard pre vytváranie, ukladanie, tlač a prenos obrazových informácií v zdravotníctve DICOM Štandard pre vytváranie, ukladanie, tlač a prenos obrazových informácií v zdravotníctve (Angl. DICOM - Digital Imaging and Communications in Medicine) Štandard DICOM je informačný technologický štandard,

More information

2. OpenGL -I. 2.1 What is OpenGL? Things OpenGL can do: -23-

2. OpenGL -I. 2.1 What is OpenGL? Things OpenGL can do: -23- 2.1 What is OpenGL? -23-2. OpenGL -I - Device-independent, application program interface (API) to graphics hardware - 3D-oriented - Event-driven Things OpenGL can do: - wireframe models - depth-cuing effect

More information

Lecture 2 CISC440/640 Spring Department of Computer and Information Science

Lecture 2 CISC440/640 Spring Department of Computer and Information Science Lecture 2 CISC440/640 Spring 2015 Department of Computer and Information Science Today s Topic The secrets of Glut-tony 2 So let s do some graphics! For the next week or so this is your world: -1 1-1 1

More information

OpenGL. 1 OpenGL OpenGL 1.2 3D. (euske) 1. Client-Server Model OpenGL

OpenGL. 1 OpenGL OpenGL 1.2 3D. (euske) 1. Client-Server Model OpenGL OpenGL (euske) 1 OpenGL - 1.1 OpenGL 1. Client-Server Model 2. 3. 1.2 3D OpenGL (Depth-Buffer Algorithm Z-Buffer Algorithm) (polygon ) ( rendering) Client-Server Model X Window System ( GL ) GL (Indy O

More information

Obrázok č. 1 Byte. Obrázok č. 2 Slovo

Obrázok č. 1 Byte. Obrázok č. 2 Slovo C++ pod lupou Nie som ortodoxným prívržencom nijakého dnes používaného jazyka, poznám ich už riadnu kôpku, ale najbližšie mám práve k C++. Prečo, o tom by sa dalo diskutovať donekonečna, nie je to však

More information

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit.

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit. Fiber 5 Mbit ** 5 Mbit / Mbit 5,90 Fiber 50 Mbit * 50 Mbit / 8 Mbit 9,90 Fiber 80 Mbit * 80 Mbit / Mbit 5,90 Mini Mbit* Mbit / Mbit 9,90 Klasik 2 Mbit* 2 Mbit / 2 Mbit Standard 8 Mbit* 8 Mbit / 3Mbit Expert

More information

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

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

More information

Počítače a zariadenia

Počítače a zariadenia Modul 2: Základy práce s počítačom Počítače a zariadenia www.itakademia.sk ITMS2014+: 312011F057 1 Počítače a zariadenia 1.1 IKT 1.1.1 Vedieť vymedziť pojem informačné a komunikačné technológie (IKT) Skratka

More information

Databázy (1) Prednáška 08. Alexander Šimko

Databázy (1) Prednáška 08. Alexander Šimko Databázy (1) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Subqueries (poddopyty) konštrukcia WITH Section 1 Subqueries (poddopyty) Subquery (poddopyt) Použitie SELECTu na mieste, kde sme

More information

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

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

More information

20 Years of OpenGL. Kurt Akeley. Copyright Khronos Group, Page 1

20 Years of OpenGL. Kurt Akeley. Copyright Khronos Group, Page 1 20 Years of OpenGL Kurt Akeley Copyright Khronos Group, 2010 - Page 1 So many deprecations! Application-generated object names Color index mode SL versions 1.10 and 1.20 Begin / End primitive specification

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU.

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU. UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU Diplomová práca 2017 Bc. Denis Spišák UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULITMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

OpenGL. Toolkits.

OpenGL. Toolkits. http://www.opengl.org OpenGL Open Graphics Library Graphics API Delivered with UNIX, Win9x/2000/Me/Nt/Xp, Mac OS Direct3D (DirectX) is only Windows Utilizes the window system and event handling of the

More information

An Overview GLUT GLSL GLEW

An Overview GLUT GLSL GLEW OpenGL, GLUT, GLEW, GLSL An Overview GLUT GLEW GLSL Objectives Give you an overview of the software that you will be using this semester OpenGL, GLUT, GLEW, GLSL What are they? How do you use them? What

More information

informačné, riadiace, telemetrické a komunikačné systémy BaWiT Online portál SCT revízia r2.4

informačné, riadiace, telemetrické a komunikačné systémy BaWiT Online portál SCT revízia r2.4 informačné, riadiace, telemetrické a komunikačné systémy BaWiT Online portál SCT1006.0001 revízia r2.4 www.sct.sk www.sct-telemetry.eu www.bawit.eu sales@sct.sk BaWiT Online - 06 Základné informácie portálu

More information

Computer Graphics CS 460. Software. Computer Graphics. 2. Medium Level (General Programming Packages)

Computer Graphics CS 460. Software. Computer Graphics. 2. Medium Level (General Programming Packages) CS 460 Computer Graphics Software Computer Graphics Professor Richard Eckert 1. Lowest Level (earliest)-- Assembly/machine language Programs drive hardware directly Fast, but non-portable Difficult to

More information

CS 4731 Lecture 3: Introduction to OpenGL and GLUT: Part II. Emmanuel Agu

CS 4731 Lecture 3: Introduction to OpenGL and GLUT: Part II. Emmanuel Agu CS 4731 Lecture 3: Introduction to OpenGL and GLUT: Part II Emmanuel Agu Recall: OpenGL Skeleton void main(int argc, char** argv){ // First initialize toolkit, set display mode and create window glutinit(&argc,

More information

OpenGL and GLUT. COMP413 Computer Graphics. School of Computer Sci. & Eng. Kyungpook National University, Korea. Spring Semester, 2016

OpenGL and GLUT. COMP413 Computer Graphics. School of Computer Sci. & Eng. Kyungpook National University, Korea. Spring Semester, 2016 OpenGL and GLUT COMP413 Computer Graphics School of Computer Sci. & Eng. Kyungpook National University, Korea Spring Semester, 2016 2007-2016 N Baek 1 Contents OpenGL Libraries OpenGL functions naming

More information

Testovanie bieleho šumu

Testovanie bieleho šumu Beáta Stehlíková FMFI UK Bratislava Opakovanie z prednášky Vygenerujeme dáta Vygenerujeme dáta: N

More information

OPERAČNÝ SYSTÉM WINDOWS NT

OPERAČNÝ SYSTÉM WINDOWS NT OS 1 prednáška 9 OPERAČNÝ SYSTÉM WINDOWS NT Existuje mnoho rôznych verzií systémov Microsoft Windows, pričom operačný systém Microsoft Windows NT/2000/XP je rodinou úplne odlišnou od Windows 95/98/Me (skrátene

More information

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals...

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals... Desatinné čísla #1a Mravec išiel 5,5 cm presne na sever, potom 3,4 cm na východ, 1,8 cm na juh, 14,3 cm na západ, 1,3 cm na sever a 10,9 cm na východ. Najmenej koľko cm musí teraz prejsť, aby sa dostal

More information

AR6181-MX, AR6182-MX Čítačky MIFARE kariet

AR6181-MX, AR6182-MX Čítačky MIFARE kariet AR6181-MX, AR6182-MX Čítačky MIFARE kariet ISO14443-A, ISO14443-B a ISO15693 Systém kontroly vstupu 13,56 MHz proximity technológia Jednoduchá konfigurácia čítačky použitím konfiguračnej karty Možnosť

More information

World Coordinate System

World Coordinate System World Coordinate System Application Model Application Program Graphics System Workstation Normally, the User or Object Coordinate System. World Coordinate Window: A subset of the world coordinate system,

More information

Normalized Device Coordinate System (NDC) World Coordinate System. Example Coordinate Systems. Device Coordinate System

Normalized Device Coordinate System (NDC) World Coordinate System. Example Coordinate Systems. Device Coordinate System World Coordinate System Normalized Device Coordinate System (NDC) Model Program Graphics System Workstation Model Program Graphics System Workstation Normally, the User or Object Coordinate System. World

More information

Introduction to OpenGL Week 1

Introduction to OpenGL Week 1 CS 432/680 INTERACTIVE COMPUTER GRAPHICS Introduction to OpenGL Week 1 David Breen Department of Computer Science Drexel University Based on material from Ed Angel, University of New Mexico Objectives

More information

Objectives. Image Formation Revisited. Physical Approaches. The Programmer s Interface. Practical Approach. Introduction to OpenGL Week 1

Objectives. Image Formation Revisited. Physical Approaches. The Programmer s Interface. Practical Approach. Introduction to OpenGL Week 1 CS 432/680 INTERACTIVE COMPUTER GRAPHICS Introduction to OpenGL Week 1 David Breen Department of Computer Science Drexel University Objectives Learn the basic design of a graphics system Introduce graphics

More information

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová Ochrana proti DDoS za použitia open-source software Katarína Ďurechová katarina.durechova@nic.cz 30.11.2013 Distributed Denial of Service odopretie služby dosiahnutím limitu pripojenia sieťovej karty CPU

More information

Graphics Processing Unit Architecture (GPU Arch)

Graphics Processing Unit Architecture (GPU Arch) Graphics Processing Unit Architecture (GPU Arch) With a focus on NVIDIA GeForce 6800 GPU 1 What is a GPU From Wikipedia : A specialized processor efficient at manipulating and displaying computer graphics

More information

to OpenGL Introduction Pipeline Graphics pipeline OpenGL pipeline OpenGL syntax Modeling Arrays Conclusion 1 Introduction Introduction to OpenGL

to OpenGL Introduction Pipeline Graphics pipeline OpenGL pipeline OpenGL syntax Modeling Arrays Conclusion 1 Introduction Introduction to OpenGL to to ning Lecture : introduction to Lab : first steps in and - 25/02/2009 Lecture/Lab : transformations and hierarchical - 04/03/2009 to Lecture : lights and materials in - 11/03/2009 Lab : lights and

More information