ostravská univerzita aplikace grafických informa č ních systém ů

Transkript

ostravská univerzita aplikace grafických informa č ních systém ů
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Ě

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...

Více

3.0 MB - NeHe OpenGL Tutoriály

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...

Více

1 Úvod - Website of Marek Gayer, Ph.D.

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...

Více

Radek Hnilica Radek Hnilica

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...

Více

Dokumentace bakalářské práce

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...

Více

PRO COMBINED

PRO COMBINED István Zoltán Walch Hirschhofer Łazarz Kronpass Herrmann Lovranich Rumpl Rambow Bergmann Ballun Spindler Herbig

Více

Bakalářská práce

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...

Více