FreeformOndřej Thurzo
Zabýváte se raytracingem? Jestliže ano, pak jste určitě někdy zatoužili po
neuvěřitelně hladkých objektech, hlavně pak objektech organických, které pro
svou přirozenost a reálnost hladké a oblé plochy přímo vyžadují.
Chtěl bych věnovat pár slov jednomu z nejvýkonnějších modelovacích programů
na Amigu. Přestože není z nejnovějších - datum vypuštění této verze je přibližně
druhá polovina roku 1994 - nemá zatím absolutně žádnou konkurenci.
Pokud se zabýváte 3D grafikou, pak víte, že vymodelování tzv. drátěného modelu
je jednou z nejpracnějších úloh při vytváření prostorových scén. Modelování je
pak o to těžší, o co víc reálně vypadající objekty chcete mít na scéně. Zde pak
záleží na způsobu popisu ploch objektů, s nimiž program pro 3D grafiku pracuje.
Nejrozšířenější způsob je popis plochy pomocí tzv. polygonů nebo, chcete-li,
trojúhelníků. Plochy i celý objekt se skládají z množství trojúhelníků, které
mají společné body a hrany se sousedními trojúhelníky. Při výpočtu scény (tzv.
rendering vykreslování) program kromě jiného provádí výpočet přechodů hran mezi
jednotlivými polygony. Při příliš nízkém počtu polygonů, nebo při příliš ostrých
úhlech je pak poměrně častým průvodním jevem jakási hranatost, nezaoblenost
objektů. Tento problém řeší popis ploch a objektů pomocí matematicky
definovaných křivek - anglicky spline. Oproti polygonálnímu popisu mají křivky
několik výhod - např. při zachování stejného počtu ploch snížení celkového počtu
bodů, rychlejší manipulace s objekty, rovnice a proměnné pro popis křivek
zabírají mnohem méně místa, rychlejší a hlavně výhodnější rendering. Při výpočtu
program musí navíc oproti polygonům provést interpolaci (rovnoměrné rozložení)
křivkových ploch na menší, matematicky jednodušeji popsatelné plochy (poměrně
častou metodou je interpolace na kvadratickou síť - plochu skládající se ze
čtverců. Interpolaci ploch program provádí také v závislosti na vzdálenosti od
kamery - pozorovatele, což znamená, že plochy dále od kamery budou rozloženy na
mnohem menší počet, zatímco plochy nejblíže kameře se budou skládat z obrovského
počtu plošek menších. Tím je právě dosaženo oné oblosti a hladkostí, typické pro
objekty popsané křivkami. Praktický příklad představte si, že máte z křivek
vymodelovanou zvlněnou krajinu až k horizontu. V prostoru nejblíže ke kameře
bude výpočet ploch nejnáročnější, plochy budou stejně oblé jako křivky při
editaci drátěného modelu, zatímco se stoupající vzdáleností od kamery budou
plochy méně a méně oblejší - ale pouze pro program, ne pro vás při výsledku.
Jedná se o naprosto nápaditý způsob řešení optimalizace renderingu scény.
Převážná většina programů pro 3D grafiku na osobních počítačích pracuje právě s
polygony. Pokud některý náhodou s křivkami pracuje, pak se většinou jedná o
jakési chabé pokusy vyrovnat nebo alespoň přiblížit se v tomto ohledu programům
na takových gigantech v oblasti grafiky jakými jsou pracovní stanice firmy
Silicon Graphics. Právě těmito programy jsou Real 3D 2.xx a LightWave, na PC
údajně 3D Studio 3.0 a novější verze - bohužel u 3D Studia jsem neměl možnost
posoudit práci s křivkami. U výše zmíněných programů sice s křivkami pracovat
můžete, ale dá vám hodně práce doslova je donutit k chování podle vašich potřeb
- při jejich použití musíte mít velice silné nervy. Samozřejmě kdo se naučí a
pochopí jejich občas nesmyslné chování má skoro vyhráno. Kdo ale viděl nebo
dokonce měl možnost vyzkoušet si komfort modelování a práce se skutečnými, podle
vašich představ se chovajícími křivkami, určitě ví o čem mluvím. Právě proto je
tu program Freeform - mocný nástroj pro křivkové modelování.
Začněme poněkud suššími, nicméně důležitými údaji. Freeform byl testován no
Amize 1200 s turbokartou A1230 - procesor 68030 a matematický koprocesor 68882,
obojí taktované na 50-ti MHz, 4 MByte FAST RAM. Program lze spustit i na pouhém
1 MByte RAM, což je dnes už skoro zázrak. V případě zájmu je tvůrce ochoten
verzi přepsat pro jiný procesor (zajímavé, rád bych si spustil Freeform na své
Amize 500). Pokud máte Multisync monitor, pak je to jedině dobře, protože
Freeform pracuje v rozlišení 640*512 bodů. Při renderingu podporuje AGA čipy - 8
bitový grayscale. Vzhledem k tomu, že jsem testoval volně šířitelnou verzi,
nebyly některé z funkcí dostupné nebo byly dostupné pouze částečně. Pro mne ze
zcela nepochopitelných důvodů byla zablokována i položka Prefs, což mne do jisté
míry zklamalo. Freeform totiž podle obrázků, které kdysi byly na Internetu,
pracuje i v oknech, stejně jako Real 3D v2. Takže v jednom okně se vám renderuje
obrázek a v jiných dalších oknech pracujete na jiném modelu. Stejně tak si v
této verzi nemůžete nastavit zobrazovací mód, což je podle mne největší chyba,
protože nemáte-li Multisync monitor, jak sem poznamenal již výše, budete po
celou dobu práce vystavení nepříjemnému blikání režimu interlace.
Jak vlastně Freeform pracuje? Při tvorbě objektu vám nabízí tři možnosti -
vytvořit rotační objekt z obrysu, pracovat s plochou z křivek, spojováním
různých tvarů křivek mezi sebou (funkce skin "kůže" - křivky jsou ve vámi
určeném pořadí spojeny povrchem ) nebo protahováním do prostoru tzv. extruze. Že
se vám to zdá málo? A co zkusit vymodelovat třeba hlavu člověka z koule? Stačí
zadat funkci pro kruh, pak jej nechat orotovat o 360 stupňů po vertikální ose a
koule z křivek je na světě. Pokud jste si nastavili dostatečný počet sekcí, pak
výše uvedený příklad je otázkou chvíle - chvíle o mnoho kratší, než kdybyste se
rozhodli pro to samé např. v Imagine. Při modelování máte samozřejmě možnost
kdykoliv a jakkoliv ovlivnit kterýkoliv bod vašeho objektu. Na každou akci je
okamžitá odezva, vše sledujete doslova v reálném čase. Zkrátka a dobře zapomeňte
na omezení na něž jste byli zvyklí u modelování z polygonů, s křivkami si můžete
dovolit takřka vše. Samozřejmě se nesmíte hned na začátku nechat odradit.
Nějakou chvíli vám bude trvat, než se naučíte s křivkami pracovat, ale o to
propracovanější pak budou vaše objekty.
Freeform vás po spuštění uvítá klasickou obrazovkou 3D programu. Není sice
rozdělena na čtyři části, jak je tomu u spousty programů, o to ale máte více
prostoru pro práci. Freeform disponuje jak klasickým menu v horní liště, tak
ikonami v liště na dolním kraji obrazovky. Musím říci, že narozdíl od jiných,
nejmenovaných programů jsou ikony na oné liště velice dobře pochopitelné a
všeříkající. Výhodou je, že se lišta dá kdykoliv stisknutím mezerníku odstranit
a opět přivolat zpátky. Jedna z mnoha maličkostí které potěší. Ale nebojte se,
ještě jich bude mnoho. Kromě běžných funkcí jako jsou rotace, přesun, změna
velikostí, přesun osy objektu a jiných zde naleznete poněkud méně obvyklé
funkce. Freeform např. automaticky po spuštění zobrazí prostorovou sít jako
jakousi "podlahu", která velice pomáhá při orientaci v prostoru. Freeform
disponuje nepřeberným množstvím takovýchto ne nezbytných, avšak práci vám
ulehčujících maličkostí. Jak už jsem poznamenal, Freeform pracuje výhradně s
matematicky definovanými křivkami, zvanými spline, konkrétně B-spline a NURB
(Non Uniform Rational Bezier). Konkrétně tyto typy křivek jsou jedněmi z
posledních "výkřiků technologie" modelování. Imagine například používá křivky
pro cesty, konkrétně poněkud starší a nepříliš použitelné Z-spline, od verze 3.0
pak i B-spline v Spline Editoru. To jen abyste byli schopni si udělat představu
o rozdílných vlastnostech různých typů křivek - hlavní rozdíly jsou v ovládání a
chování. Případné zájemce o přesnější popis problematiky křivek bych odkázal na
knihu Počítačová grafika od Grady, kde jsou přehledně popsány nejpoužívanější
typy i co se vzorců pro jejich výpočet týče.
Pojďme se tedy podívat, jaké možnosti nám tvůrce Freeformu připravil. Začneme od
Adama. Totiž od obrysů. Základem většiny objektů může být obrys, plocha a kruh.
Po nakliknutí výstižné ikony na dolní liště se nám zobrazí uprostřed pracovní
plochy vertikální čára. Prvním kliknutím si určíme kde náš objekt bude začínat.
Ale to není zdaleka všechno. Začít s editací bychom měli na levé straně, neboť
na polovině pravé se nám zrcadlově zobrazuje křivka kterou editujeme. A to v
reálném čase! Takže máte okamžitě během vytváření obrysu představu jak váš
rotační objekt bude vypadat. Nejste-li s tvarem tak úplně spokojeni, nic není
ztraceno. Máte možnost naprosto přesně obrys upravit s pomocí tzv. control
points, které se vám zobrazí poté, co jste ukončili tvarování pravým tlačítkem
myši. Pokud máte požadovaný obrys, stačí stisknout opět ikonu pro tvoření
obrysů/křivek. Objeví se requester s dotazem jestli má být vytvořena křivka, po
potvrzení máte obrys. Dejme tomu, že chcete jakousi láhev nebo spíše nádobu.
Ještě před použitím funkce Spin byste se měli přesvědčit, pokud chcete mít
uzavřený strop či dno objekty, že máte osu objektu přesně ve středu objektu.
Nemáte? Nemusíte pracně a přesně nastavovat. Od toho tu je v menu funkce Axis to
Last/First Point. Po použití funkce bude osa nastavena přesně na pozici
prvního/posledního bodu obrysu. Poté stačí tedy kliknout na ikonku s nápisem
Spin a objeví se requester, kde zadáte o kolik stupňů má být obrys orotován a z
kolika sekcí že se má skládat. Jelikož pracujete s křivkami, stačí na rotaci o
360 stupňů pouhé 4 sekce. Stačí chvilka strpení (zhruba 0.0000000086574231
vteřiny) a nádobka je na světě. Nyní můžete po nakliknutí ikonky Points porůznu
tahat, otáčet a hýbat body. Tomu, kdo ještě neměl s křivkami moc co do činění
doporučuji mít po ruce telefon s již předem vytočenou linkou první pomoci. V
této i jiné souvislosti je na liště ikonka Drag. Zkuste si před kliknutím na
Points zapnout Dra a můžete za bodu tahat a tím deformovat objet jak se vám
zlíbí - a všechno můžete dělat a vidět v reálném čase třeba i v perspektivě. Tam
je vůbec zajímavé pozorovat průběh deformace. Třeba i funkcí Twist nebo Taper,
dojdete opravdu k neuvěřitelným deformacím, že vy sami budete mít problémy s
rozpoznáním původních tvarů objektu. Při delším zkoumání jistě přijdete na to,
že s objektem není cosi v pořádku. Ze je jaksi neúplný. On úplný je, pouze jsou
odlišeny křivky. Křivky z kruhových sekcí jsou vykresleny přerušovanou čarou,
ostatní křivky jsou plné. Perfektní pro orientaci v objektu a hlavně jeho
editaci. Zkuste nyní kliknout například na ikonu Bones. Cože? Že jste nevěděli
že Freeform umí pracovat s bones, česky něco jako kostra, kosti? Tak to bych asi
měl napravit. Tak tedy: Freeform umí pracovat i s tzv. bones, česky něco jako
kostra, kosti. A je to. Teď už se nikdo vymlouvat nemůže. Tak si naklikněte
Bones a jdeme na věc. Freeform automaticky objektu po jeho vytvoření přiřadí
bones, a to tím způsobem, že na jednu vertikální sekci připadá vždy jedna
"kost". Orientaci bones lze samozřejmě měnit na horizontální a naopak. S pomocí
bones můžete ovládat a deformovat objekty, jako například ohýbat paže atd. Opět
při ohýbání a točení, tahání a hýbání bones můžete v reálném čase sledovat
deformaci objektu. Ale pojďme dál. Zkuste si vytvořit kouli. Jak, když v menu je
pouze kruh? Jednoduše, stačí kruh orotovat Spinetu o 360 stupňů a kulička je na
světě. A teď byste chtěli aby byla hranatá? Není nic lehčího. Stačí označit body
hran/částí křivek, které chcete mít hranaté a v menu Tension zadat Set to Sharp.
Opakem je položka Set to Smooth. Adjustable Tension - zde si nastavíte přesný
úhel kontrolních úseček bodů.
Zkuste si další objekt. Bude to na jednom konci válec, na druhém čtverec, mezi
oběma konci bude plynulý přechod z oblých hran do hran ostrých. Je to otázka
zhruba jedné minuty. Vytvořte si dva kruhy, jeden upravte do tvaru čtverce a
pomocí funkce Tension/Set to Sharp vytvořte hrany. Pak stačí zadat extruzi
jednoho objektu do druhého v menu Form. Poté označte všechny sekce a po zadání
funkce Tension/Blend Tensions máte požadovaný objekt. Je to vlastně válec, který
plynule přechází do průřezu čtverce i s ostrostí hran. Při práci se vám může
stát několik nepříjemných věcí. Třeba vám objekt bude "přelézat" obrazovku. Pak
stačí kliknout na Fit/Unfit a objekt je nádherně vycentrován i s rezervou na
okrajích pracovní plochy. Opětovné kliknutí na Fit/Unfit způsobí navrácení
objektu do původní velikostí. Pokud budete chtít mít objekt přesně uprostřed
obrazovky, pak stačí použít Move to Origin. Zde je pár dalších zajímavých
maličkostí, které práci usnadňují:
- Set Origin - nastaví střed prostoru na střed obrazovky - Set on Ground -
nastaví objekt na pomocnou síť - Move Axis to Object Center - nastaví osu
objektu do jeho geometrického středu - Mirror zrcadlení objektu podle předem
nastavené osy nebo jejich kombinací, například osy X a Y pro kopii zrcadlenou
vertikálně i horizontálně - Aspect Adjust - nastavení poměrů stran pracovní
plochy pomocí vámi nadefinovaného čtverce. Opravdové maličkostí, ale já se bez
nich po dvou dnech intenzívní práce nemohu obejít.
Nyní pár slov o morphingu. Freeform nabízí možnost provést morphing mezi dvěma
objekty, a to buď v reálném čase pouze jako drátěný model, nebo vyrenderovat
jednotlivé snímky na disk. Podmínkou je bohužel stejný počet bodů, což je dnes
omezení dávno překonané a to nejen na pracovních stanicích Silicon Graphics.
Jinak ale morphing provádí naprosto bezchybně a neuvěřitelně rychle. Další z
vymožeností Freeformu jsou tzv. workspaces neboli pracovní plochy, prostory.
Freeform jich má celkem devět a jsou to vlastně jakési od sebe oddělené roviny,
v kterých můžete pracovat na více objektech aniž by vám nějak ty ostatní
překážely. Freeform při jejich použití klade nároky na paměť naprosto stejné,
jako kdybyste nahráli stejný počet objektů do editoru. Samozřejmostí je
kopírování a přesouvání objektů z jedné plochy na druhou pouhým stisknutím
příslušného čísla pracovní plochy, nebo přesun všech objektů do jedné plochy, z
čehož ale vznikne náležitý guláš, zmatek, šrumec, chrchel, chundel, seno a tak
podobně. Dalším příjemným počinem je použití "multi pickable requester" bez
závislosti na verzi vaší reqtools knihovny. Nejedná se o nic jiného, než o
možnost nahrát více objektů najednou, bez nutnosti pokaždé otevírat requester a
klikat na název objektu. A jsme u dvou nejdůležitějších věcí. Renderig a export.
Rendering je bezchybný a export není podpořen v demoverzi. Tak by se asi daly
charakterizovat ony nejdůležitější, přímo stěžejní funkce tohoto programu.
Freeform má možnost exportu následujících formátů: Real 3D v2 (B-splines a
NURBS), LightWave, Caligari a Imagine. Konverze do polygonového formátu je
vyřešena naprosto fantasticky. Objeví se vám okno s objektem a s requesterem.
Objekt je složen místo z křivek z úseček. V requesteru dominují dva slidery,
jimiž si podle libostí nastavíte hustotu sekcí! Takže je jen a jen na vás, jak
bude objekt zkonvertovaný do polygonů vypadat. Chcete objekt s nízkým detailem,
nebo naopak s tím nejvyšším? Vše záleží opravdu jen na vás. Samozřejmě v
demoverzi je zablokovav gadget Export, stejně jako položka Save v menu programu.
Takže na polygonovou krásu se můžete v demoverzi bohužel jen dívat, stejně jako
na vámi vytvořené objekty. Zato rendering je více než fantastický. Rychlý, bez
chyb, dokonce i "do skla"! Podle tvůrce je Freeform v renderingu zhruba
dvacetkrát (!) rychlejší než už i tak dost rychlý Real 3D v2, třikrát rychlejší
v překreslování obrazovky. Mně nezbývá než jeho slova potvrdit. Navíc jsou
přiloženy objekty ve formátu pro Real 3D v2, Imagine, LightWave a Caligari,
takže máte možnost si rychlost práce i renderingu ověřit. Ale na vlastní oči
jsem onu závratnou rychlost viděl. Samozřejmě si můžete nastavit kvalitu
renderingu, obrazový mód, v němž se bude rendering provádět, chcete li objekt ze
skla nebo ze skla pokrytého texturou i rendering na čtvrtinu obrazovky. Při
renderingu objektu ze skla je Freeform stejně rychlý jako při výpočtu
stínovaných křivek - nejvyšší kvalita. Kvalitu renderingu si můžete prohlédnout
na některém z přiložených obrázků. Jako by tvůrci programu nestačila fantastická
rychlost renderingu, vnucuje vám po ukončení každého renderingu requester s
výsledným časem.
Doporučuji každému zájemci z řad 3D grafiků, aby si pořídil alespoň demoverzi
Freeformu. Kdo nemá Freeform, zaspal dobu. Budete opravdu překvapeni, co vše se
dá s křivkami dělat a hlavně jak jednoduše. Možná by nebylo na škodu zakoupit
registrovanou verzi za pouhých 60 dolarů. Tvůrcem Freeformu je totiž
nezaměstnaný, pětadvacetiletý Japonec a tak bychom se možná dočkali i novější,
lepší a rychlejší verze. Jen se nesmíte při prvních setkáních s Freeformem
obávat toho, že je orientovaný především na rotační objekty, neboť máte
absolutní volnost při deformování tvaru objektu - jakým objektům je nejblíže
např. lidské tělo, nebo hlava? Lidské tělo válcům, všelijak zprohýbaným a
zdeformovaným, hlava kouli s větší hustotou bodů. Freeform je nejen zatím
nejlepší externí editor na 3D objekty, ale i nejlepším editorem co se jeho
zpracování týče. Stačilo by jej trochu rozšířit o další funkce, třeba i
zkombinovat s polygony, přidat moduly pro nastavení atributů, světel, a poměrně
kvalitní raytracingový program by byl na světě. A myslím si že by byl velice
tvrdou konkurencí i třeba takovým produktům jako LightWave nebo Real 3D v2.
Freeform je dalším z mnoha programů, které grafické možnosti Amigy posouvají
stále vpřed. Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|