Share via


Azure Object Anchors-Clientbibliothek für .NET – Version 0.3.0-beta.6

Azure Object Anchors ermöglicht einer Anwendung mithilfe eines 3D-Modells das Erkennen eines Objekts in der physischen Welt und das Schätzen der räumlichen Lage nach den sechs Freiheitsgraden. Dieses Paket unterstützt die Konvertierung einer vorhandenen 3D-Ressource in ein Formular, das von der Object Anchors-Runtime verwendet werden kann, um physische Objekte zu erkennen.

Quellcode | Paket (NuGet)

Erste Schritte

Installieren des Pakets

Installieren Sie die Azure Object Anchors-Clientbibliothek für .NET mit NuGet:

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

Fügen Sie einen Paketverweis hinzu:

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

Voraussetzungen

Authentifizieren des Clients

Mixed Reality-Dienste unterstützen verschiedene Authentifizierungsformen:

  • Kontoschlüsselauthentifizierung
    • Mit Kontoschlüsseln können Sie schnell mit der Verwendung Mixed Reality-Dienste beginnen. Aber bevor Sie Ihre Anwendung in der Produktionsumgebung bereitstellen, empfiehlt es sich, dass Sie Ihre App für die Verwendung von Azure AD-Authentifizierung aktualisieren.
  • Azure Active Directory(AD)-Tokenauthentifizierung
    • Wenn Sie eine Unternehmensanwendung entwickeln und Ihr Unternehmen Azure AD als Identitätssystem verwendet, können Sie die benutzerbasierte Azure AD-Authentifizierung in Ihrer App verwenden. Anschließend gewähren Sie Mithilfe Ihrer vorhandenen Azure AD-Sicherheitsgruppen Zugriff auf Ihr Object Anchors-Konto. Sie können Benutzern in Ihrer Organisation Zugriff auch direkt gewähren.
    • Andernfalls empfiehlt es sich, Azure AD-Token von einem Webdienst abzurufen, der Ihre App unterstützt. Wir empfehlen diese Methode für Produktionsanwendungen, da Sie die Einbettung der Anmeldeinformationen für den Zugriff auf den Object Anchors-Ressourcenkonvertierungsdienst in Ihrer Clientanwendung vermeiden können.

Ausführliche Anweisungen und Informationen finden Sie hier .

Wichtige Begriffe

ObjectAnchorsConversionClient

Der ObjectAnchorsConversionClient ist die Clientbibliothek, die für den Zugriff auf den Objektanker-Objektkonvertierungsdienst verwendet wird. Von dort aus wird ein Speicherupload-URI für Benutzer bereitgestellt, um ihre Ressourcen zur Konvertierung in ein Format hochzuladen, das von der Object Anchors-Runtime verwendet werden kann.

Ressourcen, die in den von Microsoft gehosteten URI hochgeladen werden, die vom Client abgerufen wurden, werden 48 Stunden lang aufbewahrt.

Das endgültige konvertierte Modell im von Microsoft gehosteten Speicher wird 48 Stunden lang aufbewahrt.

Beispiele

Hochladen eines Objekts für die Objektanker-Objektkonvertierung

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);
}

Starten der Konvertierung von 3D-Ressourcen

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);

Abfragen einer vorhandenen ObjectAnchors-Assetkonvertierung bis zum Abschluss und Herunterladen des Ergebnisses

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);
}

Problembehandlung

Nächste Schritte

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.