Início Rápido: Converter um modelo para composição

No Início Rápido: Compor um modelo com o Unity, aprendeu a utilizar o projeto de exemplo do Unity para compor um modelo incorporado.

Este guia mostra como converter os seus próprios modelos, o que implica estes passos:

  • Configurar uma conta de armazenamento de blobs do Azure para entrada e saída
  • Carregar e converter um modelo 3D para utilização com o Azure Remote Rendering
  • Incluir o modelo 3D convertido numa aplicação para composição

Pré-requisitos

Descrição Geral

O compositor no servidor não pode funcionar diretamente com formatos de modelo de origem, como FBX ou GLTF. Em vez disso, requer que o modelo esteja num formato binário proprietário. O serviço de conversão consome modelos do armazenamento de blobs do Azure e escreve modelos convertidos novamente num contentor de armazenamento de blobs do Azure fornecido.

É necessário:

  • Uma subscrição do Azure
  • Uma conta "StorageV2" na sua subscrição
  • Um contentor de armazenamento de blobs para o modelo de entrada
  • Um contentor de armazenamento de blobs para os dados de saída
  • Um modelo para converter, veja modelos de exemplo
    • Veja a lista de formatos de origem suportados
    • Para utilizar o script de conversão de exemplo, certifique-se de que prepara uma pasta de entrada que contém o modelo e todas as dependências externas (como texturas externas ou geometria)

Configuração do Azure

Se ainda não tiver uma conta, aceda a Introdução ao Azure, selecione a opção conta gratuita e siga as instruções.

Assim que tiver uma conta do Azure, inicie sessão no portal do Azure.

Criação da conta de armazenamento

Para criar o armazenamento de blobs, primeiro precisa de uma conta de armazenamento.

  1. Para criar um, selecione "Criar um recurso":

Azure – adicionar recurso

  1. No novo ecrã, selecione Armazenamento no lado esquerdo e, em seguida , Conta de armazenamento – blob, ficheiro, tabela, fila da coluna seguinte:

Azure – adicionar armazenamento

  1. Clicar neste botão apresenta o seguinte ecrã com propriedades de armazenamento para preencher:

Configuração do Azure

  1. Preencha o formulário da seguinte forma:
  • Crie um novo Grupo de Recursos a partir da ligação abaixo da caixa pendente e dê um nome a este ARR_Tutorial
  • Para o nome da conta de armazenamento, introduza um nome exclusivo aqui. Este nome tem de ser globalmente exclusivo. É apresentada uma mensagem de erro se o nome já estiver a ser utilizado. No âmbito deste início rápido, atribuímos-lhe o nome arrtutorialstorage. Em conformidade, tem de substituí-lo pelo seu nome para qualquer ocorrência neste início rápido.
  • Selecione uma Região perto de si. Idealmente, utilize a mesma região utilizada para configurar a composição no outro início rápido.
  • Desempenho definido como "Premium". O "Standard" também funciona, mas tem características de tempo de carregamento mais baixos ao carregar um modelo.
  • Tipo de conta Premium definido como "Blobs de blocos"
  • Redundância definida como "Armazenamento com redundância entre zonas (ZRS)"
  1. Nenhuma das propriedades nos outros separadores tem de ser alterada, pelo que pode continuar com "Rever + criar" e, em seguida, seguir os passos para concluir a configuração.

  2. O site informa-o agora sobre o progresso da sua implementação e comunica "A sua implementação está concluída" eventualmente. Selecione "Ir para recurso" para os passos seguintes:

Criação do Armazenamento do Azure concluída

Criação de armazenamento de blobs

Em seguida, precisamos de dois contentores de blobs, um para entrada e outro para saída.

  1. No botão "Ir para recurso ", chega a uma página com um painel à esquerda que contém um menu de lista. Nessa lista, na categoria "Serviço blob ", selecione "Contentores":

Azure – adicionar Contentores

  1. Prima o botão "+ Contentor" para criar o contentor de armazenamento de blobs de entrada . Utilize as seguintes definições ao criá-la:
  • Nome = arrinput
  • Nível de acesso público = Privado
  1. Depois de o contentor ter sido criado, selecione + Contentor novamente e repita com estas definições para o contentor de saída :
  • Nome = arroutput
  • Nível de acesso público = Privado

Agora, deverá ter dois contentores de armazenamento de blobs:

Configuração do Armazenamento de Blobs

Executar a conversão

Existem três formas distintas de acionar uma conversão de modelo:

1. Conversão através da ferramenta ARRT

Existe uma ferramenta baseada na IU chamada ARRT para iniciar conversões e interagir com o resultado composto.

2. Conversão através de um script do PowerShell

Para facilitar a chamada do serviço de conversão de recursos, fornecemos um script de utilidade. Está localizado na pasta Scripts e chama-seConversion.ps1.

Em particular, este script

  • carrega todos os ficheiros num determinado diretório do disco local para o contentor de armazenamento de entrada,
  • chama a API REST de conversão de recursos
    • esta api obtém os dados do contentor de armazenamento de entrada, inicia uma conversão e devolve um ID de conversão,
  • consulta a API de estado de conversão com o ID de conversão obtido até que o processo de conversão termine com êxito ou falha,
  • obtém uma ligação para o recurso convertido no armazenamento de saída.

O script lê a configuração do ficheiro Scripts\arrconfig.json. Abra esse ficheiro JSON num editor de texto.

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

A configuração no grupo accountSettings (ID da conta, chave e domínio) deve ser preenchida análoga às credenciais no início rápido Compor um modelo com o Unity.

Pode ver uma configuração completa do grupo renderingSessionSettings (domínio, vmSize e maxLeaseTime) nos scripts de Exemplo do PowerShell. O vmSize e maxLeaseTime não são importantes para a conversão e podem ser omitidos, uma vez que não afetam a conversão.

No grupo assetConversionSettings , certifique-se de que altera resourceGroup, blobInputContainerName e blobOutputContainerName. O valor para arrtutorialstorage tem de ser substituído pelo nome exclusivo que escolheu durante a criação da conta de armazenamento.

Altere localAssetDirectoryPath para apontar para o diretório no disco, que contém o modelo que pretende converter. Tenha cuidado para escapar corretamente das barras invertidas ("\") no caminho com barras invertidas duplas ("\\").

O serviço carrega todos os dados do caminho indicado no localAssetDirectoryPath para o contentor de blobs blob BlobInputContainerName num subpath fornecido pela inputFolderPath. Com a configuração de exemplo, o serviço carrega o conteúdo do diretório "D:\tmp\robot" para o contentor de blobs "arrinput" da conta de armazenamento "arrtutorialstorage" no caminho "robotConversion". Os ficheiros já existentes estão substituídos.

Altere inputAssetPath para o caminho do modelo a converter - o caminho é relativo a localAssetDirectoryPath. Utilize "/" em vez de "\" como separador de caminho. Assim, para um ficheiro "robot.fbx", que está localizado diretamente em "D:\tmp\robot", utilize "robot.fbx".

Assim que o modelo for convertido, é escrito novamente no contentor de armazenamento fornecido pelo blobOutputContainerName. Pode especificar um subpath ao fornecer o outputFolderPath opcional. No exemplo, o serviço copia o "robot.arrAsset" resultante para o contentor de blobs de saída em "convertido/robô".

A definição de configuração outputAssetFileName determina o nome do recurso convertido - o parâmetro é opcional e, se não for especificado, o serviço utiliza o nome do ficheiro de entrada para gerar um nome de saída.

Abra um PowerShell, certifique-se de que instalou o Azure PowerShell conforme mencionado nos pré-requisitos. Em seguida, inicie sessão na sua subscrição com o seguinte comando e siga as instruções apresentadas no ecrã:

Connect-AzAccount

Nota

Caso a sua organização tenha mais do que uma subscrição, poderá ter de especificar os argumentos SubscriptionId e Tenant. Encontre detalhes na documentação Connect-AzAccount.

Mude para o azure-remote-rendering\Scripts diretório e execute o script de conversão:

.\Conversion.ps1 -UseContainerSas

Deverá ver algo assim: Conversion.ps1

3. Conversão através de chamadas à API

Tanto o C# como a API C++ fornecem um ponto de entrada para interagir com o serviço:

Inserir um novo modelo na Aplicação de Exemplo de Início Rápido

O script de conversão gera um URI de Assinatura de Acesso Partilhado (SAS) para o modelo convertido. Agora, pode copiar este URI como o Nome do Modelo para a aplicação de exemplo de início rápido (veja Início Rápido: Compor um modelo com o Unity).

Substituir modelo no Unity

O exemplo deverá agora carregar e compor o seu modelo personalizado!

Opcional: recriar um URI de SAS

O URI de SAS criado pelo script de conversão expira após 24 horas. No entanto, depois de expirar, não precisa de converter o modelo novamente. Em vez disso, pode criar uma nova SAS no portal, conforme descrito nos passos seguintes:

  1. Inicie sessão no portal do Azure.
  2. Selecione o recurso da conta de Armazenamento :

Captura de ecrã que realça o recurso da Conta de armazenamento selecionado.

  1. No ecrã seguinte, selecione Explorador de armazenamento no painel esquerdo e localize o modelo de saída (ficheiro.arrAsset ) no contentor de armazenamento de blobs arroutput . Clique com o botão direito do rato no ficheiro e selecione Obter Assinatura de Acesso Partilhado no menu de contexto:

    Acesso à Assinatura

  2. É aberto um novo ecrã onde pode selecionar uma data de expiração. Prima Criar e copie o URI apresentado na caixa de diálogo seguinte. Este novo URI substitui o URI temporário que o script criou.

Passos seguintes

Agora que já conhece as noções básicas, veja os nossos tutoriais para obter conhecimentos mais aprofundados.

Se quiser saber os detalhes da conversão do modelo, veja a API REST de conversão de modelos.