"Hordó modellezése és Textúrázása"
Részletek a hírekben!
 
   
 
 
Naprakész hírek...                                         240 fórumozó...                                         Számos magyar oktatóanyag...                                         Videóanyagok magyarul is...                                         Letölthető fájlok...                                         Textúrák...                                         Összegyűjtött linkek...
 
  Rólunk
Hírek
Fórum
Kihívás
Kapcsolatok
Galéria
Aktuális, 2015
2014, 2013
2012, 2011
2010, 2009
Leírások
Kezdő leckék
Haladó leckék
Egyéb leírás
Billentyűk
Videóanyagok
Kezdő videók
Haladó videók
Egyéb videók
Tippek, trükkök
Letöltés
BLEND fájlok
Textúrák
Linkajánló
Archivum
Projektek
BlendRace SokoTruck
Flipper MB game
 
 

Blender leírások és oktató anyagok

 

Forrás: a http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm

Fordította: stewet as Szabó István

Radiosity

Egy egyszerű jelenet

Kezdjük egy (az ábrákon is látható) egyszerű tér létrehozásával – szoba 3 ablakkal.


1. A tér I.


2. A tér II.


3. A tér III.

Van néhány pillér és beugró, melyek érdekes árnyékhatást tudnak produkálni. Válasszuk ki a felületek közül az egyiket és nézzük ezen a világítást!


4. A kiválasztott felületet

A kiválasztott felületet – a képen is látható, az egyik oszlop ablak felé néző oldala - az eljárás felosztja kisebb területekre. Ezen kicsi terület a patch, magyarul folt. Remélhető, hogy az írás végén a kedves olvasó (felhasználó) is érteni fogja a „folt” fogalmát.

Nade haladjunk tovább…

A felosztott felület foltokból épül fel, és most megpróbáljuk ezeknek a foltoknak a szemszögéből nézni a világot.


5. A kiválasztott folt

Kiválasztottunk egy foltot.

… és most képzeld el, hogy te vagy ez a folt!

Gondold végig… ebben a helyzetben mit látsz a világból?


6. Kilátás a foltból

(remélhető, hogy a kedves olvasó is valami hasonlót képzelt el még az előző fejezetben leírtak után – megj.: a fordító)

Tehát a foltból való „kinézéskor” ezt látjuk. A szoba nagyon sötét, mert fény még nem lépett be sehonnan. Az élek láthatósága nem része a jelenetnek, csak azért látszik a fehér körvonal, hogy jobban érthető legyen a vizuális információ.

A folt szemszögéből jól látható majd a teljes fénymennyiség, amit ki tudunk számolni, egészen addig, míg a fény el nem éri a foltot.

Azt a fényt, amit a folt láthat, TELJES BEESÉSI FÉNY-ként kell értelmezni.

A folt a szobában most a külső sötétséget látja. Miközben a beeső fény összeadódik, láthatnánk, hogy az a foltot közvetlenül nem éri el. Ezt a foltot ilyenkor „sötéten meggyújtottnak értelmezzük.


7. Kilátás egy alacsonyabb foltból

A pilléren, egy másik kiválasztott folt nézőpontjából már látható a fényforrás – hívjuk most az egyszerűség kedvéért Napnak – a baloldali ablak felső sarkában. Ekkor az összeadódó fény látható lesz, ami nagyon erős fényt jelent.

Ezt a foltot ilyenkor „fényesen meggyújtottnak” értelmezzük.


8. Világítás a pilléren

A foltok mindegyikénél értelmezett ismétlődő folyamat – a fény folyamatosan „jön” a fényforrásból - végeredményeként a beeső fény hatására látható, hogy milyen megvilágítást kap a pillér. (pontosabban a pillér felosztott egyes foltjai)

A pilléren felfelé haladva látható, hogy mely foltok látják teljesen, melyek kevésbé teljesen és melyek egyáltalán a Napot. Azok a foltok, melyek elől az ablak szegélye valamely mértékben eltakarja a Napot, kevésbé lesznek „kigyújtva”, homályosnak értelmezzük.

