Rychlý start: Převod modelu pro vykreslování

V části Rychlý start: Vykreslení modelu pomocí Unity jste se naučili, jak pomocí ukázkového projektu Unity vykreslit předdefinovaný model.

Tato příručka ukazuje, jak převést vlastní modely, a zahrnuje tyto kroky:

  • Nastavení účtu úložiště objektů blob v Azure pro vstup a výstup
  • Nahrání a převod 3D modelu pro použití s Azure Remote Rendering
  • Zahrnutí převedeného 3D modelu do aplikace pro vykreslování

Požadavky

Přehled

Renderer na serveru nemůže pracovat přímo se zdrojovými formáty modelu, jako jsou FBX nebo GLTF. Místo toho vyžaduje, aby byl model v proprietárním binárním formátu. Konverzní služba využívá modely ze služby Azure Blob Storage a zapisuje převedené modely zpět do poskytnutého kontejneru úložiště objektů blob v Azure.

Budete potřebovat:

  • Předplatné Azure
  • Účet StorageV2 ve vašem předplatném
  • Kontejner úložiště objektů blob pro váš vstupní model
  • Kontejner úložiště objektů blob pro výstupní data
  • Model, který chcete převést, viz ukázkové modely.
    • Zobrazit seznam podporovaných zdrojových formátů
    • Pokud chcete použít ukázkový převodní skript, ujistěte se, že jste připravili vstupní složku, která obsahuje model a všechny externí závislosti (například externí textury nebo geometrii).

Nastavení Azure

Pokud ještě účet nemáte, přejděte na Začínáme s Azure, vyberte možnost bezplatného účtu a postupujte podle pokynů.

Jakmile budete mít účet Azure, přihlaste se k Azure Portal.

Vytvoření účtu úložiště

K vytvoření úložiště objektů blob potřebujete nejprve účet úložiště.

  1. Pokud ho chcete vytvořit, vyberte Vytvořit prostředek:

Azure – přidání prostředku

  1. Na nové obrazovce na levé straně zvolte Úložiště a v dalším sloupci vyberte Účet úložiště – objekt blob, soubor, tabulka, fronta :

Azure – přidání úložiště

  1. Kliknutím na toto tlačítko se zobrazí následující obrazovka s vlastnostmi úložiště, které se mají vyplnit:

Nastavení Azure

  1. Vyplňte formulář následujícím způsobem:
  • Vytvořte novou skupinu prostředků z odkazu pod rozevíracím seznamem a pojmenujte tuto ARR_Tutorial
  • Jako název účtu úložiště zadejte jedinečný název. Tento název musí být globálně jedinečný. Pokud je název již zabraný, zobrazí se chybová zpráva. V oboru tohoto rychlého startu ji pojmenujeme arrtutorialstorage. Proto ho musíte nahradit svým názvem pro všechny výskyty v tomto rychlém startu.
  • Vyberte oblast blízko vás. V ideálním případě použijte stejnou oblast , jakou jste použili pro nastavení vykreslování v druhém rychlém startu.
  • Výkon je nastavený na Premium. Standard funguje také, ale při načítání modelu má kratší charakteristiky doby načítání.
  • Typ účtu Premium nastavený na objekty blob bloku
  • Redundance nastavená na zónově redundantní úložiště (ZRS)
  1. Žádné vlastnosti na jiných kartách není nutné měnit, takže můžete pokračovat v části Zkontrolovat a vytvořit a pak podle pokynů dokončete nastavení.

  2. Web vás teď informuje o průběhu nasazení a nakonec oznámí, že vaše nasazení je dokončené. Pro další kroky vyberte Přejít k prostředku :

Vytvoření služby Azure Storage bylo dokončeno.

Vytvoření úložiště objektů blob

Dále potřebujeme dva kontejnery objektů blob, jeden pro vstup a druhý pro výstup.

  1. Z tlačítka Přejít k prostředku se dostanete na stránku s panelem vlevo, který obsahuje nabídku seznamu. V seznamu v kategorii Blob service vyberte Kontejnery:

Azure – přidání kontejnerů

  1. Stisknutím tlačítka + Container vytvořte vstupní kontejner úložiště objektů blob. Při vytváření použijte následující nastavení:
  • Name = arrinput
  • Úroveň veřejného přístupu = Privátní
  1. Po vytvoření kontejneru znovu vyberte + Kontejner a opakujte toto nastavení pro výstupní kontejner:
  • Name = arroutput
  • Úroveň veřejného přístupu = Privátní

Teď byste měli mít dva kontejnery úložiště objektů blob:

Nastavení služby Blob Storage

Spuštění převodu

Převod modelu můžete aktivovat třemi různými způsoby:

1. Převod pomocí nástroje ARRT

K dispozici je nástroj založený na uživatelském rozhraní s názvem ARRT , který spouští převody a pracuje s vykresleným výsledkem. Snímek obrazovky funkce ARRT

2. Převod pomocí skriptu PowerShellu

Abychom usnadnili volání služby převodu prostředků, poskytujeme skript nástroje. Nachází se ve složce Scripts a nazývá se Conversion.ps1.

Zejména tento skript

  • nahraje všechny soubory v daném adresáři z místního disku do kontejneru vstupního úložiště,
  • volá rozhraní REST API pro převod prostředků.
    • toto rozhraní API načte data ze vstupního kontejneru úložiště, zahájí převod a vrátí ID převodu.
  • dotazuje rozhraní API pro stav převodu s načteným ID převodu, dokud se proces převodu neskončí s úspěchem nebo selháním.
  • načte odkaz na převedený prostředek ve výstupním úložišti.

Skript načte svoji konfiguraci ze souboru Scripts\arrconfig.json. Otevřete tento soubor JSON v textovém editoru.

