SNEWS 21 - BLENDER

Best things in life are free. Akár ez is lehetne a jelmondata az egészen professzionális és kemény milliókba kerülõ programokkal is bátran versenybe állítható Blendernek. Hogyan is született ez a csöppség, és hogyan jutott el hozzánk?

Egy bizonyos NeoGeo névre hallgató holland animációs stúdió, amely többek között a Philipsnek is dolgozott eljutott arra a pontra, amikor az addigi 3D programjait és eszközeit már egyszerûbb volt a további toldozgatás-foltozgatás helyett a nulláról újraírni. Ez 1995-ben meg is kezdõdött, és így született meg az a program amit ma Blender néven ismerünk.

A programot NaN (Not a Number) néven egy újonnan alapított cégben fejlesztették és népszerûsítették tovább. A céljuk egy minél több platformon futó, és nem utolsósorban ingyenes 3D program megalkotása volt. A NaN természetesen nem levegõbõl élt: a bevételeit a Blenderhez járó pénzbe kerülõ szolgáltatások hozták. A Blender elsõ bemutatója az 1999-es Siggraph-on hatalmas sikert hozott, és nagyszámú érdeklõdõ kapta fel rá a fejét.

Eredményként több mint 4.5 millió EUR folyt be a céghez, aminek köszönhetõen a cég rögtön 50 fõssé nõtte ki magát, dolgozókkal már Japánban és az Egyesült Államokban is. 2000 végére a regisztrált Blender felhasználók száma meghaladta a 250000 fõt.

Természetesen nem lehet minden fenékig tejfel az ingyenes szoftver világában sem: a NaN végül felélte tartalékait és nem tudta fenntartani magát, és lehúzta a redõnyt: megszakadt a Blender fejlesztése is. A történetnek pedig itt akár vége is lehetne.

Vagy mégsem? A tulajdonos, Ton Roosendaal 2002 márciusában a hatalmas felhasználói bázisra támaszkodva létrehozta a non-profit Blender Foundation-t.

Ahhoz, hogy a korábbi befektetõktõl a Blender összes jogát megszerezhessék, és Open Source Projectként újraindíthassák nem kis összeget, 100000 EUR-t kellett volna az alapítványnak összegyûjtenie. Mindenki meglepetésére mindössze 7 hét alatt az összeg meglett, és 2002 Október 13-án, egy vasárnapi napon a Blendert a GNU General Public License szárnyai alatt szárnyra bocsátották. A Blender fejlesztése a mai napig folytatódik, rengeteg vállalkozó programozó segítségével, az eredeti alkotó irányítása alatt.

Ennek köszönhetõ, hogy a nem lebecsülendõ képességekkel rendelkezõ Blender (amelyekrõl késõbb még említést teszünk) 2005 augusztus 31-én (amely mondjuk nem vasárnapi nap volt, de ez nem is érdekes) elsõ alfája megjelenhetett nálunk is, Guillaume 'YomGui' Roguez hosszú hónapokra rúgó áldozatos munkájának köszönhetõen. Dacára annak, hogy a verziószámban alfa szerepel, ami arra utalna, hogy még nem befejezett alkotásról van szó, meglepõen stabil és használható: személy szerint egészen mélyen és a nagyon vadnak számító funkciók között akadtam olyanra, amely nem úgy mûködik még mint kellene.

Blender MorphOS

 

Hozzátartozik a dologhoz, hogy sajnos/szerencsére volt már szerencsém összefutni vele: egy kisebb játékfejlesztõi projekthez kerestünk szoftvert éppen, és mivel a pénztárcánk nem az amerikai árszínvonalhoz méretezett, ezért bár a legalitásra törekedtünk, az igen durva sportkocsik árával vetekedõ 3D szoftverek, mint a Max, Maya, XSI nem jöhettek szóba: így kötöttünk ki a Blendernél, mint azt teszi még rengeteg ember, kis és nagy cég is, nagyrészt ugyanebbõl a megfontolásból: egészen addig, hogy kisebb dolgokra még a Pókember 2 munkálatainál is felhasználták.

Vegyük sorra, mitõl is vadállat ez a program, szaladjunk végig a "gyártó" által kiemelt dolgokon (a megjegyzéseim természetesen az én személyes véleményemet fogják tükrözni, nem az övékét-Emeric):

Interface

Az alap Interface

 

  • Forradalmi felhasználói interface (Valóban forradalmi, épp csak a funkciók többsége nem elérhetõ belõle: ha az egyszerû dolgoknál többet szeretnénk, kénytelenek vagyunk nagyrészt teljesen a billentyûzetre támaszkodni - ez igazából nem feltétlenük hátrány, viszont irtózatosmód megnehezíti a tanulási folyamatot. A Blender nagyon sokat tud, viszont piszok nehezen tanulható. Mire azonban az utolsó szál hajunkat is kitépjük, pont beletanulunk, és egy igen durva eszköz használatának képessége lesz a kezünkben.-Emeric)
  • Flexibilis és teljesen konfigurálható ablakok, annyi ablakkiosztással amennyit akarunk (Ez viszont tényleg így van. Ha valaki egy ablakban szeret dolgozni megteheti, ha valaki a négy nézethez szokott szintén beállíthatja: olyanra kalapálhatjuk a Blendert ami nekünk megszokott, vagy amilyet szeretünk.)
  • Undo mindenhol (Ez magától értetõdõnek hangzik ugyan, de mióta pár olyan tool-lal is dolgoztam ahol ez _nem_ így van, megtanultam jobbanbecsülni a dolgot-Emeric)
  • Beépített adatbázisrendszer instance használathoz, és több projectfile dinamikus összelinkelésére (Ez ugyan megint nem egyedülálló, de igen hasznosan tudja csökkenteni a projektek erõforrásigényét-Emeric)
  • Anti-aliased fontok (Hova nem fejlõdik a technika ugye-Emeric)
  • Külön ablakok csaknem minden fontos funkciónak, mint az animáció minden területe, UV-zás és file kezelés (Ez szintén egy nagyon hasznos dolog, bár néhány közülük ismét csak felhasználóbarátságtalannak és nehezen tanulhatónak mondható-Emeric)
  • Beépített szövegszerkesztõ a Python scriptekhez (A program szinte szimbiózisban él a Pythonnal, futtatásához is kell, olyasminek lehet elképzelni mint nálunk volt az Arexx-Emeric)
  • Ugyanaz az interface minden platformon (Ez viszont valóban az egyik legfontosabb dolog: a program teljesen saját GUI-t használ, ezért ha mondjuk felállunk Linuxos Blender elõl, a MorphOS vagy Windows Blenderben pixelre ugyanazt fogjuk találni, és ugyanúgy folytathatjuk a munkát.-Emeric)
Egy másik platformon beállított Interface ugyanúgy jelenik meg MorphOS alatt is

 

Modellezés

  • Számos 3D objektumtípus támogatása, úgy mint poligonokból álló mesh-ek, NURBS felületek, bezier és B-spline spline-ok, metaballs, vektor fontok (TrueType, PostScript, OpenType) (Azaz majdnem minden ma használatos modern megoldást támogat. A splineok és a nurbs felületek valamikor akkor jelentek meg, amikor az Amigás raytracerek fejlesztése épp befejezõdött-Emeric)
  • "Smooth proxy" stílusú catmull-clark osztásos felületek optimális iso-line megjelenítéssel és sharpness állítással (Jólvan mindent én sem tudhatok, viszont a kettõvel mellettem ülõ grafikustól már hallottam ilyen szavakat-Emeric)
  • Mesh modellezés vertex, edge és/vagy face kiválasztással (Ez triviálisnak tûnhet, de nem az: én órákat kerestem a dokumentációban, hogyan lehet egy modellt vertexekbõl egyesével megépíteni.-Emeric)
  • Boolean mesh funkciók (Szintén alapkövetelmény, kivonhatunk, hozzáadhatunk mesheket egymásból/egymáshoz-Emeric)
  • Extrude, bevel, cut, spin, screw, warp, subdivide, noise, smooth soft selection szerkesztõfunkciók (Szintén elvárhatóak akármelyik programtól-Emeric)
  • Python scripting (Szintén elvárás ma már, hogy egy 3D programhoz scripteket lehessen írni, meggyorsítva a munkát-Emeric)