Ahogy az látható, a természetes árnyék létrejön a jelenetben, annak függvényében, hogy a felosztott felület – maga a folt – milyen mértékben látja a fényforrást.


9. A teljes szoba kigyújtása – először

A szobában lévő, összes foltra kiterjedő ismétlődő eljárás adja a jelenetet. Minden sötétnek látszik, kivéve azokat a felületeket, melyek a Naptól kaptak fényt.

Tehát megállapíthatjuk, hogy ez nem éppen a legszebben létrehozott jelenet bevilágítás és renderelés szempontjából.

Figyelmen kívül hagyja, hogy a világítás nehézkes, de javíthatunk a helyzeten, ha több felosztást – foltot – alkalmazunk. Összefoglalva: a lényeg, hogy a szoba sötét, kivéve azokat a területeket, melyek látják a Napot.

Nade ezzel itt nincs vége… Nézzük a továbbiakat!


10. Kilátás a foltból az első verzió után.

Látható, hogy az a folt, ami eddig nem látta a napot, most lát olyan, más foltot (foltokat), amiket a Nap kigyújtott. Ebben a folyamatban ez a folt – amiből most „kinézünk” – kissé világosabb lesz.


11. A teljes szoba kigyújtása – másodszor

Amikor a beeső fény minden folton „kiszámítódik”, látható, hogy az eddig sötét folt (foltok) kigyújtódnak. A szoba elkezd valószerű megjelenést ölteni. Ennek oka, hogy a beeső napfény visszaverődik egyrészt a padlóról, másrészt a falakról vagy más felületekről. (pillér, beugró)


12. A teljes szoba kigyújtása: harmadszor

A harmadik folyamat szemlélteti, hogy a beeső fény kétszeresen verődik vissza a felületekről. A folyamat így halad lépésről lépésre, ami lassúnak tűnhet, de a jelenet már így is látható, hogy világosodik.

A 16. lépésnél már ekkora változás nem tapasztalható. A radiosity eljárás lassan halad a végső kialakítás felé. Minden számítás után csak kissé változik a jelenet. Ez függ a jelenet „bonyolultságától”, a felszínektől. A számítások egymásutánisága tarthat néhányszor, de lefuthat több ezerszer is. Rajtad áll, hogy mikor állítod le a folyamatot és tekinted a jelenetet befejezettnek.


13. A számítás hatodik és a tizenhatodik lefutása után

A FOLTOK

A leíró algoritmus részletesebben (és remélem érthetően is):

Emission: A világban – értsd: a valóságban - néhány tárgy fényt bocsát ki és bizonyos mértékig fényt nyel el. Egy jelenetben meg kell különböztetnünk ilyen tárgyakat, amik „fénykibocsátók”. Vagyis vannak foltok, amik fényt bocsátanak ki, de a legtöbbjük nem. Ezt a folt-tulajdonságot nevezzük emissziónak.

Reflectance: Amikor a fény egy tárggyal találkozik, akkor annak egy részét elnyeli (ezt a radiosityben elhanyagoljuk), a többit visszatükrözi. Ezt a fénymennyiséget visszaverődési együtthatónak nevezzük.

Fontos megemlíteni két dolgot: mennyi fény esik a foltra, és mennyi hagyja el. A beeső fényt incident_light-nak a visszaverődő fényt excident_light-nak nevezzük. Most, hogy tudjuk a folt(ok) tulajdonságainak fogalmát, ideje, hogy – hacsak leíró nyelven is – meghatározzunk egy foltot.

Structure
    PATCH
    emision
    reflectance
    incident
    excident
end structure

(A leírás programozási részének fordításától itt eltekintek – a fordító)

Radiosity megvalósítása

Az első dolog, amivel a radiosityben foglalkoznunk kell, meg kell oldania annak a problémáját, hogy megnézzük a világot mindegyik folt nézetének a pontjáról. Használhatunk egy un. Halszem-objektív nézetet, hogy lássuk, mit lát a folt a jelenetben. Ez viszont nem nagyon gyakorlatias.

