Jak na skutečné mapy v aplikacích? - Cesium Plugin
Využívání digitálních dvojčat skutečných objektů v digitálním světě zvyšuje pocit realističnosti, přesnosti, a v konečném důsledku i zážitku při užívání aplikace. Menší počty 3D objektů a malé plochy lze do digitálních prostoru přenášet ručně, a to s využitím modelování a fotogrammetrie. V případě celých větších území je poté vhodné sáhnout po externích podkladech, jako jsou například mapové podklady od Google (Google Maps). S pomocí real-time streamování těchto dat do Unreal Enginu je poté možné v rámci aplikace obsáhnout doslova celý svět - ať už při tvorbě videí (pohyb kamery nad územím), simulací (let letadlem z Prahy do New Yorku) apod.
A právě na streamování reálných 3D datových mapových podkladů (World Geodetic System - standard WGS84) z libovolných zdrojů do Unreal Engine se podíváme v tomto článku. Z hlediska technologie budeme používat Unreal Engine a Cesium plugin. Datovým podkladem může být jakákoliv aplikace poskytující mapová data skrze API rozhraní, například populární Google Maps.
O Cesium
Cesium.com je platforma pro streamování reálných 3D map (3D terén i budovy) do digitálních aplikací. Platforma umožňuje kombinovat různé typy dat (globální geodetická data standardu WGS84, data z otevřených API rozhraní + otevřených standardů pro prostorové indexování, jako jsou 3D Tiles, a reálného 3D obsahu získaného z BIM a fotogrammetrie) a jejich real-time streamování z cloudu za účelem vizualizování. Vizualizace mohou být dostupné na webu (CesiumJS knihovna), aplikacích vyvíjených herními enginy Unreal a Unity, (popř. libovolným enginem s integrovaným O3DD (Open 3D Engine)), stejně jako v NVIDIA Omniverse aplikacích.
Ukázky použití Cesium pluginu V Unreal Engine
Cesium plugin pro Unreal Engine je aktuálně dostupný včetně 9 příkladů použití, které níže popíši:
Ukázka 1 - Základní Cesium komponenty
Ukázka 1 představuje základní komponenty, které jsou základem Cesium příkladů.
World outliner actory:
- Cesium World Terrain umožňuje nastavení zdroje streamovaných dat. Tím může být Cesium ION účet nebo libovolná url (přístup k API). Dále pak skrze daný actor lze nastavit vlastnosti streamování, jakožto úroveň detailu, reference a podobně.
- CesiumGeoreference-1 - používá se k nastavení aktuálních globálních souřadnic.
- CesiumSunSky - umožňuje nastavení solárního času (dne i denní doby)
Cesium má rovněž vlastní okno (Window → Cesium), skrze nějž lze assety a podklady spravovat přímo z Unreal Engine.
Ukázka 2 - fotogrammetrická data
V příkladu 2 je do mapového podkladu města Melbourne doplněna fotogrammetrie prostředí (Actor Melbourne Photogrammetry). Zdrojem fotogrametrických dat je Cesium Ios, data jsou streamována jako Hierarchický prostorový index 3D Tiles.
Ukázka 3 - maximální detail
V ukázce 3 je streamováno území kolem Denverského Union Station. Streamovací rozlišení je nastaveno pod centimetr, tedy pro maximální fotorealistické detaily. Pro snadný průzkum z pohledu “hráče” je v příkladu nastaven i ovladač Unreal postavy, skrze níž se lze ve streamovaném prostředí Denveru pohybovat. Při pohybu jsou automaticky reflektovány kolizní meshe (neprůchozí překážky v prostředí)
Ukázka 4 - sub-území
Ukázka 4 představuje vložení několika různých dat do datového podkladu prostřednictvím sublevelů. Tím je umožněno v rámci jednoho prostředí upravovat datové informace (bodovy, kvalita apod) různých mapových výsečí nad základní globální mapou.
V ukázce jsou následující suboblasti s upraveným vizuálem:
- Denver, Boston (Fotogrammetrie) - vyobrazen Boston
- Grand Canyon (Cesium World Terrain)
- Paříž (Cesium OSM Buildings)
Ukázka 5 - post processing
Ukázka 5 zobrazuje vykreslovací schopnosti Unreal Engine s Cesium pro Unreal při použití doplňkových renderovacích nástrojů a post processingu. Na ukázce je nastaven ExponencialHeightFog, PostProcessVolume a VolumetricClouds (efekt západu slunce).
Ukázka 6 - Zobrazení metadat
Ukázka 6 znázorňuje možnost zobrazení metadat budov interaktivním způsobem, a t o kliknutím na vybranou budovu New Yorku.
Zobrazení metadat je triggerováno prostřednictvím Level Blueprint dané scény.
Metadata budovy se také používají v materiálu sady dlaždic (Tiles) pro stylování budov na základě jejich výšky. Komponenta Cesium Encoded Metadata pomáhá vytvořit materiály pro stylování metadat automatickým generováním šablon vrstev materiálu.
Ukázka 7 - více pohledů
Ukázka 7 ukazuje současné použití více pohledů, a to pomocí Scene Capture 2D a Render Target.
Ukázka 8 - výřez mapy
Ukázka 8 přichází s použítím Actoru CesiumCartographicPolygon. Ten umožňuje za pomocí Polygonu vyříznout část mapy - například pro vložení architektonických studií a návrhů, nebo objektů o vyšší přesnosti do aktuální části mapy.
Ukázka 9 - náhrada materiálu
Ukázka 9 představuje princip používání různých materiálů na 3D prostředí, v tomto případě krajině Crater Lake v Oregonu.
Terénní vodní maska (hladina) Crater Lake, stejně jako mnoho jiných vodních ploch, není v současné době na Cesium World zobrazena. Stále však ji lze zprostředkovaně ukázat pomocí actorů Cesium Cartographics Polygon a úpravy materiálu v "Rendering" sekci actoru CesiumWorldTerrain.
Cesium umožňuje z výběru předpřipravených materiálů, stejně jako možnost použití materiálů vlastních (Materials/Templates folder)
Ukázka 10 - detaily skrze materiál
Ukázka 10 znázorňuje možnosti využití materiálu pro přidání detailů do sady dlaždic, v tomto případě oken na strany budov datové sady Cesium OSM.
Materiál Mi_ProceduralWindowsMetadata
(/Content/CesiumSamples/Materials/ProceduralWindows) je v tomto případě nastaven pro actor Cesium OSM Buildings a je plně kompatibilní s časem scény - přiszpůsobuje se denní době. Materiály jsou k dispozici 2 - jednodušší, přidávající pouze okna, a složitější, využívající OSM metadata za účelem nastavení náhodných barev budov. V tomto případě musí být součástí actoru Cesium OSM Buildings rovněž připojená komponenta CesiumEncodedMetadata.
Ukázka 11 - mračna bodů
Ukázka 11 ukazuje princip využití “datových dat mraků bodů” - respektive vykreslování objektů nad základní mapou prostřednictvím uskupení mračna bodů (např. z 3D scanu). Daná metrika funguje při aktivním dočasném vyhlazování (temporal anti-aliasing).
Ukázka 12 - Google Maps
Ukázka 12 je jednoduchá streamování dat z externího API, v tomto případě Google Maps (Source: From url) v actoru Cesium3DTiles. Ke streamování z Google maps je nezbytné mít API klič.
Skutečné mapy v aplikacích pro Virtuální realitu
Skutečné mapy lze streamovat i do aplikací založených na virtuální realitě. Cesium VR zařízení nejen podporuje, ale navíc i dala k dispozici ukázkový projekt použití. Projekt je targetovaný na VR brýle Oculus Quest 2.