Tutoriál k plug-inu Fiber Generator - 3D grafika - 3Dscena.cz: 3D grafika jako na dlani

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

Tutoriál k plug-inu Fiber Generator

9. října 2002, 00.00 | Minulý týden jste si mohli přečíst o novém fantastickém plug-in pro Blender. Pro ty, kteří v jeho ovládání tápou, je tu tento tutoriál v němž mimo jiné naleznete též postup při instalaci Pythonu do Windows 2000/XP pro potřeby Blender skriptů.

Požadavky na spuštění a instalace Pythonu pro Windows 2000/XP

Jak jsem psal již minule, Fiber generátor vyžaduje:
Blender 2.23 nebo 2.25
modul Dynoise
nainstalovaný Python 2.1 a vyšší

Modul Dynoise si můžete stáhnout na adrese http://www.stormpages.com/eeshlo/VariousPython.html, nejnovější Python pak na www.python.org

U modulu Dynoise se jedná o soubory dynoise.dll a dynoise.so, Python musí být nejen nainstalován, ale musí být také zavedeny cesty k jeho knihovnám pro jiné programy, tedy i pro Blender. Jak toho docílit v systému Windows 98 jsem psali již v článku "Máte problémy s Python skripty pro Blender?" a proto se zde zaměřím jen na instalaci pro Windows 2000 nebo XP.

Po stažení Pythonu z www.python.org spustíte instalaci z exe souboru. Na ploše klikněte pravým myšítkem na ikonu Tento počítač a vyberte Vlastnosti.

V okně, které se objeví, vyberte záložku Upřesnit a úplně dole je tlačítko Proměnné prostředí

Tímto tlačítkem otevřete další okno v němž nás zajímá zejména dolní polovina označená jako Systémové proměnné

V této části okna klikněte na Nová, do pole Název proměnné napište "PYTHONPATH" a do Hodnota proměnné pak "C:\PYTHON22;C:\PYTHON22\DLLS;C:\PYTHON22\LIB;C:\PYTHON22\LIB\LIB-TK" za předpokladu, že vaše verze Pythonu je 2.2 a je nainstalována v adresáři c:/Python22.

Nakonec ještě pro jistotu restartujte a pokud vám některé Python skripty pro Blender nefungovali, je docela dobře možné, že nyní již budou. Minimálně Fiber generátor by fungovat měl :-)

Ovládání Fiber generátoru

Spusťe Blender a načtěte si do něj soubor s Fiber generátorem. V levé polovině obrazovky se objeví normální 3D okno s terénem, v pravé je pak okno s vlastním skriptem.

Oproti mnohým jiným skriptům Fiber neovládáme přes uživatelský interface, ale přímo vepisováním hodnot do zdrojového kódu. V duchu zásad pana Komenského začneme tím jednodušším a nejprve použijeme autorem vytvořený terén k základní demonstraci práce se skriptem. Vertex painting, který totiž budeme potřebovat k přípravě terénu pro generátor, je kapitola v tomto seriálu ještě neprobraná a vrátíme se k ní později.

Tedy prohlédněme si zdrojový kód skriptu. Jako první uputá naši pozornost řádek

selection = 0 #0 = user, 1 = fur, 2 = lawn 3= tall grass

Změnami hodoty za Selection přepínáme mezi uživatelským nastavením generování a třemi autorem přednastavenými efekty.
Selection= 0 je pak tedy uživatelské nastavení,
Selection= 1 je srst
Selection= 2 vytvoří trávník
Selection= 3 vysoká tráva.

O pár řádků v kódu níž je blok s nadpisem " #CHANGE THESE VALUES FOR DIFFERENT RESULTS", kde jsou již vlastní parametry, které se použijí v případě uživatelského nastavení (tedy selection=0).

density = /hustota stébel na Blenderovskou jednotku (čtverec grid)
gravity = /míra gravitace
segments = /kolik segmentů bude mít jedno stéblo
length = /délka jednoho segmentu
width = /šírka stébla
init = /základní gravitace
rand = /míra různosti směru, kam směřují jednotlivá stébla
FollowNormals = .5/ procentuální míra v jaké stébla sledují směr normál; 100%, tedy hodnota 1 odpovídá vlasům, 0 pak trávě.
pointed= /hodnota 1 odpovídá špičatému zakončení stébla, 0 pak plochému.

Pro Blender 2.25 je tu pak ještě jeden parametr.
matName = "jmeno_materialu" / jméno materiálu, který bude automaticky přiřazen generovaným stéblům (verze 2.23 má bug v Python Api a proto je tam nutné přiřazovat materiál manuálně)

Příprava terénu

Fiber generátor umí vytvářet trávu a další efekty z jakéhokoli objektu typu Mesh za předpokladu, že obsahuje informace o barevnosti vertexů, které skript potřebuje. Terén tedy připravíme pomocí funkce VertexPaint, o které jsem v tomto seriálu ještě nepsal.

Vertex painting je původně nástroj z oblasti manipulace s materiály a má s nimi tedy hodně společného. Nebudu se na tomto místě zabývat teorií, je sice velmi zajímavá, ale není účelem tohoto článku. Moc pěkný článek o VertexPaint vyšel již před nějakým před časem na www.gamasutra.com, takže zájemce tímto odkazuji na tento server (doufám, že to nebude bráno jako skrytá reklama- já s nimi FAKT nemám nic společného:-) )

Pro nás je teď důležitá jen úprava meshe pro Fiber generátor. Vložte tedy např. Grid s nějakými menšími hodnotami (původní 32 vertexů na každou stranu je z hlediska náročnosti budoucí trávy na paměť možná trochu moc) a přepněte se do EditButtons.

Zde pro jistotu klepněte na tlačítko Make vedle nápisu VertCol, čímž zpřístupníte vertex paintig pro tento mesh. Píši "pro jistotu", protože za normálních okolností je tato hodnota u nového meshe implicitně nastavená jako pozitivní.

Dále si povšiměte ikonky štětce. Právě tou vstoupíte do Paint buttons, kde budeme pracovat.

Pro nás nejdůležitější jsou slidery pro nastavení barvy (R, G a B), krytí (Opacity) a konečně velikost štětce (Size). Jednotlivé parametry jsou již podle názvu dostatečně výmluvné a práci s nimi jistě každý zvládne. Po nastavení barvy, krytí a velikosti štětce stačí aktivovat štětec klávesou v a poté najet myší na Mesh v 3D okně a stískem levého myšítka začít nanášet barvu.

Fiber Generator pracuje s barvami takto:

Červená- gravitace
Zelená- délka stébel
Modrá- zatím nevyužita

Barvy je možné kombinovat, "absolutní" žlutá (R=1.0; G=1.0; B=0.0) tedy pak bude představovat 50% délku stébla, které je přitahováno 50%-ní gravitací.

Animování

Zde nás čeká trocha práce s "linkováním", tedy přířazením skriptu ke konkrétnímu objektu, v našem případě k mesh, ze kterého tráva roste.

Všiměte si ikonky potištěného listu papíru, která nám zpřístupní Skript buttons. Vyselektujte mesh a ve Skript buttons nastavte FrameChanged a do prázdného pole vypiště skript, který chcete aplikovat, tedy "Fiber" nebo "FiberWind" (pozor na velká a malá písmena- v tomto je Blender case sensitiv). Rozdíl mezi oběma skripty je v tom, že FiberWind obsahuje i rutinu pro simulaci větru.

FrameChange znamená, že se skript provede znovu pro každý frame animace a v každém framu tak tráva může mít různou hustotu, délku atd.

A co vítr?

Na tuto krásnou vlastnost Fiber generátoru samozřejmě nemohu zapomenout:-) Pro simulaci větru slouží druhý skript dodávaný v balíku s názvem FiberWind. Ve Script buttons tedy musí být za FrameChanded název "FiberWind" a ve scéně pak ještě musíme vytvořit Empty objekt s názvem "Wind" (též case sensitiv).

Pozice a velikost empty objektu oproti originální pozici (což je střed sítě vyznačený průsečíkem zelené a oranžové čáry) ovlivňuje vlastnosti větru a to následovně:

X-ová a Y-ová souřadnice určuje směr větru
Z-ová souřadnice sílu větru
Velikost podle X-ové a y-ové souřadnice ovlivňuje "šum", nebo spíše vlnění v pohybu větru ve směru podle té které souřadnice

Velikost empty také obecně ovlivňuje dosah větru, když tedy bude Empty příliš daleko od vygenerovaných stébel a nebude dostatečně velké, nebude ani příliš znát působení větru.

Po nastavení empty objektu do požadované pozice a velikosti pak již jen spusťte skript klávesami Alt+p (myší přítom musíte být na oknem se skriptem) a počkejte, až se tráva vygeneruje. Pak znovu vyselektujte terén (po provedení skriptu se automaticky selekce přesune na stébla) a s myší v 3D okně spusťe animaci klávesami Alt+a. Měli byste vidět, jak se stébla pohybují ve větru.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » 3D grafika  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Zatím nebyl uložen žádný příspěvek, buďte první.

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

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

Uživatelské jméno:

Heslo: