
 Miutn a Studiot, s a fnyforrsokat 
belltottuk   jhetnek   a   trgyak. 
Mieltt  nekiesnnk  egy  object  raj-
zolsnak,  annak felszint meg  kell 
hatrozni.   Egy   felszin   definci 
nemcsak egy trgyra szl, hanem  addig 
rvnyben  marad, mg egy msikat  meg 
nem adunk.

        surface {
        	diffuse r g b
        	ambient r g b
        	specular r g b
        	shine pow	
        	transparent r g b
        	ior  num	
        	fuzz magnitude
                no_antialias
        }
        
 "diffuse"  -  A fellet szine,  ha  a 
fnyforrsbl teljesen fehr fny ri. 
0  0  0 fekete, 1 1 1  fehr  objectet 
jelent.

 "ambient"  - Az object szine, ha  nem 
kap  semmilyen  fnyt.  Ez  a  parancs 
plusz az elz a fellet  rnykols-
hoz kell.

  "specular" - A fellet fnyvisszave-
r  kpessge. 1 1 1  teljesen  tkr 
felletet  jelent. Az rtkek  az  RGB 
komponenseket tartalmazzk. Pl: 1 0  0 
csak a vrs komponenst veri vissza a 
fnynek.  ltalban  mind  a  3  rtk 
megeggyezik.

  "shine"  - A csillog fellet   meg-
hatrozja.   Alacsony  rtkek   nagy 
felletet, (1..10) nagy rtkek  pedig 
kis  csillog felletet,  eredmnyez-
nek. (1000) Ha az rtket egy szin  is 
kveti  a szokott RGB formban  akkor, 
az adott szint fogja hasznlni  csil-
logsknt.

 "transparent"  - A  fellet  fnyte-
reszt kpessge. 1 1 1 esetn a  fny 
szinte   akadlytalanul   thatol   az 
objecten,  azaz  vegknt  funkcionl. 
rdekes  kpet  kapunk ha  az  rtket 
pl.:  1  0 0-ra lltjuk.  Ilyenkor  a 
fny RGB komponenseibl csak az  elst 
engedi  t,  azaz  minden  vrs  lesz 
mgtte. (vrs veg)

 "ior"  -  Index  Of  Refraction  azaz 
visszaverdsi  mutat.  Lnyegben  a 
fnytrst  szablyozza. vegnek  leg-
jobb  a  1.1  vagy  az  1.3-as  rtk, 
gymnt effect pedig 2.6-nl van.

 "fuzz"  -  A fny  beessi  pontjnl 
aktivizldik.  A fellet  fnytrst 
vltoztatja meg. 0.01 s .3 a javasolt 
rtk. Ekkor a csillog fellet alakja 
vltozik meg.

 "no_antialias"  a  studio   megegyez 
nev kapcsoljt kapcsolja ki.

  Pldk:

        
        // Egyszer vrs fellet

surfaace { diff 1 0 0 }
        
        
        // Tkrfellet

surface {
        spec 1 1 1
      	shine 100
        }
        
        // veg, kis visszaverdssel

surface {
   	spec .3 .3 .3
       	shine  30
       	trans .7 .7 .7
       	ior 1.2
        }

























 A Vivid 1.0-ban is szerepelt mr ez a 
struktra. Feladata, hogy egy egyszer 
felletet eszttikusan bonyolultabbnak 
tntessen fel. Ezt a makrt a felszni 
definciban kell megadni.
Pl:

surface {
          diff red
      bump {
        	wave {
        		center 1 2 3
        		wavelength 2.0
        		amplitude 0.2
        		damping 0.9
        		phase 0.0
        	}
        }
     }

 Mint lthat a "Bump" szval vezetjk 
be a dolgot, majd azon belll meghat-
rozhatjuk,  hogy  milyen   algoritmust 
vlasztunk.  Jelen  esetben   hullmos 
felletet  vlasztottunk. Ezt  a  wave 
struktura  vezeti  be, amin  belll  a 
"center" a hullmok kzppontjt adja 
meg,   a   "wavelength"   a   hullmok 
tvolsgt adja meg, mg az  "amplitu-
de"  azok nagysgt. A  "damping"  di-
rektva  azt kzli a programmal,  hogy 
az  amplitud,  mennyivel   cskkenjen 
ahogy  a  tvolsg  nvekszik.   Jelen 
esetben ez 10%. A "phase" a  kezdf-
zist  adja meg. Ha ezt Animljuk  gy, 
hogy  rtkt 0...1 kztt  vltoztat-
juk,  akkor a fellet hullmozni  fog. 
Termszetesen  1 Bump-on  belll  tbb 
alstruktrt  is nyithatunk, ami  igen 
nagy lehetsgeket nyjt...

 Legalbb ilyen kreatv a "Turbulence" 
