Rhino6: příkaz QuadMesh

quadmesh5

A zase ty sítě. Tentokrát to ale bude pecka z dílny interního vývoje McNeela. David Eranen, nová posila Bobova týmu, ji zeřejnil v tomto příspěvku na diskusní skupině Rhina. Zde je překlad jeho příspěvku:

„Pracoval jsem na převodníku na čtyřhranné polygonové sítě (dále jen quad mesher, pozn. překl.) a prototyp této funkce je nyní dostupný v poslední WIP verzi Rhina 6. Vyzkoušejte ho!

Název příkazu je QuadMesh

Poznámka: na quad mesheru je stále ještě potřeba odvést hodně práce. Můžete očekávat, že vaše sítě budou na některých místech částečně děravé a také že si budete muset dost pohrát s volbami příkazu, abyste z jeho současné podoby dostali co nejvíce.

Co můžete očekávat:

  • převod breps, vytažení a sítí na čisté čtyřúhelníkové sítě
  • čtyřúhelníky mohou být orientovány podél hlavních směrů křivosti plochy
  • tvorba čtyřúhelníkové sítě z obecné plochy je výpočetně hodně náročná. Očekávejte časy od jednotek nebo desítek sekund až po několik minut – samozřejmě v závislosti na velikosti a složitosti modelu
  • použití polygonových sítí jako vstupu tohoto příkazu bylo testováno mnohem méně než u breps a vytažení, zde proto čekejte menší stabilitu.

Doporučení:

  • Nejprve zkuste malé a jednoduché objekty, v případě úspěchu se vrhněte na složitější.
  • Ujistěte se, zda je požadovaná délka hrany polygonů dostaečně malá na to, aby se vešly mezi blízké singularity.
  • Pokud quad mesher selže a výsledná síť bude obsahovat díry, zkuste snížit délku hrany čtyřúhelníků.

Čeho byste se měli vyvarovat:

  • Modelů s kónickými (kuželovými) prvky, ve kterých má kužel ostrou špičku a končí v jediném vrcholu. Tato situace je z mnoha důvodů ošemetná a v tuto chvíli ještě není dost dobře ošetřená.

Následuje drobná dokumentace a vysvětlení voleb příkazu QuadMesh.

QuadMesh je příkaz, který z brep, vytažení nebo sítě vytvoří výhradně čtyřúhelníkovou síť. Velikost a orientace jednotlivých čtyřúhelníků je dáno místní křivostí plochy a umístěním čtyřúhelníku.

Aby bylo možné vypočítat rozvržení čtyřúhelníků, musí se nejprve na ploše vytvořit vektorové pole směrů. Toto pole může být orientováno podél směrů hlavních křivostí plochy, aby byl co nejlépe aproximován tvar originální plochy.

Po spuštění příkazu QuadMesh se na ploše objeví grafické znázornění směrového pole. Uživatel může změnou parametrů upravit tok vektorů směrového pole podél plochy. Kromě směrového pole jsou zobrazeny také singulární body pole. Tyto singularity jsou body, kde budou mít budoucí vrcholy čtyřúhelníkové sítě valenci 3 nebo 5 (valcence vrcholu je počet hran, které se sbíhají v daném vrcholu, pozn. překl.). Na základě změny parametrů se může změnit poloha singulárních bodů, což může mít za následek vytvoření topologicky přijatelnější sítě.

Volby příkazu QuadMesh

QuadEdgeLength – tento parametr určuje požadovanou délku hran polygonů čtyřhranné sítě. Výsledná délka hran ovšem může být nižší než je tato hodnota.

CurvatureAlignmentThreshold – určuje, které části směrového pole míří podél hlavních křivostí plochy. Hodnota je procentní podíl rozsahu hodnot křivostí. Například hodnota 50 znamená 50% největších hodnot křivosti plochy a směrové pole bude nasměrováno souhlasně s tímto směrem. Směr zbytku pole je určen interpolací.

FieldInterpolation ( SmoothAndSlow | UnevenAndFast ) – tato volba určuje metodu interpolace hodnot směrového pole. SmoothAndSlow používá sofistikovanější algoritmus pro hladkou interpolaci směrů, zatímco UnevenAndFast interpoluje směr spíš nahrubo.

FieldAlignToSeams ( Yes | No ) – řídí, zda má být pole směrováno podél švů plochy.

QuadAlign ( Crease | CreaseAndSeam ) – řídí, zda mají být čtyřúhelníky zarovnány podél zlomů a švů.

Cancel – zruší příkaz.

Update – aktualizuje pole na základě změny parametrů.

Create – vytvoří čtyřúhelníkovou síť.

Pár ukázek úspěšných sítí:



A to je konec překladu Davidova příspěvku. Nedalo mi to a hned jsem musel QuadMesh vyzkoušet.

QuadMesh na vlastní kůži

Výsledky zatím nejsou stoprocentní a David si je samozřejmě vědom všech nedokonalostí, nakonec sám na mnohé upozorňuje a připomíná, že se jedná o rozpracovanou verzi příkazu, který je zatím v plenkách. Už teď se ale ukazuje, že se jedná o potenciálně značně silný nástroj pro převod NURBS geometrie do kvalitní čtyřúhelníkové sítě, vhodné zejména pro komunikaci mezi Rhinem a SubD modeláři, ale také jako „potrava“ pro chystané nativní SubD objekty v Rhinu 6. Ano, čtete správně, SubD v Rhinu – a právě o novém geometrické entitě Rhina, SubD plochách, si na 3DAkademii budete moci podrobněji přečíst už za pár dnů…

Nejprve ukázka postupu, který je zcela jednoduchý. Po výběru objektu a spuštění příkazu QuadMesh proběhne výpočet vektorového pole, které se následně na objektu zobrazí. Velikost hrany se zvolí automaticky a vy ji můžete upravit volbou QuadEdgeLenght. Zkuste při změně této (nebo kterékoliv jiné) volby klikněte na volbu Update v příkazovém řádku, pro vytvoření finální sítě buď klikněte pravým tlačítkem myši nebo klikněte na volbu Create. Na následujícím obrázku je jeden z prvních pokusů – výsledkem je krásně čistá čtyřéhelníková síť.

Zkusíme něco složitějšího. Následující model obsahuje výstupky i prohlubně. Jak si s ním poradí standardní mesher Rhina? Samozřejmě je to celkem chaos, jak vidíte na následujícím obrázku (příkaz Mesh). Všimněte si, jak mesher Rhina otrocky vytváří vějíř trojúhelníků kolem horního pólu (singularity) koule. Příkaz QuadMesh oproti tomu zcela ignoruje singularitu a naopak ctí topologii obrysových hran, výsledkem je opět velice čistá a jednoduchá síť, při zvýšení hodnoty volby QuadEdgeLenght jsem ji dokonce ještě více zjednodušil.

Tato síť už je velice vhodná pro použití v nějakém SubD modeláři. Ale počkat, nemá mít Rhino 6 už SubD plochy nativně v sobě? Počkejte, co když na quad síť aplikuji příkaz… ale o tom až příště 🙂 Výsledek po drobné editaci vidíte níže. Myslím, že pro designéry a grafiky představuje tento workflow (bez opuštění Rhina) skutečnou revoluci:

quadmesh3

A pro srovnání, vyšel jsem z NURBS modelu (prakticky needitovatelného) vlevo a přes QuadMesh jsem vytvořil SubD plochu, která je zcela hladce editovatelná a použitelná v ZBrushi, Modu a dalších SubD modelářích. Taky se už tak těšíte na „šestku“?

Posted in:

Napsat komentář