Universell scenbeskrivning

Importera USD-filer

USD-filer representerar vanligtvis scenen som en hierarki av primitiver, eller prims. Enskilda prims innehåller data för att beskriva scenenheter, t.ex. geometri, ljus, kameror och transformhierarkier. Blenders USD-importör konverterar USD-prims till en hierarki av Blender-objekt. Liksom USD-exportören hanterar importören ännu inte vissa USD-kompositionskoncept, t.ex. lager och referenser.

Följande USD-datatyper kan importeras som Blender-objekt:

  • Kameror

  • Kurvor

  • Lampor

  • Material

  • Maskor

  • Punktmoln

  • Primitiva former

  • Volymer

Mer information om hur de olika datatyperna hanteras finns i följande beskrivningar av Import Options.

Observera

Vid import av ett USDZ-arkiv är det viktigt att noga överväga alternativet Import Textures för att avgöra om och hur texturfiler ska kopieras från zip-arkivet.

Xform- och Scope-primitiver

USD tillhandahåller en Xform prim-typ, som innehåller transformdata, som kan användas för att representera transformhierarkier och för att organisera scenen. Sådana Xform prims importeras som tomma Blender-objekt.

USD stöder också Scope primitives, som är enheter som inte innehåller transformdata, men som tjänar till att gruppera andra element i scenen. Blender har inte en exakt motsvarighet till begreppet scope, så sådana primitiver importeras som Blender-tomma objekt som ligger vid ursprunget. Detta är en ofullkomlig representation, eftersom tomma objekt har en transform och Scopes inte har det, men detta tillvägagångssätt hjälper ändå till att bevara strukturen i scenhierarkin.

PointInstancer Primitives

USD tillhandahåller en prim-typ UsdGeomPointInstancer, som innehåller instanser som är utspridda på en primitivs punkter.

Dessa importeras till Blender som Point Clouds med hjälp av Modifierare för geometri-noder och Instans på Points Node.

Animationer

Importören stöder två typer av animering:

  • Animering av transformationer: Om en USD-primitiv har tidsvarierande transformdata, kommer en Transform Cache-restriktion att läggas till det importerade Blender-objektet.

  • Animerad geometri: Animerad geometri för mesh, kurvor och punktmoln stöds genom att lägga till en Mesh Sequence Cache-modifierare till de importerade data. Geometriattribut (USD Primvar) animering stöds för alla datatyper som har motsvarande Blender-ekvivalenter. Detta inkluderar färger, UV, hastigheter och andra generiska attributdata. Observera att USD-filsekvenser (dvs. en unik fil per bildruta) inte stöds.

Material

Om ett USD-mesh eller en geometriundergrupp har ett bundet material, kommer importören att tilldela Blender-objektet ett material med samma namn som USD-materialet. Om det redan finns ett Blender-material med samma namn i scenen kan det befintliga materialet användas, beroende på alternativet Material Name Collision. Annars kommer ett nytt material att skapas.

Om USD-materialet har en USD Preview Surface shader-källa, sätts Visning av vyport färg, metallic och grovhet till motsvarande ingångsvärden för USD Preview Surface.

Det finns också ett Import USD Preview-alternativ för att konvertera USD Preview Surface shaders till Blender Principled BSDF shader-noder. Detta alternativ kan vara förlustbringande, eftersom det ännu inte hanterar konvertering av alla shaderinställningar och -typer, men det kan generera ungefärliga visualiseringar av materialen.

Orientering om koordinatsystem

Om den importerade USD är Y upp, kommer en rotation automatiskt att tillämpas på rotobjekt för att konvertera till Blenders Z upp orientering.

Importera alternativ

Följande alternativ är tillgängliga vid import från USD:

Allmänt

Mask för sökväg

Importerar endast den delmängd av USD-scenen som har sin rot i den angivna primitiven.

Inkludera
Endast synliga primitiver

Importera inte osynliga USD-primitiver. Gäller endast primitiver med ett icke-animerat visibility-attribut. Primitiv med animerad synlighet kommer alltid att importeras.

