Vivid raytracer
Egyebek
Fotózás

Kamera és környezet beállítások

Elérkeztünk a végkifejlethez, nincs más hátra mint beállítani a környezetet és a kameránkat, és lencsevégre kapni az elképzelt világot. A fő vividfájl mindíg a studio paranccsal kezdődik, ebben állítjuk be a kamerát, képfelbontást stb. Valamiért mégis ezt hagytam a végére. Ennek az az oka, hogy a legtöbb itt található beállítás megértéshez szükséges a többi ismeret, amiket az eddigiekben tárgyaltunk. De nézzük is a studio-t, van paraméter bőséggel:

studio {
      from 5 8 1
      at 0 0 0
      up 0 0 1
      angle 45
      resolution 1024 768
      start 10
      stop 700
      aspect 4/3
      projection flat
      ambient .5 .5 .5
      background bcolor
      backdrop { image "stars.tga" }
      haze 0.05
      antialias quick
      threshold dist
      jitter
      aperture .4
      focal_length 10.5
      samples 24
      no_shadows
      no_exp_trans
      caustics
      depth 40
      hemisphere_samples 8
      subsurface_scatter_samples 6 4 }


From - Kamera pozíciója

A from határozza meg a kamera helyét (vagyis azt a pontot, ahonnan nézünk) a térben, az X Y Z koordinátákkal.


At - Hova nézzen a kamera

Az at mondja meg, hogy hova néz a kamera.


Up - Merre van a "felfelé" irány

Lényegében azt határozza meg, hogy merre van a "felfelé" irány a térben. Az általános értéke 0 0 1 szokott lenni, de lehet változtatni is ezen, viszont fontos tudni, hogy ha a felfelé irányt megváltoztatjuk, akkor értelem szerűen a koordinátarendszert (és benne a koordináták sorrendjét) is máshogyan tájoljuk!


Angle - Látószög

Az angle paraméterhez egy szöget kell mindíg megadni (fokban), általában a 30 - 55 fok közötti érték szokott normál, fényképszerű hatást eredményezni. Az ennél nagyobb értékek már nagylátószögnek felelnek meg, itt már jelentősen torzul(hat) a kép. Sokszor érdemes kísérletezni vele.


Resolution - Felbontás

A renderelt kép vízszintes, majd a függőleges felbontását adjuk itt meg pixelben. Nincs felső korlát tudtommal, de minél nagyobb felbontású a kép annál tovább tart a renderelés, és több memóriát is követel.


Start, Stop - Kezdő és befejező sor

Előfordulhat, hogy nem akarjuk az egész képet leszámoltatni, csak egy részét. Ilyenkor ezzel a két utasítással megadhatjuk, hogy hányadik sortól - hányadik sorig akarjuk a képet renderelni.


Aspect - Képarány

A felbontáshoz kapcsolódó paraméter, a vízszintes/függőleges képarányt jelenti. Például ha a kép 800x600 pixeles lesz, akkor az aspect értéke 4/3. Mivel a vivid tud számolni, így sokféleképp megadható a képarány, például: 0.75 vagy 4/3 de lehet 1024/768 is...


Ambient - háttérvilágítás

A világűrt leszámítva nincsenek tökéletesen fekete árnyékok. Ez azt jelenti, hogy ha egy zárt, sötét szobában bekapcsolom a zseblámpámat, akkor a falak és a tárgyak mindenfelé fogják szórni a fényt, ami szóródik és olyan helyeket is megvilágít gyengén amik árnyékban vannak. De hasonló például a borús idő is, amikor felhők takarják el a napot, de a fénye átdereng a felhőkön, így mindenhova jut belőle... szóval a lényeg, hogy az árnyékok a valóságban nem koromfeketék, hanem halvány (indirekt) megvilágítást kapnak. Az ambient ennek a "háttérvilágításnak" a szimulálására szolgál. Fontos, hogy az ambient fény színét a háttér színe határozza meg! Ha kék a háttér, az ambient is az lesz!


Egy kép ambient nélkül (nem túl élethű):
Ambient

Ugyanez ambient tulajdonsággal:
Ambient

Az ambient-ről nem árt tudni, hogy ez egy relative primitív eljárás, ahogy a fenti képen is látszik, ennek a háttérvilágításnak mindenre hatása van, és túlexponálttá teszi a képet. Leginkább teszteléshez ajánlott használni, mert gyors. Azonban a kész képhez én a hemisphere árnyékolást javaslom inkább (erről már volt szó), amely ilyen eredményt ad:

Ambient


Projection - Vetítési mód

Ez a kép síkra vetítésének módja. Az alábbi módok használhatók:


Flat vagyis sík vetítés, ez az alapértelmezett:
Flat projection

Spherical vagyis gömbszerű, a széleknél látszik a torzulás:
Spherical projection

Cylindrical vagyis hengeres:
Cylindrical projection

Fisheye vagyis "halszem" vetítés, önmagáért beszél:
Fisheye projection


Background - Háttér színe

Ez a tulajdonság határozza meg a háttér színét. Kétféle módon használható. Az első, hogy adunk egy színt a háttérnek RGB értékekkel, ami egy egyszínű, homogén hátteret ad. Példa:

RGB background

A másik lehetséges megoldás, hogy egy gradienst (vagyis színátmenetet) alkalmazzunk háttérnek. Ehhez az alábbi módon kell leírni a parancsot:

background { "greys.map" up 1 0 1 }

