AMIGA REVIEW obsah časopisu online!
  Domov     Software     Hry     Obaly     Download  

Freeform

Ondř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

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )