ostravská univerzita aplikace grafických informa č ních systém ů
Transkript
PŘÍRODOVĚDNÁ FAKULTA OSTRAVSKÁ UNIVERZITA APLIKACE GRAFICKÝCH INFORMAČNÍCH SYSTÉMŮ ING. DAVID BRAŽINA OSTRAVA 2003 1 Cíle předmětu Po prostudování textu budete znát: • Principy práce grafických knihoven. Seznámíte se s grafickými systémy, pracujícími jak na platformě Windows tak na platformě Linux/Unix. Setkáte se s virtuální realitou, jako nástrojem pro zobrazení 3D objekt ů na sítí Internet. Získáte: • Základní znalosti grafických platforem DirectX a OpenGL. Dovíte se o možnostech práce s grafickými editory a o možnostech využití jazyka VRML. Získáte vědomosti o principu činnosti modelu COM v opera čním systému Windows. Budete schopni: • Budete schopni využít získané vědomosti, k zdokonalení se zejména v oblastech práce s grafickými systémy pracujícími s OpenGL a DirectX. • Získáte přehled o možnostech práce s grafickými systémy v sítí internet, jako i o možnostech grafických editorů, pro tvorbu 2D a 3D objektů. Čas potřebný k prostudování učiva předmětu: 13-14.týdnů 2 Obsah 1 ÚVOD DO PŘEDMĚTU................................................................................................. 5 2 ÚVOD................................................................................................................................ 1 3 GRAFICKÉ SYSTÉMY.................................................................................................. 1 4 5 3.1 SYSTÉMY TYPU CAD .................................................................................................. 7 3.2 PREZENTAČNÍ GRAFICKÉ SYSTÉMY ............................................................................. 8 3.3 ANIMACE .................................................................................................................... 8 3.4 FUNKCE GRAFICKÝCH SYSTÉMŮ. ................................................................................ 8 3.5 UŽIVATELSKÁ ROZHRANÍ ............................................................................................ 9 OPENGL........................................................................................................................... 1 4.1 VLASTNOSTI OPENGL .............................................................................................. 11 4.2 OPENGL A OSTATNÍ API .......................................................................................... 20 DIRECTX ......................................................................................................................... 1 5.1 VLASTNOSTI DIRECTX.............................................................................................. 24 5.2 PROGRAMOVACÍ MÓDY V DIRECTX.......................................................................... 27 5.2.1 Retained mód ................................................................................................... 27 5.2.2 Immediate mód................................................................................................. 28 5.3 HEL A HAL ............................................................................................................. 30 6 TEST Č.1 .......................................................................................................................... 1 7 COMPONENT OBJECT MODEL (COM)................................................................... 1 8 GRAFICKÉ EDITORY .................................................................................................. 1 9 8.1 2D GRAFICKÝ SOFTWARE ......................................................................................... 41 8.2 3D GRAFICKÝ SOFTWARE ......................................................................................... 43 X-WINDOWS................................................................................................................... 1 3 10 INTERNET....................................................................................................................... 1 10.1 VRML ...................................................................................................................... 47 10.1.1 Vybavení........................................................................................................... 47 10.1.2 Vlastnosti VRML .............................................................................................. 48 10.1.3 Standarty VRML............................................................................................... 48 11 TEST Č.2 .......................................................................................................................... 1 12 SEZNAM POUŽITÉ A DOPORUČENÉ LITERATURY .................................... 52 4 1 Úvod do předmětu V této kapitole se dozvíte: jak bude členěn kurz Aplikace grafických informačních systémů a podmínky úspěšného absolvování předmětu Doba potřebná k prostudování této kapitoly: 5 minut Předmět APLIKACE GRAFICKÝCH INFORMAČNÍCH SYSTÉMŮ si klade za cíl seznámit účastníky kurzu s možnostmi aplikace počítačové grafiky v oblasti informačních systémů. Tento předmět předpokládá určité znalosti práce s grafickými prostředky počítače. Taktéž se předpokládá práce s internetem. V tomto kurzu získáte základní vědomosti v oblasti grafických systémů nejen na úrovni uživatelských znalosti, ale i na úrovní autorů grafických prostředků pro počítačová rozhraní. V průběhu semestru se dovíte o možnostech grafiky jako takové, o možnostech nejmodernějších možnostech přenosu grafických dat. Dovíte se možnostech nejnovějších grafických technologií a možnostech jejich využití. Získáte rovněž představu o použití grafických editorů, platforem DirectX a OpenGL a o možnostech grafického zobrazování. Podmínkou úspěšného absolvování předmětu je vypracování úkolů označených symbolem obálky a vypracování odpovědí na testy jedna a dvě. Veškeré dotazy a odpovědí na korespondenční úlohy a testy zasílejte na adresu [email protected] 5 2 Úvod V této kapitole se dozvíte: o principech tvorby grafických aplikací. Seznámíte se také se základními grafickými prostředky. Doba potřebná k prostudování této kapitoly: 5 minut V dnešním světě se s různými grafickými aplikacemi setkáváme na každém kroku. Od využití v zábavném průmyslu jako je tvorba her, tvorba trikových scén ve filmu, přes reklamní průmysl, tvorbu upoutávek, po architektonické či soudní animace a v neposlední řadě využití v průmyslovém designu či lékařství. Tvorba takových aplikací patří mezi časově i programově nejnáročnější a kombinuje v sobě znalosti mnoha vědních disciplín. Vytvoření jakékoli grafické aplikace se dá shrnout do několika bodů: • Win32 programování / Programování na daném jádře Linux/Unix • Využití platformy DirectX / Využití platformy OpenGL / API • 2D grafické algoritmy • Programovací techniky a datové struktury • Multithread programování • Využití vlastností umělé inteligence • Fyzikální model • Využití možnosti 3D zobrazení hardware. Je zřejmé, že čím níže v daném schématu postupujeme, tím se dostáváme ke složitějším grafickým aplikacím, jejichž absolutní vrchol tvoří simulace reálných fyzikálních procesů, trikové animace, počítačové hry či dynamické modelování. Vedle vlastní práce s programovým vybavením, jsou vyžadovány znalosti v oblasti umělé inteligence, fyzikálního modelování, algoritmizace, 2D a 3D grafiky, matematiky a mnoho dalších, včetně estetického cítění. 6 3 Grafické systémy V této kapitole se dozvíte: o základních grafických systémech a jejich vlastnostech. Vedle toho si ujasníte, některé pojmy týkající se uživatelského rozhraní. Doba potřebná k prostudování této kapitoly: 45 minut 3.1 Systémy typu CAD S pojmem CAD se určitě většina z vás už někdy setkala. Tato zkratka znamená „Návrh pomocí počítače“ (Computer Aided Design). Tvorba prostorových modelů umožňuje konstruktérům zkoumat jednotlivé objekty nejen z hlediska designu, ale i z hlediska požadovaných vlastností, bez nutnosti vlastní fyzické výroby. V konečném výsledku pak vzniká dokonalý návrh požadovaného objektu. Simulací podmínek, ve kterých se daný objekt bude nacházet, se odstraní případné nesrovnalosti. Jedná se o poměrně sofistikovaný systém, který nachází uplatnění v odvětvích elektrotechniky (návrh elektrických obvodů), konstrukce a modelování, stavebnictví a architektura. 7 3.2 Prezentační grafické systémy Pojem prezentačních grafických systémů v sobě zahrnuje tvorbu grafů, diagramů a map. Prezentace hodnot pomocí grafů usnadňuje pochopení či znázornění daných závislosti mnohem rychleji než prezentace pomoci pouhých číselných hodnot. Při vstupu více proměnných veličin se vedle sloupcových, čárových aj. grafů, uplatňuji grafy trojrozměrné. Přednosti grafických prezentací se uplatňuji zejména v oblastech ekonomie, statistiky, matematiky apod. Komplexní využití poskytuji grafické údaje při tvorbě map. Takové speciální programy zpracovávají údaje z mnoha měřících stanic. Na základě dat každé stanice je výsledkem celek, znázorňující mapu libovolné části Země v libovolném měřítku, včetně demografických, geografických či geologických údajů.) 3.3 Animace Možnosti využití počítačové animace jsou prakticky neomezené. Ať už se jedná o využití ve výuce, vědeckých laboratořích či v zábavním průmyslu. Možnostmi počítačové animace se budeme detailněji věnovat v oblasti věnované grafickým editorům. 3.4 Funkce grafických systémů. Každý grafický systém musí splňovat určité podmínky nutné k jeho využití. Tyto podmínky jsou dány funkcemi, které každý takový systém musí zajišťovat. Obvykle jsou definovány požadavky na implementaci určitého grafického systému, tak aby tyto vyhovovaly stanovenému účelu. • Grafický vstup • Řízení vstupu a výstupu • Strukturalizace obrazu • Záznam grafické hodnoty • Grafický výstup 8 3.5 Uživatelská rozhraní Uživatelským rozhraním se myslí způsob komunikace uživatele s počítačem. Tuto komunikaci zajišťuje tzv. prostředí, které se označuje jako GUI (Grafics User Interface). Vývojem programátorských technik došlo k dělení systému GUI na tyto části: • Systém pro správu oken • Zobrazovací model • Aplikační rozhraní V operačních systémech typu Windows si tuto strukturu můžeme představit jako: • Windows OS • COM, .NET • DirectX V operačních systémech typu UNIX pak jako: • Xwindows • PEX • OpenGL Systém pro správu oken poskytuje prostředky pro práci s dialogy. Zobrazovací model je zodpovědný za vykreslení grafických objektů na obrazovce monitoru. Monitor scanning overlay Overlay Surface scanning primary Primary Surface 9 4 OpenGL V této kapitole se dozvíte: o vývoji platformy OpenGL její vlastnostech, možnostech a uplatnění. Také se dozvíte o možnostech spolupráce s různými grafickými komponenty. Doba potřebná k prostudování této kapitoly: 90 minut V roce 1993 vznikla první verze této knihovny OpenGL 1.0 v dílnách společnosti Silicon Graphics. (V současné době je aktuální verze 1.3.) Je nástupcem knihovny IRIS Graphics Library. Každá knihovna, která má nést název OpenGL musí být prověřena konsorciem ARB (Architecture Review Board), což je konsorcium zaručující správnost OpenGL. Bylo vytvořeno předními počítačovými firmami (SGI, DEC, IBM, Intel, MS, Intergraph, E&S). Knihovna je úzce svázána s použitím grafických akcelerátorů. Toto schéma reprezentuje tok grafické informace, tak jak ji zpracovává procesor maticové paměti. Vidíte, že do procesoru (CPU) vedou dvě hlavní smyčky. 10 Horní smyčka představuje zpracovávání geometrických primitiv, kdežto spodní smyčka slouží pro zpracovávání obrazových primitiv. Kombinací obou dvou smyček je tvarování textur, které v konečném důsledku reprezentují daný objekt. 4.1 Vlastnosti OpenGL 11 OpenGL je definováno jako softwarové rozhraní na grafický hardware. To znamená, že se jedná o 3D grafickou a modelovací knihovnu. OpenGL nespecifikuje, jaký operační systém nebo systém zobrazení je nutno použít. Proto se s touto knihovnou setkáte jak na stanicích s Windows tak i na počítačích Apple s běžícím MAC OS X, na Unix/Linux stanicích či na SGI supergrafických počítačích. Na druhé straně má OpenGL několik nepříjemných omezení. Postrádá příkazy pro práci s komplexními objekty, veškeré složité objekty se musí sestrojit z jednoduchých primitiv jako jsou body, přímky, trojúhelníky, polygony. Dalším omezením je absence oken. Obecně můžeme říct, že OpenGL je platformou: • nezávislou na operačním systému a na HW, • slouží pro psaní grafických aplikací, • nepodporuje okénka, • není objektově orientovaná, • byla uznána jako obecný standard, Proč OpenGL ani nemůže obsahovat funkce pro správu oken, čtení myši, nebo klávesnice ? Přímo lze vykreslovat pouze body, úsečky, polygony a bitmapy. Všechny geometrické objety ve 2D i ve 3D jsou zadány sledem vrcholů (takováto reprezentace je nejlépe použitelná pro grafické akcelerátory). 12 Základní knihovna OpenGL nabízí: • generování 3D grafických objektů, • řešení viditelnosti objektů ve 3D, • provádění základních transformací (posun, rotace, změna měřítka, projekce), • nastavení barev popř. barevných vlastností povrchů, interpolace barev, • osvětlení scény ( až min. 8 světel) včetně možnosti stanovení vlastnosti jednotlivých světel, • výpočet barvy v interakci se světly, • vytvoření průhledných objektů, • antialiasing, • vytvoření efektu mlhy, • mapování textur, • evaluátory pro výpočet Beziérových křivek a ploch, Pokud chceme vypracovat nějakou grafickou prezentaci v prostředí např. systému Unix/Linux a chceme tuto prezentaci vytvořit bez pomocí specializovaných aplikací pak použijeme tyto knihovny: • OpenGL – základní knihovna obsahující základní nástroje 13 • GLU – OpenGL Utility Library – nadstavba – umožňuje projekci textur, rendering B-spline křivek, generování grafických objektů popsatelné kvadratickými rovnicemi (válce, koule, disky) atd.. • GLUT – OpenGL Utility Toolkit Něco pro fanoušky :o) Následující zdrojový kód, v jazyku C, představuje velmi jednoduchý OpenGL program. Příklad demonstruje vytvoření X okna pro OpenGL rendering. 14 Program vytvoří okno a zobrazí 3D kostku (bez dvou stran), se kterou můžeme, použitím myši, rotovat okolo os X, Y a Z. Výpis zdrojového kódu „glxsimple.c“ /********************************************************************** **********************************************************************/ #include <stdio.h> #include <stdlib.h> #include <GL/glx.h> /* potrebne hlavickove soubory */ #include <GL/gl.h> #include <X11/keysym.h> static int snglBuf[] = {GLX_RGBA, GLX_DEPTH_SIZE, 16, None}; static int dblBuf[] = {GLX_RGBA, GLX_DEPTH_SIZE, 16, GLX_DOUBLEBUFFER, None}; Display *dpy; Window win; GLfloat xAngle = 45.0, yAngle = 45.0, zAngle = 45.0; GLboolean doubleBuffer = GL_TRUE; /********************************************************************** * fatalError – vypis chybove hlasky a opusteni programu 15 **********************************************************************/ void fatalError(char *message) { fprintf(stderr, "glxsimple: %s\n", message); exit(1); } /********************************************************************** * redraw – inicializace a vykonani zobrazovaciho zaznamu **********************************************************************/ void redraw(void) { static GLboolean displayListInited = GL_FALSE; if (displayListInited) { /* pokud zobrazovaci zaznam existuje, je vykonan */ glCallList(1); } else { /* jinak vytvorime zobrazovaci zaznam */ glNewList(1, GL_COMPILE_AND_EXECUTE); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* specifikujme objekt sceny jako ctyri obdelniky */ glBegin(GL_QUADS); glColor3f(0.0, 0.7, 0.1); /* zelena */ glVertex3f(-1.0, 1.0, 1.0); glVertex3f(1.0, 1.0, 1.0); glVertex3f(1.0, -1.0, 1.0); glVertex3f(-1.0, -1.0, 1.0); glColor3f(0.9, 1.0, 0.0); /* zlata */ glVertex3f(-1.0, 1.0, -1.0); glVertex3f(1.0, 1.0, -1.0); glVertex3f(1.0, -1.0, -1.0); glVertex3f(-1.0, -1.0, -1.0); glColor3f(0.2, 0.2, 1.0); /* modra */ glVertex3f(-1.0, 1.0, 1.0); glVertex3f(1.0, 1.0, 1.0); glVertex3f(1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, -1.0); 16 glColor3f(0.7, 0.0, 0.1); /* cervena */ glVertex3f(-1.0, -1.0, 1.0); glVertex3f(1.0, -1.0, 1.0); glVertex3f(1.0, -1.0, -1.0); glVertex3f(-1.0, -1.0, -1.0); glEnd(); glEndList(); displayListInited = GL_TRUE; } if(doubleBuffer) glXSwapBuffers(dpy, win); /* v pripade double bufferingu se implicitne vykona glFlush() */ else glFlush(); /* v pripade single bufferingu explicitne volame glFlush() */ } /********************************************************************** * main – hlavni funkce programu **********************************************************************/ void main(int argc, char **argv) { XVisualInfo Colormap *vi; cmap; XSetWindowAttributes swa; GLXContext cx; XEvent event; GLboolean needRedraw = GL_FALSE, recalcModelView = GL_TRUE; int dummy; KeySym ks; Atom wmDeleteWindow; /*** (1) vytvorme spojeni s X servrem ***/ dpy = XOpenDisplay(NULL); if (dpy == NULL) fatalError("could not open display"); /*** zjistime podporu GLX X serveru ***/ 17 if(!glXQueryExtension(dpy, &dummy, &dummy)) fatalError("X server has no OpenGL GLX extension"); /* zjistime podporu RGB visual a depth buffer */ vi = glXChooseVisual(dpy, DefaultScreen(dpy), dblBuf); if (vi == NULL) { vi = glXChooseVisual(dpy, DefaultScreen(dpy), snglBuf); if (vi == NULL) fatalError("no RGB visual with depth buffer"); doubleBuffer = GL_FALSE; } if(vi->class != TrueColor) fatalError("TrueColor visual required for this program"); /*** (4) vytvorme OpenGL kontext zarizeni ***/ cx = glXCreateContext(dpy, vi, /* zobrazovaci zaznam nebude vykonan */ None, /* primy rendering je mozny */ GL_TRUE); if (cx == NULL) fatalError("could not create rendering context"); /*** (5) vytvorme X okno se zvolenym visual ***/ /* vytvorme X colormap */ cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone); swa.colormap = cmap; swa.border_pixel = 0; swa.event_mask = ExposureMask | ButtonPressMask | StructureNotifyMask; win = XCreateWindow(dpy, RootWindow(dpy, vi->screen), 0, 0, 300, 300, 0, vi->depth, InputOutput, vi->visual, CWBorderPixel | CWColormap | CWEventMask, &swa); XSetStandardProperties(dpy, win, "glxsimple", "glxsimple", None, argv, argc, NULL); /*** (6) spojme zobrazovaci kontext s vytvarenym oknem ***/ glXMakeCurrent(dpy, win, cx); /*** (7) zobrazme X okno na obrazovku ***/ 18 XMapWindow(dpy, win); /*** (8) nastavme OpenGL kontext pro rendering ***/ glEnable(GL_DEPTH_TEST); /* aktivujme depth buffering */ glDepthFunc(GL_LESS); glClearDepth(1.0); glClearColor(0.0, 0.0, 0.0, 0.0); /* aktualni matici bude projekcni matice (projection matrix) */ glMatrixMode(GL_PROJECTION); /* aktualni matice se nahradi jednotkovou matici */ glLoadIdentity(); /* bude se zobrazovat perspektivne */ glFrustum(-1.0, 1.0, -1.0, 1.0, 1.0, 10.0); /* nastaveni viewportu */ glViewport(0, 0, 300, 300); /*** (9) zabezpecme obsluhu X udalosti ***/ while (1) { do { XNextEvent(dpy, &event); switch (event.type) { /* stlaceni tlacitka mysi */ case ButtonPress: recalcModelView = GL_TRUE; switch (event.xbutton.button) { case 1: xAngle += 10.0; break; case 2: yAngle += 10.0; break; case 3: zAngle += 10.0; break; } break; /* zmena velikosti okna */ case ConfigureNotify: glViewport(0, 0, event.xconfigure.width, event.xconfigure.height); /* pokracuj */ /* odkryti okna (Explose event) */ case Expose: needRedraw = GL_TRUE; 19 break; /* stlaceni klavesy Esc */ case KeyPress: ks = XLookupKeysym((XKeyEvent *) & event, 0); if (ks == XK_Escape) exit(0); break; /* obsluha ClientMessage */ case ClientMessage: if (event.xclient.data.l[0] == wmDeleteWindow) exit(0); break; } } while(XPending(dpy)); /* slucka X udalosti */ if (recalcModelView) { /* aktualni matice bude matice pohledu */ glMatrixMode(GL_MODELVIEW); /* aktualni matice se nahradi jednotkovou matici */ glLoadIdentity(); /* posun kamery o tri jednotky proti smeru osy z */ glTranslatef(0.0, 0.0, -3.0); /* rotovani okolo osy X, Y a Z */ glRotatef(xAngle, 0.1, 0.0, 0.0); glRotatef(yAngle, 0.0, 0.1, 0.0); glRotatef(zAngle, 0.0, 0.0, 1.0); recalcModelView = GL_FALSE; needRedraw = GL_TRUE; } if (needRedraw) { redraw(); needRedraw = GL_FALSE; } } } 4.2 OpenGL a ostatní API 20 Jak bylo řečeno OpenGL nepodporuje okenní systém. To je sice z hlediska multiplatformosti nezbytné, ale z hlediska využití naprosto nedostačující. Proto byly vytvořeny knihovny s naprosto unikátními vlastnostmi pro každý z operačních systémů zvlášť. Každý operační systém má své vlastní funkce, které umožňuji práci s knihovnami OpenGL. Některé z nich jsou: • GLX pro X Windows systém, společný pro Unix/Linux platformy • AGL pro Apple Macintosh operační systémy • WGL pro Microsoft Windows OpenGL obsahuje také utility knihovny GLU, které umožňuji jednoduše zpracovávat procesy jako jsou např. rendrování kvadratických ploch (koule, kužel, válce apod.). Umí pracovat s objekty vytvořenými pomoci NURBS (Non-Uniform-Rational-BezierSplines), a konkávními polygony, jedná se o zpracovávání ryze matematických konstrukcí. Nejrozšířenější knihovnou pro práci s OpenGL je skupina funkcí sloučených do bezplatné knihovny GLUT. Jedná se o veřejně dostupný soubor nástrojů, nezávislých na operačním systému, pro tvorbu jednoduchých grafických aplikací. Tyto nástroje umožňuji vytvoření oken, zpracovávání událostí (myš, klávesnice), a práci s animacemi. 21 5 DirectX V této kapitole se dozvíte: o možnostech a vlastnostech DirectX, také se dovíte o struktuře DirectX a způsobu práce s grafickými utilitami pod Windows. Doba potřebná k prostudování této kapitoly: 90 minut DirectX je programové rozhraní určené speciálně na programování grafických a multimediálních aplikací pro Microsoft Windows. DirectX zajišťuje standardizovaný přístup k hardwarovému zařízení s podporou akcelerace pro 2d či 3d grafiku, zvuk a emulaci všech funkcí knihoven v případě absence hardwarové podpory. Z toho vyplývá, že aplikace vytvořená v DirectX, je volně přenositelná na jakýkoli počítač s nainstalovaným Windows a DirectX. Z toho je také patrné omezení které se týká aplikací pod DirectX naprogramovaných. Win32 Application Graphics Device Interface (GDI) DirectDraw Hardware Emulation Layer (HEL) Display Device Interface (DDI) Hardware Abstraction Layer (HAL) Hardware (Video Card) 22 Pokud se pohybujete v prostředí Windows a chcete vytvořit jakoukoli grafickou aplikací, máte k dispozici dvě možnosti. Jednou z těchto možnosti je sáhnout po nativním nástroji operačního systému Windows, pro práci s grafickými objekty, který se označuje jako GDI, nebo MCI (Media Control Interface). Druhou možností je sáhnout po programovém rozhraní, které se označuje jako DirectX. Na úvod je třeba předeslat, že DirectX je mnohem robustnější a rychlejší než práce s výše zmiňovanými nativními nástroji Windows. Při práci s DirectX jste sice poněkud svázání, jako programátoři, ale toto svázání není na škodu, spíše naopak. DirectX je systém utilit, který umožňuje jednoduchou práci s videem, audiem se vstupy a výstupy a v neposlední řadě umožňuje práci se síťovými komponenty. Jak vlastně DirectX pracují? Velmi dobře. Vedle absolutní kontroly nad všemi hardwarovými zařízeními, optimalizují průběh zobrazené akce podle možností zařízení, na kterém daná je daná aplikace spuštěna. Toto je způsobeno technologií označovanou jako Component Object Model (COM), které se budeme věnovat později. Komplexnost DirectX je zajištěna zejména výrobci hardwaru, kteří v drtivé většině případů, dodávají ke svým výrobkům (grafické, zvukové aj. karty), ovladače stavěné přímo na míru topologii DirectX. Toto bylo umožněno především politikou firmy Microsoft, který definoval soubor konvencí(funkce, proměnné struktura dat aj.), kterými se výrobci hardwarových zařízení řídí. Tím je zajištěna kompatibilita, ale zejména optimalizace, běhu těchto zařízení pod operačním systémem Windows. Díky tomu se programátoři jakékoli aplikace, tvořené pod Windows, nemusí ohlížet na detailní vlastnosti hardwarových komponent. Jednoduše volají funkce pro práci s jednotlivými zařízeními, a o zbytek se postarají funkce pod DirectX bez ohledu na to jaký hardware bude daný program zpracovávat. 23 5.1 Vlastnosti DirectX Samotné DirectX jsou tvořeny skupinou knihoven, kde každá obsahuje funkce pro práci s určitým hardwarovým nebo softwarovým zařízením. • • • • • • • • • DirectDraw DirectSound DirectSound3D DirectMusic DirectInput DirectPlay Direct3DRM Direct3DIM DirectSetup Podívejme se na tyto knihovny podrobněji. DirectDraw: Jedná se o ovladač hlavní zobrazovací jednotky. Základním stavebním prvkem se kterými DirectDraw pracují jsou plochy (surfaces). Tyto plochy slouží jako podklad pro umístění objektu, které se následně promítnou na obrazovku. DirectDraw Component Primary Surface Palette Back Buffer Surface Palette Off Screen Surface Palette 24 DirectSound: Jedná se o zvukovou komponentu DirectX, která podporuje digitální zvuk (ne midi). Tato knihovna umožňuje přehrání zvukového záznamu, nezávisle na druhu použité zvukové karty. DirectSound3D: Jak už název napovídá, jedná se o 3D zvukovou součást DirectSound. Zodpovídá za ozvučující efekty, týkající se prostorového zvukového vjemu. Tato technologie je poměrně nová, ale velmi rychle se vyvíjí. V současné době kvalitnější zvukové karty, podporují 3D zvukové efekty včetně posunutí, pohlcení či odražení zvukové vlny apod. DirectMusic: Jedná se o nejmladší komponentu v DirectX. Umožňuje technologii MIDI , kterou DirectSound nepodporoval. Podporuje DLS (Downloadable Sounds) systém, který umožňuje práci s digitálním zvukem, který má vlastnosti originálních instrumentálních nástrojů, jak ve formě MIDI, tak ve formě tzv. Wave Table syntetizéru. Zvukové vlastnosti takto zpracovaných tónů jsou k nerozeznání od tónů produkovaných skutečnými hudebními nástroji. Vedle toho DirectMusic obsahuje nový tzv. Performance engine, který je jistým typem umělé inteligence. Jedná se o systém, který umožňuje, v reálném čase, uskutečňovat změny ve vámi vytvořené hudbě, za současného běhu. To je síla viďte? DirectInput: Tento systém zodpovídá za komunikaci se všemi vstupními zařízeními, jako je myš, klávesnice, joystick, space-balls a tak podobně. DirectInput v současné době podporuje i zpětnovazební aktivní zařízení, které jsou zodpovědná za převod elektrických měřicích zařízení do počítače, jako i za přenos fyzikálních vlastností do herního zařízení například takzvaný Force Feedback, zodpovědný za cukání joystiku a různé efekty při hraní her, je právě součásti DirectInput. DirectPlay: Podporují síťové komponenty DirectX. Dovolují vytvořit abstraktní připojení užitím internetu, modemu, přímého připojení apod. Nejsilnější výhodou DirectPlay je možnost vytvoření síťového připojení, bez znalosti síťové architektury. Není třeba speciálních driverů nebo socketů. DirectPlay podporují možnosti propojení pomocí takzvaných sessions. 25 Direct3DRM: Jedná se o Direct3D Retained mód, který pracuje s trojrozměrnými objekty jako takovými. Využívá výhod 3D akcelerátorů. S výhodou se používá při tvorbě modelů, nebo různých prezentací. Direct3DIM: Jedná se Direct3D Immediate móde, který pracuje na nejnižší vrstvě ovladačů. Práce na této vrstvě DirectX se blíží práci v OpenGL co se týče nepohodlnosti při vlastním programování. Jedná se o jednoduchý zobrazovací model, který pracuje pouze s primitivními objekty a jejich odvozeninami. DirectSetup/Autoplay: Jedná se quasi (rádoby) DirectX komponentu, která dovoluje programům instalovat DirectX z vlastních aplikací na počítač uživatele a povolit spouštění určitých programů, pouze v případě, že se v CD mechanice nachází originální CD výrobce. DirectSetup je malá skupina funkcí, které jsou volány při běhu programu a které se zapisují do registru. 26 5.2 Programovací módy v DirectX 5.2.1 Retained mód Jedná se o způsob programování grafických objektů pomocí vestavěných funkcí. Retained mód znamená, že se pohybujete v jednoduchém programátorském módu, ve kterém pouhým přiřazením, můžete umístit trojrozměrné objekty, které jste před tím vytvořili v libovolném grafickém editoru. Pohybujete se v prostředí, které je definováno pomocí os x, y, z a do něhož umisťujete vámi vytvořené objekty. Celou scénu snímáte kamerou a tím docílíte promítnutí celé scény na obrazovku. Y Y Z X X Z Pokud však do tohoto prostoru chcete přiřadit, krom vašeho objektu, ještě další prvky, musíte přejít do tzv. Immediate (přímého) módu. 27 5.2.2 Immediate mód Přímý, nebo bezprostřední mód umožňuje přístup k funkcím Direct3D na té nejnižší úrovni. V tomto programátorském módu pracujete pouze s polygony a vertexy. Výhodou je možnost fyzického usměrnění instrukcí a jejich spouštění, z čehož vyplývá maximální rychlost prováděné operace. Vertex 2 Normal vector Vertex 3 Vertex 1 Front face of polygon Nyní již snad můžeme přejít k samotnému Direct3DIM. Jak už jistě víte, Immediate mode (bezprostřední mód) přistupuje ke grafickému hardware na nejnižší možné úrovni. Co to znamená? Znamená to, že DirectX nám zprostředkují styk s libovolným druhem grafické karty, umožní nám od ní získat různé informace a ty v programu využít. Umožní nám také přistupovat ke všem funkcím grafické karty určeným ke zpracování 3D transformací (grafické akcelerátory). Na počátku každého zobrazení je množina vertexů. Jejich souřadnice jsou určeny vzhledem k centru objektu, který tvoří. Vertexy tvoří trojúhelníky (face), které výsledně tvoří objekty. Každý 3D objekt je tvořen větším či menším počtem faceů. Práce v přímém módu je založená na vrcholech, polygonech a příkazech, které s nimi manipulují. Pokud není přítomný hardware, který by urychlil renderování, Direct3D nabízí možnost výběru softwarových emulačních driverů. 28 Poslední v řadě je mód X, který není 320x200 jako u VGA, nýbrž se jedná o speciální sadu 3D utilit a funkcí. Jejich pomocí lze například vytvořit různé kouřové efekty, oheň a vše, co vám umožní výkon vaší grafické karty a počítače. Kdyby jste měli vytvořit grafickou aplikaci, kterou platformu by jste si vybrali a proč? 29 5.3 HEL a HAL Na obrázku si všimněte dvou vrstev označených jako HEL (Hardware Emulation Layer) a HAL (Hardware Abstraction Layer). Důvodem je výhled do budoucnosti, který předpokládá, že pokročilejší metody, které v současné době nejsou ještě podporovány, budou implementovány hardwarem. Avšak co se stane v případě, jestliže hardware nepodporuje nějakou funkci? V takovém případě se uplatňuje právě HAL a HEL vrstva. HAL spolupracuje přímo s hardwarem, prostřednictvím ovladače, který po nainstalování, umožní použít funkce, které v době vzniku určité verze DirectX nebyly známy. HEL je naopak vrstva, která spolupracuje s hardwarem, prostřednictvím vlastnosti v tomto hardware zabudovaném. Čili DirectX funkci, kterou můžou použít, nebo která je vyžadovaná podporuje, ale tato funkce není dosažitelná hardwarovým zařízením. V takovém případě vrstva HEL zajistí, že dané zařízeni funguje aniž by došlo k nějakým výraznějším komplikacím, resp. nestabilitě systému. 30 Můžete si pomyslet, že je to celé zbytečně předimenzované. To je jistě pravda, ale tato skutečnost má za následek jednoduché ošetření nestabilních stavů, které v konečném důsledku způsobují celkově vyšší rychlost grafických zobrazení, přístupu k síti, bez nutnosti zapsání vlastních ovladačů ke každému z těchto zařízení. V tomto ohledu Microsoft poskytuje velice robustní a stabilní nástroj, který každou grafickou aplikací provozuje na maximálním možném výkonu dosažitelném na daném uživatelském zařízení. 31 6 Test č.1 V této kapitole se dozvíte: Jakým způsobem budete zpracovávat test pro ukončení první poloviny semestru. Doba potřebná k prostudování této kapitoly: 5 minut Zakončením první poloviny tohoto kurzu je test, ve kterém by jste měli potvrdit své vědomosti. Pro jeho úspěšné vykonání musíte odpovědět alespoň na polovinu otázek. Test najede kliknutím na obrázek . Jako jméno zadejte své příjmení, jako heslo vaše jméno+2003. TEST 32 TEST č.1 - Aplikace grafických informačních systémů Používáte prohlížeč Microsoft Internet Explorer 4.0 (compatible; MSIE 6.0; Windows NT 5.1) Pro správné zobrazení češtiny použijte kódování: Středoevropské jazyky Windows Jadro: Win32 Rozlišení: 1024 x 768 Barevná hloubka: 16 bit Java povolena ?: ANO Anti-aliasing ?: NE Heslo: Uživatelské jméno: 1.Otázka OpenGL je standartem k A windows B linux C nejedná se o standart 2.Otázka OpenGL je svázaná s A SGI B Intel C ARB 33 3.Otázka OpenGL je A závislá na ovladačích B nezávislá C závislá na OS 4.Otázka Co je to DirectX A Standart B Platforma C Plug-in 5.Otázka Naznačte využití DirectX a OpenGL. 6.Otázka K čemu slouží v DirectX dva módy? 7.Otázka Jaké jsou nejdůležitější části DirectX a proč? 34 8.Otázka K čemu slouží vrstvy HEL a HAL? 9.Otázka Co vás v tomto díle zaujalo a co naopak by potřebovalo zlepšit? :o)) Doporučení Na toto místo napište své jméno a emailovou adresu Jmeno Prijmeni Email Potvrdit-Odeslat Smazat-Znovu 35 7 Component object model (COM) V této kapitole se dozvíte: jak vlastně funguje mechanismus spustitelných .exe a .com souborů. Také se dovíte proč zkompilovaný program funguje na všech počítačích s operačním systémem Windows stejně. Doba potřebná k prostudování této kapitoly: 45 minut Rozsáhle počítačové programy obsahuji několik stovek tisíc řádku kódu. Se stále složitějšími a robustnějšími aplikacemi, se počet řádku kódu samozřejmě prudce zvyšuje. Programy takové velikosti vyžadují stabilní hierarchické uspořádání pro zvýšení přehlednosti. V opačném případě by tento program působil naprosto chaoticky. Nebrání ohledu na hierarchii programu by mělo za následek neschopnost komunikace s dalšími modely nebo programy vytvořené druhým, nezávislým programátorem. Dva nejpoužívanější programovací jazyky, které se používají pro psaní dlouhých a náročných programů jsou C++ a Java. C++ je programovacím jazykem, který se používá zejména pro vývoj, vzhledem k vestavěným objektově orientovaným vlastnostem a vzhledem k jeho relativní přehlednosti. Naproti tomu je Java je také plně objektově orientovaný jazyk, ale oproti C++ je mnohem přehlednější a zejména jednoduší. V každém případě, ačkoliv oba programovací jazyky jsou velmi příbuzné, pro běh jejich programu je třeba určitých specifických předpokladů. Pro překlad programů a jejich plynulý běh na platformě Windows, přišel Microsoft se souborem konvencí, který je označován jako COM. 36 Model COM byl vyvíjen mnoho let jako jednoduchá šablona, pro překlad exekutivních programů, které mohou pracovat v operačním systému Windows, a které budou mít přístup k samotnému procesoru počítače. Všechny COM objekty jsou registrovány v databází komponentů. Obrázek ukazuje co se děje, když uživatel chce vytvořit a spustit COM objekt. • Vyvolá se API a vytvoří se nový COM objekt • COM lokalizuje implementace a iniciuje procesorový prostor (server) • Procesor (server), vytvoří objekt, a vrátí pointer (ukazatel), na tento objekt • Klient pak může pracovat s novou COM instanci, právě přes tento pointer 37 Jednoduše řečeno, jedná se o určitý plug-in, který umožní libovolným programům, napsaným v libovolném programovacím jazyku, posílat instrukce a využívat procesorový čas. Pro implementaci takového typu technologie, je třeba velmi obecné rozhraní, které bude umět zpracovávat různé typy sad funkcí. A právě takovým rozhraním je COM. 38 Jednou z výhod počítačového čipu je, že pokud mu jednou ukážete jak má danou instrukci zpracovávat, nemusíte mu to už ukazovat znovu. Jiná situace je u softwarových instrukcí. Ty se mohou měnit v závislosti na užití programovacího jazyku. Model COM usměrní takové instrukce procesoru tak, že tento pracuje se všemi funkcemi (které obsahuji stejný příkaz), stejně a nezávisle na použitém programovacím jazyku a do konce nezávisle na použitém procesoru. Z toho vyplývá, že program zkompilovány pod procesorem 386 by měl fungovat i pod procesorem 586 apod. Proto je program s příponou .exe mnohem větší než program určeny přímo pro kompilaci (přípona .c, .pas apod., což jsou přípony používané programovacími jazyky ) Další výhodou je možnost bezproblémové aktualizace. Představte si, že jste vytvořili skvělý program, kterého jste prodali sto tisíc kopií. Objeví se nové možnosti přístupu k hardwarovým vybavením, rychlejší přístup k procesorové paměti apod. Většinou se tak stane s uvedením nového operačního systému. K tomu aby jste s každým novým OS nemuseli upgradovat svůj program, je tady COM model, který sladí nové možnosti, se starým programem, nezávisle na průběhu kompilace. Tento odstavec se netýká síťového modelu COM 39 8 Grafické editory V této kapitole se dozvíte: o typech grafických editorů, o jejich možnostech využití, výhodách a nevýhodách vybraných editorů. Dovíte se taky o možnostech 3D editorů, které jsou schopny vytvořit fotorealistické scény Doba potřebná k prostudování této kapitoly: 45 minut Prvním významnějším grafickým editorem byl elektronický kreslicí systém, který vytvořil v roce 1961 Ivan Sutherland. Tento vektorově orientovaný systém pracoval se světelným perem, kterým se kreslilo přímo na obrazovku.V roce 1967 Sutherland společně s D. Evansem z univerzity v Utahu vytvořili centrum vývoje počítačové grafiky, které přilákalo mnoho lidí, kteří dnes patří mezi lídry, v oblasti grafických systémů. Mezi tyto lidry patří Jim Clarc – zakladatel silicon Graphics nebo John Warnock – Adobe Systéms. 40 V současné době využívají grafických programů lidé všech oborů a zaměření. Mezi nejvýznamější oblasti kde se s grafickými systémy setkáme jsou: • Kreslené příběhy nebo filmy Maya, 3DMax Studio • Počítačové hry Maya, 3DMax Studio, Power Animation • Reklamy Power Animation, Lightwave • Upoutávky Maya, Power Animation • Architektonické animace True-Space, Maya • Soudní animace Maya, 3DMAX Studio • Průmyslový design CAD, LightWave, True-Space • Průmyslová animace CAD, LightWave, True-Space 8.1 2D Grafický software Mezi 2D grafický software, řadíme programy, které rozdělujeme na takzvané programy ilustrační, kreslící a programy pro zpracovávání obrazu. Ilustrační programy dovoluji primárně vykreslovat požadované primitivy pixel po pixelu a umožňuji manipulaci s nimi. Mezi nejlepší programy v této skupině patří Paint Shop Pro od firmy JASC. Tento produkt je ideální vzhledem ke svému poměru cena vs. výkon. Další možnosti je Fractal Design Painter, který je velmi vhodný pro práci s ilustracemi, ale na rozdíl od Paint Shop Pro je nepoměrně dražší. Mnoho uživatelů však preferuje program Corel Photo-Paint. Tento program však není příliš vhodný pro někoho kdo se teprve začíná učit grafické prezentaci, nebo práci s grafickými editory vůbec. 41 Další skupinu tvoři programy kreslící. Tyto programy vám dovolí vytvořit libovolné objekty, konstruované pomocí oblouků, linek a 2D geometrických primitiv. Tyto typy programů nejsou příliš užitečné, ale pokus potřebujete rychle a nepříliš kvalitně něco vykreslit pak nejlepším řešením je sáhnout po Adobe Illustrátoru. Poslední skupinou jsou programy pro zpracování obrazu. Tyto programy slouží pro práci s objekty, které jsou buďto naskenované, nebo jinak vložené do počítače z vnějších záznamových zařízení. Například editace fotografií nebo úprava naskenovaného obrazu je velmi pohodlná pomocí programu Adobe Photoshop. Vedle Adobe Photoshopu je dobrou volbou i použití již výše zmiňovaného Corel Photo-Paint. 42 8.2 3D Grafický software 3d grafický software je nepoměrně dražší a náročnější na hardware cílového počítače než software umožňující práci s 2d grafickými objekty. Cena takových to editorů se pohybuje řádově v desítkách tisíc korun. Pro nekomerční a nepříliš náročný vývoj je skvělým řešením TRUE Space od Caligari. Pokud však chcete pracovat s nejlepšími a nejvýkonnějšími editory pak zřejmě použijete 3DMax Studio. Za kvalitu si však připlatíte i sto tisíc korun. Přesto, pro profesionální výstupy je nutno použít tento specializovaný software, který zajistí naprosto fotorealistické výstupy. Vedle 3DMax Studia existují i jiné 3D editory z nichž za zmínku stojí zejména Maya 4.0. V tomto programů byla například dělána převážná část filmů Shrek a Final Fantasy. Vzhledem k zabudovaným komponentům, umožňujícím vytvoření speciálních efektů a možnosti využití modelování jak pomocí polygony a NURBS, jako i výborná podpora hardwarového vybavení je Maya jedním z nejlepších grafických editorů na trhu. Výše zmiňované 3DMax Studio si s programem Maya také nijak nezadají, ale vzhledem k ceně a prakticky omezenému použití na operačním systému Windows je trošku méně pružné. Ale rozhodnutí záleží jen a jen na Vás. 43 9 X-Windows V této kapitole se dozvíte: o grafickém okenním systému X-Windows. Dovíte se o možnostech jeho využití, jakož i jeho přednostech a slabinách Doba potřebná k prostudování této kapitoly: 90 minut X-Windows systém se stal standardem pro UNIX/Linux pracovní stanice. Programátor používá X, aby získal okno na grafické obrazovce, do kterého se vykreslí buď text anebo 2D grafika. X také poskytují standardní způsoby pro vstup jako je klávesnice nebo myš. Přijetí X-Windows většinou výrobců pracovních stanic znamená, že jediný program může vytvářet 2D grafiku, anebo přijímat vstupní informace, na celé škále pracovních stanic jednoduchým překompilováním programu. Tato integrace, pracuje v síti: program může běžet na jedné z pracovních stanic, ale zobrazovat a přijímat vstupy z jiné pracovní stanice, i když pracovní stanice na druhém konci sítě je vyrobena jinou firmou. Pro 3D grafiku bylo navrhnutých několik standardů, ale zatím žádný nebyl přijatý (až nyní OpenGL). Jeden relativné známý je systém PHIGS (Programový hierarchický interaktivní grafických systém). Založený na GKS (Grafic Kernel System) , PHIGS je ANSI (American National Standards Institute) standard. PHIGS a jeho odvozenina (PHIGS+ ) poskytuje způsoby pro manipulaci a kreslení 3D objektů pomocí zapouzdřených objektových atributů do zobrazovacího záznamu, do kterého se přistupuje při zobrazení a manipulaci s objektem. 44 Jednou výhodou zobrazení záznamu je, že i složitý objekt musí byt popsaný pouze jednou, i v případě kdy má byt zobrazený několikrát. To je zvlášť důležité pokud objekt, který má být zobrazený, musí být přenášený přes úzkopásmový kanál (např. síť). Nevýhodou zobrazení záznamu je, že může vyžadovat značnou zátěž při specifikování objektu pokud tento má být plynule modifikovaný následkem uživatelskou interakcí. Dalším problémem s PHIGS a PHIGS+ (a s GKS) je, že postrádají podporu vyspělé renderovací vlastnosti jako je mapovaní textur. PEX, o kterém se hovoří jako zkratce pro PHIGS rozšíření do X, rozšiřuje X o schopnost manipulace a kreslení 3D objektů. (PEXlib je programový interface pro PEX protokol). Mezi jinými rozšířeními, PEX přidává mód pro okamžitý rendering, což znamená že objekt (těleso) může být zobrazené ještě dříve než je zobrazovací záznam kompletní. Problémem PEX bylo to, že různí dodavatelé PEX interface, se rozhodli podporovat různé vlastnosti čím způsobili přenosnost programu problematickou. PEX také postrádá vyspělé renderovací schopnosti a je dostupný pouze pro uživatelé X-Windows. Všichni co se chcete o XWindows http://cbbrowne.com/info/x.html 45 dovědět mnohem více, navštivte 10 Internet V této kapitole se dozvíte: o možnostech virtuálního zobrazení v síti internet prostřednictví programovacích prostředků jazyka VRML. Doba potřebná k prostudování této kapitoly: 90 minut Internet je informační technologie založené na přenosu dat mezi hostitelským a klientským počítačem. Rozvoj internetu je dán zejména jeho přenositelností a jednoduchostí, při tvorbě vlastních informačních center resp. stránek. Výhodou celé této sítě je skutečnost, že každý obyvatel planety země se k této sítí může za jistých předpokladů, připojit odkudkoli na světě. Tato služba je jen jednou z mnoha možností komunikace mezi uživateli, ale vzhledem ke své přehlednosti a informačnímu potenciálu, je rozhodně nejpoužívanější. Vzhledem k tomu, že funkčnost a možnosti sítě internet nespadají pod tento předmět, budu se věnovat graficko-informační technologií, které přímo s internetem souvisí. Touto technologií je modelování virtuálního světa a jeho přenos v sítí internet. 46 10.1 VRML VRML je zkratka pro Virtual Reality Modeling Language. Tento programovací jazyk vznikl jako reakce na prudký rozvoj grafických systémů na internetu. Podle názvu je zřejmé, že se jedná o jazyk, kterým popisujeme a vytváříme virtuální svět. V současné době se VRML zabývá popisem 3D statických scén, ve kterých se uživatel může pohybovat jako ve skutečném světě. 10.1.1 Vybavení VRML jazyk je popsán klasickým souborem obsahujícím příkazy zobrazení. Obsahuje popis textur (povrchů), obrázků, animací, zvuků atd. K tomu aby jste tyto objekty mohli zobrazit ve svém internetovém prohlížeči, potřebujete určitý program (plug-in), který vám toto zobrazení umožní. Dva nejrozšířenější plug-iny jsou Cosmoplayer a Cortona. Kliknutím na obrázek Cortona si nahrajte program na své PC a poté nainstalujte. Použijte DirectX nebo Software render. 47 10.1.2 Vlastnosti VRML Pokud vytvoříte VRML aplikaci na rychlé grafické stanici, pak její zobrazení na stanici pomalejší proběhne způsobem, který bere ohled na výkon cílového systému. To znamená, že výsledná scéna bude například vykreslena s menším množstvím detailů. Rychlost pohybu uvnitř virtuálního světa, nezávisí na výkonu počítače, kdežto množství detailů ano. K tomu aby jste si na internetu mohli užívat 3D virtuální reality, by jste však měli použít rychlejší připojení, než je klasický model. Scény ve 3D jsou poměrně obsáhlé a jejich přenos na cílový počítač se může v určitých případech nepříjemně protáhnout. 10.1.3 Standarty VRML VRML aplikace je schopná spolupracovat s celou řadou jak grafických tak multimediálních formátů. • JPEG - ISO/IEC IS 10918-1 • MIDI - specifikaci udržuje International MIDI Association • MPEG - ISO/IEC IS 11172-1 • PNG - specifikace viz W3C • RURL - IETF RFC 1808 • URL - IETF RFC 1738 • UTF8 - ISO/IEC 10646-1 • WAV - specifikaci vydal IBM a Microsoft VRML jako aplikace virtuální reality, je dynamický obor. V dnešním internetovém světě se rozmáhá zvláště jako součást běžných internetových stránek. Nejdůležitější přínos však je zejména v takových oblastech kam se obyčejně nikdy normální člověk nedostane. Například pomocí VRML jste schopni vidět planetu Mars, tak ji viděla sonda Pathfinder, a zároveň se můžete podívat všude tam kde tato sonda dohlédla. Dalším skvělým využitím může být návštěva obchodního domu, archeologických vykopávek, jako i cesta po povrchu měsíce. To vše prostřednictvím internetového prohlížeče. 48 11 Test č.2 V této kapitole se dozvíte: Jakým způsobem budete zpracovávat test pro ukončení druhé poloviny semestru. Doba potřebná k prostudování této kapitoly: 5 minut Zakončením první poloviny tohoto kurzu je test, ve kterém by jste měli potvrdit své vědomosti. Pro jeho úspěšné vykonání musíte odpovědět alespoň na polovinu otázek. Zadaný program musíte vytvořit tak, aby byla funkční alespoň jeho jedna polovina. Test najede kliknutím na obrázek . Jako jméno zadejte své příjmení, jako heslo vaše jméno+2003 TEST 49 TEST č.2 - Aplikace grafických informačních systémů Používáte prohlížeč Microsoft Internet Explorer 4.0 (compatible; MSIE 6.0; Windows NT 5.1) Pro správné zobrazení češtiny použijte kódování: Středoevropské jazyky Windows Jadro: Win32 Rozlišení: 1024 x 768 Barevná hloubka: 16 bit Java povolena ?: ANO Anti-aliasing ?: NE Heslo: Uživatelské jméno: Úkol č.1 Napište s jakými grafickými editorů jste se setkali Uveďte o jaký typ editoru se jednalo a jaké byly jeho vlastnosti. Specifikujte výhody a nevýhody těchto editorů 50 Úkol č.2 Napište možností uplatňění virtuální reality nejen na Internetu. Specifikujte za jakých podmínek je výhodné přidat na internetové stránky, odkazy s VRML Doporučení Na toto místo napište své jméno a emailovou adresu Jmeno Prijmeni Email Potvrdit-Odeslat Smazat-Znovu 51 12 Seznam použité a doporučené literatury [1] Tricks of the Windows Game Programming Gurus, Macmillan Computer Publishing, Inc. [2] Dave Shreiner, An Interactive Introduction to OpenGL Programming [3] www.mikrogen.kobranet.cz. [4] Žára J., Počítačová grafika – principy a algoritmy, Grada, 1992 [5] Jiří Žára - VRML - jazyk pro virtuální realitu, Softwarové noviny 1/1997, str. 62-69 52
Podobné dokumenty
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
uvažování, jak docílit ze všech hledisek dobrého programu. To se týká nejen jednoduchosti návrhu a
jednoduché čitelnosti kódu, ale také nízkých hardwarových nároků a naopak potenciálu využít
výkonn...
3.0 MB - NeHe OpenGL Tutoriály
Tutoriály na mých stránkách mohou obsahovat chyby a neměly by být považovány za nejlepší zdroj pro učení
programování v OpenGL. co uděláte s kódem je jen a jen na vás, já jsem se pouze pokoušel usn...
1 Úvod - Website of Marek Gayer, Ph.D.
Technika, pomocí které je umožněno rozhraní OpenGL rychleji a v dobré obrazové kvalitě provádět změnu
velikosti zobrazovaných textur. Před použitím textur se pomocí určitých algoritmů pro změnu vel...
Radek Hnilica Radek Hnilica
Některé části se dokonce Linuxu či UNIXu nemusí týkat vůbec, či jen vzdáleně. Název dokumentu UNIX
tak nemusí být zcela přesný, ale zatím mi postačuje a nikdo k němu neměl připomínky.
Te...
Dokumentace bakalářské práce
Původní MahJong je hra pocházející z Číny, určená pro čtyři hráče. Pro její úspěšné hraní je
třeba umění strategie, předvídavosti, dobrá pamět’, ale stejně tak i štěstí. V závislosti n...
PRO COMBINED
István
Zoltán
Walch
Hirschhofer
Łazarz
Kronpass
Herrmann
Lovranich
Rumpl
Rambow
Bergmann
Ballun
Spindler
Herbig
Bakalářská práce
může mít určenou minimální a maximální velikost a způsob chování, tzn. jestli se „snaží“ pokrýt co
největší či nejmenší možnou plochu nebo zda mají velikost pevně danou. Nutno poznamenat, že výše
u...