Avvio rapido: Convertire un modello per il rendering

Nell'argomento di Avvio rapido: Eseguire il rendering di un modello con Unity è stato descritto come usare il progetto di esempio di Unity per eseguire il rendering di un modello predefinito.

Questa guida illustra come convertire i propri modelli, comportando questi passaggi:

  • Configurare un account di archiviazione BLOB di Azure per l'input e l'output
  • Caricare e convertire un modello 3D per l'uso con Rendering remoto di Azure
  • Includere il modello 3D convertito in un'applicazione per il rendering

Prerequisiti

Panoramica

Il renderer sul server non può funzionare direttamente con i formati di modello di origine, ad esempio FBX o GLTF. Al contrario, richiede che il modello sia in un formato binario proprietario. Il servizio di conversione usa i modelli presenti nell'archiviazione BLOB di Azure e scrive i modelli convertiti in un contenitore di archiviazione BLOB di Azure fornito.

È necessario:

  • Una sottoscrizione di Azure.
  • Un account 'Archiviazione V2' nella sottoscrizione
  • Un contenitore di archiviazione BLOB per il modello di input
  • Un contenitore di archiviazione BLOB per i dati di output
  • Un modello da convertire, vedere modelli di esempio
    • Vedere l'elenco di formati di origine supportati
    • Per usare lo script di conversione di esempio, assicurarsi di preparare una cartella di input che contenga il modello e tutte le dipendenze esterne (ad esempio, trame esterne o geometria)

Configurazione di Azure

Se non si ha ancora un account, passare a Introduzione ad Azure, selezionare l'opzione account gratuito e seguire le istruzioni.

Dopo aver creato un account Azure, accedere al portale di Azure.

Creazione di un account di archiviazione

Per creare l'archiviazione BLOB, è necessario prima di tutto un account di archiviazione.

  1. Per crearne uno, selezionare "Crea una risorsa":

Azure - Aggiungere una risorsa

  1. Nella nuova schermata scegliere Archiviazione sul lato sinistro, quindi Account di archiviazione - BLOB, file, tabella, coda dalla colonna successiva:

Azure - Aggiungere una risorsa di archiviazione

  1. Facendo clic su questo pulsante viene visualizzata la schermata seguente con le proprietà di archiviazione da compilare:

Configurazione di Azure

  1. Compilare il modulo nel modo seguente:
  • Creare un nuovo gruppo di risorse dal collegamento sotto la casella di riepilogo a discesa e denominarlo ARR_Tutorial
  • Immettere un nome univoco in Nome account di archiviazione. Questo nome deve essere univoco a livello globale. Se il nome è già acquisito, viene visualizzato un messaggio di errore. Nell'ambito di questo avvio rapido verrà usato il nome arrtutorialstorage. Di conseguenza, è necessario sostituirlo con il proprio nome per qualsiasi occorrenza in questo avvio rapido.
  • Selezionare un'area vicina. In teoria, usare la stessa area usata per configurare il rendering nell'altra guida introduttiva.
  • Prestazioni impostate su 'Premium'. 'Standard' funziona anche, ma presenta caratteristiche di tempo di caricamento inferiori durante il caricamento di un modello.
  • Tipo di account Premium impostato su "BLOB in blocchi"
  • Ridondanza impostata su 'Archiviazione con ridondanza della zona (ZRS)'
  1. Non è necessario modificare le proprietà nelle altre schede, quindi è possibile procedere con "Rivedi e crea" e quindi seguire i passaggi per completare la configurazione.

  2. Il sito Web informa ora lo stato di avanzamento della distribuzione e riporta infine "La distribuzione è stata completata". Selezionare "Vai alla risorsa" per i passaggi successivi:

Creazione dell'archiviazione di Azure completata

Creazione dell'archiviazione BLOB

Sono quindi necessari due contenitori BLOB, uno per l'input e uno per l'output.

  1. Dal pulsante "Vai alla risorsa" si arriva a una pagina con un pannello a sinistra che contiene un menu elenco. Nell'elenco nella categoria "Servizio BLOB" selezionare "Contenitori":

Azure - Aggiungere contenitori

  1. Premere il pulsante "+ Contenitore" per creare il contenitore di archiviazione BLOB di input. Usare le impostazioni seguenti durante la creazione:
  • Nome = arrInput
  • Livello di accesso pubblico = Privato
  1. Dopo aver creato il contenitore, selezionare di nuovo + Contenitore e ripetere con queste impostazioni per il contenitore di output :
  • Nome = arroutput
  • Livello di accesso pubblico = Privato

A questo punto dovrebbero essere presenti due contenitori di archiviazione BLOB:

Configurazione dell'archiviazione BLOB

Eseguire la conversione

Per attivare la conversione di un modello, sono disponibili tre modi distinti:

1. Conversione tramite lo strumento per gli asset di Rendering remoto di Azure

È disponibile uno strumento basato sull'interfaccia utente denominato ARRT per avviare le conversioni e interagire con il risultato sottoposto a rendering. Schermata ARRT

2. Conversione tramite uno script di PowerShell

Per semplificare la chiamata al servizio di conversione degli asset, viene fornito uno script di utilità. Si trova nella cartella Scripts e viene chiamato Conversion.ps1.

In particolare, questo script

  • carica tutti i file in una determinata directory dal disco locale al contenitore di archiviazione di input,
  • chiama l'API REST di conversione degli asset
    • questa API recupera i dati dal contenitore di archiviazione di input, avvia una conversione e restituisce un ID di conversione,
  • esegue il polling dell'API di stato della conversione con l'ID di conversione recuperato fino a quando il processo di conversione non termina con esito positivo o negativo,
  • recupera un collegamento all'asset convertito nell'archiviazione di output.

Lo script legge la configurazione dal file Scripts\arrconfig.json. Aprire il file JSON in un editor di testo.

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

La configurazione all'interno del gruppo accountSettings (ID account, chiave e dominio) deve essere compilata in modo analogo alle credenziali nella guida introduttiva Eseguire il rendering di un modello con Unity.

Una configurazione completa del gruppo renderingSessionSettings (dominio, vmSize e maxLeaseTime) può essere visualizzata negli script di esempio di PowerShell. VmSize e maxLeaseTime non sono importanti per la conversione e possono essere omessi, perché non influiscono sulla conversione.

All'interno del gruppo assetConversionSettings assicurarsi di modificare resourceGroup, blobInputContainerName e blobOutputContainerName. Il valore di arrtutorialstorage deve essere sostituito con il nome univoco selezionato durante la creazione dell'account di archiviazione.

Impostare localAssetDirectoryPath in modo che punti alla directory sul disco che contiene il modello da convertire. Prestare attenzione a eseguire correttamente l'escape delle barre rovesciata ("\") nel percorso usando doppie barre rovesciata ("\\").

Il servizio carica tutti i dati dal percorso specificato in localAssetDirectoryPath nel contenitore BLOB BlobInputContainerName in un sottopercorso specificato da inputFolderPath. Con la configurazione di esempio, il servizio carica il contenuto della directory "D:\tmp\robot" nel contenitore BLOB "arrinput" dell'account di archiviazione "arrtutorialstorage" nel percorso "robotConversion". I file già esistenti vengono sovrascritti.

Modificare inputAssetPath nel percorso del modello da convertire. Il percorso è relativo a localAssetDirectoryPath. Usare "/" anziché "\" come separatore di percorso. Quindi, per un file "robot.fbx", che si trova direttamente in "D:\tmp\robot", usare "robot.fbx".

Dopo aver convertito il modello, viene riscritto nel contenitore di archiviazione fornito da blobOutputContainerName. È possibile specificare un sottopercorso fornendo il valore outputFolderPath facoltativo. Nell'esempio il servizio copia il "robot.arrAsset" risultante nel contenitore BLOB di output in "convertito/robot".

L'impostazione di configurazione outputAssetFileName determina il nome dell'asset convertito. Il parametro è facoltativo e, se non specificato, il servizio usa il nome del file di input per generare un nome di output.

Aprire una sessione di PowerShell, assicurarsi di aver installato Azure PowerShell come indicato nei prerequisiti. Accedere quindi alla sottoscrizione con il comando seguente e seguire le istruzioni visualizzate:

Connect-AzAccount

Nota

Se l'organizzazione ha più di una sottoscrizione, può essere necessario specificare gli argomenti SubscriptionId e Tenant. Per i dettagli, vedere la documentazione di Connect-AzAccount.

Passare alla directory azure-remote-rendering\Scripts ed eseguire lo script di conversione:

.\Conversion.ps1 -UseContainerSas

Verrà visualizzato un risultato simile al seguente: Conversion.ps1

3. Conversione tramite chiamate API

Le API in C# e in C++ forniscono un punto di ingresso per interagire con il servizio:

Inserire un nuovo modello nell'app di esempio della guida di avvio rapido

Lo script di conversione genera un URI di firma di accesso condiviso per il modello convertito. È ora possibile copiare questo URI come Nome modello nell'app di esempio dell'avvio rapido (vedere Avvio rapido: Eseguire il rendering di un modello con Unity).

Sostituire il modello in Unity

L'esempio dovrebbe ora caricare ed eseguire il rendering del modello personalizzato.

Facoltativo: Ricreazione di un URI di firma di accesso condiviso

L'URI di firma di accesso condiviso creato dallo script di conversione scade dopo 24 ore. Tuttavia, dopo la scadenza non è necessario convertire nuovamente il modello. È invece possibile creare una nuova firma di accesso condiviso nel portale, come descritto nei passaggi successivi:

  1. Accedere al portale di Azure.
  2. Selezionare la risorsa dell'account di archiviazione :

Screenshot che evidenzia la risorsa dell'account di archiviazione selezionata.

  1. Nella schermata seguente selezionare Storage Explorer nel pannello sinistro e trovare il modello di output (file con estensione arrAsset ) nel contenitore di archiviazione BLOB arroutput . Fare clic con il pulsante destro del mouse sul file e scegliere Ottieni firma di accesso condiviso dal menu di scelta rapida:

    Accesso alla firma

  2. Verrà visualizzata una nuova schermata in cui è possibile selezionare una data di scadenza. Premere Crea e copiare l'URI visualizzato nella finestra di dialogo successiva. Questo nuovo URI sostituisce l'URI temporaneo creato dallo script.

Passaggi successivi

Ora che si conoscono le nozioni di base, vedere le esercitazioni per ottenere una conoscenza più approfondita.

Per informazioni dettagliate sulla conversione dei modelli, vedere Usare l'API REST per la conversione di modelli.