Jak na skutečné mapy v aplikacích? - Cesium Plugin

Jak na skutečné mapy v aplikacích? - Cesium Plugin Tagy: Vizualizace
| Publikováno dne

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.

Pohled na Prahu, 21.9.2022, v 9:30 dopoledne, z výšky 4000 metrů, ze souřadnic zeměpisná šířka: 58.08 a zeměpisná délka: 14.35, mapové podklady Cesium Ion.

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.

Pohled na Melbourne s aktivními a neaktivními fotogrammetrickými daty.

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í)

Pohled na Union Station v Denveru v Google Maps vs Unreal Engine (datový podklad od Aerometrex.)

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).

ExponencialHeightFog, PostProcessVolume a VolumetricClouds, mapový podklad s OSM Buildings

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.

Zobrazení metadat po kliknutí na vybranou budovu v New Yorku

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.

Více pohledů v rámci 1 obrazovky

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.

Více pohledů v rámci 1 obrazovky

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)

Náhrada materiálu - vodní plocha jezera v Oregonu

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.

Pohled na New York

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).

Mračna bodů nad mapou

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č.

Streamování dat z Google Maps

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.

  • Blog
  • Jak na skutečné mapy v aplikacích? - Cesium Plugin
Sdílení: