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

Raytracing na 7 MHz

Ing. Peter Macsánszky

Ani nie je tomu tak dávno, keď sa AMIGA 500 s 1 MB pamäti považovala za grafickú stanicu, na ktorej bolo možné spustiť Imagine alebo Real 3D a produkovať fascinujúce obrázky a animácie. Teraz na to iba mnohí mávnu hovoriac, že na takejto slabej konfigurácii nie je možné vytvoriť dobré obrázky. Samozrejme, nemajú pravdu.

O kvalitách výsledného obrázku v prvom rade rozhoduje fantázia autora a nie výkon počítača. Je pravda, že niekedy sme museli čakať na obrázok aj deň-dva, ale to vôbec neuberalo na jeho kvalite. Skôr naopak! Malý počítač donútil človeka premýšľať, navrhovať a kombinovať tak, aby čo najoptimálnejšie využil možnosti strofa.
Mnohí z Vás hlavne z finančných dôvodov si ešte stále nemôžu dovoliť kúpu výkonnejších počítačov. Im je určený nasledovný článok, v ktorom sa pokúsim tlmočiť vlastné skúsenosti získané počas 4 rokoch na Amige 500 s raytracingovými programami.
Prvá okolnosť, ktorá limituje naše možnosti, je pamäť. Jeho nedostatok je v mnohých prípadoch následkom nepremyslenej. koncepcie. Šikovnou organizáciou je možné ušetriť veľa miesta. A teraz niekoľko trikov, ktoré platia pre všetky raytracingové programy.
Na scéne majme vždy len tie objekty, ktoré priamo alebo nepriamo spadajú do zorného pola kamery. Počas animácie spravidla nie je viditeľný každý objekt. Len vtedy ich dajme na scénu, ak sa dostanú do zorného pola kamery a akonáhle vyjdú, dajme ich preč. Situácia ale nie je vždy takáto jednoduchá. Ako príklad uvediem situáciu, keď objekt už nie je v zornom poli kamery, ale jeho tieň ešte tam zasahuje. Pamäť je možné šetriť aj v tomto prípade a to tak, že objekt nahradíme jednoduchším objektom, ktorý je tvarovo zhodný s pôvodným.
Samozrejme, tieň, ktorý sa objaví na scéne, už bude pochádzať od jednoduchšieho objektu. "Jednoduchý" objekt sa môže vytvoriť z pôvodného tak, že sa vypustia niektoré detaily a použije sa menší počet bodov. Podobne sa môžu vypustiť aj povrchové vzory teda textúry a brushe. V poslednom prípade sa šetrí nielen pamäť, ale sa pridá aj na rýchlosti výpočtu.
K tieňom sa viaže aj problematika osvetlenia a lámp. Čím sa použije väčší počet svetelných zdrojov, tým sa spotrebuje viac pamäti a aj výpočet sa predlžuje. Platí to nielen pre mód Trace ale aj pre Scanline. Sú prípady, keď použitie väčšieho počtu lámp (2-4) je opodstatnený, avšak vo väčšine prípadov vhodným rozmiestnením max. 2 svetelných zdrojov je možné dosiahnuť veľmi dobré výsledky. Na zvýšenie svetlosti obrázkov sa môže použiť parameter Ambient z Action editoru z položky Globals. Ale pozor, príliš veľké hodnoty Ambientu majú za následok, že sa potlačia tiene a zníži sa celkový kontrast obrázku.
Osvedčeným trikom sa javí aj manipulovanie s vypracovaním objektov. Časť objektu, ktorá práve nie je viditeľná, sa môže zjednodušiť, alebo ak to dovoľuje situácia, aj odstrániť. Ak je objekt počas animácie viditeľný z viacerých strán, potom sa oplatí vytvoriť ďalšie zjednodušené objekty, ktoré majú vždy degradovanú neviditeľné časti.
Túto fintu je možné použiť aj v prípadoch, ak sa objekt pohybuje v hĺbke, ďaleko od kamery. Tu tiež postačuje zjednodušený objekt, veď detaily ani tak nie sú viditeľné.
Môže nastať aj taká situácia že chcete vygenerovať obrázok, ktorého centrálnym prvkom je nejaký zložitejší objekt. Podľa Vašich predbežných úvah by nemali nastať žiadne problémy s pamäťou. Ale sa to stane... "Out of memory". V tomto prípade sa môžete pokúsiť o nasledovnú fintu. Rozrežte objekt na menšie dielčie častí a uložte ich. Tvar pôvodného objektu získate potom sa scéne tak, že ho zložíte z jednotlivých častí. Podstata je tá, že objekt nesmie tvoriť jeden súbor, ale musí byt rozdelený do viacerých menších. Vysvetlenie spočíva vo fragmentácií pamäti.
Na pomalších počítačoch treba prihliadať aj na rýchlosť výpočtu. Imagine 3.x obsahuje veľa zaujímavých textúr. Ich nevýhoda spočíva iba v tom, že sa jedná o zložité matematické algoritmy, ktoré značne spomaľujú generovanie obrázku. Situácia ale nie až taká vážna a nemusíte sa ich hneď zriecť. Trik na zrýchlenie výpočtu vychádza z toho, že výpočet objektov s brushom je vždy rýchlejší ako s textúrami. Prakticky: vytvorte rovinu, na ktorú naneste Vašu obľúbenú textúru. Rovinu nastavte tak aby celá vypĺňala zorné pole kamery. Vypočítajte obrázok! Dostali ste obrázok, ktorý môžete aplikovať ako brush na povrch želaného telesa.
Všetky uvedené triky platia viacnásobne, ak sa počíta v móde Trace, kde čas výpočtu je troj až desaťnásobný. Ale skôr, než sa zvolí mód Trace, sa opäť oplatí zamyslieť nad našimi možnosťami a požiadavkami. V mnohých prípadoch, hlavne pri animáciách, je mód Trace zbytočným plytvaním času. Uvediem jeden zaujímavý poučný a aj aktuálny príklad. Úlohou bolo vytvoriť animáciu, na ktorej bolo vidieť vianočný stromček s niekoľkými sklenenými ozdobami. Samozrejme v sklenených guliach sa malo odrážať okolie, ako v skutočnosti. Animátor s dostatočne rýchlym počítačom nerozmýšľa veľa - mode Trace a .... výsledok je hotový. "Chudobný" animátor použije fintu: nastaví mód Scanline a na povrch gúľ natiahne ako brush vždy predchádzajúci vygenerovaný obrázok. Výsledok je taký dokonalý, že tento "lacný podfuk" nezbadá ani animátor s rýchlym počítačom. Uvedený trik je možné aplikovať v mnohých prípadoch. Je pravda, že nároky na pamäť mierne stúpnu, ale sa ušetrí veľmi veľa času.
Použitie brushov je veľmi výhodné aj v ďalších situáciách. Napríklad namiesto pracného modelovania objektov je oveľa jednoduchšie natiahnuť na jednoduchý objekt jednoduchý brush.

Záverom ešte jeden trik
Ak sa animácia odohráva pred nemenným pozadím, oplatí sa vypočítať jeden obrázok bez pohybujúcich sa objektov a tento obrázok potom umiestniť do pozadia pomocou funkcie Backdrop Picture. Pri výpočtoch potom samozrejme odstráňte objekty tvoriace pozadie, veď už sú obsiahnuté v Backdrop Picture. Takto získame ďalšiu voľnú pamäť a drahocenný čas.

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 )