Model dönüştürme parametrelerini yapılandırma

Bu makalede, model dönüştürme için parametreleri yapılandırmayı öğrenin.

Ayarlar dosyası

modelName> adlı <bir dosyaysa. Conversion Ayarlar.json, giriş modeli <adı'nın> yanındaki giriş kapsayıcısında bulunur.<>daha sonra dosya, model dönüştürme işlemi için ek yapılandırma sağlamak için kullanılır. Örneğin box.gltf dosyasını dönüştürdüğünüzde box kullanırsınız. Model dönüştürme parametrelerini ayarlamak için conversion Ayarlar.json.

JSON dönüştürme ayarları dosyasının içeriği şu şemaya sahip olmalıdır:

{
    "$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
}

Bir kutu. Conversion Ayarlar.json dosyası şu örnekteki gibi görünebilir:

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

Üçgen ağ ve nokta bulutu dönüştürme şeması aynıdır. Ancak nokta bulutu dönüştürmesi, üçgen örgü dönüştürmeye kıyasla katı bir özellik alt kümesi kullanır.

Üçgen ağ için Ayarlar

Bir .fbx dosyasından olduğu gibi üçgen bir ağı dönüştürdüğünüzde, önceki bölümde gösterilen şema örneğindeki tüm parametreler dönüştürme sonucunu etkiler. Sonraki bölümlerde parametrelerin ayrıntılı bir açıklaması yer alır.

Geometri parametreleri

  • scaling: Bu parametre modeli tekdüzen ölçeklendirir. Ölçeklendirme, bir modeli büyütmek veya küçültmek için, örneğin tablo üstünde bir yapı modeli görüntülemek için kullanılabilir. İşleme altyapısı ölçüm beklediğinden, model metre dışında bir birim olarak tanımlandığında ölçeklendirme de önemlidir. Örneğin, bir model santimetre cinsinden tanımlanmışsa, 0,01 ölçeğinin uygulanması modeli doğru boyutta işler. Bazı kaynak veri biçimleri (örneğin, .fbx dosyaları) birim ölçeklendirme ipucu sağlar. Bu durumda dönüştürme işlemi modeli örtük olarak ölçüm birimlerine ölçeklendirir. Kaynak biçimi tarafından sağlanan örtük ölçeklendirme, parametresinin scaling üzerine uygulanır. Son ölçeklendirme faktörü geometri köşelerine ve sahne grafiği düğümlerinin yerel dönüşümlerine uygulanır. Kök varlığın dönüşümü için ölçeklendirme değiştirilmeden kalır.

    Önemli

    Vitrin ve Hızlı Başlangıç, her birinin yerleşik bir otomatik ölçeklendirme özelliği olduğundan dönüştürme süresi ölçeklendirmesini telafi edebilir. Daha fazla bilgi için sorun giderme kılavuzuna bakın.

  • recenterToOrigin: Bu parametre, sınırlayıcı kutusunun kaynakta ortalanması için modelin dönüştürülmesi gerektiğini belirtir. Kaynak modelin kaynağından uzakta yer değiştirmesi durumunda kayan nokta duyarlık sorunları işleme yapıtlarına neden olabilir. Modelin ortalanması bu senaryoda yardımcı olabilir.

  • opaqueMaterialDefaultSidedness: İşleme altyapısı, opak malzemelerin çift taraflı olduğunu varsayar. Bu varsayım belirli bir model için doğru değilse, bu parametre olarak SingleSidedayarlanmalıdır. Daha fazla bilgi için bkz . Tek taraflı işleme.

Yinelenen malzeme kaldırma

  • deduplicateMaterials: Bu parametre, aynı özellikleri ve dokuları paylaşan malzemelerin otomatik olarak yinelenenleri kaldırmasını etkinleştirir veya devre dışı bırakır. Yinelenenleri kaldırma, malzeme geçersiz kılmaları işlendikten sonra gerçekleşir. Varsayılan olarak etkindir.

  • Bir modelde yinelenenleri kaldırma işleminden sonra bile 65.535'ten fazla malzeme varsa, hizmet benzer özelliklere sahip malzemeleri birleştirmeyi dener. Son seçenek olarak, sınırı aşan tüm malzemeler kırmızı bir hata malzemesiyle değiştirilir.

