Digging in the dirt

Je ironií osudu, že fenomenální Zaxxonovy skripty nedokáží vygenerovat ani jediný polygon trati. Vše, o čem jsme se až do teď bavili se totiž týkalo souřadnic terénu. Jedinou použitelnou věcí je tak výstup ve formátu GEO (anchors_carretera.geo, nebo joined.geo), ovšem s podmínkou, že si fyzikální vlastnosti budoucí mřížky musíme do souboru doplnit vlastními silami. Sám autor si uvědomuje tuto nevýhodu, když následující proces označuje za "the only difficult step of the zaxxon method".
Práci v programu Gmsh jsem už nakousl v kapitole Steepless of the roads, dnes si tedy povíme, co a jak se dá s jeho pomocí vytvořit.
Na začátku vypadá projekt například takto, modrý rámek představuje hranice elevačních dat (matrix Usmívající se), jak jsme si je vycucali z GE pomocí křivek limits. Uvnitř něj se nacházejí vizualizované souřadnice trati, přizpůsobené programu BTB a čekající, až z nich necháme vygenerovat mřížku.
1. Join drivable zones
Souřadnice jsou sice součástí jednoho objektu, ale pro mřížku to neplatí. Musíme ji spojit, nejlíp podle návodu (kapitola VII Using GMSH). Naštěstí se můžeme spoléhat na možnost úprav ve 3D modeláři, takže si to proti uživatelům BTB můžeme trochu zjednodušit. Nic nemažeme, nic nového negenerujeme, jen všechny části spojíme k sobě podle obrázku (Geometry->Elementary Entities->Add->New->Straight Line).
2. Add points
Pomocí několika bodů vyznačíme budoucí okraj far scenery (Geometry->Elementary Entities->Add->New->Point). Musíme dodržet pravidlo, že se celá scéna musí vejít do matrice elevačních dat a musí také být zarovnaná vodorvně (klikneme na Z v rohu programu). Jak to poznáme při umisťování konkrétního bodu ukazuje červený rámeček.
3. Add spline
Podobně pak pokračujeme s křivkou, která se na body naváže (Geometry->Elementary Entities->Add->New->Spline), při klikání musíme začít i skončit kliknutím na stejný bod. Stiskem klávesy "e" se křivka provede a hned je jasné, jestli jsme se vešli do matrixu (A).
4. Plane surface (mesh 2D)
Na rozdíl od videotutoriálu my nemusíme vytvářet ani koncové plošky na každém výběžku, takže stačí začít od vnější křivky (Geometry->Elementary Entities->Add->New->Plane surface). Pak si trochu pohrát s označením vnitřní hranice (hole). Její součástí budou i linky, kterými jsme pospojovali trať s odbočkami (viz obr.).
Pozor na případné překřížení označovaných hran. Na takovém místě se celá mesh převrátí a Gmsh u toho má nepříjemné poznámky.
Když se nám podaří všechno správně označit, můžeme zkusit vygenerovat 2D (Mesh->2D). Zatím nic moc, dalším krokem se to ale jistě zlepší...
5. Aby to bylo ještě zajímavější, tak dále musíme pokračovat přímou editací našeho GEO souboru v textovém editoru. Notepad++ je k tomu ideální. Najdeme ho v instalaci s konzolí Octave.
Můžeme ihned a bez obav editovat GEO soubor, protože Gmsh už do něj automaticky zapsal všechny doposud provedené operace. Jak jsem to tak vysledoval, tak Gmsh pouze zapíše provedenou činnost na konec souboru a o víc se nestará. Není tak problém manuálně smazat nepovedené zásahy a vrátit se zpět, jako by byla použita funkce Undo...
To jsem ale odbočil, my chceme tvořit. První je na řadě drivable terén. Jeho kompletní definici nalezneme přímo v souboru joined.geo, když najdeme text
//******************* END OF JOINED .GEO FILES ************************** a tamtéž i výpis všech drivabe povrchů.
To ale neplatí pro jednoduchou trať, zde se to musí kopírovat z již zmiňovaného souboru phys111.txt. Shrnuto:
Physical Surface(111)= {contents of file salida\phys111.txt or inside joined.geo};
6. Podobně je na tom i non-drivable terén. Je to surface, které bylo vytvořeno jako poslední a tedy bude na konci souboru, právě po ruce:
Physical Surface(222)={X}; (X is the code of the last Plane Surface defined inside anchors_carretera.geo)
Protože jsme v Gmsh nic v površích neměnili (krom vytvoření far scenery), můžeme brát poznámku o skriptu listc jako čistě informativní a soubor uložit.
7. Znovu spustíme Gmsh a potěšíme oko, nyní už mnohem kvalitnější mřížkou (Mesh\2D). V nabídce tools použijeme Visibility tools podle návodu, abychom zkontrolovali korektnost budoucího terénu. Tamtéž pod položkou Statistics najdeme počet polygonů, které jsme doposud vytvořili.
8. Save as joined.msh
Soubor v Gmsh uložíme jako joined.msh a tímto krokem se můžeme vrátit ke skriptům.

Komentáře