Vivid raytracer
Egyebek
Fotózás

Az első lépések

Rendszerkövetelmények

Először is nézzük meg a rendszerkövetelményeket (system requirements), vagyis mi szükséges a VIVID futtatásához: A többi már csak ajánlás:

Semmi másra nem lesz szükséged ezeken felül, csak a józan eszedre és a kreativitásodra. Ja igen, el is felejtettem, egy számológép és papír/ceruza jól tud jönni!



Telepítés

VIVID-et nem kell telepíteni. Első lépésben töltsd le szépen innen, ne aggódj, 370Kb az egész. Csinálj neki egy könyvtárat valahol a merevlemezeden. Aztán tömörítsd ki ebbe a mappába a zip-et. Ezzel fel is telepítetted a gépedre, használhatod is.

Az alábbiakat találod a vivid.zip-ben:

Beállítás

Igazából beállítani sem kell. Ez csak egy darab fájl és kész. Egyetlen dolog amit esetleg érdemes beállítani a windows-ban, hogy a környezeti változóknál megadhatod a vivid segédfájlok elérési útvonalát, így nem kell minden projekt mellé odamásolgatni azokat a fájlokat amiket használni akarsz. Ezek a segédfájlok tartalmazhatnak előre definiált színeket, felületeket, színátmeneteket stb. ez sokszor könnyíti a munkát, így érdemes felvenni a környezeti változók közé. Ezt kell beírnod a parancssorba:

set vivid=c:\vivid

Értelem szerűen a c:\vivid helyére azt a mappát kell megadnod ahol a VIVID segédfájlok vannak (INCLUDE mappa). Megadhatsz akár több mappát is, egymástól pontosvesszővel elválasztva:

set vivid=c:\vivid\colors;c:\vivid\models;d:\foo\bar

A vivid először mindig abban a mappában keresi a segédfájlokat amiből elindítottad, de ha nem találja, akkor megnézi, hogy beállítottad e a környezeti változót, ha itt sem találja ami kell neki, akkor szól.



A VIVID működése

Ez egy parancssorból futtatható raytracer, nincs grafikus felülete (ahogy több más raytracernek sem). Egy sima, egyszerű szövegfájlban (amit a későbbiekben vivid fájlnak fogok hívni) írod le a virtuális világodat, majd ezt a fájt paraméterként megadod a vividnek, aki „lerendereli” neked, és elmenti egy képként.

A számolási folyamat (renderelés) soronként megy, vagyis a kép jobb felső pixelétől kezd számolni a VIVID, és mikor végigér az adott soron, akkor beleírja a képfájlba, majd folytatja a következő sor első pixelétől. A számolás közben mindig írja, hogy hol tart (de a képet nem rajzolja ki közben!), így renderelés közben is nyomon tudod követni a dolgok állását.

Renderelés közben a CPU-t 100% -ban lefoglalja, tehát mást nem nagyon fogsz tudni csinálni a gépen. Kivéve, ha többmagos processzorod van, mert ebben az esetben csak az egyik magot terheli le 100%-ra (vagyis például egy 2 magos CPU-nál, az egyik mag 100%, a másik 0%, így az összes terhelés 50%-os lesz).



Hogyan futtasd

Nyiss egy parancssort, navigálj a vivid mappádba és írd be, hogy: Vivid.exe
Kapsz egy szép helpet, így néz ki:

VIVID paraméterei

Ezek a paraméterek amiket megadhatsz a rendereléshez. Nem kötelező megadni egyiket sem, de sokszor hasznos lehet némelyik. Nézzük meg őket sorban:

vivid.exe [paraméterek] [vivid fájl neve]
Ez maga a futtatás, először megadjuk a paramétereket (nem kötelező), majd a vivid fájl nevét (kötelező).

-s [szám]
Ezzel a kapcsolóval állíthatjuk be, hogy renderelés közben mennyi információt nyújtson.
0 = Nincs semmi információ kiírva renderelés közben (semmi értelme).
1 = Alapadatok (fájlnév, fényforrások és testek száma, valamint a kép felbontása).
2 = Ugyanez, csak megy mellette egy forgó kis pálcika.
3 = Részletes info (ez az alapértelmezett), részletek lentebb.
4 = Ugyanez pálcikával.