Aşağıdaki şekilde 68.921 renkli üçgenden oluşan iki küp gösterilmektedir. Sol örnek, 68.921 renk malzemeli yinelenenleri kaldırmadan öncedir. Doğru örnek, 64.000 renk malzemeli yinelenenleri kaldırma sonrasındadır. Sınır 65.535 malzemedir. Malzeme sınırları hakkında daha fazla bilgi için bkz . sınırlar.

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

Renk alanı parametreleri

İşleme altyapısı renk değerlerinin doğrusal alanda olmasını bekler. Model gama alanı kullanılarak tanımlanırsa, aşağıdaki seçenekler olarak trueayarlanmalıdır:

  • gammaToLinearMaterial: Malzeme renklerini gama alanından doğrusal uzaya dönüştürün.
  • gammaToLinearVertex: Köşe renklerini gama alanından doğrusal aralığa dönüştürün.

Dekont

FBX, E57, PLY, LAS, LAZ ve XYZ dosya biçimleri için bu ayarlar varsayılan olarak olarak ayarlanır true . Diğer tüm dosya biçimleri için varsayılan değerdir false.

Sahne parametreleri

  • sceneGraphMode: Kaynak dosyadaki sahne grafiğinin nasıl dönüştürüldüğünü tanımlar.
    • dynamic(varsayılan): Dosyadaki tüm nesneler API'de varlık olarak sunulur ve rastgele olarak dönüştürülebilir ve yeniden ayrıştırılabilir. Çalışma zamanında düğüm hiyerarşisi kaynak dosyadaki yapıyla aynıdır.
    • static: gibi dynamic, ancak sahne grafiğindeki nesneler çalışma zamanında diğer nesnelere dinamik olarak yeniden ayrıştırılamaz. Patlama görünümü gibi birçok hareketli parçaya sahip dinamik modeller için bu seçenek, dynamic işlenmesi daha verimli olan bir model oluşturur, ancak static mod yine de tek parça dönüşümlerine izin verir. Dinamik yeniden ayrıştırma gerekli değilse, static seçenek birçok ayrı parçaya sahip modeller için en uygun seçenektir.
    • none: Sahne grafiği tek bir nesneye daraltılır.

Her modun farklı çalışma zamanı performansı vardır. Modda dynamic performans maliyeti, hiçbir parça taşınmadığında bile grafikteki varlık sayısıyla doğrusal olarak ölçeklendirilir. Modu yalnızca aynı anda birçok parçanın veya büyük alt yazının taşınması gerektiğinde kullanın dynamic . Patlama görünümü animasyonu örnek olarak gösteriliyor.

Mod ayrıca static tam sahne grafiğini dışarı aktarır. Uzamsal sorgular tek tek parçalar döndürür ve her bölüm durum geçersiz kılmaları aracılığıyla değiştirilebilir. Bu modla, nesne başına çalışma zamanı yükü göz ardı edilebilir. Bu mod, nesne başına incelemeye ihtiyacınız olan büyük sahneler için idealdir ve tek tek parçalar üzerinde zaman zaman değişiklik dönüştürmeniz gerekir, ancak nesne yeniden ayrıştırma gerekmez.

Modun none en az çalışma zamanı ek yükü vardır ve ayrıca yükleme süreleri biraz daha iyi olur. Bu modda tek nesnelerin denetlenmesi veya dönüştürülmesi mümkün değildir. Kullanım örnekleri, örneğin, anlamlı bir sahne grafiğiyle başlamayen fotogrametri modelleridir.

Bahşiş

Birçok uygulama birden çok model yükler. Nasıl kullanacağınıza bağlı olarak her model için dönüştürme parametrelerini iyileştirmeniz gerekir. Örneğin, kullanıcının parçalayıp ayrıntılı olarak incelemesi için bir arabanın modelini görüntülemek istiyorsanız, önce modu kullanarak dynamic dönüştürün. Ancak, arabayı bir gösteri odası ortamına da yerleştirmek istiyorsanız, set değerini static, hatta olarak kullanarak nonebu modeli sceneGraphMode dönüştürebilirsiniz.

