Inicio rápido: Conversión de un modelo para su representación

En Inicio rápido: Representación de un modelo con Unity, ha aprendido a usar el proyecto de ejemplo de Unity para representar un modelo integrado.

En esta guía, se muestra cómo convertir sus propios modelos, lo que implica estos pasos:

  • Configurar una cuenta de almacenamiento de blobs de Azure para la entrada y salida
  • Cargar y convertir un modelo 3D para su uso con Azure Remote Rendering
  • Incluir el modelo 3D convertido en una aplicación para su representación

Prerrequisitos

Información general

El representador del servidor no puede trabajar directamente con formatos del modelo de origen como FBX o GLTF. En su lugar, requiere que el modelo esté en un formato binario propietario. El servicio de conversión consume modelos de almacenamiento de blobs de Azure y vuelve a escribir los modelos convertidos en un contenedor de almacenamiento de blobs de Azure proporcionado.

Necesita:

  • Una suscripción de Azure
  • Una cuenta "StorageV2" de la suscripción
  • Un contenedor de almacenamiento de blobs para el modelo de entrada
  • Un contenedor de almacenamiento de blobs para los datos de salida
  • Un modelo que se va a convertir, consulte Modelos de ejemplo.
    • Consulte la lista de formatos de origen admitidos.
    • Para usar el script de conversión de ejemplo, asegúrese de preparar una carpeta de entrada que contenga el modelo y todas las dependencias externas (como texturas externas o geometría).

Configuración de Azure

Si aún no tiene una cuenta, vaya a Introducción a Azure, seleccione la opción de cuenta gratuita y siga las instrucciones.

Una vez que tenga una cuenta de Azure, inicie sesión en Azure Portal.

Creación de cuentas de almacenamiento

Para crear el almacenamiento de blobs, primero necesita una cuenta de almacenamiento.

  1. Seleccione "Crear un recurso" para crear una.

Azure: Agregar recurso

  1. En la pantalla nueva, elija Almacenamiento en el lado izquierdo y, a continuación, Cuenta de almacenamiento: blob, archivo, tabla, cola de la columna siguiente:

Azure: Agregar almacenamiento

  1. Al hacer clic en este botón, aparece la siguiente pantalla con las propiedades de almacenamiento que se van a rellenar:

Configuración de Azure

  1. Rellene el formulario de la siguiente manera:
  • Cree un nuevo grupo de recursos en el vínculo situado debajo del cuadro desplegable y asígnele el nombre ARR_Tutorial.
  • En Nombre de la cuenta de almacenamiento, escriba un nombre único. Este nombre debe ser único globalmente. Se muestra un mensaje de error si el nombre ya se ha usado. En el ámbito de este artículo de inicio rápido, se denomina arrtutorialstorage. En consecuencia, debe reemplazarlo por su nombre para cualquier aparición en este inicio rápido.
  • Seleccione una Región cercana. Lo ideal es utilizar la misma región que la usada para configurar la representación en el otro inicio rápido.
  • Rendimiento se debe establecer en "Prémium". "Estándar" también funciona, pero tiene características inferiores de tiempo de carga al cargar un modelo.
  • Tipo de cuenta Premium establecido en "Blobs en bloques".
  • Redundancia establecida en "Almacenamiento con redundancia de zona (ZRS)".
  1. No es necesario cambiar ninguna de las propiedades de otras pestañas, por lo que puede continuar con "Revisar y crear" y, a continuación, seguir los pasos para completar la instalación.

  2. El sitio web ahora le informa sobre el progreso de la implementación y notifica que la implementación se ha completado. Seleccione "Ir al recurso" para ver los pasos siguientes:

Creación de Azure Storage completa

Creación de almacenamiento de blobs

A continuación, necesitamos dos contenedores de blobs, uno para la entrada y otro para la salida.

  1. En el botón "Ir al recurso", accederá a una página con un panel a la izquierda que contiene un menú de lista. En esa lista, en la categoría "Blob service", seleccione "Contenedores":

Azure: Agregar contenedores

  1. Presione el botón "+ Contenedor" para crear el contenedor de almacenamiento de blobs de entrada. Utilice la siguiente configuración al crearlo:
  • Nombre = arrinput
  • Nivel de acceso público = Privado
  1. Una vez creado el contenedor, seleccione + Contenedor de nuevo y repita esta configuración para el contenedor de salida:
  • Nombre = arroutput
  • Nivel de acceso público = Privado

Ahora debería tener dos contenedores de almacenamiento de blobs:

Configuración de almacenamiento de blobs

Ejecución de la conversión

Hay tres formas distintas de desencadenar una conversión de modelos:

1. Conversión mediante la herramienta ARRT

Hay una herramienta basada en la interfaz de usuario denominada ARRT para iniciar las conversiones e interactuar con el resultado representado. ARRT

2. Conversión a través de un script de PowerShell

Para facilitar la llamada al servicio de conversión de recursos, se proporciona un script de utilidad. Se encuentra en la carpeta Scripts y se llama Conversion.ps1.

En concreto, este script:

  • Carga todos los archivos de un directorio determinado desde el disco local al contenedor de almacenamiento de entrada.
  • llama a la API de REST de conversión de recursos
    • esta API recupera los datos del contenedor de almacenamiento de entrada, inicia una conversión y devuelve un identificador de conversión,
  • Sondea la API de estado de la conversión con el id. de conversión recuperado hasta que el proceso de conversión finalice con un estado de Correcto o Error.
  • Recupera un vínculo al recurso convertido en el almacenamiento de salida.

El script lee su configuración del archivo Scripts\arrconfig.json. Abra el archivo JSON con un 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"
    }
}

La configuración del grupo accountSettings (identificador de cuenta, clave y dominio) debe rellenarse de forma análoga a las credenciales del artículo Representación de un modelo con Unity.

Se puede ver una configuración completa del grupo renderingSessionSettings (dominio, vmSize y maxLeaseTime) en los scripts de ejemplo de PowerShell. vmSize y maxLeaseTime no son importantes para la conversión y se pueden omitir, ya que no afectan la conversión.

En el grupo assetConversionSettings, asegúrese de cambiar resourceGroup, blobInputContainerName y blobOutputContainerName. El valor arrtutorialstorage debe reemplazarse por el nombre único seleccionado durante la creación de la cuenta de almacenamiento.

Cambie localAssetDirectoryPath para que apunte al directorio del disco, que contiene el modelo que quiere convertir. Tenga cuidado de escapar correctamente las barras diagonales inversas ("\") en la ruta de acceso mediante dos barras diagonales inversas ("\\").

El servicio carga todos los datos de la ruta de acceso proporcionada en localAssetDirectoryPath en el contenedor de blobs blobInputContainerName en un subtrazado proporcionado por inputFolderPath. Con la configuración de ejemplo, el servicio carga el contenido del directorio "D:\tmp\robot" en el contenedor de blobs "arrinput" de la cuenta de almacenamiento "arrtutorialstorage" en la ruta de acceso "robotConversion". Se sobrescribirá cualquier archivo existente.

Cambie inputAssetPath a la ruta de acceso del modelo que se va a convertir: la ruta de acceso está relacionada con localAssetDirectoryPath. Use "/" en lugar de "\" como separador de la ruta de acceso. Por lo tanto, para un archivo "robot.fbx" que está ubicado directamente en "D:\tmp\robot", use "robot.fbx".

Después de convertir el modelo, se volverá a escribir en el contenedor de almacenamiento proporcionado por blobOutputContainerName. Se puede especificar un subtrazado proporcionando el valor de outputFolderPath opcional. En el ejemplo, el servicio copia el "robot.arrAsset" resultante en el contenedor de blobs de salida en "converted/robot".

El valor de configuración outputAssetFileName determina el nombre del recurso convertido: el parámetro es opcional y, si no se especifica, el servicio usa el nombre de archivo de entrada para generar un nombre de salida.

Abra una instancia de PowerShell, asegúrese de que ha instalado Azure PowerShell como se mencionó en los requisitos previos. Después, inicie sesión en la suscripción con el siguiente comando y siga las instrucciones de la pantalla:

Connect-AzAccount

Nota

Si la organización tiene más de una suscripción, puede que tenga que especificar los argumentos de SubscriptionId y Tenant. Busque los detalles en la documentación de Connect-AzAccount.

Cambie al directorio azure-remote-rendering\Scripts y ejecute el script de conversión:

.\Conversion.ps1 -UseContainerSas

Puede ver algo así: Conversion.ps1

3. Conversión a través de llamadas API

Tanto la API de C# como de C++ proporciona un punto de entrada para interactuar con el servicio:

Inserción de un nuevo modelo en la aplicación Inicio rápido de ejemplo

El script de conversión genera un identificador URI de Firma de acceso compartido (SAS) para el modelo convertido. Ahora puede copiar este identificador URI como el nombre de modelo en la aplicación de ejemplo del artículo de inicio rápido (consulte Inicio rápido: Representación de un modelo con Unity).

Reemplazo del modelo en Unity

El ejemplo debería ahora cargar y representar el modelo personalizado.

Opcional: Recreación de un URI de SAS

El identificador URI de SAS creado por el script de conversión expira después de 24 horas. Pero una vez expirado, no es necesario volver a convertir el modelo. En su lugar, puede crear una nueva SAS en el portal, tal y como se describe en los pasos siguientes:

  1. Inicie sesión en Azure Portal.
  2. Seleccione el recurso Cuenta de almacenamiento:

Captura de pantalla que resalta el recurso de la cuenta de almacenamiento seleccionada.

  1. En la pantalla siguiente, seleccione Explorador de almacenamiento en el panel izquierdo y busque el modelo de salida (archivo .arrAsset) en el contenedor de almacenamiento de blobs arroutput. Haga clic con el botón derecho en el archivo y seleccione Obtener firma de acceso compartido en el menú contextual:

    Acceso a firmas

  2. Se abre una nueva pantalla en la que puede seleccionar una fecha de expiración. Presione Crear y copie el identificador URI que se muestra en el siguiente cuadro de diálogo. Este nuevo identificador URI reemplaza el URI temporal que creó el script.

Pasos siguientes

Ahora que conoce los conceptos básicos, consulte nuestros tutoriales para obtener un conocimiento más profundo.

Si desea obtener información detallada sobre la conversión de modelos, consulte la API REST de conversión de modelos.