Snabbstart: Konvertera en modell för rendering
I snabbstart: Rendera en modell med Unity lärde du dig att använda Unity-exempelprojektet för att återge en inbyggd modell.
Den här guiden visar hur du konverterar dina egna modeller, vilket innebär följande steg:
- Konfigurera ett Azure Blob Storage-konto för indata och utdata
- Ladda upp och konvertera en 3D-modell för användning med Azure Remote Rendering
- Inkludera den konverterade 3D-modellen i ett program för återgivning
Förutsättningar
- Slutför snabbstart: Rendera en modell med Unity
- För konverteringen med PowerShell-skriptet: Installera Azure PowerShell (dokumentation)
- Öppna en PowerShell med administratörsrättigheter
- Kör:
Install-Module -Name Az -AllowClobber
Översikt
Renderaren på servern kan inte fungera direkt med källmodellformat som FBX eller GLTF. I stället kräver det att modellen har ett egenutvecklat binärt format. Konverteringstjänsten använder modeller från Azure Blob Storage och skriver konverterade modeller tillbaka till en angiven Azure Blob Storage-container.
Du behöver:
- En Azure-prenumeration
- Ett StorageV2-konto i din prenumeration
- En bloblagringscontainer för din indatamodell
- En bloblagringscontainer för dina utdata
- En modell som ska konverteras finns i exempelmodeller
- Se listan över källformat som stöds
- Om du vill använda exempelkonverteringsskriptet måste du förbereda en indatamapp som innehåller modellen och alla externa beroenden (t.ex. externa texturer eller geometri)
Azure-konfiguration
Om du inte har något konto ännu går du till Kom igång med Azure, väljer alternativet kostnadsfritt konto och följer anvisningarna.
När du har ett Azure-konto loggar du in på Azure Portal.
Skapa lagringskonto
För att skapa bloblagring behöver du först ett lagringskonto.
- Om du vill skapa en väljer du "Skapa en resurs":
- På den nya skärmen väljer du Lagring till vänster och sedan Lagringskonto – blob, fil, tabell, kö från nästa kolumn:
- Om du klickar på den här knappen visas följande skärm med lagringsegenskaper att fylla i:
- Fyll i formuläret på följande sätt:
- Skapa en ny resursgrupp från länken nedanför listrutan och namnge den här ARR_Tutorial
- Ange ett unikt namn här som lagringskontonamn. Det här namnet måste vara globalt unikt. Ett felmeddelande visas om namnet redan har tagits. I den här snabbstarten ger vi den namnet arrtutorialstorage. Därför måste du ersätta det med ditt namn för alla förekomster i den här snabbstarten.
- Välj en region nära dig. Använd helst samma region som används för att konfigurera återgivningen i den andra snabbstarten.
- Prestanda inställd på "Premium". "Standard" fungerar också, men har lägre egenskaper för inläsningstid vid inläsning av en modell.
- Premium-kontotyp inställd på "Blockblobar"
- Redundans inställd på "Zonredundant lagring (ZRS)"
Ingen av egenskaperna på andra flikar behöver ändras, så du kan fortsätta med "Granska + skapa" och sedan följa stegen för att slutföra installationen.
Webbplatsen informerar dig nu om förloppet för distributionen och rapporterar "Distributionen är klar" så småningom. Välj "Gå till resurs" för nästa steg:
Skapa bloblagring
Därefter behöver vi två blobcontainrar, en för indata och en för utdata.
- Från knappen "Gå till resurs" kommer du till en sida med en panel till vänster som innehåller en listmeny. I listan under kategorin "Blob service" väljer du "Containers":
- Tryck på knappen "+ Container" för att skapa indatabloblagringscontainern. Använd följande inställningar när du skapar den:
- Namn = arrinput
- Offentlig åtkomstnivå = Privat
- När containern har skapats väljer du + Container igen och upprepar med de här inställningarna för utdatacontainern :
- Namn = arroutput
- Offentlig åtkomstnivå = Privat
Nu bör du ha två bloblagringscontainrar:
Kör konverteringen
Det finns tre olika sätt att utlösa en modellkonvertering:
1. Konvertering via ARRT-verktyget
Det finns ett gränssnittsbaserat verktyg som heter ARRT för att starta konverteringar och interagera med det renderade resultatet.
2. Konvertering via ett PowerShell-skript
För att göra det enklare att anropa tillgångskonverteringstjänsten tillhandahåller vi ett verktygsskript. Den finns i mappen Skript och kallas Conversion.ps1.
I synnerhet det här skriptet
- laddar upp alla filer i en viss katalog från en lokal disk till indatalagringscontainern,
- anropar REST API:et för tillgångskonvertering
- det här API:et hämtar data från indatalagringscontainern, startar en konvertering och returnerar ett konverterings-ID,
- avsöker api:et för konverteringsstatus med det hämtade konverterings-ID:t tills konverteringsprocessen avslutas med framgång eller fel.
- hämtar en länk till den konverterade tillgången i utdatalagringen.
Skriptet läser dess konfiguration från filen Scripts\arrconfig.json. Öppna JSON-filen i en textredigerare.
{
"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"
}
}
Konfigurationen i gruppen accountSettings (konto-ID, nyckel och domän) bör fyllas i i motsvarande autentiseringsuppgifter i snabbstarten Rendera en modell med Unity.
En fullständig konfiguration av gruppen renderingSessionSettings (domän, vmSize och maxLeaseTime) visas i PowerShell-exempelskript. VmSize och maxLeaseTime är inte viktiga för konvertering och kan utelämnas eftersom de inte påverkar konverteringen.
I gruppen assetConversionSettings måste du ändra resourceGroup, blobInputContainerName och blobOutputContainerName. Värdet för arrtutorialstorage måste ersättas med det unika namn som du valde när lagringskontot skapades.
Ändra localAssetDirectoryPath så att den pekar på katalogen på disken, som innehåller den modell som du vill konvertera. Var noga med att ta bort omvända snedstreck ("\") i sökvägen med dubbla omvänt snedstreck ("\\").
Tjänsten laddar upp alla data från sökvägen som anges i localAssetDirectoryPath till blobInputContainerName-blobcontainern under en undersökväg som anges av inputFolderPath. Med exempelkonfigurationen laddar tjänsten upp innehållet i katalogen "D:\tmp\robot" till blobcontainern "arrinput" för lagringskontot "arrtutorialstorage" under sökvägen "robotConversion". Redan befintliga filer skrivs över.
Ändra inputAssetPath till sökvägen till modellen som ska konverteras – sökvägen är relativ till localAssetDirectoryPath. Använd "/" i stället för "\" som sökvägsavgränsare. Så för en "robot.fbx"-fil, som finns direkt i "D:\tmp\robot", använder du "robot.fbx".
När modellen har konverterats skrivs den tillbaka till lagringscontainern som anges av blobOutputContainerName. En undersökväg kan anges genom att ange den valfria outputFolderPath. I exemplet kopierar tjänsten den resulterande "robot.arrAsset" till utdatablobcontainern under "konverterad/robot".
Konfigurationsinställningen outputAssetFileName bestämmer namnet på den konverterade tillgången – parametern är valfri och om den inte anges använder tjänsten indatafilens namn för att generera ett utdatanamn.
Öppna en PowerShell och se till att du har installerat Azure PowerShell enligt kraven. Logga sedan in på din prenumeration med följande kommando och följ anvisningarna på skärmen:
Connect-AzAccount
Anteckning
Om din organisation har fler än en prenumeration kan du behöva ange argumenten SubscriptionId och Tenant. Hitta information i dokumentationen för Connect-AzAccount.
Ändra till azure-remote-rendering\Scripts
katalogen och kör konverteringsskriptet:
.\Conversion.ps1 -UseContainerSas
Du bör se något liknande:
3. Konvertering via API-anrop
Både C# och C++-API:et tillhandahåller en startpunkt för att interagera med tjänsten:
- C# RemoteRenderingClient.StartAssetConversionAsync()
- C++ RemoteRenderingClient::StartAssetConversionAsync()
Infoga ny modell i snabbstartsexempelappen
Konverteringsskriptet genererar en SAS-URI (Signatur för delad åtkomst) för den konverterade modellen. Du kan nu kopiera den här URI:n som modellnamn till snabbstartsexempelappen (se Snabbstart: Rendera en modell med Unity).
Exemplet bör nu läsa in och återge din anpassade modell!
Valfritt: Återskapa en SAS-URI
SAS-URI:n som skapades av konverteringsskriptet upphör att gälla efter 24 timmar. Men när den har upphört att gälla behöver du inte konvertera modellen igen. I stället kan du skapa en ny SAS i portalen enligt beskrivningen i nästa steg:
- Logga in på Azure-portalen.
- Välj din lagringskontoresurs :
På följande skärm väljer du Lagringsutforskaren på den vänstra panelen och letar upp utdatamodellen (.arrAsset-filen ) i bloblagringscontainern för arroutput . Högerklicka på filen och välj Hämta signatur för delad åtkomst på snabbmenyn:
En ny skärm öppnas där du kan välja ett förfallodatum. Tryck på Skapa och kopiera den URI som visas i nästa dialogruta. Den här nya URI:n ersätter den tillfälliga URI som skriptet skapade.
Nästa steg
Nu när du känner till grunderna kan du ta en titt på våra självstudier för att få mer djupgående kunskap.
Om du vill lära dig mer om modellkonvertering kan du läsa REST-API:et för modellkonvertering.