{
    "accountSettings": {
        "arrAccountId": "8*******-****-****-****-*********d7e",
        "arrAccountKey": "R***************************************l04=",
        "arrAccountDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>"
    },
    "renderingSessionSettings": {
        "remoteRenderingDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>"
    },
    "assetConversionSettings": {
        "localAssetDirectoryPath": "D:\\tmp\\robot",
        "resourceGroup": "ARR_Tutorial",
        "storageAccountName": "arrexamplestorage",
        "blobInputContainerName": "arrinput",
        "inputFolderPath": "robotConversion",
        "inputAssetPath": "robot.fbx",
        "blobOutputContainerName": "arroutput",
        "outputFolderPath":"converted/robot",
        "outputAssetFileName": "robot.arrAsset"
    }
}

Konfigurace v rámci skupiny accountSettings (ID účtu, klíč a doména) by měla být vyplněna podobně jako přihlašovací údaje v rychlém startu Vykreslit model pomocí Unity.

Úplnou konfiguraci skupiny renderingSessionSettings (doména, vmSize a maxLeaseTime) najdete v ukázkových skriptech PowerShellu. Hodnoty vmSize a maxLeaseTime nejsou pro převod důležité a je možné je vynechat, protože na převod nemají vliv.

Ve skupině assetConversionSettings nezapomeňte změnit resourceGroup, blobInputContainerName a blobOutputContainerName. Hodnotu arrtutorialstorage je potřeba nahradit jedinečným názvem, který jste vybrali při vytváření účtu úložiště.

Změňte localAssetDirectoryPath tak, aby odkazovat na adresář na disku, který obsahuje model, který chcete převést. Dávejte pozor, abyste správně utekli zpětná lomítka ("\") v cestě pomocí dvojitých zpětných lomítek ("\\").

Služba nahraje všechna data z cesty zadané v cestě localAssetDirectoryPath do kontejneru objektů blob blobInputContainerName v dílčí cestě zadané inputFolderPath. S ukázkovou konfigurací služba nahraje obsah adresáře "D:\tmp\robot" do kontejneru objektů blob arrinput účtu úložiště "arrtutorialstorage" pod cestou "robotConversion". Již existující soubory jsou přepsány.

Změňte inputAssetPath na cestu modelu, který se má převést – cesta je relativní k localAssetDirectoryPath. Jako oddělovač cesty použijte místo "\". Takže pro soubor "robot.fbx", který se nachází přímo v "D:\tmp\robot", použijte "robot.fbx".

Jakmile se model převede, zapíše se zpět do kontejneru úložiště zadaného objektem blobOutputContainerName. Podcesta může být určena poskytnutím volitelného outputFolderPath. V příkladu služba zkopíruje výsledný soubor "robot.arrAsset" do výstupního kontejneru objektů blob v části converted/robot.

Nastavení konfigurace outputAssetFileName určuje název převedeného prostředku – parametr je volitelný a pokud není zadaný, služba použije název vstupního souboru k vygenerování názvu výstupu.

Otevřete PowerShell a ujistěte se, že jste nainstalovali Azure PowerShell, jak je uvedeno v požadavcích. Pak se přihlaste ke svému předplatnému pomocí následujícího příkazu a postupujte podle pokynů na obrazovce:

Connect-AzAccount

Poznámka

V případě, že má vaše organizace více než jedno předplatné, možná budete muset zadat argumenty Id předplatného a tenanta. Podrobnosti najdete v dokumentaci k Connect-AzAccount.

Přejděte do azure-remote-rendering\Scripts adresáře a spusťte převodní skript:

.\Conversion.ps1 -UseContainerSas

Měli byste vidět něco podobného: Conversion.ps1

3. Převod prostřednictvím volání rozhraní API

Jazyk C# i rozhraní API jazyka C++ poskytují vstupní bod pro interakci se službou:

Vložení nového modelu do ukázkové aplikace Pro rychlý start

Převodní skript vygeneruje identifikátor URI sdíleného přístupového podpisu (SAS) pro převedený model. Teď můžete tento identifikátor URI zkopírovat jako název modelu do ukázkové aplikace pro rychlý start (viz Rychlý start: Vykreslení modelu pomocí Unity).

Nahrazení modelu v Unity

Ukázka by teď měla načíst a vykreslit váš vlastní model.

Volitelné: Opětovné vytvoření identifikátoru URI SAS

Platnost identifikátoru URI SAS vytvořeného převodním skriptem vyprší po 24 hodinách. Po vypršení jeho platnosti ale nemusíte model znovu převádět. Místo toho můžete na portálu vytvořit nový sas, jak je popsáno v dalších krocích:

  1. Přihlaste se k webu Azure Portal.
  2. Vyberte prostředek účtu úložiště :

Snímek obrazovky, který zvýrazňuje vybraný prostředek účtu úložiště

  1. Na následující obrazovce vyberte Průzkumník služby Storage na levém panelu a vyhledejte svůj výstupní model (soubor .arrAsset ) v kontejneru úložiště objektů blob arroutput . Klikněte pravým tlačítkem na soubor a v místní nabídce vyberte Získat sdílený přístupový podpis :

    Přístup k podpisu

  2. Otevře se nová obrazovka, kde můžete vybrat datum vypršení platnosti. Stiskněte Vytvořit a zkopírujte identifikátor URI, který se zobrazí v dalším dialogovém okně. Tento nový identifikátor URI nahrazuje dočasný identifikátor URI, který skript vytvořil.

Další kroky

Teď, když znáte základy, se podívejte na naše kurzy, abyste získali podrobnější znalosti.

Pokud se chcete dozvědět podrobnosti o převodu modelu, podívejte se na rozhraní REST API pro převod modelu.