AMIGA REVIEW obsah časopisu online!
  Domov     Software     Hry     Obaly     Download  

Najprv bola myšlienka, potom počítač...

PETER MACSÁNSZKY

Sprievodca vývojom počítačovej grafiky

Keď sa pred viac ako 25 rokmi vygenerovali prvé obrazy pomocou počítačov, bol hardware a software ešte v detských plienkach. Počítače vtedy zaberali celé miestnosti a boli finančne náročné aj pre silné firmy. Nad vtedajšou rýchlosťou výpočtov sa dnes už iba usmievame. Boli potrebné celé dni, aby sa vypočítal obraz zodpovedajúci skutočnosti, čo dnešné veľké počítače zvládnu za pár sekúnd. Keď sa neskoršie objavili na trhu mikropočítače, začal sa neľútostný konkurenčný boj na poli grafických kariet a programov. S uvedením Amigy na trh bolo umožnené zobrazovať poloprofesionálnu počítačovú grafiku aj „obyčajným“ spotrebiteľom.

... a neskôr počítačová grafika
Načo potrebujeme vôbec počítačovú grafiku? Najčastejšie sa s ňou stretneme v hospodárskej sfére. Obrovské hory číslic a dát sa lepšie zobrazujú v grafickom podaní ako v ich holej podobe. Tieto obrázky sú ale väčšinou dvojrozmerné a obsahujú relatívne málo farieb. Ďalšia oblasť použitia, ktorá má právo zelenú, je zobrazovanie a modelovanie prírodných procesov, ktoré človek nedokáže pozorovať. Myslí sa tu chémia, medicína, fyzika, kde je molekulárny výskum možný len pomocou počítačov. Aj priemysel využíva toto médium pni konštrukcii a vývoji nových výrobkov, dopravných prostriedkov a pod. Obrazy zodpovedajúce skutočnosti sú vytvárané aj v počítačových simulátoroch jazdy alebo letu. Takto môžeme nechať pilotov pri vyuke havarovať koľkokrát chceme a nestratíme pritom ani jedno lietadlo. V zbrojárstve, bohatom na peniaze, je už „dnes“ možné skúšať vlastnosti „zajtrajších“ nových modelov, pričom existujú ešte len na papieri, resp. v digitálnej podobe v pamäti počítačov. Ďalšie oblasti využitia sa nájdu v architektúre, meteorológii, medicíne alebo pni simulovaní prírody.
Popri čisto komerčnom využití sa počítačová grafika osvedčila aj v umení. S animáciami generovaných pomocou počítačov sa môžeme stretnúť každý deň v televíznom vysielaní, stačí spomenúť iba denné správy alebo reklamy. Žiadna relácia sa dnes už nezaobíde bez titulkov a písmen rôzne poletujúcich po obrazovke. Tieto počítačové animácie sprostredkúvajú ničím iným nedosiahnuteľnú dynamiku, ktorá má udržať diváka pred obrazovkou.

Prvé kroky k realite
V súčasnosti medu najdynamickejšie rozvíjajúce sa oblasti priemyslu patrí elektronika a počítače. Neustále sa zvyšujúci výkon počítačov prináša so sebou aj stále dokonalejšie grafické programy. Zo začiatku to boli iba sparťansky vybavené programy, ktoré s rastúcimi potrebami užívateľov a zvyšujúcimi sa skúsenosťami programátorov bolí stále výkonnejšie. Týmto druhom programov bola tiež daná štartovacia latka pre oblasť umenia, takže dnes už takmer každý užívateľ počítača môže previesť svoje tvorivé myšlienky do elektronického média. Súčasne, presadzovaním sa „kancelárskej“ počítačovej grafiky, sa začal vyvíjať aj iný druh tvorby obrazov - trojrozmerná počítačová grafika. Druh počítačovej grafiky pochádzajúci z konštrukcií v priemysle bol špeciálne upravený pre sledovanie trojrozmerných objektov. Dovtedy boli zobrazované iba ako drôtené priehľadné modely, teraz ich pre lepšiu názornosť zobrazujeme s vyplnenými plochami. Zo začiatku existovali iba jednoduché algoritmy výpočtu, ktoré podobne ako program „Videoscape“ pre Amigu, zobrazovali jednotlivé plochy z perspektívy v dvojrozmernom obraze. Nesledovali ďalšie programy, ktoré dokázali zobrazovať povrchy telies v hre tieňov, pridávať objektom lesk, alebo meniť uhol osvetlenia predmetu. Potreba priblížiť sa čo najviac realite, stále rástla. Preto zákonite nasledovali: vrhanie tieňa telesom, zrkadlenie plôch, priehľadnosť a ďalšie. Popri rôznych druhoch výpočtov ako napr. „Phong Shading“ sa vykryštalizoval Raytracing ako výpočet fotorealistických obrazov. Na Amige existujú niekoľko výborných programov tohto druhu (Real 3D, Imagine, LightWave 3D), ktorých úspech možno merať aj tým, že sa postupne transportujú (prepisujú) na iné operačné systémy.
Zo dňa na doň rastie potreba prepočítavať obrazy zobrazujúce skutočnosť pomocou matematiky a počítačov. Už teraz existuje neprehľadné množstvo metód a algoritmov, ako vytvoriť takéto obrazy. Najpoužívanejším výpočtovým spôsobom, popri komplikovaných druhoch ako sú „Hidden-Line“ a „Hidden-Surface“, je „Raytracing“. Je to síce najjednoduchšia výpočtová metóda, ale časovo najnáročnejšia. Aby sme si objasnili túto metódu, pozrieme sa presnejšie na spôsob výpočtu obrazu.

