Schnellstart: Konvertieren eines Modells für das Rendering

In Schnellstart: Rendern eines Modells mit Unity wurde beschrieben, wie Sie das Unity-Beispielprojekt zum Rendern eines integrierten Modells verwenden.

In diesem Leitfaden wird gezeigt, wie Sie Ihre eigenen Modelle mit den folgenden Schritten konvertieren:

  • Einrichten eines Azure Blob Storage-Kontos für die Ein- und Ausgabe
  • Hochladen und Konvertieren eines 3D-Modells zur Verwendung mit Azure Remote Rendering
  • Einbinden des konvertierten 3D-Modells in eine Anwendung für das Rendering

Voraussetzungen

Übersicht

Der Renderer auf dem Server kann nicht direkt mit Quellmodellformaten wie FBX oder GLTF arbeiten. Stattdessen muss das Modell in einem proprietären Binärformat vorliegen. Der Konvertierungsdienst nutzt Modelle aus dem Azure-Blobspeicher und schreibt konvertierte Modelle zurück in einen angegebenen Azure-Blobspeichercontainer.

Erforderlich:

  • Ein Azure-Abonnement
  • Konto „StorageV2“ unter Ihrem Abonnement
  • Ein Blobspeichercontainer für Ihr Eingabemodell
  • Ein Blobspeichercontainer für Ihre Ausgabedaten
  • Unter Beispielmodelle finden Sie ein Modell, das konvertiert werden kann.
    • Sehen Sie sich die Liste mit den unterstützten Quellformaten an.
    • Bereiten Sie zur Nutzung des Beispielskripts für die Konvertierung einen Eingabeordner vor, in dem das Modell und alle externen Abhängigkeiten (z. B. externe Texturen oder Geometrie) enthalten sind.

Azure-Einrichtung

Wenn Sie noch kein Konto haben, gehen Sie zu Erste Schritte mit Azure, wählen Sie die Option Kostenloses Konto und folgen Sie den Anweisungen.

Sobald Sie ein Azure-Konto haben, melden Sie sich beim Azure-Portal an.

Speicherkontoerstellung

Zum Erstellen eines Blobspeichers benötigen Sie zunächst ein Speicherkonto.

  1. Wählen Sie „Ressource erstellen“ aus, um eins zu erstellen:

Azure: Ressource hinzufügen

  1. Wählen Sie auf der linken Seite die Option Speicher und in der nächsten Spalte dann Speicherkonto: Blob, Datei, Tabelle, Warteschlange aus:

Azure: Speicher hinzufügen

  1. Wenn Sie auf diese Schaltfläche klicken, wird der folgende Bildschirm angezeigt, auf dem Sie Eigenschaften des Speichers angeben:

Azure-Einrichtung

  1. Füllen Sie das Formular wie folgt aus:
  • Erstellen Sie über den Link unter dem Dropdownfeld eine neue Ressourcengruppe, und geben Sie ihr den Namen ARR_Tutorial.
  • Geben Sie unter Speicherkontoname einen eindeutigen Namen ein. Dieser Name muss global eindeutig sein. Wenn der Name bereits vorhanden ist, wird eine Fehlermeldung angezeigt. In dieser Schnellstartanleitung nutzen wir den Namen arrtutorialstorage. Sie müssen den Namen für diese Schnellstartanleitung also jeweils durch Ihren eigenen Speicherkontonamen ersetzen.
  • Wählen Sie eine Region in Ihrer Nähe aus. Verwenden Sie idealerweise dieselbe Region wie beim Einrichten des Renderings in der anderen Schnellstartanleitung.
  • Die Leistung ist auf ‚Premium‘ eingestellt. ‚Standard‘ funktioniert ebenfalls, verfügt jedoch über geringere Ladezeitmerkmale, wenn ein Modell geladen wird.
  • Premium-Kontotyp, der auf „Blockblobs“ festgelegt ist
  • Redundanz ist auf „Zonenredundanter Speicher (ZRS)“ festgelegt
  1. Die Eigenschaften auf den anderen Registerkarten müssen nicht geändert werden. Sie können fortfahren, indem Sie die Option Bewerten + erstellen auswählen und dann die Schritte zum Abschließen der Einrichtung ausführen.

  2. Auf der Website wird der Status Ihrer Bereitstellung angezeigt, und zuletzt erfolgt die Meldung „Ihre Bereitstellung wurde abgeschlossen“. Wählen Sie für die nächsten Schritte „Zu Ressource wechseln“ aus:

Azure Storage-Erstellung abgeschlossen

Erstellung des Blobspeichers

Als Nächstes benötigen wir zwei Blobcontainer: einen für die Eingabe und einen für die Ausgabe.

  1. Über die Schaltfläche Zu Ressource wechseln gelangen Sie auf eine Seite, die links einen Bereich mit einem Listenmenü enthält. Wählen Sie in dieser Liste unter der Kategorie Blob-DienstContainer aus:

Azure: Container hinzufügen

  1. Wählen Sie die Schaltfläche + Container aus, um den Blobspeichercontainer input zu erstellen. Verwenden Sie beim Erstellen die folgenden Einstellungen:
  • Name: arrinput
  • Öffentliche Zugriffsebene: Privat
  1. Wählen Sie nach der Erstellung des Containers erneut + Container aus, und geben Sie die Einstellungen entsprechend für den Container output ein:
  • Name: arroutput
  • Öffentliche Zugriffsebene: Privat

Sie verfügen nun über zwei Blobspeichercontainer:

Einrichtung des Blobspeichers

Durchführen der Konvertierung

Es gibt drei verschiedene Möglichkeiten, eine Modellkonvertierung auszulösen:

1. Konvertierung über das ARRT-Tool

Es gibt ein UI-basiertes Tool namens ARRT, um Konvertierungen zu starten und mit dem gerenderten Ergebnis zu interagieren. ARRT

2. Konvertierung über ein PowerShell-Skript

Wir haben für Sie ein Hilfsprogrammskript bereitgestellt, um Ihnen das Aufrufen des Diensts für die Ressourcenkonvertierung zu erleichtern. Es befindet sich im Ordner Scripts und hat den Namen Conversion.ps1.

Dieses Skript bewirkt Folgendes:

  • Hochladen aller Dateien aus einem bestimmten Verzeichnis des lokalen Datenträgers in den Eingabespeichercontainer
  • Ruft die REST-API für die Medienobjektkonvertierung auf
    • diese API ruft die Daten aus dem Eingabespeichercontainer ab, startet eine Konvertierung und gibt eine Konvertierungs-ID zurück,
  • Abfragen der Konvertierungsstatus-API mit der abgerufenen Konvertierungs-ID, bis der Konvertierungsprozess mit „Erfolg“ oder „Fehler“ beendet wird
  • Abrufen eines Links zur konvertierten Ressource im Ausgabespeicher

Für dieses Skript wird die Konfiguration aus der Datei Scripts\arrconfig.json ausgelesen. Öffnen Sie die JSON-Datei in einem Text-Editor.

{
    "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"
    }
}

Die Konfigurationsangaben in der Gruppe accountSettings (Konto-ID, Schlüssel und Domäne) sollten analog zu den Anmeldeinformationen eingegeben werden, die unter Schnellstart: Rendern eines Modells mit Unity verwendet wurden.

Eine vollständige Konfiguration der RenderingSessionSettings-Gruppe (Domäne, vmSize und maxLeaseTime) finden Sie in PowerShell-Beispielskripts. VmSize und maxLeaseTime sind für die Konvertierung nicht wichtig und können weggelassen werden, da sie sich nicht auf die Konvertierung auswirken.

Ändern Sie in der Gruppe assetConversionSettings die Einstellungen für resourceGroup, blobInputContainerName und blobOutputContainerName. Der Wert arrtutorialstorage muss durch den eindeutigen Namen ersetzt werden, den Sie beim Erstellen des Speicherkontos gewählt haben.

Ändern Sie localAssetDirectoryPath so, dass auf das Verzeichnis auf Ihrem Datenträger verwiesen wird, in dem das zu konvertierende Modell enthalten ist. Achten Sie darauf, dass Sie für im Pfad enthaltene umgekehrte Schrägstriche ("\") doppelte umgekehrte Schrägstriche ("\\") als Escapezeichen verwenden.

Der Dienst lädt alle Daten unter dem Pfad localAssetDirectoryPath in den Blobcontainer blobInputContainerName hoch, der sich unter dem Unterpfad in inputFolderPath befindet. In der obigen Beispielkonfiguration lädt der Dienst den Inhalt des Verzeichnisses „D:\tmp\robot“ in den Blobcontainer „arrinput“ des Speicherkontos „arrtutorialstorage“ unter dem Pfad „robotConversion“ hoch. Bereits vorhandene Dateien werden überschrieben.

Ändern Sie inputAssetPath in den Pfad des zu konvertierenden Modells, der relativ zu „localAssetDirectoryPath“ ist. Verwenden Sie „/“ anstelle von „\“ als Pfadtrennzeichen. Für die Datei „robot.fbx“, die sich direkt unter „D:\tmp\robot"“ befindet, verwenden Sie also „robot.fbx“.

Nachdem das Modell konvertiert wurde, wird es in den Speichercontainer zurückgeschrieben, der unter blobOutputContainerName angegeben ist. Sie können einen Unterpfad angeben, indem Sie optional einen Wert für outputFolderPath einfügen. Im Beispiel kopiert der Dienst das sich ergebende Element „robot.arrAsset“ in den Ausgabeblobcontainer unter „converted/robot“.

Die Konfigurationseinstellung outputAssetFileName bestimmt den Namen des konvertierten Medienobjekts. Der Parameter ist optional, und wenn nicht angegeben, verwendet der Dienst den Namen der Eingabedatei, um einen Ausgabenamen zu generieren.

Öffnen Sie eine PowerShell-Instanz, und vergewissern Sie sich, dass Sie Azure PowerShell gemäß den Voraussetzungen installiert haben. Melden Sie sich dann mit dem folgenden Befehl bei Ihrem Abonnement an, und befolgen Sie die Anweisungen auf dem Bildschirm:

Connect-AzAccount

Hinweis

Falls Ihre Organisation über mehrere Abonnements verfügt, müssen Sie ggf. die Argumente für die Abonnement-ID und den Mandanten angeben. Weitere Informationen finden Sie in der Dokumentation zu „Connect-AzAccount“.

Wechseln Sie zum Verzeichnis azure-remote-rendering\Scripts, und führen Sie das Konvertierungsskript aus:

.\Conversion.ps1 -UseContainerSas

Die Ausgabe sollte folgendermaßen aussehen: Conversion.ps1

3. Konvertierung über API-Aufrufe

Die C#- und die C++-API stellen beide einen Einstiegspunkt für die Interaktion mit dem Dienst bereit:

Einfügen eines neuen Modells in die Schnellstart-Beispiel-App

Das Konvertierungsskript generiert einen SAS-URI (Shared Access Signature) für das konvertierte Modell. Sie können diesen URI jetzt als Modellnamen in die Beispiel-App der Schnellstartanleitung kopieren (siehe Schnellstart: Rendern eines Modells mit Unity).

Ersetzen des Modells in Unity

Für das Beispiel sollte nun das benutzerdefinierte Modell geladen und gerendert werden.

Optional: Erneutes Erstellen eines SAS-URI

Der vom Konvertierungsskript erstellte SAS-URI ist nur 24 Stunden lang gültig. Nach Ablauf des Gültigkeitszeitraums müssen Sie Ihr Modell aber nicht noch einmal konvertieren. Stattdessen können Sie im Portal eine neue SAS erstellen, indem Sie wie hier beschrieben vorgehen:

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie Ihre Speicherkonto-Ressource aus:

Auf dem Screenshot ist die ausgewählte Speicherkontoressource hervorgehoben.

  1. Wählen Sie auf dem folgenden Bildschirm links Storage-Explorer aus, und greifen Sie im Blobspeichercontainer arroutput auf Ihr Ausgabemodell (.arrAsset-Datei) zu. Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie im Kontextmenü die Option Shared Access Signature erhalten:

    Zugriff auf Signatur

  2. Ein neuer Bildschirm wird geöffnet, in dem Sie ein Ablaufdatum auswählen können. Wählen Sie Erstellen aus, und kopieren Sie den URI, der im nächsten Dialogfeld angezeigt wird. Dieser neue URI ersetzt den temporären URI, der vom Skript erstellt wurde.

Nächste Schritte

Nachdem Sie sich nun mit den Grundlagen vertraut gemacht haben, können Sie mit den Tutorials fortfahren, um ausführlichere Informationen zu erhalten.

Details zur Modellkonvertierung finden Sie im Artikel zur REST-API für die Modellkonvertierung.