Biblioteca cliente de Azure Object Anchors para .NET: versión 0.3.0-beta.6

Azure Object Anchors permite a una aplicación detectar un objeto en el mundo físico mediante un modelo 3D y estimar su posición 6-DoF (seis grados de libertad). Este paquete admite la conversión de un recurso 3D existente en un formulario que el tiempo de ejecución de Object Anchors puede usar para detectar objetos físicos.

Código | fuente Paquete (NuGet)

Introducción

Instalar el paquete

Instale la biblioteca cliente de Azure Object Anchors para .NET con NuGet:

dotnet add package Azure.MixedReality.ObjectAnchors.Conversion --prerelease

Agregue una referencia de paquete:

<PackageReference Include="Azure.MixedReality.ObjectAnchors.Conversion" Version="0.1.0-beta.0" />

Requisitos previos

Autenticar el cliente

Mixed Reality servicios admiten algunas formas diferentes de autenticación:

  • Autenticación de clave de cuenta
    • Las claves de cuenta le permiten empezar a trabajar rápidamente con Mixed Reality servicios. Sin embargo, antes de implementar la aplicación en la producción, es recomendable actualizarla para que pueda usar la autenticación de Azure AD.
  • Autenticación de tokens de Azure Active Directory (AD)
    • Si va a compilar una aplicación empresarial y su empresa usa Azure AD como sistema de identidades, puede usar en la aplicación la autenticación de Azure AD basada en el usuario. A continuación, se concede acceso a la cuenta de Object Anchors mediante los grupos de seguridad de Azure AD existentes. Igualmente, también puede conceder acceso directamente a los usuarios de la organización.
    • En caso contrario, es recomendable que obtenga los tokens de Azure AD de un servicio web que sea compatible con la aplicación. Se recomienda este método para las aplicaciones de producción, ya que permite evitar la inserción de las credenciales para el acceso al servicio de conversión de recursos de Object Anchors en la aplicación cliente.

Consulte aquí para obtener instrucciones detalladas e información.

Conceptos clave

ObjectAnchorsConversionClient

ObjectAnchorsConversionClient es la biblioteca cliente que se usa para acceder al servicio de conversión de recursos de Object Anchors. Desde allí, se proporcionará un URI de carga de almacenamiento para que los usuarios carguen sus recursos para la conversión en un formato que el tiempo de ejecución de Object Anchors pueda usar.

Los recursos cargados en el URI hospedado por Microsoft obtenidos del cliente se conservarán durante 48 horas.

El modelo convertido final en el almacenamiento hospedado por Microsoft se conservará durante 48 horas.

Ejemplos

Carga de un recurso para la conversión de recursos de Object Anchors

AzureKeyCredential credential = new AzureKeyCredential(accountKey);

ObjectAnchorsConversionClient client = new ObjectAnchorsConversionClient(accountId, accountDomain, credential);

AssetUploadUriResult uploadUriResult = await client.GetAssetUploadUriAsync();

Uri uploadedInputAssetUri = uploadUriResult.UploadUri;

BlobClient blobClient = new BlobClient(uploadedInputAssetUri);

using (FileStream fs = File.OpenRead(localFilePath))
{
  await blobClient.UploadAsync(fs);
}

Iniciar la conversión de recursos 3D

AssetConversionOptions assetConversionOptions = new AssetConversionOptions(uploadedInputAssetUri, AssetFileType.FromFilePath(localFilePath), assetGravity, scale);

// Or you can pass in an optional parameter DisableDetectScaleUnits if you are converting a FBX, specifying whether or not you want to disable automatic detection of the embedded scale units. 
// The detection is enabled by default.
AssetConversionOptions assetConversionOptions = new AssetConversionOptions(uploadedInputAssetUri, AssetFileType.FromFilePath(localFilePath), assetGravity, scale, disableDetectScaleUnits: true);

AssetConversionOperation operation = await client.StartAssetConversionAsync(assetConversionOptions);

Guid jobId = new Guid(operation.Id);

Sondear una conversión de recursos ObjectAnchors existente hasta la finalización y descargar el resultado

AssetConversionOperation operation = new AssetConversionOperation(assetConversionJobId, client);

await operation.WaitForCompletionAsync();

if (!operation.HasCompletedSuccessfully)
{
  throw new Exception("The asset conversion operation completed with an unsuccessful status");
}

BlobClient blobClient = new BlobClient(operation.Value.OutputModelUri);

BlobDownloadInfo downloadInfo = await blobClient.DownloadAsync();

using (FileStream file = File.OpenWrite(localFileDownloadPath))
{
    await downloadInfo.Content.CopyToAsync(file);
    FileInfo fileInfo = new FileInfo(localFileDownloadPath);
}

Solución de problemas

Pasos siguientes

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más detalles, visite https://cla.microsoft.com.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.