Základom je svetlo
Najdôležitejším prvkom je existencia zdroja svetla, lebo bez svetla ani najlepšie oko nič nevidí. Ak teda zažneme lampu, môžeme svojimi očami pozorovať okolie. Základom sú lúče svetla vychádzajúce z lampy a narážajúce na rôzne prekážky, či už je to stenu, kreslo alebo zrkadlo. Podľa akosti telesa sú svetelné lúče z času absorbované (pohltené), alebo odrážané. Napríklad červená stolička absorbuje všetky zložky svetla, ktoré nie sú červené a odráža červenú zložku. Ak sa takéto odrazené lúče dostanú do nášho oka, vidíme predmet ako červený. Zrkadlo posúva naše hru o kúsok ďalej. Neabsorbuje žiadne svetelné lúče, ale skoro všetky odráža.
Raytracing funguje na podobnom princípe. Matematicky sa totiž dajú takéto príklady reality vypočítať. Využíva sa tu imaginárny zdroj svetla, myslená kamera a samozrejme nejaké objekty. Potom môžeme vypočítať každý svetelný lúč vychádzajúci zo zdroja, pričom zohľadňujeme stretnutie lúča s objektom a ním odrazené množstvo svetelného žiarenia. Ak takéto odrazené lúče zachytíme do objektívu našej myslenej kamery, dostaneme farebný bod na monitore. Ale z nášho svetelného zdroja vychádzajú lúče nepretržite a iba veľmi malý zlomok z nich zachytí objektív našej kamery. Väčšina lúčov je teda vypočítaná zbytočne. Pretože je pre nás tento spôsob príliš márnotratný (vypočítanie takéhoto obrazu by trvalo celé roky), vymyslel sa iný spôsob výpočtu. Pretože v matematike sú výpočty platné aj v obrátenom smere, prišlo sa na myšlienku, počítať svetelné lúče spätne, od kamery po svetelný zdroj. Technicky vzaté, výpočet prebieha nasledovne: Predstavte si, že sedíte pred vašou obrazovkou, pozeráte cez ňu a pozorujete scénu za ňou. V tomto prípade môžeme ľudské oko považovať za kameru a obrazovku za rovinu projekcie ležiacu medzi okom a scénou. Teraz sa vypočíta tzv. vektor pohľadu smerujúci z nášho oka cez monitor až na scénu (obr. č. 1). Pre každý bod obrazovky musí byt vypočítaný takýto vektor pohľadu, čo pri rozlíšení 640 x 512 budov predstavuje 327680 lúčov. Tento spôsob výpočtu, v ktorom sledujeme svetelné lúče, nazývame RAY-TRACING - sledovanie svetelných lúčov.