Endast definierade primitiver

Om funktionen är inaktiverad kan man importera USD-primitiver som inte är definierade, t.ex. sådana som har en override-specifier.

Ställ in Frame Range

Uppdatera scenens start- och slutbild så att de överensstämmer med USD-scenens.

Skapa samling

Lägg till alla importerade objekt i en ny samling.

Relativ väg

Välj filen i förhållande till blend-filen.

Tillämpa skala för enhetskonvertering

Skalar scenobjekten med USD Stage-värdet metersPerUnit. Denna skalning tillämpas utöver det värde som anges i Scale-alternativet.

Skala

Värde för att skala de importerade objekten i förhållande till världens ursprung.

Skala för ljusintensitet

Skala för intensiteten hos importerade lampor.

Anpassade egenskaper

Beteende vid import av USD-attribut som Custom Properties.

Ingen:

Importerar inte USD:s anpassade attribut.

Användare:

Importerar USD-attribut i namnrymden userProperties som anpassade egenskaper. Namnrymden kommer att tas bort från egenskapsnamnen.

Alla anpassade:

Importerar alla USD-anpassade attribut som anpassade egenskaper. Namnrymder kommer att behållas i egenskapsnamnen.

Objekttyper

Kameror

Importera UsdGeomCamera primitiver som Camera Objects (perspektiv och ortografisk).

Kurvor

Importera UsdGeomBasisCurves primitiver som Curves och UsdGeomNurbsCurves som Blender meshes.

Lampor

Importera lampor som Ljusobjekt. Inkluderar för närvarande inte cylinder- eller geometriljus.

Världskupolbelysning

Konverterar den första upptäckta UsdLuxDomeLight kupolljuset till en world background shader.

Material

Importera material från UsdPreviewSurface.

Maskor

Importera UsdGeomMesh primitiver som Mesh Objects.

Volymer

Importera UsdVolVolume OpenVDB-tillgångar som Volume Objects.

Punktmoln

Importera UsdGeomPoints primitiver som Point Cloud Objects.

USD Former

Importera primitiva former från USD som Blender-mesh. UsdGeomCapsule, UsdGeomCylinder, UsdGeomCone, UsdGeomCube och UsdGeomSphere stöds.

Visa syfte
Rendera

Inkludera primitiver med syfte render.

Ombud

Inkludera primitiver med syfte proxy.

Guide

Inkludera primitiver med syfte guide.

Material Syfte

Försök att importera material med det angivna syftet. Om inget material med detta syfte är bundet till primitiven, anges reservbeteendet, om något, nedan.

Alla ändamål:

Försök att importera allPurpose material.

Förhandsvisa:

Försök att importera preview material. Ladda allPurpose-material som en reserv.

Fullständig:

Försök att importera full material. Ladda allPurpose eller preview material, i den ordningen, som en ”fallback”

Geometri

UV-koordinater

Läser nätets UV-koordinater.

Färgattribut

Konvertera USD mesh displayColor värden till Blender’s färgattribut.

Mesh-attribut

Läs USD Primvars som nätattribut.

Indelning

Skapa modifierare för indelningsytor baserat på USD-attributet SubdivisionScheme.

Validera maskor

Kontrollera om det importerade nätet innehåller korrupta data och åtgärda dem vid behov. När detta alternativ är inaktiverat kan felaktiga data orsaka kraschar vid visning eller redigering av mesh. Detta alternativ gör importen långsammare, men rekommenderas eftersom datafel inte alltid är uppenbara.

Sammanfoga överordnad Xform

Tillåt USD-primitiver att slås samman med sin Xform-förälder om de är det enda barnet i hierarkin.

Riggning

Formnycklar

Importerar USD blend shapes som Blenders Formnycklar.

Armaturer

Importerar USD-skelett som Blenders Armaturer.

Material

Importera alla material

Importera även material som inte används av någon geometri. Observera att när detta alternativ är falskt kommer material som refereras till av en geometri ändå att importeras.

Importera USD Förhandsgranskning

