B-Gif a Pearle
Ano, to jsou názvy programů, které jsme vám dnes připravili, abyste mohli i vy trochu se svým počítačem zaexperimentovat. V případě B-GIFu se jedná o konverzní program pro obrázky GIF na obrázky PI1, PI2 a SPU.
Dalším programem je Pearle. Ten vám umožní vytvářet vskutku působivé rendrované scény s koulemi, které mohou různě poskakovat a hýbat se.
V obou případech se nejedná o programy nové, ale spíše takové stařečky. Na druhou stranu jsou však oba produkty zařazeny mezi public domain, takže je můžete využívat, jak je vám libo.
---------
- B-Gif -
---------
B-Gif je Public Domain program. Konvertuje GIF obrázky do PI1, PI2 a SPU obrázku. Program potřebuje velký buffer a nefunguje příliš dobře (spíše ne všechno) na 512K strojích.
Posílej své poznámky na:
Bradford W. Mott
RT 2 Box 135 1/2 A
Harrells, NC 28444
GEnie: B.MOTT
Pozor, program pochází z roku 1990.
PEARLE.PRG
----------
PEARLE.PRG rendruje 3D scény ve světě reflektivních (odrazových) a refraktivních (lomových) sférách, přitom užívá ray tracingových (sledování pohybu paprsku) technik. Filmy generované ze sekvencí snímků ukazují koule pohybující se a skákající v gravitačním poli. Dá se říci, že se podobají šnůře skákajících perel, proto jsem zvolil to jméno.
Množství výpočtů požadované k vytvoření jedné ray tracované vize na ST je vskutku obrovské - dá se počítat v hodinách. K zobrazení animovaného filmu musí být jednotlivé obrázky předpočítány pomocí mého inicializačního souboru. PEARLE mají schopnost vygenerovat sekvenci snímků na disk ve formátu Degas PI1, které potom mohou být přehrány pomocí BLASTRAM.TTP (také přiloženo).
PEARLE.PRG generuje nejdříve přibližnou podobu (Obrazovka se skládá třeba z 20x15 bodů), potom následuje zjemňování, abychom dosáhli vyššího rozlišení. Jelikož hrubý obrázek je vidět velmi brzy, je možné již v počáteční fázi odstraňovat chyby (jak čeho). Velikost, pozice, rychlost a optické vlastnosti koulí ve vašem filmu jsou určeny numericky v inicializačním souboru PEARLE.IN.
Srdce ray tracingu PEARLE bylo vzato ze net.sources, popsáno Friedrichen Knaussem z Univerzity v Californii, San Diego. Já to převedl na ST, přidal animace, jednoduché barvy a několik dalších nástrojů, které zde vidíš. Umístil jsem PEARLE do public domain, tedy jen pro nekomerční použití.
PEARLE.PRG beží jen na ST nízké rozlišení. Požaduje 1 MB, jestliže je rozlišení větší než jeden paprsek na jeden bod, nebo když si přejete přehrávat film z paměti RAM. Operace s 512 Kb budou produkovat trochu odlišné obrázky (jeden paprsek na jeden bod), které mohou být zobrazeny staticky, pomalu z floppy, nebo z hard disku (jestliže máš program disk blaster).
Zbytek tohoto textu zahrnuje sekce nazvané Getting Started - Začínáme, Configuration File Format - Konfigurační Soubor a Checkpointing - Kontrola. Zdrojové kódy jsou k dispozici na požádání (pozor, tento text pochází z roku 1987, tak nevím, nevím).
GETTING STARTED - Začínáme
Počítač musí běžet v nízkém rozlišení. Po spuštění můžeš stisknout '?' pro pomoc. Klávesa 'r' čte and 'w' zapisuje právě aktuální obrazovku, jejíž jméno je zobrazeno v levém horním rohu obrazovky. Klávesa 'e' způsobí ukončení programu. Průměrný počet paprsků umístěných v každém bodě je také zobrazen v okraji a obnovován podle toho, jak výpočty pokračují.
Po rozpakování PEARLE je první logickou věcí spustit PEARLE.PRG s inicializačním souborem PEARLE.IN, který je přiložen. Po několika minutách uvidíš, že se počet zobrazených bodů zvyšuje. Měl bys počkat 1 až 4 hodiny, abys získal kompletní obrázek.
Teď odlož PEARLE stranou, dokud nebudeš rozhodnut oželet něco okolo 6 hodin práce svého počítače, které bude potřebovat na vytvoření filmu, protože právě tolik potřebuje konfigurační soubor PEARLE.IN. Když tak uděláš a počkáš, najdeš na disku film v sekvenci souborů s názvem PEARLxxx.PI1. Přehrej si je použitím BLASTRAM.TTP s podporou v dialog boxu. Při spouštění BLASTRAM, napiš '?' pro pomoc.
Konfigurační soubor PEARLE.IN může být měněn tak, aby dával rozdílné pozice koulí, rychlostí a optických vlastností, jakož i měnění osvětlení, zobrazovací perspektivy, počtu bodů na obrazovce a gravitace.
CONFIGURATION FILE FORMAT
Konfigurační Soubor
Následující kapitola bude popisovat formát konfiguračního souboru PEARL.IN, který se začne provádět právě v čas spuštění PEARL.PRG. Písmeno v prvním sloupci specifikuje význam zbytku řádku. ŕádky mohou být až 200 písmen dlouhé. ŕádky začínající Spacebarem jsou komentáře. Následující tvary jsou podporovány:
- - - 'p' Tvar: - - -
specifikuje fyzickou velikost a rychlost koule. Existuje 7 vlastností požadovaných pro každou kouli, musí být napsány na jednom řádku v následujícím pořadí:
(1) x souřadnice
(2) x rychlost
(3) y souřadnice
(4) y rychlost
(5) z souřadnice
(6) z rychlost
(7) poloměr koule
Poznámky:
A) V souřadnicovém systému mám jako Y vertikální osu, X je horizontální a Z je hloubka.
B) Míče se nebudou odrážet od země, když Y == 0 a budou neviditelné, když Z==0). Ujisti se, že všechny koule jsou umístěny nad podlahou a dále od pozorovacího bodu.
C) Jestliže se budou koule překrývat, pak se k sobě přilepí. To je způsobeno těžko řešitelnou chybou v skákacím algoritmu.
D) Právě aktualní verze je sestavena pro maximálně 15 koulí.
První p-tvar v souboru definuje první kouli, druhý druhou atd. Zde máme 6 koulí, které tvoří působivou scénu:
(1)(2) (3)(4) (5)(6) (7) p 195.0,-20, 130.0, 0, 250.0, 10, 30.0 tady jsou 4 koule za sebou (1)(2) (3)(4) (5)(6) (7) p 150.0, -5, 100.0, 20, 250.0, 10, 30.0 2 koule (1)(2) (3)(4) (5)(6) (7) p 105.0, 5, 70.0, 20, 250.0,-20, 30.0 3 koule (1)(2) (3)(4) (5)(6) (7) p 60.0, 20, 40.0, 0, 250.0,-20, 30.0 4 koule (1)(2) (3)(4) (5)(6) (7) p 0.0, -10, 300.0, 20, 600.0, 0, 300.0 velká koule (1)(2) (3)(4) (5)(6) (7) p 200.0, 2, 50.0, 5, 60.0,30, 50.0 střední koule
- - - 'o' Tvar: - - -
určuje optické vlastnosti koule. Následujících osm vlastností musí být na jednom řádku:
(1) index lomu
(2) množství lomu
(3) množství odrazu
(4) množství rozptýleného světla
(5) množství okolního světla ze světelného zdroje
(6) povrch koule červěnější
(7) povrch koule zelenější
(8) povrch koule modřejší
Nějaké poznámky, abyste vytvořili co nejrealističtější objekty:
A) Všechny parametry by měly být kladné nebo nula
B) Položky (2) až (5) by měly v součtu mít méně než 1.0
C) Barvu koulí (6) až (8) přizpůsobte efektu rozptýlení a okolního světla, tj. odrazovým vlastnostem (4) a (5). Žádná by něměla být větší než 1.0.
D) Aby vše souhlasilo s paletou ST, pak musí položky barev (6) až (8) souhlasit s jednou z těchto tří barev:
bílá:(6) == (7) == (8) == 1.0
červená:(6) == (7) == 1.0, (8) == 0.0
modrá: (6) == 0.0, (7) == (8) == 1.0
Pořadí i-tvarů je shodné jako pořadí p-tvarů, tj. pořadí koulí je také shodné. Teď nějaké optické vlastnosti pro scénu:
(1)(2)(3)(4)(5) (6)(7)(8) o 0.0, 0.0, 0.3, 0.6, 0.1, 1.0,0.0,0.0 rozptyluje červenou, něco odráží (1)(2)(3)(4)(5) (6)(7)(8) o 0.0, 0.0, 0.6, 0.3, 0.1, 1.0,1.0,1.0 odráží, něco bílé (1)(2)(3)(4)(5) (6)(7)(8) o 0.0, 0.0, 0.9, 0.0, 0.1, 1.0,1.0,1.0 odráží, něco do okolí (1)(2)(3)(4)(5) (6)(7)(8) o 0.0, 0.0, 0.0, 0.8, 0.2, 1.0,0.0,0.0 rozptyluje červenou, něco do okolí (1)(2)(3)(4)(5) (6)(7)(8) o 0.0, 0.0, 0.7, 0.1, 0.2, 1.0,1.0,1.0 odráží a do okolí (ta jedna velká) (1)(2)(3)(4)(5) (6)(7)(8) o 1.6, 0.8, 0.0, 0.0, 0.2, 1.0,1.0,1.0 láme
- - - 'v' Tvar: - - -
určuje pozorovací bod na obrazovce. Požadovány jsou hodnoty x, y, a z.
v x, y, z
v 215, 100, -550
- - - 'l' Tvar: - - -
určuje umístění světelného zdroje, potom následuje průměr světla.
l x, y, z, d
l 150.0, 950.0, 0.0, 100.0
- - - 'r' Tvar: - - -
určuje rozlišení obrázku, který bude vytvořen. Definován je počtem paprsků na jeden bod. Další parametr je index barvového schéma, ten určuje počet barev. Možné hodnoty jsou 1 až 3.
r .20, 3
Vložená hodnota Paprsků na Bod bude zaokrouhlena na nejbližší mocninu 4. Pro 0.20 to zaokrouhlíme na 4.0 na -1 = 0.25.
Čas k vypočítání jedné obrazovky vzrůstá lineárně s rozlišením (parpsků na bod). Konstanta poměru velmi závisí na komplikovanosti scény, ale pro 6 koulí na 520ST to bylo asi takhle:
.0625 paprsků na bod 4 minut
.25 paprsků na bod 15 minut
1.0 paprsek na bod 1 hodina
4.0 paprsků na bod 4 hodiny
16.0 paprsků na bod 16 hodin
Color index určuje, jak bude 16 barev nejnižšího rozlišení rozděleno na jednotlivé základní barvy. Obvykle jsou nastaveny tři barvy.
1: bílá, 16 odstínů
2: bílá, červená, 8 odstínů každá
3: bílá, červená, modrá, 6 odstínů každá
Ačkoli ray tracingové metody počítají libovolný počet barevných odstínů červené/zelené/modré, tak ty nemohou být na ST díky omezení jeho palety zobrazeny.
- - - 'g' Tvar: - - -
určuje velikost gravitace. Následující číslo je reálné:
g 32.0
- - - 'f' Tvar: - - -
určuje prvních pět písmen názvu souboru, používaného při ukládání animace. Zbytek jména je číslo právě vytvářeného snímku. Přípona je .PI1. Dál následuje určení prvního a posledního snímku animace. To musí být kladné číslo menší než 999.
f pearl, 1, 24
Tato sekvence generuje 24 obrázků s názvem PEARLL001.PI1 až PEARL024.PI1. Na jeden obrázek je potřeba 32K, takže tím zaplníte celý 820 kB disk.
CHECKPOINTING - Kontrola
Protože jede PEARLE.PRG velmi dlouho, kontrolní informace o právě vytvářeném snímku jsou ukládány taktéž na disk. Jestliže dojde k přerušení výpočtů (Vypadne vám elektrický proud, odvaří se počítač apod., HEAD), tak můžete opět pokračovat tam, kde jste před vypnutím (odvařením) počítače skončili. POZOR!!!! Ujistěte se, že jste před generováním nové scény smazali soubor PEARLE.CKP, jelikož jinak jej použije program PEARLE.PRG a váš nový PEARLE.IN nebude použit.
To je pro dnešek vše, posílejte mi zajímavé konfigurace, které naleznete a užijte si to!
Allen King
30 Gibson St
Needham Ma.
02192
ucbvax!aking@bfly-vax.bbn.com
přeložil HEAD