Fizik parametreleri

  • generateCollisionMesh: Modeldeki uzamsal sorgular için desteğe ihtiyacınız varsa bu seçeneğin etkinleştirilmesi gerekir. Çakışma ağı oluşturma işlemi fazladan dönüştürme süresi eklemez ve çıkış dosyası boyutunu artırmaz. Çakışma çizgileri olan bir modelin yükleme süresi ve çalışma zamanı maliyeti yalnızca önemsiz ölçüde daha yüksektir. Modeli uzamsal sorgulardan dışlamak için belirli bir nedeniniz yoksa, bu bayrağı varsayılan (etkin) olarak bırakabilirsiniz.

Yarılmamış malzemeler

  • unlitMaterials: Dönüştürme varsayılan olarak fiziksel tabanlı işleme (PBR) malzemeleri oluşturur. Bu seçenek ayarlandığında, dönüştürücü bunun yerine tüm malzemeleri renk malzemeleri olarak ele alır. Fotogrametri aracılığıyla oluşturulan modeller gibi aydınlatmayı zaten içeren verileriniz varsa, bu seçenek tüm malzemeler için doğru dönüştürmeyi hızla zorunlu kılmanızı sağlar. Her malzemeyi tek tek geçersiz kılmanız gerekmez.

Önceki FBX biçimlerinden ve Phong malzeme modellerinden dönüştürme

  • fbxAssumeMetallic: FBX biçiminin önceki sürümleri bir Phong malzeme modeli kullanarak malzemelerini tanımlar. Dönüştürme işlemi, bu malzemelerin işleyicinin PBR modeliyle nasıl eşlendiği çıkarılmalıdır. Genellikle bu eşleme iyi çalışır, ancak bir malzemenin dokuları, yüksek belirtik değerleri ve gri olmayan albedo rengi olmadığında bir belirsizlik ortaya çıkabilir. Bu senaryoda dönüştürme, yüksek benekli değerleri önceliklendirme, albedo renginin çözündüğü yüksek oranda yansıtıcı ve metalik bir malzeme tanımlama veya parlak renkli plastikte olduğu gibi bir şey tanımlayarak albedo rengine öncelik verme arasında seçim yapmalıdır. Varsayılan olarak, dönüştürme işlemi yüksek oranda belirtimli değerlerin belirsiz senaryolarda metalik bir malzeme olduğunu varsayar. Ters etki için bu parametreyi olarak false ayarlayabilirsiniz.

Koordinat sistemi geçersiz kılma

  • axis: Koordinat sistemi birim vektörlerini geçersiz kılmak için bu parametreyi kullanın. Varsayılan değerler şeklindedir ["+x", "+y", "+z"]. Teoride FBX biçimi, bu vektörlerin tanımlandığı bir üst bilgiye sahiptir ve dönüştürmede bu bilgiler sahneyi dönüştürmek için kullanılır. GLTF biçimi, sabit koordinatlı bir sistem de tanımlar. Uygulamada, bazı varlıkların üst bilgilerinde yanlış bilgiler vardır veya farklı bir koordinat sistemi kuralı kullanılarak kaydedilmiştir. Bu seçenek, telafi etmek için koordinat sistemini geçersiz kılmanızı sağlar. Örneğin, "axis" : ["+x", "+z", "-y"] Z eksenini ve Y eksenini değiştirir ve Y ekseni yönünü tersine çevirerek sistemin teslimini koordine eder.

Düğüm meta verileri

  • metadataKeys: Dönüştürme sonucunda tutmak istediğiniz düğüm meta veri özelliklerinin anahtarlarını belirtmek için bu parametreyi kullanın. Tam anahtarları veya joker karakter tuşlarını belirtebilirsiniz. Joker anahtarlar biçimindedir ABC* ve ile başlayan herhangi bir anahtarla ABCeşleşilir. Desteklenen meta veri değer türleri : bool, int, floatve string.

    GLTF dosyaları için bu veriler düğümlerdeki extras nesnesinden gelir. FBX dosyaları için bu veriler üzerindeki Model nodesverilerden Properties70 gelir. Daha fazla bilgi için 3B Varlık Aracınızın belgelerine bakın.

Meta verileri etkin bir modeli yüklerken, belirli bir varlığın meta veri girdileri listesi zaman uyumsuz QueryMetadataAsync işlevi aracılığıyla alınabilir.

Köşe biçimi

Bellek tasarrufları için hassas bir şekilde işlem yapmak üzere bir ağın köşe biçimini ayarlamak mümkündür. Modelinizin bellek ayak izi daha düşükse, daha büyük modeller yükleyebilir veya daha iyi performans elde edebilirsiniz. Ancak verilerinize bağlı olarak, yanlış biçim işleme kalitesini önemli ölçüde etkileyebilir.

Dikkat

Modeller artık belleğe sığmadığında veya mümkün olan en iyi performansı en iyi duruma getirdiğinizde köşe biçiminin değiştirilmesi son seçenek olmalıdır. Değişiklikler, hem belirgin hem de hafif işleme yapıtlarını kolayca tanıtabilir. Nelere dikkat etmek istediğinizi bilmiyorsanız varsayılanı değiştirmemelisiniz.

Şu ayarlamaları yapabilirsiniz:

  • Belirli veri akışlarını açıkça dahil edin veya hariç tutun.
  • Bellek ayak izini azaltmak için veri akışlarının doğruluğunu azaltın.

JSON dosyasındaki aşağıdaki vertex bölüm isteğe bağlıdır. Açıkça belirtilmemiş her bölüm için dönüştürme hizmeti varsayılan ayarına geri döner.

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

Bir bileşeni öğesine NONEzorlayarak, çıkış mesh'in ilgili akışa sahip olmadığı garanti edilir.

Köşe akışı başına bileşen biçimleri

Aşağıdaki tabloda, ilgili bileşenler için izin verilen biçimler açıklanmaktadır:

Köşe bileşeni Desteklenen biçimler Malzeme kullanımı
position 32_32_32_FLOAT (varsayılan), 16_16_16_16_FLOAT Köşe konumu. Her zaman orada olmalı.
color0 8_8_8_8_UNSIGNED_NORMALIZED (varsayılan), NONE Köşe renkleri. Hem renk malzemelerinde hem de PBR malzemelerindeve vertexMix renk malzemelerinde özelliği görün.useVertexColor
color1 8_8_8_8_UNSIGNED_NORMALIZED, NONE (varsayılan) Kullanılmıyor. Varsayılan NONEolarak bırakın.
normal 8_8_8_8_SIGNED_NORMALIZED (varsayılan), 16_16_16_16_FLOAT, NONE PBR malzemelerinde aydınlatma için kullanılır.
tangent 8_8_8_8_SIGNED_NORMALIZED (varsayılan), 16_16_16_16_FLOAT, NONE PBR malzemelerinde normal haritalarla aydınlatma için kullanılır.
binormal 8_8_8_8_SIGNED_NORMALIZED (varsayılan), 16_16_16_16_FLOAT, NONE PBR malzemelerinde normal haritalarla aydınlatma için kullanılır.
texcoord0 32_32_FLOAT (varsayılan), 16_16_FLOAT, NONE Doku koordinatlarının ilk yuvası. Albedo ve normal harita gibi tek tek dokular, kaynak dosyada tanımlanan yuva 0 veya 1'i kullanabilir.
texcoord1 32_32_FLOAT (varsayılan), 16_16_FLOAT, NONE Doku koordinatlarının ikinci yuvası. Albedo ve normal harita gibi tek tek dokular, kaynak dosyada tanımlanan yuva 0 veya 1'i kullanabilir.

Desteklenen bileşen biçimleri

Aşağıdaki tabloda desteklenen bileşen biçimlerinin bellek ayak izleri açıklanmaktadır:

Biçimlendir Tanım Köşe başına bayt sayısı
32_32_FLOAT İki bileşenli tam kayan nokta duyarlığı 8
16_16_FLOAT İki bileşenli yarım kayan nokta duyarlık 4
32_32_32_FLOAT Üç bileşenli tam kayan nokta duyarlığı 12
16_16_16_16_FLOAT Dört bileşenli yarım kayan nokta duyarlık 8
8_8_8_8_UNSIGNED_NORMALIZED Dört bileşenli bayt, aralıkta [0; 1] normalleştirilmiş 4
8_8_8_8_SIGNED_NORMALIZED Dört bileşenli bayt, aralıkta [-1; 1] normalleştirilmiş 4

Bileşen biçimi değişiklikleri için en iyi yöntemler

  • position: Düşük doğruluğun yeterli olması nadirdir. 16_16_16_16_FLOAT küçük modeller için bile fark edilebilir niceleme yapıtları sunar.
  • normal, tangentve binormal: Genellikle bu değerler birlikte değiştirilir. Normal nicelemeden kaynaklanan fark edilebilir aydınlatma yapıtları olmadığı sürece, doğruluklarını artırmak için bir neden yoktur. Ancak bazı durumlarda, bu bileşenler olarak NONEayarlanabilir:
    • normal, tangentve binormal yalnızca modeldeki en az bir malzemenin yanması gerektiğinde gereklidir. Azure Uzaktan İşleme'de bu senaryo, modelde herhangi bir zamanda bir PBR malzemesi kullanıldığında ortaya çıkar.
    • tangent ve binormal yalnızca ışıklı malzemelerden herhangi biri normal harita dokusu kullandığında gereklidir.
  • texcoord0ve texcoord1 : Doku koordinatları, değerleri aralıkta [0; 1] kalırsa ve adreslenen dokuların boyutu en fazla 2.048 × 2.048 piksel olduğunda azaltılmış doğruluk (16_16_FLOAT) kullanabilir. Bu sınırlar aşılırsa doku eşleme kalitesi azalır.

Örnek

Dokulara ışık veren bir fotogrametri modeliniz olduğunu varsayalım. Modeli işlemek için gereken tek şey köşe konumları ve doku koordinatlarıdır.

Varsayılan olarak dönüştürücü, pbr malzemelerini bir modelde kullanmak isteyebileceğinizi varsayarak sizin için , tangentve binormal verileri oluştururnormal. Bu nedenle köşe başına bellek kullanımı position (12 bayt) + (8 bayt) + texcoord0 (4 bayt) + normaltangent (4 bayt) + binormal (4 bayt) = 32 bayttır. Bu türdeki daha büyük modeller kolayca milyonlarca köşeye sahip olabilir ve bu da birden çok gigabayt bellek alabilen modeller elde edilebilir. Bu kadar büyük miktarda veri performansı etkiler ve hatta belleğiniz tükenebilir.

Modelde dinamik aydınlatmaya hiçbir zaman ihtiyaç duymadığınızı bilerek ve tüm doku koordinatlarının aralıkta [0; 1] olduğunu bilerek , ve NONEbinormal ve değerini yarı duyarlık ()16_16_FLOAT olarak ayarlayabilir texcoord0 ve köşe başına yalnızca 16 bayt elde edebilirsiniznormaltangent. Mesh verileri ikiye bölündiğinde, daha büyük modeller yükleyebilirsiniz ve performans potansiyel olarak iyileştirilir.

Nokta bulutları için Ayarlar

Bir nokta bulutu dönüştürüldüğünde, şemadaki özelliklerin yalnızca küçük bir alt kümesi kullanılır. Diğer özellikler belirtilmedikçe yoksayılır.

Nokta bulutu dönüştürme üzerinde etkisi olan özellikler şunlardır:

  • scaling: Üçgen tireler ile aynı anlama gelir.
  • recenterToOrigin: Üçgen tireler ile aynı anlama gelir.
  • axis: Üçgen tireler ile aynı anlama gelir. Varsayılan değerler şeklindedir ["+x", "+y", "+z"], ancak çoğu nokta bulutu verisi işleyicinin kendi koordinat sistemine göre döndürülür. Telafi etmek için çoğu durumda ["+x", "+z", "-y"] döndürmeyi düzeltir.
  • gammaToLinearVertex: Üçgen kafeslere benzer şekilde, bu bayrak nokta renklerinin gama alanından doğrusal aralığa dönüştürülüp dönüştürülmeyeceğini gösterir. Nokta bulut biçimleri (E57, PLY, LAS, LAZ ve XYZ dosyaları) için varsayılan değerdir true.
  • generateCollisionMesh: Üçgen tirelere benzer şekilde, uzamsal sorguları desteklemek için bu bayrağı etkinleştirmeniz gerekir.

Bellek iyileştirmeleri

Yüklenen içeriğin bellek tüketimi, işleme sisteminde bir performans sorununa neden olabilir. Bellek yükü çok büyük olursa, işleme performansını tehlikeye atabilir veya modelin tamamen yüklenmemesine neden olabilir. Bu paragrafta bellek ayak izini azaltmaya yönelik bazı önemli stratejiler ele alınmaktadır.

Dekont

Aşağıdaki iyileştirmeler üçgen tireler için geçerlidir. Dönüştürme ayarlarını yapılandırarak nokta bulutlarının çıkışını iyileştiremezsiniz.

Örnek Oluşturma

Kapsayıcılıkta, her parçanın kendi benzersiz geometrisine başvurması yerine ayrı uzamsal dönüşümlere sahip parçalar için kafesler yeniden kullanılır. Depolamanın bellek ayak izi üzerinde önemli bir etkisi vardır.

Örnek kullanım örnekleri, bir motor modelindeki vidalar veya mimari modeldeki sandalyelerdir.

Dekont

Kapsayıcılık, bellek tüketimini (ve dolayısıyla yükleme sürelerini) önemli ölçüde iyileştirebilir, ancak işleme performansındaki iyileştirmeler önemsizdir.

Kaynak dosyada parçaların uygun şekilde işaretlenmesi durumunda dönüştürme hizmeti, dosyma durumunu dikkate alır. Ancak dönüştürme, yeniden kullanılabilir parçaları tanımlamak için mesh verilerinin ek ve derin analizini gerçekleştirmez. İçerik oluşturma aracı ve dışarı aktarma işlem hattı, uygun kurulum için belirleyici ölçütlerdir.

Dönüştürme sırasında gelen bilgilerin korunup korunmadığını test etmenin basit bir yolu, çıkış istatistiklerine bakmaktır. Özellikle değeri denetleyin numMeshPartsInstanced . değeri numMeshPartsInstanced sıfırdan büyükse, tireler örnekler arasında paylaşılır.

Örnek: En fazla 3ds'de kurulum kurma

Autodesk 3ds Max'in Kopyalama, Örnek ve Başvuru adlı ayrı nesne kopyalama modları vardır. Modlar, dışarı aktarılan .fbx dosyasındaki instancing için farklı çalışır.

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

  • Kopyala: Bu modda mesh kopyalanır, bu nedenle hiçbir bağlama kullanılmaz ( = numMeshPartsInstanced0).
  • Örnek: İki nesne aynı ağı paylaştığından, instancing kullanılır ( = numMeshPartsInstanced1).
  • Başvuru: Geometrilere ayrı değiştiriciler uygulanabilir, bu nedenle ihracatçı muhafazakar bir yaklaşım seçer ve () instancingnumMeshPartsInstanced = 0 kullanmaz.

Derinlik tabanlı kompozisyon modu

Bellek önemliyse derinlik tabanlı oluşturma modunu kullanarak işleyiciyi yapılandırın. Bu modda GPU yükü birden çok GPU'ya dağıtılır.

Köşe boyutunu küçültme

Bileşen biçimi değişiklikleri için en iyi yöntemler bölümünde açıklandığı gibi köşe biçimini ayarlamak bellek ayak izini azaltabilir. Ancak, bu seçenek seçtiğiniz son seçenek olmalıdır.

Doku boyutları

Senaryonun türüne bağlı olarak doku verilerinin miktarı, mesh verileri için kullanılan belleğe ağır basabilir. Fotogrametri modelleri adaydır. Dönüştürme yapılandırması dokuların ölçeğini otomatik olarak azaltmanın bir yolunu sağlamaz. Gerekirse doku ölçeklendirme, istemci tarafı ön işleme adımı olarak yapılmalıdır. Ancak dönüştürme adımı uygun bir doku sıkıştırma biçimi seçer:

  • Opak renk dokuları için BC1 dosya biçimi
  • Alfa kanalı ile kaynak renk dokuları için BC7 dosya biçimi

BC7 dosya biçimi, BC1 dosya biçiminin iki katı bellek ayak izine sahip olduğundan, giriş dokularının gereksiz bir alfa kanalı sağlamadığından emin olmak önemlidir.

Tipik kullanım örnekleri

Belirli bir kullanım örneği için iyi içeri aktarma ayarları bulmak yorucu bir işlem olabilir. Öte yandan, dönüştürme ayarlarının çalışma zamanı performansı üzerinde önemli bir etkisi olabilir.

Bazı belirli kullanım örnekleri sınıfları belirli iyileştirmeler için uygun olur. Bazı örnekler aşağıdaki bölümlerde açıklanmıştır.

Kullanım örneği: Mimari görselleştirme veya büyük dış mekan haritaları

Mimari görselleştirme veya büyük dış mekan haritaları içeren senaryolar için aşağıdaki faktörleri göz önünde bulundurun:

  • Bu tür sahneler statik olma eğilimindedir. Taşınabilen parçalara ihtiyaçları yok. Buna göre , veya hatta noneolarak ayarlayabilir staticsceneGraphMode ve çalışma zamanı performansını geliştirebilirsiniz. Modda static , sahnenin kök düğümü hala taşınabilir, döndürülebilir ve ölçeklendirilebilir. Örneğin, 1:1 ölçek (birinci kişi görünümü için) ile tablo üstü görünüm arasında dinamik olarak geçiş yapabilir.

  • Uygulama kesme düzlemleri kullanmıyorsa, opaqueMaterialDefaultSidedness bayrak kapatılmalıdır. Performans kazancı genellikle yüzde 20 ile yüzde 30 arasındadır. Kesme düzlemlerini kullanmaya devam edebilirsiniz, ancak nesnenin iç kısmına baktığınızda arka yüz olmayacaktır ve bu da uygun değildir. Daha fazla bilgi için bkz . Tek taraflı işleme.

Kullanım örneği: Fotogrametri modelleri

Fotogrametri modellerini işlerken genellikle bir sahne grafı gerekmez. Bu senaryoda olarak ayarlamayı sceneGraphModenoneseçebilirsiniz. Bu modeller nadiren karmaşık bir sahne grafiği içerdiğinden, bu seçeneği belirlemenin etkisi büyük olasılıkla önemsizdir. Aydınlatma zaten dokulara işlendiğinden dinamik aydınlatma gerekmez. Bu senaryoda:

  • unlitMaterials Tüm malzemeleri yarılmamış renk malzemelerine dönüştürmek için bayrağını true olarak ayarlayın.
  • Köşe biçiminden gereksiz verileri kaldırın. Önceki örne bakın.

Kullanım örneği: Kompakt makinelerin ve diğerlerinin görselleştirmesi

Bu kullanım örneklerinde, modeller genellikle küçük bir hacimde yüksek düzeyde ayrıntıya sahiptir. Oluşturucu, bu durumları iyi işlemek için çok iyileştirilmiştir. Ancak, önceki kullanım örneğinde açıklanan iyileştirmelerin çoğu burada geçerli değildir. İyileştirmeler şunlardır:

  • Tek tek parçalar seçilebilir ve taşınabilir olmalıdır, bu nedenle sceneGraphMode olarak dynamicayarlanmalıdır.
  • Ray atamaları genellikle uygulamanın ayrılmaz bir parçasıdır, bu nedenle çakışma tirelerinin oluşturulması gerekir.
  • Kesilen düzlemler, bayrak etkinleştirildiğinde opaqueMaterialDefaultSidedness daha iyi görünür.

Kullanım dışı bırakılan özellikler

Modele özgü olmayan conversion Ayarlar.json dosya adı kullanılarak model dönüştürme parametrelerinin ayarlanması hala desteklenmektedir, ancak kullanım dışıdır. Bunun yerine modele özgü <modelAdı'nı> kullanın. Conversion Ayarlar.json dosya adı.

material-override Dönüştürme ayarları dosyasındaki bir malzeme geçersiz kılma dosyasını tanımlamak için bir ayar kullanılması hala desteklenmektedir, ancak kullanım dışıdır. Bunun yerine modele özgü <modelAdı'nı> kullanın. MaterialOverrides.json dosya adı.

Sonraki adımlar