Konvertera USD Preview Surface shaders till Principled BSDF shader networks.

Ställ in materialblandning

Om alternativet Import USD Preview är aktiverat kommer materialblandningsmetoden automatiskt att ställas in baserat på shaderingångarna opacity och opacityThreshold, vilket möjliggör visualisering av transparenta objekt.

Materialnamn Kollision

Beteende när namnet på ett importerat material står i konflikt med ett befintligt material.

Gör unikt:

Importera varje USD-material som ett unikt Blender-material.

Referens Befintlig:

Om det redan finns ett material med samma namn, hänvisa till det istället för att importera.

HD-TEXTURER

Vid import av ett USDZ-paket anger följande alternativ om och hur texturtillgångsberoenden för USD ska kopieras från zip-arkivet så att de kan laddas in i Blender.

Importera texturer

Beteende vid import av texturer från ett USDZ-arkiv.

Ingen:

Importera inte texturer. Observera att med detta alternativ kan det hända att materialtexturer inte kan lösas upp i Blender.

Förpackad:

Importera texturer som packad data i Blender-filen.

Kopiera:

Kopiera filer till den katalog som anges i alternativet Textures Directory.

Katalog över texturer

Sökväg till den katalog där importerade texturer ska kopieras, när läget Import Textures är Copy.

Observera att standardkatalogen för texturer är den relativa sökvägen //textures, vilket kräver att Blender-filen har sparats innan den importeras, så att den relativa sökvägen kan lösas.

Filnamn Kollision

Beteende när namnet på en importerad texturfil står i konflikt med en befintlig fil.

Användning Befintlig:

Om det redan finns en fil med samma namn använder du den istället för att kopiera.

Skriv över:

Skriva över befintliga filer.

Partiklar och instansiering

Instansiering av scen

Importera USD-scengrafinstanser som samlingsinstanser, annars importeras de som kopior.

Exportera till USD-filer

Universal Scene Description (USD)-filer kan innehålla komplexa lager, åsidosättningar och referenser till andra filer. Blenders USD-exportör använder ett mycket enklare tillvägagångssätt. Vid export exporteras alla synliga, stödda objekt i scenen, eventuellt begränsade av deras markeringsstatus. Blender har (ännu) inte stöd för export av osynliga objekt, USD-lager, varianter osv.

Följande objekt kan exporteras till USD:

  • Maskor (av olika slag, se nedan).

  • Kameror (perspektivkameror endast för tillfället, inte ortogonala).

  • Kurvor

  • Lampor

  • Hår (exporteras som kurvor och begränsas till föräldrasträngar).

  • Punktmoln

  • Volymer

  • Armaturer

Vid export av en animation skrivs det slutliga, utvärderade nätet till USD. Detta innebär att följande meshes kan exporteras:

  • Statiska maskor.

  • Deformerande nät; här ändras inte nätets topologi, men hörnpunkternas placering ändras över tiden. Exempel är animerade karaktärer eller studsande (men inte sprickande) föremål.

  • Godtyckligt animerade nät; här ändras topologin. Ett exempel är resultatet av en vätskesimulering, där stänk av vätska kan bryta sig loss från huvudkroppen.

  • Metaballarna exporteras som animerade nät.

Observera

För att exportera Blender-scenen som ett USDZ-arkiv, ställ in filtillägget för utdatafilen till .usdz. Det exporterade USDZ-paketet kommer att vara ett zip-arkiv som innehåller USD och dess texturfilberoenden.

../../_images/files_import-export_usd_example.png

Bild från Spring exporterad till USD och öppnad i USDView.

Exportalternativ

Följande alternativ är tillgängliga vid export till USD:

Allmänt

Rot Prim

Om den är inställd, lägg till en transform-primitiv med den angivna sökvägen till scenen som förälder till alla exporterade data.

Inkludera
Endast urval

När den är markerad exporteras endast markerade objekt. Instansierade objekt, t.ex. samlingar som instansieras i scenen, anses vara ”valda” när deras instanser är valda.

Endast synlig

Exporterar endast objekt som inte är hidden. Osynliga föräldrar till exporterade objekt exporteras som tomma transformationer.

Animering

När den är markerad exporteras hela scenens bildintervall. När den inte är markerad exporteras endast den aktuella scenrutan.

Blender Data
Anpassade egenskaper

Exporterar Custom Properties som USD-attribut. Egenskapen Namespace används för att bestämma namnrymden som attributen skrivs till.

Namnrymd

Om inställd, lägg till den angivna namnrymden som ett prefix till exporterade anpassade egenskapsnamn. Detta gäller endast för egenskapsnamn som inte redan har ett prefix (t.ex. skulle det gälla för namnet bar men inte foo:bar) och gäller inte för Blender-objekt och datanamn som alltid exporteras i userProperties:blender-namnrymden.

Som standard används namnrymden userProperties.

Blender-namn

Author USD anpassade attribut som innehåller det ursprungliga Blender-objektet och objektdatanamn.

Tillåt Unicode

Bevarar UTF-8-kodade tecken när du skriver USD prim- och egenskapsnamn (kräver programvara som använder USD 24.03 eller senare när du öppnar de resulterande filerna).

Filreferenser
Relativa banor

Använd relativa sökvägar för att referera till externa filer (t.ex. texturer, volymer) i den exporterade USD-filen, annars används absoluta sökvägar.

Konvertera orientering

Konvertera orienteringsaxeln till en annan konvention för att matcha andra applikationer. Blender använder Y framåt, Z uppåt (eftersom framsidan ser ut längs +Y-riktningen). Det är till exempel vanligt att applikationer använder Y som uppåtgående axel, i så fall behövs -Z Forward, Y Up.

Framåt/uppåt axel

Genom att mappa dessa till olika axlar kan du konvertera rotationer mellan applikationernas standardaxlar uppåt och framåt.

Enheter

Ställ in metadata för USD Stage metersPerUnit till den valda mätningen.

Meter per enhet

Värde som ska användas för metersPerUnit om Custom Units har valts.

Xform Ops

Den typ av transformationsoperatorer som ska användas för att transformera prims.

Översätt, rotera, skala:

Exportera med operatörerna Xform för översättning, rotation och skalning.

Översätt, orientera, skala:

Exportera med operatörerna translate, orient quaternion och scale Xform.

Matris:

Exportera matrisoperatör.

Använd inställningar för

Bestämmer om man ska använda Viewport eller Render synlighet för objekt, modifieringsinställningar och andra egenskaper som ger liknande alternativ, under export.

Objekttyper

Maskor

Exporterar Mesh-objekt

Lampor

Exporterar Light Objects För att stödja spotlights används UsdLuxShapingAPI.

Världskupolbelysning

Konvertera world-materialet till en UsdLuxDomeLight. Fungerar för närvarande för enkla material, bestående av en miljötextur ansluten till en bakgrundsskugga, med en valfri vektormultiplicering av texturfärgen.

Kameror

Exporterar Kameraobjekt Endast perspektivkameror exporteras.

Kurvor

Exporterar Kurvobjekt

Punktmoln

Exporterar Point Cloud Objects

Volymer

Exporterar Volymobjekt

Hår

Exporterar föräldrars hårstrån exporteras som ett kurvsystem. Hårsträngens färger exporteras inte.

Observera

Den motsvarande USD-schematyp som används under Export är analog med den typ som läses under Import. Se avsnittet Import för mer information.

Geometri

UV-kartor

Om markerad, inkluderar UV-koordinater för exporterade meshes. Namnet på UV-kartan i USD är detsamma som namnet i Blender.

Byt namn på UV-kartor

Exporterar UV-kartor med USD:s standardnamn (st) i motsats till Blenders standardnamn (UVMap).

Normaler

När kryssrutan är markerad ingår normaler för exporterade nät. Detta inkluderar anpassade loopnormaler.

Sammanfoga överordnad Xform

Sammanfoga USD-primitiver med deras Xform-förälder om möjligt. USD tillåter inte nästlade UsdGeomGprims, mellanliggande Xform-prims kommer att definieras för att hålla USD-filen giltig när man stöter på objekthierarkier.

Triangulera

Triangulerar nätet innan det skrivs. För mer information om det specifika alternativet, se Triangulate modifierare.

Riggning

Formnycklar

Exportera formnycklar som USD-blandningsformer.

Absoluta formnycklar stöds inte.

Armaturer

Exportera Armatures och meshes med Armature Modifiers som USD-skelett och skinnade meshes.

Begränsningar:

  • Modifierare utöver armaturmodifierare kommer inte att tillämpas.

  • Böjliga ben stöds inte.

Deformerar endast ben

Exportera endast deforma ben och deras föräldrar.

Material

Exporterar materialinformation för objektet. Som standard approximerar exportören nodträdet Principlös BSDF genom att konvertera det till USD:s Preview Surface-format.

När ett nät har flera material tilldelade skapas en geometrisk delmängd för varje material. Det första materialet (om det finns något) appliceras alltid på själva nätet (oavsett om det finns geometriundergrupper), eftersom Hydra-visningsportalen inte stöder material på undergrupper. Se USD issue #542 för mer information.

Observera

Om USD Preview Surface Network och MaterialX Network är inaktiverade, ställs materialet in på vyportsmaterialet för meshen.

Stöd för förflyttning

Displacement är stöd med vissa förbehåll:

  • Endast förskjutning i objektrymden stöds (ingen vektorförskjutning).

  • Kontrollerna Midlevel och Scale kan endast vara konstanter.

  • MaterialX stöds för närvarande inte, se feature commit för mer information.

USD Förhandsgranskning Surface Network

Approximerar ett Principlös BSDF-nodträd genom att konvertera det till USD:s Preview Surface-format.

Observera

För att stödja opacityThreshold, ibland känt som ”Alpha Clip”, måste nodträdet antingen använda en Math-nod inställd på Round, om önskat tröskelvärde är 0,5, eller genom att använda ett par Math-noder som implementerar 1 - (värde < tröskelvärde). Resultatet ska kopplas in i Alpha-sockeln på Principled BSDF-noden.

Varning

Alla noder stöds inte; för närvarande stöds endast enkla nodträd som innehåller noderna Diffuse BSDF, Principled BSDF, Image Textures, UVMap och Separate RGB.

MaterialX-nätverket

Genererar materialskuggningsgrafer med hjälp av MaterialX-standarden. Denna standard är utformad för att stödja en hög grad av interoperabilitet mellan DCCs <Digital Content Creation>. I Blender stöder MaterialX de flesta shader-noderna och deras funktionalitet, men har några förbehåll (se nedan).

Varningar för implementering

Vid användning av Principled BSDF är den resulterande grafen mycket användbar. Men när man använder några av de andra BSDF:erna är vissa av de genererade skuggningsgraferna svåra att förstå för andra DCC:er.

Exportera texturer

Metod för att exportera texturer.

Behåll:

Använd originalplatsen för texturer.

Bevara:

Bevara filsökvägar för texturer från redan importerade USD-filer. Exportera återstående texturer till en ”textures”-mapp bredvid USD-filen.

Ny sökväg:

Exportera texturer till en ”textures”-mapp bredvid USD-filen.

Skriva över texturer

Tillåt överskrivning av befintliga texturfiler vid export av texturer.

USDZ nedsampling av textur

Välj en maximal storlek för alla exporterade texturer.

Behåll:

Behåll alla nuvarande texturstorlekar.

256:

Ändra storlek till maximalt 256 pixlar.

512:

Ändra storlek till maximalt 512 pixlar.

1024:

Ändra storlek till maximalt 1024 pixlar.

2048:

Ändra storlek till maximalt 2048 pixlar.

4096:

Ändra storlek till maximalt 4096 pixlar.

Anpassad:

Ange en anpassad storlek.

USDZ anpassad nedskalning Storlek

Storleken i pixlar på den Custom downsampling.

Experimentell

Instansiering

Eftersom detta är ett experimentellt alternativ. När alternativet är avmarkerat exporteras duplicerade objekt som riktiga objekt, så ett partikelsystem med 100 partiklar som visas med 100 maskor kommer att ha 100 individuella maskor i den exporterade filen. När den är markerad exporteras duplicerade objekt som en referens till det ursprungliga objektet. Om originalobjektet inte är en del av exporten exporteras den första duplikaten som ett verkligt objekt och används som referens.

Begränsningar för exportörer

Enkelsidiga och dubbelsidiga maskor

USD verkar varken stödja dubbelsidighet per material eller per ansiktsgrupp, så Blender använder flaggan från det första materialet för att markera hela nätet som enkel- / dubbelsidigt. Om det inte finns något material är standardvärdet dubbelsidigt.

Material

När det finns flera material lagras meshytorna som geometriska delmängder och varje material tilldelas lämplig delmängd. Om det bara finns ett material hoppas detta över. Observera att geometriunderuppsättningarna inte tidssamplas, så det kan bli fel när ett animerat mesh ändrar topologi.

Hår

Endast de överordnade trådarna exporteras, och endast med en konstant färg. Inga UV-koordinater och ingen information om normalerna.

Kamera

Endast perspektivkameror exporteras.

Partiklar

Partiklar skrivs bara när de är levande, vilket innebär att de alltid är synliga. Det finns för närvarande ingen kod som hanterar att markera dem som osynliga utanför deras livslängd.

Objekt som instansieras av partikelsystem exporteras genom att objektnamnet suffixeras med partikelns persistenta ID, vilket ger varje partikeltransform ett unikt namn.

Instansiering/Referentiering

Detta är fortfarande en experimentell funktion som kan aktiveras vid export till USD. När funktionen är aktiverad skrivs instansierade objektnät till USD som referenser till originalnätet. Den första kopian av meshen skrivs på riktigt och de följande kopiorna refererar till den första. Vilken mesh som betraktas som ”den första” väljs mer eller mindre godtyckligt.

USDZ

På grund av en nuvarande begränsning i USD-biblioteket kan UDIM-texturer inte inkluderas i USDZ-arkivet. Denna begränsning kommer troligen att åtgärdas i en framtida version av USD. (Se USD pull request #2133.)

USD Primvar datatyper

Blender stöder en delmängd av USD:s grundläggande datatyper för import och export.

Endast de typer som stöds av Blenders attributsystem kommer att bearbetas.

Typ av mixer

Typ av USD

Anteckningar

Boolean

bool

8-bitars heltal

uchar

Det osignerade 8-bitarsvärdet för USD kommer att kastas till ett signerat värde för import. Det signerade värdet kommer att kastas till osignerat för export.

Heltal

int

Ett 32-bitars signerat heltalsvärde.

Flytande

flyt

Ett 32-bitars flyttalsvärde med enkel precision.

Vektor

float3

3D-vektor med 32-bitars flyttalsvärden.

2D vektor

float2/texCoord2f

2D-vektor med 32-bitars flyttalsvärden.

Färg

färg4f

RGBA-färg med 32-bitars värden i flyttal. Som ett specialfall, när du stöter på en Primvar eller attribut för USD displayColor, kommer det att läsas eller skrivas som color3f data med en Alpha-komponent på 1,0.

Byte Färg

färg4f

USD tillhandahåller inte en bytefärgekvivalent. Bytevärdena kommer att konverteras till float och exporteras som en color4f.

Kvaternion

quatf

Flyttal Quaternion rotation.

Varningar för implementering

Blender stöder inte USD Primvars som använder 64-bitars heltalsvärden (int64), de som använder osignerade typer (uint), eller de som använder 64-bitars dubbelprecision eller 16-bitars halvprecision flyttalsvärden. Detta skulle till exempel inkludera typer som matrix4d (4x4-matris av dubblar) och quath (kvaternion med halv precision).

Observera

Datatypen USD float4 har ingen direkt motsvarighet i Blender och kommer inte att behandlas som en Blender Color eller Quaternion.