Megosztás a következőn keresztül:


Modellkonvertálási paraméterek konfigurálása

Ebből a cikkből megtudhatja, hogyan konfigurálhat paramétereket a modellkonvertáláshoz.

Gépház fájl

Ha egy modelName> nevű <fájl. A konvertálás Gépház.json a bemeneti tárolóban található a modelName bemeneti modellnév>< mellett.<ext>, majd a fájl a modellkonvertálási folyamat további konfigurációjának biztosítására szolgál. Például a box.gltf konvertálásakor a boxot kell használnia. Konvertálás Gépház.json a modellkonvertálás paramétereinek beállításához.

A JSON-konverziós beállítások fájljának a következő sémával kell rendelkeznie:

{
    "$schema" : "http://json-schema.org/schema#",
    "description" : "ARR ConversionSettings Schema",
    "type" : "object",
    "definitions" : 
    {
        "position_attribute" : {"type" : "string", "description" : "Destination format of the position attribute", "enum" : [ "32_32_32_FLOAT", "16_16_16_16_FLOAT" ]},
        "color_attribute" : {"type" : "string", "description" : "Destination format of the color attribute", "enum" : [ "NONE", "8_8_8_8_UNSIGNED_NORMALIZED" ]},
        "vector_attribute" : {"type" : "string", "description" : "Destination format of the normals, tangents and binormals attributes", "enum" : [ "NONE", "8_8_8_8_SIGNED_NORMALIZED", "16_16_16_16_FLOAT" ]},
        "texcoord_attribute" : {"type" : "string", "description" : "Destination format of the texture coordinates attribute", "enum" : [ "NONE", "32_32_FLOAT", "16_16_FLOAT" ]}
    },
    "properties" : 
    {
        "scaling" : { "type" : "number", "exclusiveMinimum" : 0, "default" : 1.0 },
        "recenterToOrigin" : { "type" : "boolean", "default" : false },
        "opaqueMaterialDefaultSidedness" : {" type" : "string", "enum" : [ "SingleSided", "DoubleSided" ], "default" : "DoubleSided" },
        "material-override" : { "type" : "string", "default" : "" },
        "gammaToLinearMaterial" : { "type" : "boolean", "default" : false },
        "gammaToLinearVertex" : { "type" : "boolean", "default" : false },
        "sceneGraphMode" : { "type" : "string", "enum" : [ "none", "static", "dynamic" ], "default" : "dynamic" },
        "generateCollisionMesh" : { "type" : "boolean", "default" : true },
        "unlitMaterials" : { "type" : "boolean", "default" : false },
        "deduplicateMaterials" : {"type" : "boolean", "default" : true },
        "fbxAssumeMetallic" : {"type" : "boolean", "default" : true },
        "axis" : {
            "type" : "array",
            "items" : {
                "type" : "string",
                "enum" : [ "default", "+x", "-x", "+y", "-y", "+z", "-z" ]
            },
            "minItems" : 3,
            "maxItems" : 3
        },
        "vertex" : {
            "type" : "object",
            "properties" : {
                "position" : { "$ref" : "#/definitions/position_attribute" },
                "color0" : { "$ref" : "#/definitions/color_attribute" },
                "color1" : { "$ref" : "#/definitions/color_attribute" },
                "normal" : { "$ref" : "#/definitions/vector_attribute" },
                "tangent" : { "$ref" : "#/definitions/vector_attribute" },
                "binormal" : { "$ref" : "#/definitions/vector_attribute" },
                "texcoord0" : { "$ref" : "#/definitions/texcoord_attribute" },
                "texcoord1" : { "$ref" : "#/definitions/texcoord_attribute" }
            },
            "additionalProperties" : false
        },
        "metadataKeys" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
        }
    },
    "additionalProperties" : false
}

Egy doboz. A konvertálás Gépház.json fájl az alábbi példához hasonlóan nézhet ki:

{
    "scaling" : 0.01,
    "recenterToOrigin" : true,
    "material-override" : "box_materials_override.json"
}

A háromszögháló és a pontfelhő konvertálásának sémája megegyezik. A pontfelhő-átalakítás azonban a funkciók szigorú részhalmazát használja a háromszög alakú hálók konvertálásához képest.

Gépház háromszög alakú hálóhoz

Ha egy háromszög alakú hálót ( például .fbx fájlból) konvertál, az előző szakaszban bemutatott séma-példában szereplő összes paraméter hatással van az átalakítás eredményére. A következő szakaszok részletesen ismertetik a paramétereket.

Geometriai paraméterek

  • scaling: Ez a paraméter egységesen skáláz egy modellt. A skálázással növelhetők vagy zsugorodhatnak a modellek, például megjeleníthetők egy épületmodell egy tábla tetején. A skálázás akkor is fontos, ha a modell mértékegységben van definiálva, nem méterben, mert a renderelő motor mérőórákat vár. Ha például egy modell centiméterben van definiálva, akkor a 0,01-es skálázás a megfelelő méretben jeleníti meg a modellt. Egyes forrásadatformátumok (például .fbx fájlok) egységméretezési tippet nyújtanak. Ebben az esetben az átalakítás implicit módon mérőegységekre skálázza a modellt. A forrásformátum által biztosított implicit skálázás a paraméterre scaling lesz alkalmazva. A végső méretezési tényező a geometriai csúcsokra és a jelenetdiagram csomópontjainak helyi átalakítására lesz alkalmazva. A gyökér entitás átalakításának skálázása változatlan marad.

    Fontos

    A bemutató és a rövid útmutató kompenzálhatja a konverziós idő skálázását, mivel mindegyik beépített automatikus skálázási funkcióval rendelkezik. További információkért tekintse meg a hibaelhárítási útmutatót.

  • recenterToOrigin: Ez a paraméter azt állítja, hogy a modellt úgy kell átalakítani, hogy annak határolókerete a forráshoz legyen igazítva. Ha egy forrásmodell elmozdul a forrástól távol, a lebegőpontos pontossági problémák renderelési összetevőket okozhatnak. Ebben a forgatókönyvben segíthet a modell középre állítása.

  • opaqueMaterialDefaultSidedness: A renderelő motor feltételezi, hogy az átlátszatlan anyagok kétoldalasak. Ha ez a feltételezés nem igaz egy adott modellre, ezt a paramétert a következőre SingleSidedkell állítani: . További információ: Egyoldalas renderelés.

Anyagdeduplikáció

  • deduplicateMaterials: Ez a paraméter engedélyezi vagy letiltja az azonos tulajdonságokkal és anyagmintával rendelkező anyagok automatikus deduplikációját. A deduplikáció az anyag felülbírálása után történik. Alapértelmezés szerint engedélyezve van.

  • Ha egy modell több mint 65 535 anyaggal rendelkezik a deduplikáció után is, a szolgáltatás megpróbálja egyesíteni a hasonló tulajdonságokkal rendelkező anyagokat. Utolsó lehetőségként a korlátot meghaladó anyagokat piros hibaanyag váltja fel.

Az alábbi ábrán két 68 921 színes háromszögből álló kocka látható. A bal oldali példa a deduplikáció előtt van, 68 921 színanyaggal. A megfelelő példa a deduplikáció után, 64 000 színanyaggal. A korlát 65 535 anyag. Az anyagkorlátokkal kapcsolatos további információkért lásd a korlátokat.

Screenshot that shows two cubes of 68,921 colored triangles and the effect of deduplication.

Színtérparaméterek

A renderelő motor elvárja, hogy a színértékek lineáris térben legyenek. Ha egy modell gamma-tér használatával van definiálva, a következő beállításokat kell megadni true:

  • gammaToLinearMaterial: Anyagszínek átalakítása gamma térből lineáris térzé.
  • gammaToLinearVertex: Csúcsszínek átalakítása gamma-térből lineáris térzé.

Megjegyzés:

FBX, E57, PLY, LAS, LAZ és XYZ fájlformátumok esetén ezek a beállítások alapértelmezés szerint be vannak állítva true . Az összes többi fájlformátum esetében az alapértelmezett érték az false.

Jelenetparaméterek

  • sceneGraphMode: Meghatározza a forrásfájl jelenetgráfjának konvertálását.
    • dynamic(alapértelmezett): A fájl összes objektuma entitásként jelenik meg az API-ban, és tetszőlegesen átalakítható és újraterjedhet. Futásidőben a csomóponthierarchia megegyezik a forrásfájl szerkezetével.
    • static: Hasonló, dynamicde a jelenetdiagram objektumai futásidőben nem helyezhetők át dinamikusan más objektumokra. Olyan dinamikus modellek esetében, amelyek sok mozgó részből állnak, például a robbanási nézetből, a dynamic lehetőség egy hatékonyabb renderelési modellt hoz létre, de static a mód továbbra is lehetővé teszi az egyes részek átalakítását. Ha nincs szükség dinamikus újratelepítésre, akkor a static beállítás a leginkább megfelelő az olyan modellekhez, amelyek több különálló részből állnak.
    • none: A jelenetdiagram egy objektumba van összecsukva.

Minden mód eltérő futtatókörnyezeti teljesítménnyel rendelkezik. Módban dynamic a teljesítményköltség lineárisan skálázódik a gráfban lévő entitások számával, még akkor is, ha nincs áthelyezve egy rész sem. Csak akkor használja dynamic a módot, ha egyszerre több rész vagy nagy algráf mozgatására van szükség. Ilyen például a robbanásnézet animációja.

A static mód a teljes jelenetdiagramot is exportálja. A térbeli lekérdezések egyedi részeket adnak vissza, és mindegyik rész módosítható állapot felülbírálásokkal. Ezzel a móddal az objektumonkénti futásidejű többletterhelés elhanyagolható. Ez a mód ideális olyan nagyméretű jelenetekhez, amelyekben objektumonkénti vizsgálatra és esetenként átalakításra van szükség az egyes részeken, de nincs szükség objektum-újratelepítésre.

A none mód a legkisebb futásidejű többletterheléssel és valamivel jobb betöltési idővel rendelkezik. Egyetlen objektum vizsgálata vagy átalakítása ebben a módban nem lehetséges. A használati esetek például olyan fotogrammetriai modellek, amelyek nem értelmes jelenetdiagrammal kezdődnek.

Tipp.

Számos alkalmazás több modellt tölt be. A konverziós paramétereket az egyes modellekhez optimalizálnia kell attól függően, hogy hogyan fogja használni. Ha például meg szeretné jeleníteni egy autó modelljét, hogy a felhasználó szétválaszthassa és részletesen megvizsgálhassa, először alakítsa át dynamic a módban. Ha azonban az autót bemutatótéri környezetben is szeretné elhelyezni, akkor a modellt sceneGraphMode úgy alakíthatja át, hogy be van állítva static, vagy akár erre is none.

Fizikai paraméterek

  • generateCollisionMesh: Ha a modell térbeli lekérdezéseinek támogatására van szüksége, ezt a beállítást engedélyezni kell. Az ütközési háló létrehozása nem ad extra konverziós időt, és a kimeneti fájl méretét sem növeli. Az ütközési hálóval rendelkező modellek betöltési ideje és futásideje csak jelentéktelenül magasabb. Ezt a jelzőt az alapértelmezett értékre (engedélyezve) hagyhatja, hacsak nincs konkrét oka arra, hogy kizárjon egy modellt a térbeli lekérdezésekből.

Kivilágítatlan anyagok

  • unlitMaterials: Alapértelmezés szerint az átalakítás fizikailag alapú renderelési (PBR) anyagokat hoz létre. Ha ez a beállítás be van állítva, a konverter az összes anyagot színanyagként kezeli. Ha olyan adatokkal rendelkezik, amelyek már tartalmazzák a világítást, például a fotogrammetriával létrehozott modelleket, ez a beállítás lehetővé teszi a megfelelő átalakítás gyors kikényszerítését az összes anyag esetében. Nem kell egyenként felülbírálnia az egyes anyagokat .

Átalakítás korábbi FBX-formátumokból és Phong-anyagmodellekből

  • fbxAssumeMetallic: Az FBX formátum korábbi verziói phong anyagmodell használatával határozzák meg az anyagaikat. Az átalakítási folyamatnak arra kell következtetnie, hogy ezek az anyagok hogyan vannak megfeleltetve a renderelő PBR-modelljének. Ez a leképezés általában jól működik, de kétértelműség akkor fordulhat elő, ha egy anyag nem tartalmaz textúrákat, magas spekuláris értékeket és nem szürke albedo színt. Ebben a forgatókönyvben az átalakításnak választania kell a magas spekuláns értékek rangsorolása, egy magas fényvisszaverő és fémes anyag meghatározása között, ahol az albedo színe eloldódik, vagy rangsorolja az albedo színt úgy, hogy meghatároz valamit, például egy fényes színes műanyagban. Alapértelmezés szerint az átalakítási folyamat feltételezi, hogy a magas spekuláris értékek nem egyértelmű helyzetekben fémes anyagra utalnak. Ezt a paramétert false az ellenkező effektusra állíthatja be.

Koordinátarendszer-felülbírálás

  • axis: Ezzel a paraméterel felülbírálhatja a koordinátarendszeregység-vektorokat. Az alapértelmezett értékek a következők ["+x", "+y", "+z"]: . Elméletileg az FBX formátumnak van egy fejléce, amelyben ezek a vektorok vannak definiálva, és az átalakítás ezeket az információkat használja a jelenet átalakításához. A GLTF formátum rögzített koordinátarendszert is definiál. A gyakorlatban egyes objektumok fejlécében helytelen adatok találhatók, vagy egy másik koordinátarendszer-konvencióval lettek mentve. Ezzel a beállítással felülbírálhatja a koordinátarendszert a kompenzálás érdekében. Például kicseréli a Z tengelyt és az Y tengelyt, "axis" : ["+x", "+z", "-y"] és az Y tengely irányának megfordításával megtartja a koordináta-rendszerkézbesítést.

Csomópont metaadatai

  • metadataKeys: Ezzel a paramétert használva megadhatja a csomópont metaadat-tulajdonságainak azon kulcsait, amelyeket meg szeretne tartani az átalakítás eredményében. Pontos kulcsokat vagy helyettesítő karaktereket is megadhat. A helyettesítő karakterek formátuma ABC* megegyezik a kezdőbetűkkel ABC. A támogatott metaadat-értéktípusok a következőkbool: , intfloatés string.

    A GLTF-fájlok esetében ezek az adatok a csomópontok extras objektumából származnak. Az FBX-fájlok esetében ezek az adatok a Properties70 következő Model nodesadatokból származnak: . További információt a 3D eszköz eszköz dokumentációjában talál.

Ha engedélyezve van a metaadatok betöltése, egy adott entitás metaadat-bejegyzéseinek listája lekérhető az aszinkron QueryMetadataAsync függvényen keresztül.

Csúcsformátum

A háló csúcsformátumát a memóriamegtakarítás pontossága érdekében módosíthatja. Ha a modell alacsonyabb memóriaigényű, nagyobb modelleket tölthet be, vagy jobb teljesítményt érhet el. Az adatoktól függően azonban a helytelen formátum jelentősen befolyásolhatja a renderelés minőségét.

Figyelmeztetés

A csúcsformátum módosításának utolsó lehetőségnek kell lennie, ha a modellek már nem férnek bele a memóriába, vagy ha a lehető legjobb teljesítményt optimalizálja. A módosítások könnyen vezetnek be renderelési összetevőket, mind nyilvánvaló, mind finom. Hacsak nem tudja, mire kell figyelnie, ne módosítsa az alapértelmezett beállítást.

A következő módosításokat végezheti el:

  • Konkrét adatfolyamok explicit belefoglalása vagy kizárása.
  • Csökkentse az adatfolyamok pontosságát a memóriaigény csökkentése érdekében.

A JSON-fájl következő vertex szakasza nem kötelező. Minden olyan résznél, amely nincs explicit módon megadva, a konverziós szolgáltatás visszatér az alapértelmezett beállításához.

{
    ...
    "vertex" : {
        "position"  : "32_32_32_FLOAT",
        "color0"    : "NONE",
        "color1"    : "NONE",
        "normal"    : "NONE",
        "tangent"   : "NONE",
        "binormal"  : "NONE",
        "texcoord0" : "32_32_FLOAT",
        "texcoord1" : "NONE"
    },
    ...
}

Egy összetevő NONEkényszerítésével garantált, hogy a kimeneti háló nem rendelkezik a megfelelő adatfolyamkal.

Összetevő-formátumok csúcsfolyamonként

Az alábbi táblázat a megfelelő összetevők számára engedélyezett formátumokat ismerteti:

Csúcs összetevő Támogatott formátumok Használat anyagokban
position 32_32_32_FLOAT (alapértelmezett), 16_16_16_16_FLOAT Csúcspont pozíciója. Mindig jelen kell lennie.
color0 8_8_8_8_UNSIGNED_NORMALIZED (alapértelmezett), NONE Csúcsszínek. A tulajdonságot színanyagokbanés PBR-anyagokban, valamint vertexMix színanyagokban is megtekinthetiuseVertexColor.
color1 8_8_8_8_UNSIGNED_NORMALIZED, NONE (alapértelmezett) Használatlan. Hagyja meg alapértelmezettként NONE.
normal 8_8_8_8_SIGNED_NORMALIZED (alapértelmezett), 16_16_16_16_FLOAT, NONE PBR-anyagok megvilágítására szolgál.
tangent 8_8_8_8_SIGNED_NORMALIZED (alapértelmezett), 16_16_16_16_FLOAT, NONE PBR-anyagok normál térképeivel való megvilágításhoz használatos.
binormal 8_8_8_8_SIGNED_NORMALIZED (alapértelmezett), 16_16_16_16_FLOAT, NONE PBR-anyagok normál térképeivel való megvilágításhoz használatos.
texcoord0 32_32_FLOAT (alapértelmezett), 16_16_FLOAT, NONE A textúra koordinátáinak első pontja. Az egyes textúrák, mint az albedo és a normál térkép, használhatják a forrásfájlban definiált 0. vagy 1. pontot.
texcoord1 32_32_FLOAT (alapértelmezett), 16_16_FLOAT, NONE A textúra koordinátáinak második pontja. Az egyes textúrák, mint az albedo és a normál térkép, használhatják a forrásfájlban definiált 0. vagy 1. pontot.

Támogatott összetevőformátumok

Az alábbi táblázat a támogatott összetevőformátumok memóriaigényét ismerteti:

Format Leírás Csúcsonkénti bájtok
32_32_FLOAT Kétkomponensű teljes lebegőpontos pontosság 8
16_16_FLOAT Kétkomponensű fél lebegőpontos pontosság 4
32_32_32_FLOAT Háromkomponensű teljes lebegőpontos pontosság 12
16_16_16_16_FLOAT Négyrészes fél lebegőpontos pontosság 8
8_8_8_8_UNSIGNED_NORMALIZED Négykomponensű bájt, a tartományra [0; 1] normalizálva 4
8_8_8_8_SIGNED_NORMALIZED Négykomponensű bájt, a tartományra [-1; 1] normalizálva 4

Ajánlott eljárások az összetevők formátumának módosításához

  • position: Ritka, hogy a pontosság csökkentése elegendő. 16_16_16_16_FLOAT észrevehető kvantálási összetevőket vezet be, még kis modellek esetében is.
  • normal, tangentés binormal: Ezek az értékek általában együtt módosulnak. Hacsak nincsenek látható, a normál kvantálásból eredő világítási összetevők, nincs ok a pontosság növelésére. Bizonyos esetekben azonban ezek az összetevők a következőkre NONEállíthatók be:
    • normal, tangentés binormal csak akkor van szükség, ha a modellben legalább egy anyagnak világítania kell. Az Azure Remote Renderingben ez a forgatókönyv akkor fordul elő, ha a modellen bármikor PBR-anyagot használnak.
    • tangent és binormal csak akkor van szükség, ha bármelyik megvilágított anyag normál térképmintát használ.
  • texcoord0 és texcoord1 : A textúrakoordináták kisebb pontosságot (16_16_FLOAT) használhatnak, ha az értékek a [0; 1] tartományban maradnak, és ha a megcímzett textúrák maximális mérete 2048 × 2048 képpont. Ha túllépi ezeket a korlátokat, a textúraleképezés minősége csökken.

Example

Tegyük fel, hogy van egy fotogrammetriai modellje, amely megvilágította a textúrákat. A modell megjelenítéséhez mindössze a csúcspontok pozícióira és a textúrák koordinátáira van szükség.

Alapértelmezés szerint a konverternek feltételeznie kell, hogy egy adott modellen PBR-anyagokat szeretne használni, így az létrehoz normal, tangentés binormal adatokat az Ön számára. A csúcspontonkénti memóriahasználat position tehát (12 bájt) + texcoord0 (8 bájt) + normal (4 bájt) + tangent (4 bájt) + binormal (4 bájt) = 32 bájt. Az ilyen típusú nagyobb modellek könnyen több millió csúcspontot tartalmazhatnak, ami több gigabájtnyi memóriát is képes felemésztő modelleket eredményezni. Az ilyen nagy mennyiségű adat hatással van a teljesítményre, és előfordulhat, hogy elfogy a memória.

Tudva, hogy a modellen nincs szükség dinamikus világításra, és tudva, hogy az összes textúrakoordináta a [0; 1] tartományban van, beállíthatjatangentnormal, és binormalNONEbeállíthatja texcoord0 a félpontosságra (16_16_FLOAT), ami csúcsonként csak 16 bájtot eredményez. Ha a hálóadatok felére csökkennek, nagyobb modelleket tölthet be, és a teljesítmény esetleg javulhat.

pontfelhők Gépház

Pontfelhő konvertálásakor a rendszer csak a séma tulajdonságainak egy kis részét használja. A rendszer figyelmen kívül hagyja a többi tulajdonságot, kivéve, ha meg van adva.

Azok a tulajdonságok, amelyek hatással vannak a pontfelhő-átalakításra, a következők:

  • scaling: Ugyanaz a jelentés, mint a háromszög alakú hálók esetében.
  • recenterToOrigin: Ugyanaz a jelentés, mint a háromszög alakú hálók esetében.
  • axis: Ugyanaz a jelentés, mint a háromszög alakú hálók esetében. Az alapértelmezett értékek a következők ["+x", "+y", "+z"], de a legtöbb pontfelhő-adat a renderelő saját koordináta-rendszeréhez képest forog. A kompenzálás érdekében a legtöbb esetben ["+x", "+z", "-y"] kijavítja a forgatást.
  • gammaToLinearVertex: A háromszög alakú hálókhoz hasonlóan ez a jelző azt jelzi, hogy a pontszíneket át kell-e alakítani gamma térből lineáris térré. A pontfelhő-formátumok (E57, PLY, LAS, LAZ és XYZ fájlok) alapértelmezett értéke a .true
  • generateCollisionMesh: A háromszög alakú hálókhoz hasonlóan a térbeli lekérdezések támogatásához engedélyeznie kell ezt a jelzőt.

Memóriaoptimalizálás

A betöltött tartalom memóriahasználata szűk keresztmetszetet jelenthet a renderelési rendszeren. Ha a memória hasznos adatai túl nagyok lesznek, az veszélyeztetheti a renderelési teljesítményt, vagy azt okozhatja, hogy a modell nem töltődik be teljesen. Ez a bekezdés néhány fontos stratégiát mutat be a memóriaigény csökkentésére.

Megjegyzés:

A következő optimalizálás a háromszög alakú hálókra vonatkozik. A pontfelhők kimenetét nem optimalizálhatja a konverziós beállítások konfigurálásával.

Instancing

Az instancing során a hálók olyan részekhez lesznek újra felhasználhatók, amelyek különböző térbeli átalakításokkal rendelkeznek, és nem mindegyik rész saját egyedi geometriára hivatkozik. Az instancing jelentős hatással van a memóriaigényre.

Az instancing például a motormodell csavarjai vagy egy architekturális modell székei.

Megjegyzés:

Az instancing jelentősen javíthatja a memóriahasználatot (és így a betöltési időket), de a renderelési teljesítmény javítása jelentéktelen.

A konverziós szolgáltatás tiszteletben tartja az instancingot, ha a forrásfájlban ennek megfelelően vannak megjelölve az alkatrészek. Az átalakítás azonban nem végez extra, mély elemzést a hálóadatokról az újrafelhasználható részek azonosítása érdekében. A tartalomlétrehozási eszköz és annak exportálási folyamata a megfelelő instancing beállítás döntő kritériuma.

Az átalakítás során az instancing információk megőrzésének egyszerű módja a kimeneti statisztikák vizsgálata. Pontosabban ellenőrizze az numMeshPartsInstanced értéket. Ha az érték numMeshPartsInstanced nullánál nagyobb, akkor a hálók meg vannak osztva a példányok között.

Példa: Beállítás instancing instancing in 3ds Max

Az Autodesk 3ds Max különböző objektumkontrasztolási módokkal rendelkezik, más néven másolási, példány- és referencia-módokkal. A módok eltérően működnek az exportált .fbx fájlban való instancinghoz.

Screenshot that shows an example of cloning an object by using Autodesk 3ds Max.

  • Másolás: Ebben a módban a háló klónozva van, így nincs használatban instancing ( = numMeshPartsInstanced0).
  • Példány: A két objektum ugyanazzal a hálóval rendelkezik, ezért instancingot használ ( = numMeshPartsInstanced1).
  • Referencia: Különböző módosítók alkalmazhatók a geometriákra, így az exportőr konzervatív megközelítést választ, és nem használ instancingot ( = numMeshPartsInstanced0).

Mélységalapú összeállítási mód

Ha a memória aggodalomra ad okot, konfigurálja a renderelőt a mélységalapú összeállítási móddal. Ebben a módban a GPU hasznos adatai több GPU-ra oszlanak el.

Csúcsméret csökkentése

Az összetevők formátumának módosítására vonatkozó ajánlott eljárásokban leírtak szerint a csúcsformátum módosítása csökkentheti a memóriaigényt. Ennek a beállításnak azonban az utolsó lehetőségnek kell lennie.

Textúraméretek

A forgatókönyv típusától függően előfordulhat, hogy a textúraadatok mennyisége meghaladja a hálós adatokhoz használt memóriát. A fotogrammetriai modellek jelöltek. A konvertálási konfiguráció nem biztosít módot a textúrák automatikus leskálázására. Szükség esetén a textúra skálázását ügyféloldali előfeldolgozási lépésként kell elvégezni. A konvertálási lépés azonban megfelelő anyagminta-tömörítési formátumot választ:

  • BC1 fájlformátum átlátszatlan szín textúrákhoz
  • BC7 fájlformátum a forrásszín textúráihoz alfa csatornával

Mivel a BC7 fájlformátum a BC1 fájlformátum memóriaigényének kétszeresével rendelkezik, fontos meggyőződni arról, hogy a bemeneti textúrák nem biztosítanak szükségtelen alfa csatornát.

Tipikus használati esetek

Egy adott használati eset megfelelő importálási beállításainak megtalálása fárasztó folyamat lehet. Másrészt a konverziós beállítások jelentős hatással lehetnek a futtatókörnyezet teljesítményére.

A használati esetek bizonyos osztályai adott optimalizálásokra jogosultak. Néhány példát a következő szakaszokban ismertetünk.

Használati eset: Architekturális vizualizáció vagy nagyméretű szabadtéri térképek

Az architekturális vizualizációt vagy nagyméretű szabadtéri térképeket tartalmazó forgatókönyvek esetében vegye figyelembe a következő tényezőket:

  • Az ilyen típusú jelenetek általában statikusak. Nincs szükségük mozgatható alkatrészekre. Ennek megfelelően beállíthatja vagy akár arra is nonebeállíthatja sceneGraphModestatic, és javíthatja a futtatókörnyezet teljesítményét. Módban static a jelenet gyökércsomópontja továbbra is áthelyezhető, elforgatható és skálázható. Például dinamikusan válthat az 1:1 skálázás (első személyű nézet) és a táblázat felső nézete között.

  • Ha az alkalmazás nem használ levágott síkokat, a opaqueMaterialDefaultSidedness jelölőt ki kell kapcsolni. A teljesítménynövekedés általában 20 és 30 százalék között van. A kivágott síkokat továbbra is használhatja, de nem lesz hátlap, amikor egy objektum belső részébe néz, ami ellenintuitívnak tűnik. További információ: egyoldalas renderelés.

Használati eset: Fotogrammetriai modellek

Fotogrammetriai modellek renderelésekor általában nincs szükség jelenetdiagramra. Ebben a forgatókönyvben beállíthatja a következőt sceneGraphModenone: . Mivel ezek a modellek ritkán tartalmaznak összetett jelenetdiagramot, a lehetőség kiválasztásának hatása valószínűleg jelentéktelen. Mivel a világítás már be van sütve a textúrákba, nincs szükség dinamikus világításra. Ebben a forgatókönyvben:

  • Állítsa be a unlitMaterials jelzőt úgy, hogy true az összes anyagot kivilágítatlan színű anyagokká alakítsa.
  • Távolítsa el a felesleges adatokat a csúcsformátumból. Lásd a korábbi példát.

Használati eset: Kompakt gépek és más gépek vizualizációja

Ezekben a használati esetekben a modellek gyakran nagy részletességgel rendelkeznek egy kis kötetben. A renderelő erősen optimalizált, hogy jól kezelje ezeket az eseteket. A korábbi használati esetben ismertetett optimalizálások többsége azonban itt nem érvényes. Az optimalizálás a következőket foglalja magában:

  • Az egyes alkatrészeknek kiválaszthatónak és mozgathatónak kell lenniük, ezért sceneGraphMode be kell állítani.dynamic
  • A sugár leadások általában az alkalmazás szerves részét képezik, ezért ütközési hálókat kell létrehozni.
  • A levágott síkok jobban néznek ki, ha a opaqueMaterialDefaultSidedness jelző engedélyezve van.

Elavult funkciók

A modellkonvertálási paraméterek beállítása nem modellspecifikus átalakítással Gépház.json fájlnév továbbra is támogatott, de elavult. Ehelyett használja a modellspecifikus <modelName nevet>. Konvertálás Gépház.json fájlnév.

material-override Az anyag felülbírálási fájljának a konvertálási beállításfájlban való azonosítására szolgáló beállítás használata továbbra is támogatott, de elavult. Ehelyett használja a modellspecifikus <modelName nevet>. MaterialOverrides.json fájlnév.

Következő lépések