Vytvorenie obrazu
Takže základný algoritmus sme práve spoznali. Sledujeme simulované svetelné lúče a pozorujeme, čo sa stane na ich ceste. Pritom sa držíme zákonov optiky. Najprv musíme nájsť objekt, na ktorý dopadne myslený svetelný lúč, odborne povedané vektor pohľadu. Tu sú potrebné tzv. výpočty prienikových budov. Program musí lúčmi preskúmať každý jednotlivý objekt, aby našiel práve len hľadaný. Ak sme našli hľadaný objekt, dá sa z farby objektu. z akosti jeho povrchu, z uhla a vzdialenosti objektu ku svetelnému zdroju určiť farba, ktorú priradíme bodu obrazovky, cez ktorý predtým prešiel svetelný lúč (obr. č. 2). Ak lúč nenájde žiadny objekt. automaticky sa priradí farba pozadia. Tieto nákladné výpočty už postačujú na vytvorenie obrazu. Špeciálne efekty, ako tiene, zrkadlenie a priehľadnosť telies tu však nie sú zohľadnené. Aby sme mohli prepočítavať aj tiene, musí sa so svetelným lúčom, potom čo narazil na objekt, ešte čosi stať. Odrazí sa v smere svetelného zdroja a skúma sa pritom, či mu v ceste nestoja iné objekty. Ak lúč narazí na objekt, vieme, že lúč vyslaný zo zdroja viac nedosiahne náš prvý objekt. Ten leží v tieni iného objektu, čo má za následok čiernu, alebo veľmi tmavá farbu bodu na obrazovke. Ak máme viac zdrojov svetla, musíme tieto výpočty urobiť pre každý zdroj zvlášť. Vďaka vypočítaným tieňom objektov dostáva scéna ďaleko priestorovejší vzhľad.

Zrkadlenie
Čo sa stane, ak je objekt vyleštený? Zrkadliace objekty vidieť vo väčšine obrázkov vypočítaných raytracingovými programami. Pritom sa zrkadlí časy scény na povrchu objektov, čo vedie k dokonalejšiemu priblíženiu reality. Preto sú aj raytracingové programy také obľúbené, lebo každý umelecky vytvorený predmet z plastu, kovu, alebo skla, je viac či menej vyleštený. Algoritmus výpočtu zrkadlenia je podobný, ako výpočet tieňov. Potom, čo svetelný lúč narazí na zrkadliaci sa predmet, odrazí sa ďalší lúč v smere danom zákonmi optiky. Potom sa vypočíta, ktorý objekt je zasiahnutý týmto novým lúčom a ďalej je postup podobný, ako pri výpočte tieňu. Vypočítaná farba sa sčíta s farbou objektu. Tu hrá veľkú úlohu veľkosť zrkadlenia. Ak prvé teleso odráža svetelné lúče takmer na 100%, tak zostane farba druhého telesa takmer zachovalá, čo spôsobí, že scéna sa takmer celá zobrazí v prvom objekte (Obr. č. 3). Keď je ale zrkadlový objekt znovu zasiahnutý, tak musí byt vyslaný odrazový lúč. Viac takýchto odrazov môže spôsobiť prekážku v programe. Ak sa lúče odrážajú od jedného zrkadlového objektu k druhému a naspäť, vtedy sa musí jeden z objektov menej zrkadliť, alebo treba určiť, po koľkých vzájomných odrazoch sa má výpočet ukončiť.

Lom svetla
Nakoniec nám chýba iba lom svetla na priehľadných objektoch, ako to napríklad poznáme z priehľadnej gule. V podstate funguje výpočet podobne ako pri zrkadlení, iba s tým rozdielom, že sa nevypočítava žiadny odrazený lúč, ale lúč lomu smerujúci dovnútra objektu. (Obr. č. 4) Znovu sa musia ostatné objekty preskúšať lomovým lúčom, aby sme vedeli, čo presne vidíme cez priehľadný objekt. Po zavedení indexu lomu svetla je lúč svetla vyslaný v ostrom alebo tupom uhle smerom od objektu.

Záverom
Z úvahy je zrejmé, že tieto výpočty sú časovo veľmi náročné. Vyžadujú rýchle počítače a v neposlednej rade výsledky závisia aj na kvalitách programátorov a teda od použitého programu. Pre každého užívateľa je optimálne napísaný program vždy lacnejší ako kúpa rýchlejšieho počítača. Preto, ak niekto po prečítaní tohoto príspevku sa rozhodol vniknúť do zázračného sveta počítačovej grafiky, nech sa pred kúpou programu najprv poradí s odborníkmi.

Vytlačiť článok



Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing



none

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )