čtvrtek 26. září 2024

Geometry Nodes - docela přesné rozmísťování

Geometry nodes v Blenderu mají mnoho variant, jak řešit rozmísťování objektů. Tak si i já tady na svůj blog odložím jednu, kterou jsem odkoukal z netu a dopiloval podle svého.
Osazování různých objektů (instancí) na plochu (ground) se v GN provádí pomocí uzlů s názvem Distribute Points on Faces a Instance on Points. Já používám variantu, kdy přímo na základním modelu krajiny určuji místo a hustotu osazování a to za pomoci Vertex Group s různou váhou vertexů (viz článek K čemu je dobrý Weight paint).
Bohužel, tato metoda má nevýhodu v tom, že její přesnost závisí na hustotě polygonů osazované plochy. Nejvíc to samozřejmě vadí těsně kolem vozovky, kde pak tráva "roste" třeba i z asfaltu.
Vyřešil jsem to tak, že v okolí cesty sázím na samostatně oddělené objekty, které duplikuji z původního terénu a na ně přiřadím příslušnou sadu uzlů. Distribute Points on Faces způsobuje, že se tyto objekty  ve scéně ani neobjeví, je vidět jen to, co je na nich osázené.
Pokud ani tento fígl nestačí, stále ještě mám možnost editovat pomocnou mesh v Edit Mode, kde je při správném nastavení modifikátoru (viz vpravo dole) mřížka normálně vidět (viz šipka).
Tak bych se pokusil na následujícím obrázku co nejstručněji vysvětlit svůj setup.
1) Na povrchu meshe (Group Imput) se rozmístí pomocné body podle zadaných parametrů. Ty je potřeba zkusmo doladit, hlavně bacha na maximální denzitu - Blender by se mohl nepěkně zadýchat... Seed by pak měl být pro každou sadu instancí jiný - kvůli jejich překrývání.
2) Na tyto body budou navázány ony instance. Tedy ty objekty, které chceme na povrchu meshe rozmístit.
3) Může to být jeden, nebo více objektů v kolekci (Object Info, Collection Info).
4) Instance budou směřovat podle normál polygonů meshe. Factor určuje jestli úplně, nebo jen trochu (napůl).
5) Zároveň budou tyto objekty "náhodně" pootočeny, nejvíc v ose Z. Už víme, že tu náhodu lze ovlivnit pomocí hodnoty Seed.
6) A jejich velikost bude také upravena. Uzel je ten samý jako ten předešlý, akorát metoda Float nám umožní lépe řídit minimální a maximální velikost objektů.
7) Hustotu osazení lze navíc ovlivnit tím, že na té pomocné meshi vyznačíme vertexovou skupinu s různou váhou vertexů. U mně se jmenuje Group Density.
8) Rozmístěné instance můžeme nakonec podle uvážení všechny naráz posunout, kam je potřeba.
9) Tento uzel zajistí, že se všechny instance vygenerují při exportu automaticky a nemusíme je převádět na samostatné objekty. Hodně užitečné....

Žádné komentáře:

Okomentovat