Klotildina tajemství, díl druhý - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



3D grafika

Klotildina tajemství, díl druhý

14. října 2004, 00.00 | V tomto posledním článku, věnujícímu se nástroji pro tvorbu a simulaci látek v Klotildě, se zaměříme na třetí zásadní záložku vlastnosti Oděv, objekt O-Nurbs a řekneme si také něco o použití a praxi.

Minule jsme skončili u vlastnosti Oděv u záložky Síly. A nebylo to zas tak nešikovné, protože záložka, kterou si proklepneme (z toho podstatného) dnes, se věnuje skutečně tvorbě oděvu jako takového a tak bychom s příkladem prostého větrem unášeného plátna dost nepochodili.

Základní parametry této stránky se totiž aplikují skutečně na objekty, které mají být skutečným oděvem. Proto si to podstatné také na postavě a oděvu ukážeme. Jen se musím omluvit, tu postavu mám rozpracovanou snad už dva roky, tedy dva roky mi spíš leží na disku a tak je to jen torzo…

V prvé řadě pro tvorbu oděvu, ale to známe již z prvního článku, musíme mít připravený oděv. Ten stačí mít ve formě dvou „rovin“, které jsou spojené v místech budoucího švu dlouhými polygony. Je to stejná jako v případě první ukázky tohoto typu, koule a krychle „pytle“ tak jak to bylo v prvním článku. Objekt oděvu má samozřejmě nastavenou vlastnost Oděv.

Druhým objektem, jak jinak, bude naše postava. Jedná se tedy o polygonový objekt, který jinak může být začleněný do jakékoliv struktury. Je tedy irelevantní, zda je takový polygonový objekt pod HyperNURBS, či ne. Klotilda si prostě jen najde co potřebuje, ať je to kdekoliv. Toto vysvětlení udáváme proto, aby nedocházelo k omylům. To, že nemůžeme aplikovat vlastnost Kolizní objekt na generátory (HyperNURBS, Symetrie), neznamená, že tato vlastnost nemůže být na polygonových objektech, které jsou podřízené těmto generátorům.

Tak a teď si vše nastavíme tak, jak potřebujeme. Kolizní objekt možná můžeme nechat tak, jak je a svou pozornost soustředíme na stránku Oděv. Tou jsme se již krátce zabývali v úvodním článku, ale domnívám se, že trocha opakování uškodit nemůže. Zvláště tehdy, pokud jde o prohloubení našich znalostí.

V režimu editace polygonů si vybereme dlouhé „spojovací“ švové polygony a v záložce Oděv vlastnosti Oděv nastavíme Klotildě informaci, že právě tyto polygony jsou švové. Provedeme to pomocí tlačítka Šev. polygony.

Tím zadáme polygonům informaci, že se mají po aktivaci příkazu generování oděvu stáhnout na šířku, která je zadaná v parametru Šíře. Je tedy jasné, že šíře těchto polygonů (po stažení) by měla odpovídat nějaké průměrné velikosti běžných polygonů přední a zadní části oděvu.

Parametr Počet kroků (a to platí jak pro příkaz Propočet oděvu, tak pro Relaxaci) slouží k zadání stupně „přesnosti“ primárního zadání. Zadáme-li hodnotu u parametru Propočet oděvu například jen na 5, pak se tedy vyhodnotí „při stahování“ švových polygonů postupně pouze pět stavů a pak propočet oděvu skončí. Výsledkem nebude těsné tričko, ale „pytel na brambory“, kterého však dosáhneme velmi rychle. Je na druhou stranu zřejmé, že hodnoty opravdu vysoké jsou také často zbytečné, protože korekce je již v takovém případě nepatrná… Osobně jsem většinou s výchozí hodnotou okolo 20 spokojen.

Parametr Relaxace slouží k „automatickému“uvolnění oděvu zejména tehdy, pokud při jeho primárním propočtu se jisté části oděvu příliš „přitáhnou“ k tělu. Relaxace totiž započítává také parametry, jaké jsou nastavené na stránce Síla. Tedy oděv ve směru gravitace uvolní směrem dolů případně jej částečně „unese“ tak, jak vane vítr a podobně.

Ať již po zadání švových polygonů a nastavení kroků Propočtu oděvu a případně Relaxace zvolíme jeden z těchto příkazů (Propočet oděvu, Relaxace), tak se změní ikona vlastnosti Oděv a to tak, že bude žlutá a zároveň si můžeme všimnout, že se stane aktivní volba Režim oblečení.

Jsme-li se zadáním Oděv spokojeni, pak nastavíme stávající stav jako výchozí. To vše pomocí tlačítka In. stav. Pokud si tento stav chceme kdykoliv vyvolat, stačí klinout na Zobrazit.

Svým způsobem je další nástroj podobný předešlému. Jedná se o volbu, která kdykoliv umožní návrat do úvodního stavu. Tedy do stavu před výpočtem oděvu. Volbou In. stav definujeme výchozí stav oděvu pro další kolize, vítr a podobně, ale výchozí stav před výpočtem máme „uložený“ pod polem Stav oděvu > Zobrazit. Pokud použijeme tlačítko Nastav, tak se výchozí stav „přemaže stavem stávajícím, který bude brán při případném dalším propočtu oděvu apod. jako výchozí.

Může se poměrně běžně stát, že budeme potřebovat vlajku, závoj, oponu a podobně. Pak tedy potřebujeme definovat body, které budou „upnuté“ na jednom místě. Tyto body si tedy stačí vybrat a pomocí příkazu Upevnit body: Nastav je zadat. Pokud si chcete tyto body zobrazit, pak stačí použít příkaz Zobrazit a pokud je chcete zrušit, pak stačí použít příkaz Vyčistit.

Řádek příkazů, které se vztahují ke švovým polygonům jsme již myslím probrali a je to také zřejmé z toho, co jsme si již ukázali a tak přejdeme dále. K nastavení „bodů na opasku“. Vše tedy pracuje tak, že si do pole Opasek na načteme objekt, který má být opaskem (třeba i postavu) a pak vybereme na oděvu body, které u tohoto opasku leží. Toť vše. Jak se bude měnit objekt opasku, deformovat, posouvat a podobně, tak se bude měnit i „základna“ oděvu. Mimo oděvu se tato vlastnost skvěle uplatní například při tvorbě závěsů. Objekt „opasku“, tedy „jezdců“ na závěsu můžeme animovat a oděv se přizpůsobí deformacím, které se na opasku udály. Jedná se vlastně o takové „aktivní“ upevněné body. Níže uvedená ukázka odpovídá popsanému příkladu, jen objekt určující „jezdce“ je skryt.

Tím jsme si prošli, podle mého soudu, tři nejdůležitější záložky vlastnosti Oděv a mám za to, že z 90 procent známe z této vlastnosti vše, co bychom mohli potřebovat. Jistě jsou tu ještě záložky Efekty a Expert. V záložce efekty můžeme definovat vertexové mapy, které mají ovlivňovat například ztuhlost té či oné části oděvu. Jedná se o to, že budeme mít pančo a na jeho konci třásně. Je jasné, že ty třásně budou více povlávat větru více jak zbytek panča.Definici co a kde má povlávat lze ujasnit právě pomocí vertexových map, jejichž jména načteme do příslušných polí. Dalším příkladem budiž duch, který je v adresáři Features v ukázkách modulu MOCCA.

Další zajímavou vlastnost, kterou zde můžeme definovat, je způsob trhání, párání oděvu (pozor, na tento efekt musíte použít objekt s vlastností Oděv, který musí být pod objektem O-Nurbs)!

Poslední záložka je označena jménem Expert. V ní se podrobně definují globální vstupní údaje kolizí, pokud ale mohu soudit, tak jejich úprava není většinou nutná. Ale jednou se s těmito parametry asi setká každý, ostatně i nouze naučila Dalibora housti…

Slíbili jsme si také, že se ještě naposledy podíváme na objekt O-Nurbs. Jeho nastavení není nikterak zákeřné, ale jistě neuškodí, pokud jej trošku prozkoumáme.

Již několikráte jsme se zmínili o tom, že objekt O-Nurbs pracuje velmi podobně jako HyperNURBS s tím rozdílem, že nově „vytvořené“ polygony jsou oproti HyperNURBS započtené do kolizí. A to je rozdíl dosti podstatný.

První parametr objektu je Segmentace. Tento parametr je úplně stejný, jaký najdeme i u HyperNURBSu a popisovat segmentaci u HN je asi nošení dříví do lesa. To druhý parametr je už docela zásadní. Jmenuje se Faktor a definuje, zda se budou u segmentovaných polygonů interpolovat normály, tedy polygony podle NURBS principu. Nejlépe si to objasníme na obrázku. Pokud bychom si vytvořili objekt Krychle, který má v každé stěně jen jeden polygon a tento objekt bychom dali pod O-Nurbs, pak úpravou parametru Faktor vlastně definujeme míru „zaoblování“ podle NURBS principu…

Parametr Limit vezmeme zkrátka, protože to je trochu mimo „základní“ použití. Jedná se o parametr, který řídí chování segmentace v případech, kdy se k sobě sousedící segmenty příliš přiblíží.

Poslední podstatný, a to docela často, je parametr Šířka, který definuje šířku použitého materiálu. Tedy pokud budeme dělat hedvábí, tak se asi šířkou zabývat nebudeme, ale u takové kůže na kabátu už asi ano. A zapomenout bychom něměli na to, že můžeme také šířku zadat negativní hodnotou.

Tak to je celá Klotilda v kostce z pohledu začínajícího uživatele. Pokud si ji někdo bude chtít vyzkoušet, tak ať pamatuje na omezení a pravidla, která jsme zmínili v prvním článku a také na to, že kolizních objektů může být ve scéně fakticky nekonečně mnoho a tak lze v jistých situacích, si vypomoci objekty jednoduššími, než jaké jsou viditelné ve finální scéně, nebo objekty zvláště připravenými jen a pouze pro Klotildu. Jeden příklad za všechny. Pokud bychom měli model zcela nového automobilu, na kterém je plátno zakrývající jej před okounějícími diváky, pak auto můžeme mít vytvořené pomocí HyperNURBS, může mít každé dveře zvlášť, interiér, nadzdvihnuté střešní okénko a podobně. V takovém případě bychom asi měli mít nastavený vlastnost Kolizní objekt na všech vnějších objektech. Ale co když bude HyperNURBS zasahovat do tvaru auto poměrně výrazně? Pak by mohlo být vidět, že látka „visí“ na polygonech zdrojového modelu dost nepřirozeně. V takovém případě si tedy můžeme připravit verzi s větší (řekněme) střední segmentací polygonů, včetně dveří a třeba i kol v jednom objektu, který bude sloužit jen a pouze pro kolize.

Dalším případem může být, že občas se stane například u ženské postavy, že se nám jisté partie dostanou při nulové tloušťce látky malinko skrz (opět díky HyperNURBS, který tentokrát může být třeba i na látce). Pak si můžeme v těchto partiích pomoci dalšími čistě pomocnými kolizními objekty.

První pokus o Clothildu.

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: