Biblioteca de clientes das Âncoras de Objeto do Azure para .NET – versão 0.3.0-beta.6

As Âncoras de Objeto do Azure permitem que um aplicativo detecte um objeto no mundo físico usando um modelo 3D e estime sua pose com 6DoF (Seis Graus de Liberdade). Esse pacote dá suporte à conversão de um ativo 3D existente em um formulário que pode ser usado pelo runtime das Âncoras de Objeto para detectar objetos físicos.

Código-fonte | Pacote (NuGet)

Introdução

Instalar o pacote

Instale a biblioteca de clientes das Âncoras de Objeto do Azure para .NET com o NuGet:

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

Adicione uma referência de pacote:

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

Pré-requisitos

Autenticar o cliente

Realidade Misturada serviços dão suporte a algumas formas diferentes de autenticação:

  • Autenticação de chave de conta
    • As chaves de conta permitem que você comece rapidamente a usar Realidade Misturada serviços. Mas antes de implantar seu aplicativo em produção, recomendamos que você atualize o aplicativo para usar a autenticação do Azure AD.
  • Autenticação de token do Azure Active Directory (AD)
    • Se você estiver criando um aplicativo empresarial e sua empresa estiver usando o Azure AD como sistema de identidade, você poderá usar a autenticação do Azure AD baseada no usuário em seu aplicativo. Em seguida, você concede acesso à sua conta de Âncoras de Objeto usando seus grupos de segurança Azure AD existentes. Você também pode permitir acesso diretamente aos usuários em sua organização.
    • Caso contrário, é recomendável que você obtenha tokens do Azure AD em um serviço Web que dê suporte ao seu aplicativo. Recomendamos esse método para aplicativos de produção porque ele permite evitar a inserção das credenciais para acesso ao serviço de conversão de ativos das Âncoras de Objeto em seu aplicativo cliente.

Consulte aqui para obter instruções e informações detalhadas.

Principais conceitos

ObjectAnchorsConversionClient

O ObjectAnchorsConversionClient é a biblioteca de clientes usada para acessar o serviço de conversão de ativos âncoras de objeto. A partir daí, um URI de upload de armazenamento será fornecido para que os usuários carreguem seus ativos para conversão em um formato utilizável pelo runtime das Âncoras de Objeto.

Os ativos carregados no URI hospedado pela Microsoft obtidos do cliente serão retidos por 48 horas.

O modelo convertido final no armazenamento hospedado pela Microsoft será mantido por 48 horas.

Exemplos

Carregar um ativo para conversão de ativos de Âncoras de Objeto

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 a conversão de ativos 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);

Sondar uma conversão de ativo ObjectAnchors existente até a conclusão e baixar o 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);
}

Solução de problemas

Próximas etapas

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.