Quickstart: Een model converteren voor rendering
In Quickstart: een model weergeven met Unity hebt u geleerd hoe u het voorbeeldproject van Unity kunt gebruiken om een ingebouwd model te weer te geven.
In deze handleiding ziet u hoe u uw eigen modellen converteert, met de volgende stappen:
- Een Azure Blob Storage-account instellen voor invoer en uitvoer
- Een 3D-model uploaden en converteren om het te gebruiken met Azure Remote Rendering
- Het omgezette 3D-model toevoegen aan een toepassing voor rendering
Vereisten
- Quickstart: Een model weergeven met Unity
- Voor de conversie met behulp van het PowerShell-script: Azure PowerShell installeren (documentatie)
- Open een PowerShell met beheerdersrechten
- Voer dit uit:
Install-Module -Name Az -AllowClobber
Overzicht
De renderer op de server kan niet rechtstreeks werken met indelingen voor bronmodellen zoals FBX of GLTF. In plaats daarvan moet het model een eigen binaire indeling hebben. De conversieservice neemt modellen van de Azure Blob-opslag en schrijft geconverteerde modellen terug naar een opgegeven Azure Blob-opslagcontainer.
U hebt de volgende zaken nodig:
- Een Azure-abonnement
- Een 'StorageV2'-account in uw abonnement
- Een Blob Storage-container maken voor uw invoermodel
- Een Blob Storage-container voor uw uitvoergegevens
- Een model dat u kunt omzetten, zie voorbeeldmodellen
- Overzicht van ondersteunde bronindelingen weergeven
- Als u het voorbeeldscript voor omzetten wilt gebruiken, dient u een invoermap voor te bereiden die het model en alle externe afhankelijkheden (zoals externe patronen of geometrie) bevat
Azure-configuratie
Als u nog geen account hebt, gaat u naar Aan de slag met Azure, selecteert u de optie gratis account en volgt u de instructies.
Zodra u een Azure-account hebt, meldt u zich aan bij de Azure Portal.
Maken van een opslagaccount
Als u blob-opslag wilt maken, hebt u eerst een opslagaccount nodig.
- Als u een resource wilt maken, selecteert u 'Een resource maken':
- Kies in het volgende scherm Opslag aan de linkerkant en vervolgens Opslagaccount - blob, bestand, tabel, wachtrij in de volgende kolom:
- Als u op deze knop klikt, wordt het volgende scherm weergegeven met opslageigenschappen om in te vullen:
- Vul het formulier als volgt in:
- Maak een nieuwe resourcegroep via de koppeling onder de vervolgkeuzelijst en geef deze de naam ARR_Tutorial
- Geef bij Naam opslagaccount een unieke naam in. Deze naam moet wereldwijd uniek zijn. Er wordt een foutbericht weergegeven als de naam al is gebruikt. In deze quickstart kiezen we de naam arrtutorialstorage. U moet deze overal waar hij gebruikt wordt in deze quickstart vervangen door uw eigen naam.
- Selecteer een regio bij u in de buurt. Gebruik idealiter dezelfde regio die is gebruikt voor het instellen van de rendering in de andere quickstart.
- Prestaties ingesteld op Premium. 'Standard' werkt ook, maar heeft lagere laadtijdkenmerken bij het laden van een model.
- Premium-accounttype ingesteld op 'Blok-blobs'
- Redundantie ingesteld op Zone-redundante opslag (ZRS)
De eigenschappen in andere tabbladen moeten niet gewijzigd worden. U kunt dus doorgaan met 'Beoordelen en maken' en de stappen volgen om de installatie te voltooien.
De website geeft u nu informatie over de voortgang van uw implementatie, om uiteindelijk 'Uw implementatie is voltooid' weer te geven. Selecteer 'Ga naar resource' voor de volgende stappen:
Aanmaken Blob Storage
Vervolgens hebben we twee blobcontainers nodig: één voor invoer en één voor uitvoer.
- Via de knop 'Ga naar resource' komt u op een pagina met een deelvenster aan de linkerkant met een lijstmenu. Selecteer in de lijst onder de categorie 'Blob-service'de optie 'Containers':
- Druk op de knop '+ Container' om de invoer blob-opslagcontainer te maken. Gebruik de volgende instellingen bij het maken:
- Naam = arrinput
- Openbaar toegangsniveau = Privé
- Nadat de container is gemaakt, selecteert u nogmaals + Container en herhaalt u deze instellingen voor de uitvoercontainer :
- Naam = arroutput
- Openbaar toegangsniveau = Privé
U hebt nu twee blob-opslagcontainers:
De conversie uitvoeren
Er zijn drie verschillende manieren om een modelconversie te activeren:
1. Conversie via het ARRT-hulpprogramma
Er is een op de gebruikersinterface gebaseerd hulpprogramma met de naam ARRT om conversies te starten en te communiceren met het weergegeven resultaat.
2. Conversie via een PowerShell-script
We bieden een hulpscript aan om de conversieservice voor assets gemakkelijker aan te roepen. Het bevindt zich in de map Scripts en heet Conversion.ps1.
Dit script
- uploadt alle bestanden in een bepaalde map van de lokale schijf naar de invoeropslagcontainer,
- roept de REST API voor assetconversie aan
- deze API haalt de gegevens op uit de invoeropslagcontainer, start een conversie en retourneert een conversie-id,
- peilt de conversiestatus-API met de opgehaalde conversie-id totdat het conversieproces wordt beëindigd met een geslaagde of mislukte conversie.
- haalt een koppeling op naar de geconverteerde asset in de uitvoeropslag.
Het script leest de configuratie uit het bestand Scripts\arrconfig.json. Open dit JSON-bestand in een teksteditor.
{
"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"
}
}
De configuratie binnen de groep accountSettings (account-id, sleutel en domein) moet worden ingevuld overeenkomstig de referenties in de quickstart Een model renderen met Unity.
Een volledige configuratie van de groep renderingSessionSettings (domein, vmSize en maxLeaseTime) kan worden weergegeven in PowerShell-voorbeeldscripts. De vmSize en maxLeaseTime zijn niet belangrijk voor conversie en kunnen worden weggelaten, omdat ze geen invloed hebben op de conversie.
Zorg ervoor dat u in de groep assetConversionSettingsresourceGroup, blobInputContainerName en blobOutputContainerName wijzigt. De waarde voor arrtutorialstorage moet worden vervangen door de unieke naam die u hebt gekozen tijdens het maken van het opslagaccount.
Wijzig localAssetDirectoryPath zodat deze verwijst naar de map op uw schijf die het model bevat dat u wilt converteren. Zorg ervoor dat u backslashes ('\') in het pad goed kunt ontsnappen met behulp van dubbele backslashes ("\\").
De service uploadt alle gegevens van het pad dat is opgegeven in localAssetDirectoryPath naar de blobcontainer blobInputContainerName onder een subpad dat is opgegeven door inputFolderPath. Met de voorbeeldconfiguratie uploadt de service de inhoud van de map 'D:\tmp\robot' naar de blobcontainer 'arrinput' van het opslagaccount 'arrtutorialstorage' onder het pad 'robotConversion'. Bestaande bestanden worden overschreven.
Verander inputAssetPath naar het pad van het model dat omgezet moet worden - het pad is afhankelijk van localAssetDirectoryPath. Gebruik '/' in plaats van '\' als het padscheidingsteken. Dus voor een 'robot.fbx'-bestand, dat zich rechtstreeks in 'D:\tmp\robot' bevindt, gebruikt u robot.fbx.
Zodra het model is geconverteerd, wordt het teruggeschreven naar de opslagcontainer die is opgegeven door blobOutputContainerName. U kunt een subpad opgeven met het optionele outputFolderPath. In het voorbeeld kopieert de service de resulterende 'robot.arrAsset' naar de uitvoerblobcontainer onder 'converted/robot'.
De configuratie-instelling outputAssetFileName bepaalt de naam van de geconverteerde asset. De parameter is optioneel en als dit niet is opgegeven, gebruikt de service de naam van het invoerbestand om een uitvoernaam te genereren.
Open een PowerShell en controleer of u de Azure PowerShell hebt geïnstalleerd zoals vermeld in de vereisten. Meld u vervolgens aan bij uw abonnement met de volgende opdracht en volg de instructies op het scherm:
Connect-AzAccount
Notitie
Als uw organisatie meerdere abonnementen heeft, moet u mogelijk de argumenten SubscriptionId en Tenant opgeven. Meer informatie vindt u in de documentatie bij Connect-AzAccount.
Schakel naar de azure-remote-rendering\Scripts
-directory en voer het conversiescript uit:
.\Conversion.ps1 -UseContainerSas
U ziet er ongeveer als volgt uit:
3. Conversie via API-aanroepen
Zowel de C# als de C++ API bieden een invoerpunt om te communiceren met de service:
- C# RemoteRenderingClient.StartAssetConversionAsync()
- C++ RemoteRenderingClient::StartAssetConversionAsync()
Nieuw model in Quickstart-voorbeeldapp invoegen
Het conversiescript genereert een SAS-URI (Shared Access Signature) voor het omgezette model. U kunt deze URI nu als Modelnaam kopiëren naar de quickstart-voorbeeldapp (zie Quickstart: Een model weergeven met Unity).
Het voorbeeld zou nu moeten laden en uw aangepast model moeten weergeven!
Optioneel: Een SAS-URI opnieuw maken
De SAS-URI die door het conversiescript is gemaakt, verloopt na 24 uur. Nadat het is verlopen, hoeft u uw model echter niet opnieuw te converteren. In plaats daarvan kunt u in het portal een nieuwe SAS maken, zoals wordt beschreven in de volgende stappen:
- Meld u aan bij de Azure-portal.
- Selecteer uw opslagaccountresource :
Selecteer in het volgende scherm Storage Explorer in het linkerdeelvenster en zoek uw uitvoermodel (.arrAsset-bestand ) in de blobopslagcontainer arroutput . Klik met de rechtermuisknop op het bestand en selecteer Shared Access Signature ophalen in het contextmenu:
Er wordt een nieuw scherm geopend waarin u een verloopdatum kunt selecteren. Druk op Maken en kopieer de URI die in het volgende dialoogvenster wordt weergegeven. Deze nieuwe URI vervangt de tijdelijke URI die het script heeft gemaakt.
Volgende stappen
Nu u de basisprincipes kent, kunt u onze zelfstudies ontdekken om meer uitgebreide kennis op te doen.
Als u meer wilt weten over modelconversie, bekijk dan de REST API voor modelconversie.