Egy vertexekbõl összerakott egyszerû modell

 

Animáció

  • Skeleton deformációk forward/inverse kinematics segítségével, auto skinning-el és interaktív 3D festés (Ilyen az Amigás programok közül egyedül a Tornado3D-ben volt, ha visszaemlékszünk-Emeric)
  • Nemlineáris mixer az animációkhoz, automatizált járásismétléssel az utak mentén (Azaz mi csak megmondjuk a kisbáránynak, hogy hova menjen, és azt hogy a lábait hogyan rakosgassa azt már a program fogja megoldani egyetlen lépésanimáció alapján-Emeric)
  • Constraint system (Amigás programokben nem is volt, ha jól emlékszem, persze erre most nem esküszöm meg-Emeric)
  • Vertex kulcsolás Morph-oláshoz, sliderekkel szabályozhatóan (Nem, ez a funkció nem pillangókészítésre szolgál, a vertexfázisok közti automatikus átmenetek szabályozhatóak vele-Emeric)
  • Pose editor karakteranimációkhoz (Na ilyenünk se volt még sosem szerintem, pedig ma már elengedhetetlen-Emeric)
  • Animálható lattice deformációk (Ilyeneket még a kettõvel arrébb ülõ grafikustól sem hallottam-Emeric)
  • "Ipo" rendszer a motion curve és a hagyományos kulcsrendszer összefogására
  • Audiolejátszás, a mozgások és a hang összeszinkronizálásához (Ez nem egy bonyolult dolog, a munkát azonban iszonytatóan meg tudja könnyíteni-Emeric)
  • Python script hozzáférés az animációs effektekhez

Rendering

  • Beépített, nagysebességû raytracer (Mint tudjuk raytrace esetében a gyors jelzõ mindig csak viszonylagos, maradjunk annyiban hogy egyáltalán nem rossz a sebessége-Emeric)
  • Belsõ támogatás a Yafray render engine-hez (Ez bennünket ugyan nem érint, hiszen ennek még nincs MorphOS vagy AmigaOS változata, mindenesetre láttam már vele készült képeket, pontosan három méternyire pattogott el az állam a fényképektõl, amelyek állítólag nem fényképek voltak-Emeric)
  • Oversampling, motion blur, post effektek, fieldek, nem négyzet alakú pixelek támogatása (Megint semmi extra-Emeric)
  • Environment map, halo, lens flare, fog (Még mindig semmi extra-Emeric)
  • Lambert, Phong, Oren-nazar, Blinn, Toon shading (Csak én utálom a Toon shadingot vajon?-Emeric)
  • Körvonal a toon shadinghoz (És még piszkálnak is miatta :)-Emeric)
  • Procedural textures (Éljenek a generált textúrák-Emeric)
  • Ambient Occlusion (Ez egy nagyon hasznos kis tool, ha az unalmas textúráinkat a környezeti fényhatások általt árnyalttá szeretnénk varázsolni-Emeric)
  • Radiosity solver (Ahogy a játékok zárkóznak fel a Ray Trace színvonalához, (Például a játékokban a fent említett Ambient Occlusion is kezd már teret hódítani) egyre kevesebb dolog van, ami játékokból megvalósítható, és kizárólag a "lassú" Ray Tracerek monopóliuma: a Radiosity számításigénye okán egyelõre még ilyen dolog, viszont lélegzetelállító megvilágítást kapunk általa.-Emeric)
  • Renderman, Povray, Virtualight támogatása (Természetesen nem kötelezõ a Blender beépített renderelõjét használnunk, számos egyéb külsõ engine támogatott-Emeric)
  • UV texture editor, számos mesh kiterítési móddal (Ez fõleg a játékkészítõknek érdekes, nagyban megkönnyíti a modellek textúrázását-Emeric)
