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
|