A kapcsoszárójelek között megadjuk a MAP fájl nevét, ami tartalmazza a színátmenetet, majd az UP utasítással megadjuk a "felfele" irányt a színátmenethez. A MAP fájl, egy egyszerű szöveges dokumentum, aminek a kiterjesztése .map kell, hogy legyen, belül pedig minden sorban a következő szín RGB értéke kell, hogy szerepeljen. Például így néz ki a példában is alkalmazot greys.map belülről (ami egy fehérből feketébe való színátmenet):

0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
.
.
.
253 253 253
254 254 254
255 255 255

A végeredménye pedig:
MAP background


Backdrop - Háttérkép használata

Színek és színátmenetek helyett akár képet is használhatunk háttérként. Amit fontos erről tudni, hogy a vivid csak berakja a háttérbe a képet, de az nem fog semmilyen hatást gyakorolni a képen látható testekre. Vagyis ha egy krómozott golyót teszünk a képre, akkor azon nem fog tükröződni a háttérkép, és az átlátszó testek (pl. üveggolyó) sem torzítják. Sokszor mégis hasznos lehet... így néz ki:

Backdrop


Haze - Köd

A Köd sűrűségét adja meg. Minél magasabb az értéke, annál sűrűbb a köd. A köd színe mindíg azonos a háttér színével (vagyis a background értékével). Hatása ilyen:

Haze

Haze

Haze

Haze


Antialias - Élsimítás

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


Threshold - Élsimítás küszöbértéke

Az élsimítás mértékét határozza meg. Értéke 0 és 255 között kell, hogy legyen, minél alacsonyabb, annál finomabb az élsimítás (és hosszabb a renderelési idő). Ha nem adjuk meg külön, akkor az alapértelmezett érték 16.

Threshold

Threshold

Threshold


Jitter - zavar

A jitter egy paraméterek nélküli utasítás, hatására egy picike véletlenszerűségi tényező kerül a fénysugarak útjába, ami valószerűbb képet eredményez. Sokszor szemmel szinte észrevehetetlen, mégis érdemes használni!


Aperture - Rekesznyílás

Aki szokott fotózni annak a számára ez egy jól ismert fogalom. Aki nem tudná mi az a rekesznyílás, annak úgy tudnám legegyszerűbben leírni, hogy annak a lyuknak a mérete, amin keresztül kukucskálunk kifelé. Ez (ahogy a fotózásban is), a mélységélességet befolyásolja. Adódik a kérdés, hogy mi is ez az egész?! A valóságban ha megnézünk a fényképet, akkor látható, hogy mindíg az éles a képen, ami a fókuszban van, minden ami ennél közelebb, vagy távolabb helyezkedik el, az elsmosódott. Ennek az elmosódottságnak a mértékét határozza meg az aperture. Önmagában nem használható persze, csak a focal_length paranccsal együtt, ami megadja a fókusztávolságot is.

Aperture

Aperture


Focal_length - fókusztávolság

Az aperture parancs kiegészítője, ez adja meg a fókusztávolságot. Minden, ami ilyen távolságban van éles lesz a képen, ami ezen a távolságon kívül esik (értsd: közelebb, vagy távolabb van), az homályos.


Samples - mélységélesség minősége

A samples határozza meg a fókusztávolságon kívül eső dolgok homályosságának minőségét... na jó, inkább mutatom:


Samples

Samples

Samples


No_shadows - árnyékok kikapcsolása

Ez az utasítás kikapcsolja az árnyékokat a képen, semmi sem vet árnyékot.


No_exp_trans - "fényelnyelés" kikapcsolása

Leegyszerűsítve a dolgot, ezzel a paranccsal kikapcsolhatjuk, hogy a fény veszítsen energiájából az átlátszó anyagokon áthatolva.


Caustics - égetés (fényfókuszálás)

Egy görbe üveg felület nem csak átengedi, de fókuszálja, illetve szórja is a fényt. Remek példa erre a nagyító, amely egy pontba képes sűríteni a fénysugarakat. Normáls esetben ezt nem modellezi a vivid, viszont ezzel a kapcsolóval már igen! Nézzük csak az árnyékot!


Samples Samples


Depth - visszaverődési limit

A depth paranccsal maximálhatjuk a visszatükröződések, és fénytörések számát. Minimum értéke 1, ilyenkor nincs tükröződés, maximum értéke 40. Ha nem adjuk meg, akkor a default érték a 40.


Depth

Depth


Hemisphere_samples - körkörös árnyékolás minősége

Ezzel a paranccsal állítjuk be a minőségét a hemisphere árnyékolásának. Minél jobb a minőség, annál tovább tart a számolás:


Hemisphere samples

Hemisphere samples

Hemisphere samples

Subsurface_scatter_samples - átderengés minősége

Ezzel a paranccsal állítjuk be az átderengés (subsurface) minőségét, hasonlóan az előző utasításhoz. Meglehetősen nagy számolási időket tud produkálni!


Végszó

Ezzel a fejezettel el is jutottunk a végére, aki idáig elolvasta annak gratulálok a kitartásához! Habár tudom, hogy a vivid egy rég idejétmúlt, és meglehetősen szerény képességekkel rendelkező raytracer program, mégis jó szívvel ajánlom bárkinek, aki szeretne megismerkedni a 3D grafika alapjaival (és nem ijed meg egy kis programozástól).

Mivel a vivid készítője (Stephen B. Coy) nem írt teljes dokumentációt hozzá, lehetnek még rejtett képességei a programnak. Én mindenesetre ebben a leírásban igyekeztem kitérni ezen dokumentálatlan képességek egy részére is (azon részekre, amelyekre magamtól rájöttem).

Bár az idő elhaladt a vivid felett, egykor "high end" szoftvernek számított, és sok - mára ebből élő - profi kezdte vele a pályafutását. Ha másért nem is, de az ez iránti tiszteletből is megérte elkészítenem ezt a leírást...

foot