The Hemisphere – A Félgömb

A hely, amit a folt lát, egy félgömb belső felületén, perspektivikusan így néz ki. (Szokták halszem-optikának is hívni, most nem térek ki a látott és a valódi halszem-optika közötti különbségre) A fekete vonalak a horizontális és vertikális felezőt mutatják. Ha a jelenetben egy kamerát helyeznénk el, és képet alkotnánk a folt szemszögéből, valami ilyet látnánk. Ennek a módszernek egyik hátránya, hogy a beeső fény – beleértve a foltra és a foltról visszaverődő fényt is - kiszámítása matematikai értelemben elég körülményes


14. Félgömb nézet


15. Renderelt kép

HemiCube – Félkocka

Tehát keresni kell egy másik módszert, ami a számítást gyorsabban és pontosabban elvégzi. Ez pedig a HemiCube – Félkocka eljárás. A Félkocka eljárásba helyezett kamera renderelt képe pontosan megegyezik a Félgömb módszerrel létrehozott renderelt képpel.


16. Félkocka eljárás I.


17. Félkocka eljárás II.

Képzeld el, hogy a Félkockát „szétnyitod”. Mit is látnál? Segítek – nézd meg a lenti képet!


18. Szétnyitott félkocka

Ezzel azonban felmerül egy újabb probléma. A kiterítés azokon a tárgyakon, amik a bal/jobb/lent/fent területre kerülnek bizonyos torzulások keletkeznek. Ha arra használtad a Félkockát, hogy kiszámítsad a teljes beeső fényt, ami egy foltra esik, és együtt adtad össze ezeket az értékeket, ami pixelként jelentkezik a képalkotásban, a Félkockában torzulás jön létre a tárgyakon, amik a sarkokban helyezkednek el.

Hogy ezt kiküszöböljük, szükséges elhalványítani a pixeleket az éleknél és sarkoknál, annyira, hogy minden tárgy egyformán kerüljön a beeső fénybe. Tudom, nem könnyű megérteni, de nézd meg a lenti ábrát magyarázatul.


19. Félkocka eljárás III.


20. Félkocka eljárás IV.

Jól látható a fentebb leírt jelenség. A zöld gömb, a kamera látómezőjében nem szenvedett torzulást, de a másik két gömb (piros és kék színű) nem a való képet mutatják. Ezt a jobboldali képen ábrázolt módon lehet kompenzálni. A felszín fényessége függ a kamera nézőpontja és a sík által bezárt szög koszinuszától. (Ezen fordítás nem tér ki a módszer tárgyalására, de a lényeget Lambert koszinusz törvénye jelenti. Vagyis: Egy felszín látszólagos ragyogása arányos a felszín normálisa, és a fény iránya által bezárt szög koszinuszával – megjegyzés: a fordító)

Gyakorlati példa

Ennyit arról a matematikai és egyéb háttérről, amivel reményeim szerint érthetőbbé vált ennek az eljárásnak az alapja, de nézzünk egy gyakorlati példát a fentebb leírtakra:

Indítsuk el a Blendert és hozzuk létre a képen látható jelenetet.


21. Minta I.


22. Minta II.

A második képen Edit Mode-ban van a jelenet, csak azért, hogy látható legyen a felületek normálja, ami fontos lesz a későbbiekben! Lássuk, az egyes beállításokat. A legfontosabb, a mennyezeten lévő kis négyzetek. Ezek lesznek a fényforrások, vagyis amikor létrehozzuk őket, adjunk nekik emit értéket ami az ábrán látható:


23. Beállítások

Az asztal felett látható egy fekete vonal, ami valójában egy plane. Fontos, hogy ő nem vesz részt a jelenet radiosity számításában, egyetlen szerepe a fény/árnyékhatás tompítása. Normálja felfelé álljon. (Az emittáló tárgyak, amikor kibocsátják a fényt, az nem megy át tárgyakon, hanem visszaverődik róluk, halad tovább és egészen addig „él”, míg energiája el nem fogy, vagy ameddig a számítás műveletét meg nem szakítjuk.)