direktva is:

        
        bump {
        	turbulence {
        		scale 1 1 1
        		offset 0 0 0
        		amplitude .5
        		terms 4
        	}
        }

 Ezt  a  makrt  a  "turbulence"   sz 
vezeti be, ami igen sokat sejtet. Itt 
a "scale" sz x y z rtkei a megadott 
irnyba  a  hullmzs  nagysgt  adja 
meg. Ha a 3 rtk nem egyforma,  akkor 
igen j alakzatokat kaphatunk. 


Az "offset" el is hagyhat, a  "scale" 
utstst   pontosthatjuk   vele.   Az 
"Amplitude" itt is a hullmzs nagys-
ga,  amplitudja. A  "terms"  kapcsol 
azt  adja meg, hogy a Vivid   hnyszor 
szmolja   ki  a   felszint.   Nvekv 
rtkeknl   -rtelemszeren-    egyre 
tbbszr.
 
 A  wave s turbulence struktrk  egy 
Bump-on belll is szerepelhetnek, nem 
kell jbl Bump-ot nyitni.

 A  rajzolt felletek is igen  hasznos 
kis  aprsgok.  Itt  lnyegben  azt 
adjuk meg, hogy a trgy felletn  2db 
felszin  definci  milyen  sorrendben 
vltogassa  egymst. Ezt a  strukturt 
is a Surface-n belll helyezzk el:
        
surface {
       	texture {
       		pattern checker
       		scale 2 2 0
       		offset 0 0 0                 
       		fuzz 0                       
       		blend 0                      
       		surface { diff black }
       		surface { diff white }
       	}
     }

Itt a "texture" sz nyitja a  blokkot. 
Ezutn  kvetkezik a blokk  fajtjnak 
kivlasztsa.   Jelen  esetben  ez   a 
"checker". Ez a fajta definci telje-
sen 3D-ben keveri ssze a 2  felszint. 
A  "scale" s az "offset" itt a  mega-
dott  irnyban  trtn  vltozsokat 
definljk.  Ha valamelyik rtk 0  - 
jelen  esetben  a Z - akkor  abban  az 
irnyban  csak egyfajta  felszin  lesz 
rajzolva,  vlts  nem  trtnik.   Az 
"offset"  el is hagyhat,  akrcska  a 
"fuzz"  s a "blend". A kt  "Surface" 
blokk  termszetesen a  felszinek  de-
fincii.

 surface {
       	texture {
       		pattern spherical
       		scale 2 2 0
       		radius 1
       		radius 2
       		surface { diff black }
       		surface { diff white }
       	}
     }
        



 Ez a definci az n. szrt felletet 
rja   le.  Hogy  ezt  vlasszuk,   a 
"Pattern" utn a "spherical" parancsot 
adjuk  ki. Itt a "scale" ugyan  azt  a 
funkcit  ltja  el mint  a  "checker" 
blokkban.  A 2 "radius" azt  a  hatrt 
szabja  meg ahol az eggyik  felletrl 
tkapcsolunk a msikra.  A kt "Surfa-
ce"  blokk termszetesen  a  felszinek 
defincii.
  
         
surface {
       	texture {
       		pattern noise
       		terms 4
       		scale x y z
       		surface { diff white }
       		surface { diff black }
       	}}

  Nos, ez egy aranyos Surface.  Hatsa 
olyan   mintha  a  felszin   grnitbl 
lenne. A "terms" s "scale" eggyrtel-
m. Itt is hasznlhatak a "blend"  s 
a "fuzz" paramterek. Ezek 0...1 tart 
rtkeik az tmosst hatrozzk meg  a 
2   fellet  kztt.  A   "blend"   az 
tmosssi  fellet  szlessgt   adja 
meg, mg a "fuzz" egy kis zavart  kelt 
a fnysugarak kzt.

 A  kvetkez plda az eddig  ismerte-
tett   defincik   kombinlhatsgt 
hivatott bemutatni :

surface {
       	texture {
       		pattern checker
       		scale 10 10 0
       		surface { diff black }
       		surface {
       		texture {
       		pattern checker
        	scale 1 0 0
        	blend 0.7
        	turbulence {
      		amplitude 3
      			terms 4
      			}
      		surface { diff white }
      		surface { diff red }
      			}
       		}
       	}
  }
        


 A  program tartalmaz Mandelbrot  fel-
szint  is,  de ez -  A  program  rja 
szerint  is  -  igencsak  kezdetleges. 
Mivel igretet tesz, hogy a  kvetkez 
verzi egy jobb algoritmust tartalmaz, 
ezrt  a leirst inkbb  akkorra  ha-
lasztom ...