Egy netrõl letöltött Blender scene lerenderelve

 

Realtime 3D/game creation

  • Grafikus editor interktív viselkedések beállításához programozás nélkül (Van egy igen durva funkciója a Blendernek, mégpedig a saját Game engine. Ha ez a rész is elkészül, igen durva eszköz lesz a kezünkben saját játékok gyártásához-Emeric)
  • Ütközésvizsgálat és fizika szimuláció
  • Python script API a vezérléshez, AI íráshoz, és game logic megírásához
  • Minden OpenGL funkció támogatása, áttetszõség, animált és tükrözõdõ textúrákat is beleértve
  • Fordítás vagy elõfeldolgozás nélkül kipróbálható játék
  • SDL alapú hang
  • Scene-k rétegként használata

Formátumok

  • .blend formátumú scene file-ok, amely támogat tömörítést, digitális aláírást, titkosítást, kompatibilitást a korábbi és jövõbeni .blend fileokkal
  • Írni és olvasni képes TGA, JPG, PNG, Iris, SGI Movie, IFF, AVI és Quicktime, GIF, TIFF, PSD, MOV fileokat
  • Natív DXF exporter és importer, Inventor és VRML támogatás, valamint Python scripteken keresztül számos egyéb 3D formátum hozzáférhetõ
  • Interaktív 3D tartalmat prezentáló programok vagy 3D böngészõplugin-ek által megjeleníthetõ tartalom készítési lehetõsége (Nagy kérdés persze, vajon a mi böngészõink mikor fognak VRML-t vagy bármi egyebet támogatni?-Emeric)

Támogatott platformok

  • Windows 98, ME, 2000, XP
  • Mac OS X
  • Linux (i386)
  • Linux (PPC)
  • FreeBSD 5.3 (i386)
  • SGI Irix 6.5
  • Sun Solaris 2.8 (sparc)

És most már a listához hozzávehetjük a MorphOS, és várhatóan rövidesen az AmigaOS platformokat is. A MorphOS verzió már letölthetõ Yomgui oldaláról:

Blender MorphOS port

Összefoglalásként: említettem a programról, hogy kegyetlenül nehezen tanulható. Ha azonban hozzávesszük, hogy amikor mi is még csak ismerkedtünk a 3D-vel Amigán mennyi idõ ment el azzal, mire megtanultuk használni, vagy akár csak elsõ képünk megszületett a korabeli Ray-Tracerekben, akkor végülis rájövünk, hogy nem (sokkal) nehezebben kezelhetõ más megoldásoknál, csak más mint amihez hozzászoktunk. Így pedig talán megbocsájtható az a néhány napos vagy hetes élénk szókincsfejlesztõ tréning, amíg kellõ gyakorlatra teszünk szert benne. És bár én csak lowpoly objektumokat gyártottam benne (félreértések elkerülése végett ez messze nem a legegyszerûbb dolog benne, hiszen a toolok többsége nem erre szolgál, és amik nekem kellettek nyomokban sem voltak a GUI-ban, mindent billentyûzetrõl kellett intéznem-Emeric) azért nagyszerû dolgokat csinálhatunk Blenderben. Igazából akár olyanokat is, amelyekkel a legmodernebb, méregdrága programok szokták reklámozni magukat. És ne feledjük: a Blender igazi pozitív tulajdonsága, azon felül, hogy nagytudású és rengeteg év folyamatos fejlesztése fekszik benne: egy fillérbe sem kerül.

 

Szerzõ:
Emeric SH
(C) SpaceHawks 2004