Amikor készen vagyunk, Joinoljuk (egyesítsük – [+]) az előbb említett plane kivételével az összes objektumot. Nem kell megijedni, ilyenkor az egész jelenet egy objektum, vagy ha úgy tetszik tárgy lesz, 0.246 emit értékkel. Váltsunk át radiosity nézetre ezzel a kapcsolóval:


24. Radiosity kapcsoló


25. Panel I.

Collect Meshes: A látható mesh-eket konvertálja foltokká

Replace Meshes: Lecseréli a régi jelenetet a kiszámított jelenettel

Add new Meshes: A kiszámított jelenetet hozzáadja a régihez

A zöld gombok a megjelenítés minőségére vannak hatással

ElMax/ElMin: A felosztandó elem méretének max/min beállítása

PaMax/PaMin: A foltok méretének max/min beállítása

Limit Subdivide: a foltok alfelosztása (kisebb rész(ek)re)

Click a Collect Meshes gombra:


26. Panel II.

Go: indítja a számítást

SubSh Patch/Element: hányszor tesztelje a környezetében érzékelt folto(ka)t/Elemeket

Subdiv Shoot Element: újabb felosztásért, magas energia érzékelésének változtatása és új felosztás (Elemek/Foltok)

MaxEl: Elemek max beállítható értéke

Face Filter: Extra simítás

Element Filter: a szűrő elemeiről eltávolítja az élsimítást

Remove Doubles: duplák eltávolítása

Lim: a duplák eltávolításának értéktartománya

Nos nézzük, mit látunk, ha a GO-ra kattintunk:


27. GO

A fentebb említett zöld gombbal most megmutatom, hogy mit is osztott fel az eljárás


28. Wire


29. Solid

Nos nincs más hátra, választani kell, hogy a létrejövő jelenetet megtartva és a régit „eldobva” folytatjuk a munkát: Replace…, de megtarthatjuk a régi jelenetet és hozzáadhatjuk az újat az Add… gombbal.

Ne feledjük a következőt: Bármelyik módszert is választjuk, ez a jelenet 1 objektum. (az egészből újabb részeket képezni sem ördöngősség, de nem része a tutorialnak)

Kilépni a Radiosity-ből a Free Radio Data gombbal lehet.

Tartozom még egy megjegyzéssel: Ez az eljárás nyugodtan alkalmazható (UV) textúrázott jelenetekben is. Mivel a foltok létrehozása során a számítás „hozzányúl” ezekhez a koordinátákhoz, az utólagos korrekció szinte megoldhatatlan, de nem lehetetlen. Viszont a jól feltextúrázott objektumokhoz utólag nem kell hozzányúlni.

Saját tapasztalatom és korábbi, ehhez az eljáráshoz kapcsolódó leírások, fórumok ajánlata szinte egybehangzó volt, mégpedig abban, hogy sok-sok kísérlettel tapasztalható ki az alapértelmezett beállítás. Kiindulásnak javaslom, hogy a jelenet face számának a kétszerese esetleg majdnem háromszorosa is beállítható MaxEl értékének.

Tisztában vagyok, hogy nem beszéltem a Radiosity panel Radio Render részéről (a legtöbb esetben az alapértelmezett beállítások is kielégítő eredményt adnak), és sok egyébről, azonban bízom benne, hogy ennyi segítséggel a kezdeti nehézségen hamar túllendülhet a kedves olvasó.

Figyelem: a beállításoktól függően a számítás hosszú időt is igénybe vehet, de az eredmény kárpótólni fog mindenkit. Csak javasolni tudom akár a Blender belső renderelője, akár a Yafray kiegészítőjeként ezt az eljárást.

Lássunk néhány képet az elmondottak illusztrálására:


30. Minta I.


31. Minta II.