Model dönüştürme sırasında malzemeleri geçersiz kılma
Kaynak modeldeki malzeme ayarları, işleyici tarafından kullanılan PBR malzemelerini tanımlar. Bazen varsayılan dönüştürme istenen sonuçları vermez ve değişiklik yapmanız gerekir. Daha fazla bilgi için bkz . Model biçimleri için malzeme eşleme.
Üçgen bir ağ Azure Uzaktan İşleme'de kullanılmak üzere dönüştürüldüğünde, malzeme dönüştürme işleminin malzeme başına nasıl yapıldığını özelleştirmek için bir malzeme geçersiz kılma dosyası sağlayabilirsiniz. modelName> adlı <bir dosyaysa. MaterialOverrides.json, giriş modeli modelAdı>< ile giriş kapsayıcısında bulunur.<ext>, malzeme geçersiz kılma dosyası olarak kullanılır.
Dönüştürme sırasında kullanılan geçersiz kılma dosyası
Basit bir örnek olarak, adlı Default
tek bir malzemeye sahip bir kutu modeli alın.
Albedo renginin Uzaktan İşleme'de kullanılmak üzere ayarlanması gerekir.
Bu durumda, bir kutu. MaterialOverrides.json dosyası aşağıdaki gibi oluşturulabilir:
[
{
"name": "Default",
"albedoColor": {
"r": 0.33,
"g": 0.33,
"b": 0.33,
"a": 1.0
}
}
]
Kutu. MaterialOverrides.json dosyası, dönüştürme hizmetine yeni ayarları uygulamasını söyleyen box.fbx ile giriş kapsayıcısına yerleştirilir.
Renk malzemeleri
Renk malzemesi modeli, aydınlatmadan bağımsız, sürekli gölgeli bir yüzeyi tanımlar.
Renk malzemeleri, örneğin Fotogrametri algoritmaları tarafından yapılan varlıklar için kullanışlıdır. Daha fazla bilgi için bkz . Renk malzemeleri.
Malzeme geçersiz kılma dosyalarında, bir malzeme olarak ayarlanarak unlit
true
bir renk malzemesi olarak bildirilebilir.
[
{
"name": "Photogrametry_mat1",
"unlit" : true
},
{
"name": "Photogrametry_mat2",
"unlit" : true
}
]
Belirli doku haritalarını yoksay
Bazen dönüştürme işleminin belirli doku haritalarını yoksaymasını isteyebilirsiniz. Modeliniz işleyici tarafından anlaşılmayan özel haritalar oluşturan bir araç tarafından oluşturulduğunda bu durum ortaya çıkabilir. Örneğin, opaklık dışında bir şeyi tanımlamak için "OpacityMap" kullanılabilir veya "NormalMap" "BumpMap" olarak depolanır. İkinci durumda, dönüştürücüde "NormalMap" olarak "BumpMap" kullanılmasına neden olan "NormalMap"i yoksaymak istiyorsunuz.
adlı ignoreTextureMaps
bir özellik ekleyin ve yoksaymak istediğiniz doku eşlemelerini ekleyin:
[
{
"name": "Default",
"ignoreTextureMaps": ["OpacityMap", "NormalMap"]
}
]
Yoksayabileceğiniz doku eşlemelerinin tam listesi için bkz . JSON şeması.
Aynı geçersiz kılmaları birden çok malzemeye uygulama
Varsayılan olarak, malzeme dosyasındaki bir girdi, adı malzeme adıyla tam olarak eşleştiğinde uygulanır.
Aynı geçersiz kılmanın birden çok malzeme için geçerli olması yaygın olduğundan, isteğe bağlı olarak giriş adı olarak normal bir ifade sağlayabilirsiniz.
Alanın nameMatching
varsayılan değeri exact
vardır, ancak girişin eşleşen her malzemeye uygulanacağını belirtecek şekilde ayarlanabilir regex
.
Regex söz dizimi JavaScript için kullanılan söz dizimi ile aynıdır.
Bahşiş
Rastgele dizelerde normal ifadeyi test etmek ve hatalarını ayıklamak için ücretsiz regex test web siteleri vardır.
Aşağıdaki örnekte, Material01
ve Material999
gibi Material2
adlara sahip malzemeler için geçerli olan bir geçersiz kılma gösterilmektedir.
[
{
"name": "Material[0-9]+",
"nameMatching": "regex",
"albedoColor": {
"r": 0.0,
"g": 0.0,
"b": 1.0,
"a": 1.0
}
}
]
Bu örnekte tüm malzemelere uygulanan bir geçersiz kılma gösterilmektedir:
[
{
"name": ".*",
"nameMatching": "regex",
"albedoColor": {
"r": 0.0,
"g": 0.0,
"b": 1.0,
"a": 1.0
}
}
]
Her malzemenin eşleşen geçersiz kılmayı bulma sırası aşağıdaki gibidir:
- İlk olarak, tam ad eşleşmesini test eder (yani, eksik veya eşit olduğunda
nameMatching
tüm geçersiz kılmalarıexact
denetler). - Geçersiz kılma bulunmazsa, ad eşleştirme moduyla
regex
tüm geçersiz kılmaları test eder ve eşleşen ilk geçersiz kılmayı kullanır.
Tek bir malzeme, malzeme adına birden çok ifade uygulansa bile hiçbir zaman birden fazla regex
geçersiz kılma uygulanmaz.
Hangi girişlerin uygulandığı hakkında bilgi alma
Çıkış kapsayıcısına yazılan bilgi dosyası, sağlanan geçersiz kılma sayısı ve geçersiz kılınan malzeme sayısı hakkında bilgi taşır. Daha fazla bilgi için bkz . Dönüştürülen model hakkındaki bilgiler.
JSON şeması
Malzeme dosyaları için tam JSON şeması burada verilmiştir. unlit
ve ignoreTextureMaps
dışında, kullanılabilir özellikler, renk malzemesi ve PBR malzeme modellerindeki bölümlerde açıklanan özelliklerin bir alt kümesidir.
{
"definitions" :
{
"color":
{
"type" : "object",
"description" : "Color as 4 components vector",
"properties":
{
"r": {"type":"number"},
"g": {"type":"number"},
"b": {"type":"number"},
"a": {"type":"number"}
},
"required": ["r", "g", "b"]
},
"alpha":
{
"type" : "object",
"description" : "Alpha channel for color",
"properties":
{
"a": {"type":"number"}
},
"required": ["a"]
},
"colorOrAlpha":
{
"anyOf": [
{"$ref": "#/definitions/color"},
{"$ref": "#/definitions/alpha"}
]
},
"listOfMaps":
{
"type": "array",
"items": {
"type": "string",
"enum": ["AlbedoMap",
"EmissiveMap",
"NormalMap",
"OcclusionMap",
"RoughnessMap",
"MetalnessMap",
"ReflectivityMap",
"BumpMap",
"OpacityMap",
"DiffuseMap",
"SpecularMap",
"ShininessMap",
"MetallicRoughnessMap",
"SpecularGlossinessMap"]
}
}
},
"type" : "array",
"description" : "List of materials to override",
"items":
{
"type" : "object",
"description" : "List of parameters to override",
"properties":
{
"name": { "type" : "string"},
"nameMatching" : { "type" : "string", "enum" : ["exact", "regex"] },
"unlit": { "type" : "boolean" },
"albedoColor": { "$ref": "#/definitions/colorOrAlpha" },
"roughness": { "type": "number" },
"metalness": { "type": "number" },
"normalMapScale": { "type": "number" },
"transparent": { "type" : "boolean" },
"alphaClipEnabled": { "type" : "boolean" },
"alphaClipThreshold": { "type": "number" },
"useVertexColor": { "type" : "boolean" },
"isDoubleSided": { "type" : "boolean" },
"ignoreTextureMaps": { "$ref" : "#/definitions/listOfMaps" },
"transparencyWritesDepth": {"type" : "boolean" }
},
"required": ["name"],
"additionalProperties" : false
}
}