-r
Na ez az egyik leghasznosabb paraméter! A félbehagyott számolásokat folytatja, attól a sortól ahol félbeszakadt. Mivel a VIVID soronként halad a képen, így megnézi, hogy létezik e már a képfájl (ha félbeszakítjuk a számolást, akkor ugye ott marad a félkész kép), ha igen, akkor megnézi, hogy hányadik sorig van benne adat, és innen folytatja.

-i [kép szélessége (pixel)] [kép magasága (pixel)]
A kép felbontását állíthatjuk be vele. Akkor használatos, ha el akarunk térni a vivid fájlban megadott mérettől…

-l [kezdő sor] [utolsó sor]
Ez is jópofa, megadjuk, hogy a kép hányadik sorától, hányadik sorig számolja le. Ennek akkor lehet értelme, ha nagyon sokáig tartana az egész kép kiszámítása, de mi csak egy részletére vagyunk kíváncsiak. Mondjuk egy 800 x 800 pixel felbontású képet készítünk, de mielőtt leszámoltatjuk, szeretnénk ellenőrizni, hogy a kép közepén jó lesz e minden, ilyenkor megadjuk például, hogy a 300-as sortól a 500-ig számoljon csak…

-n
Kikapcsolja az árnyékolást, nem lesznek árnyékok a képen. Ez gyorsítja a számítást, kiváltképp szórt fényforrásoknál. Kísérletezgetéskor jól jön.

-a
Az antialiasing (élsimítás, finomítás, kidolgozás) mértéke. Alapvetően 4 féle mód lehetséges:
None = Nincs. Ilyenkor meglehetősen darabos, pixeles lesz a kép, viszont gyorsan elkészül. Teszteléshez jó.
Quick = Minimális szépítést végez, teszteléshez ideális mert gyors.
Corners = A pixel sarkaira vesz egy fénysugarat, a minősége jobb mint a none opciónak, és hasonlóan gyors. De nem az igazi
Adaptive = Professzionális, itt addig osztogatja fej a pixelt és bombázza további sugarakkal a felosztott részeket, amíg nem „tökéletes” a szín. Ez a leg időigényesebb mód, de ennek a legjobb a végeredménye.

Antialiasing none Antialiasing quick
Antialiasing: NONE Antialiasing: QUICK

Antialiasing corners Antialiasing adaptive
Antialiasing: CORNERS Antialiasing: ADAPTIVE

-o
A képfájl nevét adhatjuk meg, ha nem adjuk meg ezt a paramétert, akkor a képnek ugyanaz lesz a neve mint a vivid fájlnak, amiből számoltatjuk (például a vivid fájl neve: valami.v akkor a kép valami.tga lesz).

A többi paramétert most hanyagoljuk.



Számolás közben…

Miközben számol a VIVID sok információt közöl velünk. Ezek nagy része nem túl hasznos, de vannak köztük érdekes információk. Ha nem tiltottuk le a –s paraméterrel, akkor alapesetben így néz ki a renderelés közben:

Antialiasing corners

A lényeges dolgokat említem csak. Szóval az jobb felső részen a File „mezőben” található a fájlnév, a lefoglalt memória (memory allocated), alatta a felbontás (resolution), majd azt követően a legfontosabb adat látható még pedig az, hogy épp hányadik sornál tart a számolás (current line). Itt a képen már elkészült a számolás, és ha jobban megnézed akkor 254 sort ír csak, holott a kép 255 pixel magas. Ez azért van mert a vivid a 0. sortól számol.

Ezek alatt a Time szekcióban látod, hogy mióta számol (elapsed time), átlagosan meddig tart egy sor számolása (ave time/line), utána az előző sor számolásának ideje (previous line), majd két saccolás arra vonatkozólag, hogy még kb meddig fog tartani.

A Model részben találod a fényforrások számát (lights), a képen található alaptestek számát (primitives). A többi információ nem bír sok gyakorlati jelentőséggel, így aki akar az járjon utána, nem lesz rá szükségünk.

Ezzel át is tekintettük a VIVID működését dióhéjban, remélem érthető volt valamennyire. Most pedig jöhet a nyelvezet és fájltípusok…



foot