Forrás: MindentBele 3D Tutorialok!
Szerző: Szabó István as Stewet (2006 07 30)
Verzió: Blender 2.42
Vector Blur Tutorial
A 2.42 verzióban rengeteg újdonsággal álltak elő a Blender programozói. Eme Tutorial a Vector Blur-t mutatja be. Mint minden eddig nem használt eszközt, meg kell ismerni. Lássuk a szakmai alapokat, mely erősen támaszkodik a honlapon található angol leírásra, melybnől a fordítás készült. Akik nem szeretnének elmélyülni az idegennek ható kifejezések között, nyugodtan lapozzon tovább.
Ton Roosendaal írja a Vector Blur bevezetőjében: "Az eredmények közül az egyik a Render Pipeline, ahol lehetőség volt az átrendeződés számításaira, renderelésre, a tárolásra és feldolgozásra, melynél pixel-alapú mozgásvektorok a mozgás-életlenítés eljárás utáni hatás létrehozását is szolgálhatta volna.
A legnyilvánvalóbb megközelítése a vektor-életlenítésnek, hogy készíteni kell minden pixelnek egy irányított forma-szűrést, és azt egy új képben tárolni. A kezdeti tesztek evvel a módszerrel elégtelennek bizonyultak, úgyhogy valami másra gondoltam."
Egy új megközelítés
Minden pixelt a teljes képben át kell konvertálni 3d modellbe, négyszög polygonnal, mely magába foglalja a mélységi információt pixelenként. Akkor a növekvően jelentkező sebességvektorok vertexenként ezekben a sokszögekben újra építi a mozgást. Azáltal, hogy rendereli és tárolja a lépések egy x összegét, egy képet készít, mely megközelítőleg hasonlít egy mozgás életlenítéshez.
Itt, lentebb lépésenként megmagyarázzuk a Blender Vector Blur szerepét, használatát.
Elő-feldolgozás
Mielőtt létrehozza a lerenderelt objektumot (alakzatot), kiszámítja a sebességvektorokat minden vertexnél, az előző és következő frame-ben. A sebesség-vektorok, a képernyő síkjához igazodva és pixel-méretben értendők. Az eredmény négy lebegőpont-pont-érték: (X,Y) előző pozíció, és (X,Y) következő pozíció.
Ezek (a fentebb említett (X,Y)) értékek a képernyőre való kivetítésen alapulnak. Fontos, hogy viszonylag kis felületeket használjunk. Kerüljük, hogy a kamera látószögével szemben egy nagyobb, félig látható felület legyen, úgy, hogy annak a másik fele ne látszódjon, vagyis majdnem a kamera mögé kerüljön.
Megjegyzés: engedélyezned kell a "Vec" átmenetet a RenderLayer-ben, hogy meghívható legyen az elő-feldogozási (Pre-processing) eljárás.
Rendering
A vertexek normáljait interpolálja (átlagolja), a sebesség-vektorokat kiszámítja minden pixelre és vektorosan tárolja egy átmeneti tárolóban (pufferben).
Ezt a puffert maximális sebességre inicializálja, és csak alacsonyabb sebesség-értékeknek engedi meg, hogy ide betöltse, ezzel megakadályozza, hogy az élsimító pixelek túl nagy sebességet kapjanak.
Az áttetsző (Transparent) felületek renderelését elkülöníti a Blender és ennek kezelését másként generálja, amikor sebesség-vektorról van szó. Itt az alfa-értéket veszi számításba. Amikor egy átlátszó felület alfa-értéke nagyobb, mint egy speciális küszöb, akkor beteszi a sebességet a pufferbe, egyébként a minimális sebességet tölti be ide.
Kompozitálás
Renderelés után használd a Vector Blur csomópontot és kösd össze a "Z" és Vec kimeneteket. A kompozitáló ekkor meghívja a Vector Blur funkciókat:
3D modellé konvertálás
A kép összes pixelét átkonvertálja négyszög polygonná. Tárolja a négyszög vertexeket, az átlagolt Z pixeleket és az átlagolt sebesség-vektorokat, valamit egy ugynevezett "minimum, de nem nulla sebesség-szabályt". Ez utóbbi lényege, hogy a többszörözött felületek vertexei, amikor szomszédos pixelekbe "mennek át", alkalmas legyen az irány meghatározására, de közben ne szakadjanak szét, valamint elkülöníti a mozgó pixeleket a nem mozgóktól.
Maszkolás
Ez a legfontosabb rész, mert el kell tudnunk választani a mozgó részeket a nem mozgó részektől. A felhasználó kézileg beállíthat egy minimum sebességet. (Gondolj a kameramozgásokra!) A puffer ténylegesen hasonlít egy fekete/fehér képre, ahol a mozgást a fehér, a nem mozgást a fekete rész képviseli. A puffer tartalma ezután átmegy egy élsimító eljáráson, ami a négyszögeknek jelöl ki alfa-értékeket. Az eredmény egy elfogadható élsimított maszk.
Tárolás
Az akkumulátor úgy működik, hogy a mintavételezett számot lépésenként megszorozza a sebesség-vektorral és a növekményes együtthatóval. (ez utóbbit úgy kell érteni, mint a gyorsuló mozgásban a pillanatnyi és az azt követő sebesség közti különbség értéke - megj.: ford.) Mindkét minta-érték tárolódik, az "elmúlt" és a "jövőbeli" érték is.
Minden minta az alábbiakat követi:
- A puffer inicializálja ZBuffer-t. Z értékei a nem mozgó pixelek másolatai.
- Az átmeneti rajz-pufferbe létrehoz/töröl.
- Belevon minden négyszöget a pufferbe, a nem látható "Z" értékeket pedig lemaszkolja.
- Kiindulkópontot szolgáltat a mintavételnek, a négyszög-alpha értéket az átmeneti tároló akkumulálja az eredeti kép fölött.
A Vector Blur használata
- Készíts egy RenderLayer-t
- A Compositorban add hozzá a Vector Blur csomópontot, kösd össze a kép csatlakozópontjait.
- Készíts a Vector Blur kimeneten Composite csatlakozást
- Renderelj
Vector Blur panel Gombok:
- Samples (minták): lépés-szám, amit a VEctor Blur használ. Minél nagyobb az érték, annál homályosabb, elmosódottabb a kép.
- MinSpeed (pixelekben kifejezett érték): kis értére célszerű állítani a maszkolás miatt, elválasztja a mozgó részt a nem mozgó részektől. Különösen hasznos a kamera-mozgásoknál, vagy a háttér kis mértékű mozgásánál.
- MaxSpeed: a maximális hossza a pixelek elmosódásának. Akkor használd, ha rendkívül gyorsan mozog az objektum, így korlátozható a nagyobb elkenődés. Nulla esetén nem jelent maximumot.
- BlurFac: a "zársebességet" vezérli, ez valóban a sebesség-vektor tényezőjeként működik.
Tippek
A Vector Blur képernyő-koordinátákat használ a kivetítés során. Kerüld az olyan jelenetet, amikor mondjuk egy sík (plane) fele a kamera előtt, a másik fele a kamera mögött van, Ilyenkor a vektorok hibás eredményt adhatnak.
A legjobb eredményt, viszonylag gyors mozgás során kapsz.
Gyakorlat
Eddig tartott a fordítás és most lássuk a tutorialt. Mielőtt hozzákezdenénk, megjegyzem, hogy néhány dologra nem térek ki, amit ott, ahol ez előfordul, jelzem. Rögtön az első: a jelenet létrehozása. Egyszerű modellt szerettem volna használni, ami funkciójában emlékeztet mindenkit a mozgásra (is). Ha hasonlít egy baseball - bézból :-) ütőre, már jól dolgoztam. (szerencsémre itt nem fog senki értékelni, vagy legalábbis nem a modellt, hanem magát a tutorialt) Röviden: a Vector Blur azt számítja ki, amire érvényesítem, tehát a jelenet szereplőit kellő gondossággal kell megalkotni, mert azokon képileg nem javít.
Tehát az ütőt a kamera szemszögébe beforgattam, pozícionáltam és elkezdtem egy animációt. (nos erre nem térek ki, csupán nagy vonalakban leírom)
1 képkocka - [] (kulcsképkocka meghatározása) és Rot (vagyis csak forgatni fogom)
25 képkockára álltam - elforgattam az ütőt "Z" és "Y" irányban - újabb kulcsképkocka beszúrás, [] és Rot.
[+]-el ellenőriztem az animációt kamera-szemszögből. Elfogadhatónak találtam. :-)
Kiválasztottam a 10. képkockát (Ez animáció teljes idejének majdnem a fele.) és felosztottam a képernyőt. (ezt sem írom le hogyan, de - Split Area) :-)
Ez az a pont, ahol nélkülönözhetetlen a képi infó is. Lássuk!
1. kép
A jobb oldali panelen a nézetváltó menüben keresd meg a Node Editor-t és kattints rá. (Persze jogos a kérdés - miért a jobb oldali panelen? A válasz meglepően egyszerű - csak. :-) Természetesen, bármelyik panelen kiválaszthatod a Node Editor nézetet!)
2. kép
Ekkor még semmi érdemleges nem látható, viszont megváltozott a menü, a menü mellett feltűnik két gomb (az aktív a Material Nodes, a másik a Composite Nodes, ami nagyon hasonlít az UV/Image Editor logojára) - Ez utóbbit aktivizáld és kapcsold be a(z) Use Nodes gombot is. (a fordításkor nem tértem ki rá, de a Nodes csomópontokat jelent)
Mit is látsz? Automatikusan "hozzáadódott" a jelenet. A két panel: RenderLayer és a Composite. Szüntesd meg a közöttük lévő kapcsolatot. (Egyszerűen fogd meg az Image pontnál, húzd el onnan és engedd el az egérgombot) A Composite panelen a kép nem lesz látható, helyette fekete lesz!
3. kép
Szükséged lesz még egy Vector Blur panelre is. Click az Add menüre - a többit itt látod!
4. kép
A panelek elrendezése tetszőleges a képernyőn, én most ezt tartottam célszerűnek. Nézd meg, a panelek kimeneti/bemeneti (csomó)pontjai még nincsenek összekötve. Most ez következik. A megfelelő kimenetet a megfelelő bemenethez húzd át sorban. (Nincs jelentősége a sorrendnek, csupán az Image az Image-hez, a "Z" a "Z"-hez stb.)
5. kép
A csatlakozás után a Vector Blur panelen a bemeneti pont(ok) már nem szerkeszthető(k), utólag csak akkor válik azzá, ha a kapcsolatot megszakítod, akár egyesével is.
6. kép
Nyomj egy []-t, vagyis Render Anim Format Output paneleket kell előhozni. Pontosabban most a RenderLayer panelre válts át! Ha nem aktív az alsó sorban a Passes: alatti, zöld gombok között a "Vec" feliratú, akkor most aktivizáld. (Némi magyarázat: a csomópontok összekötése után a Composite--nak mutatni kellene már az eredmény-képet, de ez itt (fentebb) nem látható, mert a tutor-készítés előtt "elfelejtettem" aktivizálni a gombot. Ha valaki sokat használja majd ezt a Blender funkciót, mentse el így a beállítást alapértelmezettnek - File/Save Default Settings)
7. kép
Nincs más hátra (mint előre), Renderelés előtt kapcsold be az Anim gomb alatt a "Do Composite" gombot és []-el elkészíteni egy rendert. Én mindent alapbeállításokkal használtam. Íme, az eredmény!
8. kép
Ha a kép nem tetszik, állíts a csúszkákon. A Samples (mintavétel) magasabb értéke növeli a kép elmosódottságát bizonyos fokig. A fordításban utánanézhetsz, hogy mit jelentenek a Vector Panel-en lévő (többi) csúszkák. Én már készítettem animációt is ezzel a funkcióval. A képkockánkénti renderelés idejét nem növelte jelentősen. (lásd a fordításban). Sok múlik például az objektum, Vector Blur használatát megelőző animáció beállításán. Gondold végig!
Ebben a tutorban 25 képkocka volt a teljes animáció. Ez PAL rendszerű beállításkor 1 sec-et jelent. Ennyi idő alatt megtett út, - (a kezdő pozíció és végpozíció közötti út) adja a sebességet. Minél nagyobb utat tesz meg az objektum azonos idő alatt, a fizika törvénye szerint, annál gyorsabban halad. Ezt a sebességet érti a program és sebesség-vektornak nevezi. Ezzel azt szerettem volna mondani, hogy az IPO utólagos szerkesztése is megoldás lehet a kívánt eredmény elérésére. (Akkor célszerű használni a MinSpeed/MaxSpeed csúszkákat is, ha az animációban van nagyon gyorsan mozogó tárgy!)
Ennyi!
Remélem érthető volt a fordítás és a tutorial. Sok-sok átolvasás és javítás után, ha maradtak helyesírási hibák a "műben", kérem nézzétek el nekem. A segítő szándék vezetett! :-)