Aracılığıyla paylaş


PBR malzemeleri

PBR malzemeleri , Azure Uzaktan İşleme'de desteklenen malzeme türlerinden biridir. Gerçekçi aydınlatma alması gereken üçgen kafesler için kullanılırlar. Öte yandan nokta bulutları dinamik aydınlatmadan etkilenmez.

PBR, P hysically Based Rendering anlamına gelir ve malzemenin bir yüzeyin görsel özelliklerini fiziksel olarak makul bir şekilde açıklayıp gerçekçi sonuçların tüm aydınlatma koşullarında mümkün olduğu anlamınagelir. Çoğu modern oyun motoru ve içerik oluşturma aracı PBR malzemelerini destekler çünkü gerçek zamanlı işleme için gerçek dünya senaryolarının en iyi tahmini olarak kabul edilir.

ARR tarafından işlenen kask glTF örnek modeli

Fiziksel tabanlı işlemenin temel fikri, çok çeşitli gerçek malzemelere öykünmek için BaseColor, Metalness ve Pürüzlülük özelliklerini kullanmaktır. PBR'nin ayrıntılı bir açıklaması bu makalenin kapsamı dışındadır. PBR hakkında daha fazla bilgi için diğer kaynaklara bakın.

PBR malzemeleri evrensel bir çözüm değildir. Görüntüleme açısına bağlı olarak rengi farklı yansıtan malzemeler vardır. Örneğin, bazı kumaşlar veya araba boyaları. Bu tür malzemeler standart PBR modeli tarafından işlenmez ve şu anda Azure Uzaktan İşleme tarafından desteklenmez. Bu sınırlama, İnce Film (çok katmanlı yüzeyler) ve Clear-Coat (araba boyaları için) gibi PBR uzantılarını içerir.

PBR malzeme özellikleri

Aşağıdaki malzeme özellikleri çalışma zamanı API'sinde, örneğin sırasıyla C# PbrMaterial sınıfında veya C++ PbrMaterial sınıfında kullanıma sunulur.

  • PbrFlags: Aşağıdaki özellikleri etkinleştirmek için bu bit maskesinde çeşitli özellik bayrakları birleştirilebilir:

    • TransparentMaterial: PBR malzemeleri için tek bir saydamlık ayarı vardır: etkin veya etkin değil. Opaklık, albedo renginin alfa kanalı tarafından tanımlanır. Etkinleştirildiğinde, yarı saydam yüzeyler çizmek için daha karmaşık bir işleme yöntemi çağrılır. Azure Remote Rendering, doğru sırada bağımsız saydamlık (OIT) uygular. Saydam geometrinin işlenmesi pahalıdır. Bir yüzeyde yalnızca ağaç yaprakları gibi deliklere ihtiyacınız varsa, bunun yerine alfa kırpma kullanmak daha iyidir.

    Sıfırdan tam saydamlığa kadar işlenen küreler Yukarıdaki görüntüde, en sağdaki kürenin tamamen saydam olduğuna, ancak yansımanın hala görünür olduğuna dikkat edin.

    Önemli

    Çalışma zamanında herhangi bir malzemenin opaktan saydama geçmesi gerekiyorsa işleyicinin TileBasedComposition işleme modunu kullanması gerekir. Bu sınırlama, başlangıçta saydam malzeme olarak dönüştürülen malzemeler için geçerli değildir.

    • UseVertexColor: Mesh renkler içeriyorsa vertex ve bu seçenek etkinleştirilirse, kafeslerin vertex rengi ve AlbedoMapile çarpılırAlbedoColor. Varsayılan olarak UseVertexColor devre dışıdır.
    • DoubleSided: Çift taraflılık true olarak ayarlanırsa, kamera arka yüzlerine bakıyor olsa bile bu malzemeye sahip üçgenler işlenir. PBR malzeme aydınlatması için arka yüzler için de düzgün şekilde hesaplanır. Varsayılan olarak bu seçenek devre dışıdır. Ayrıca Single-sided renderingbkz. .
    • SpecularHighlights: Bu malzeme için belirtik vurguları etkinleştirir. Bayrak varsayılan olarak SpecularHighlights etkindir.
    • AlphaClipped: Değerinin altında AlphaClipThreshold olan alfa değerine bağlı olarak piksel başına sabit kesmeleri etkinleştirir (aşağıya bakın). Bu, opak malzemeler için de çalışır.
    • FresnelEffect: Bu malzeme bayrağı ilgili malzeme üzerinde katkı fresnel etkisi sağlar. Etkinin görünümü diğer fresnel parametreleri FresnelEffectColor tarafından yönetilir ve FresnelEffectExponent aşağıda açıklanmıştır.
    • TransparencyWritesDepth: Malzeme üzerinde TransparencyWritesDepth bayrak ayarlanırsa ve malzeme saydamsa, bu malzemeyi kullanan nesneler son derinlik arabelleğine de katkıda bulunur. Sonraki bölümde pbr malzeme bayrağı saydam bölümüne bakın. Kullanım örneğiniz tamamen saydam sahnelerin daha makul bir geç aşama yeniden üretilmesine ihtiyaç duyuyorsa bu özelliği etkinleştirmeniz önerilir. Karışık opak/saydam sahneler için bu ayar, olanaksız yeniden oluşturma davranışı veya yeniden oluşturma yapıtlarına neden olabilir. Bu nedenle, genel kullanım örneği için varsayılan ve önerilen ayar bu bayrağı devre dışı bırakmaktır. Yazılı derinlik değerleri, kameraya en yakın nesnenin piksel başına derinlik katmanından alınır.
  • AlbedoColor: Bu renk veya vertex renkleri gibi AlbedoMap diğer renklerle çarpılır. Bir malzemede saydamlık etkinleştirildiyse alfa kanalı opaklığı 1 ayarlamak için kullanılır ve tamamen opak ve 0 tamamen saydam anlamına gelir. Varsayılan albedo rengi opak beyazdır.

    Not

    PbR malzemesi tamamen şeffaf olduğunda, mükemmel temiz bir cam yüzey gibi, hala ortamı yansıtır. Güneş gibi parlak noktalar yansımada hala görünür. Bu renk malzemeleri için farklıdır.

  • AlbedoMap: Piksel başına albedo değerleri için 2B doku .

  • AlphaClipThreshold: Bayrağı özelliğinde PbrFlags ayarlanırsaAlphaClipped, albedo alfa değerinin küçük AlphaClipThreshold olduğu tüm pikseller çizilmez. Alfa kırpma saydamlığı etkinleştirmeden bile kullanılabilir ve işlenmesi çok daha hızlıdır. Alfa kırpılmış malzemelerin işlenmesi hala tamamen opak malzemelere göre daha yavaştır. Varsayılan olarak alfa kırpma devre dışıdır.

  • TexCoordScale ve TexCoordOffset: Ölçek UV doku koordinatlarıyla çarpılır, uzaklık buna eklenir. Dokuları uzatmak ve kaydırmak için kullanılabilir. Varsayılan ölçek (1, 1) ve uzaklık (0, 0) şeklindedir.

  • FresnelEffectColor: Bu malzeme için kullanılan fresnel rengi. Yalnızca bu malzemede fresnel efekt bayrağı ayarlandığında önemlidir (yukarıya bakın). Bu özellik fresnel parlaklığının temel rengini denetler (tam açıklama için fresnel etkisine bakın). Şu anda yalnızca RGB kanalı değerleri önemlidir ve alfa değeri yoksayılır.

  • FresnelEffectExponent: Bu malzeme için kullanılan fresnel üs. Yalnızca bu malzemede fresnel efekt bayrağı ayarlandığında önemlidir (yukarıya bakın). Bu özellik fresnel parlamanın yayılmasını denetler. En düşük değer 0,01, nesnenin tamamına yayılmaya neden olur. Maksimum değer 10,0, parıldayı yalnızca görünen en otlatma kenarlarına sabitler.

  • PbrVertexAlphaMode: Köşe renklerinin alfa kanalının nasıl kullanıldığını belirler. Aşağıdaki modlar sağlanır:

    • Occlusion: Alfa değeri bir ortam tıkanıklık değerini temsil eder ve bu nedenle yalnızca gökyüzü kutusundan gelen dolaylı aydınlatmayı etkiler.
    • LightMask: Alfa değeri, uygulanan genel aydınlatma miktarı için ölçek faktörü görevi görür, yani alfa alanları karartmak için kullanılabilir. Bu hem dolaylı hem de doğrudan aydınlatmayı etkiler.
    • Opacity: Alfa, malzemenin ne kadar opak (1.0) veya saydam (0.0) olduğunu temsil eder.
  • NormalMap: Ayrıntılı ayrıntıların simülasyonunu yapmak için normal bir harita sağlanabilir.

  • NormalMapScale: Normal harita gücünü ölçeklendirin skaler değer. 1,0 değeri normal haritanın normal değerini olduğu gibi alır, 0 değeri ise yüzeyin düz görünmesini sağlar. 1,0'dan büyük değerler normal harita pertürbasyonunu abartıyor.

  • Roughness ve RoughnessMap: Pürüzlülük, yüzeyin ne kadar kaba veya pürüzsüz olduğunu tanımlar. Pürüzlü yüzeyler, ışığı düz yüzeylerden daha fazla yöne saçarak yansımaları keskin yerine bulanık hale getirir. Değer aralığı ile 0.0 1.0arasındadır. eşit 0.0olduğunda Roughness yansımalar keskin olur. eşit 0.5olduğunda Roughness yansımalar bulanıklaşır. Hem pürüzlülük değeri hem de pürüzlülük haritası sağlanırsa, son değer ikisinin ürünü olur.

  • Metalness ve MetalnessMap: Fizikte, bu özellik bir yüzeyin iletken mi yoksa dielektrik mi olduğuna karşılık gelir. İletken malzemeler farklı yansıtıcı özelliklere sahiptir ve albedo rengi olmadan yansıtıcı olma eğilimindedir. PBR malzemelerinde bu özellik, bir yüzeyin çevresindeki ortamı ne kadar yansıtdığını etkiler. değerler ile 0.0 1.0arasında değişir. Metallik olduğunda 0.0, albedo rengi tamamen görünür ve malzeme plastik veya seramik gibi görünür. Metallik olduğunda 0.5, boyalı metal gibi görünür. Metallik olduğunda 1.0, yüzey albedo rengini neredeyse tamamen kaybeder ve sadece çevresini yansıtır. Örneğin, ise metalness 1.0 ve roughness o 0.0 zaman bir yüzey gerçek dünya aynası gibi görünür. Hem metallik değeri hem de metallik haritası sağlanırsa, son değer ikisinin ürünü olacaktır.

    Farklı metallik ve pürüzlülük değerleriyle işlenen küreler

    Yukarıdaki resimde, sağ alt köşedeki küre gerçek bir metal malzemeye benziyor, sol alt kısım seramik veya plastik gibi görünüyor. Albedo rengi de fiziksel özelliklere göre değişiyor. Artan pürüzlülük ile malzeme yansıma keskinliğini kaybeder.

  • AOMap ve AOScale: Ortam tıkanıklık , tıkanmış alanlara gölgeler ekleyerek çatlaklı nesnelerin daha gerçekçi görünmesini sağlar. Tıkanıklık değeri ile 0.0 1.0arasında değişir; bu 0.0 , karanlık (tıkanmış) anlamına gelir ve 1.0 hiçbir okluzyon anlamına gelir. 2B doku bir tıkanıklık haritası olarak sağlanırsa, efekt etkinleştirilir ve AOScale çarpan görevi görür.

    Ortam tıkanıklık ile ve olmadan işlenen bir nesne

Dönüştürme sırasında renk malzemesi geçersiz kılmaları

Malzeme geçersiz kılma dosyası aracılığıyla model dönüştürme sırasında renk malzemesi özelliklerinin bir alt kümesi geçersiz kılınabilir. Aşağıdaki tabloda yukarıda belgelenen çalışma zamanı özellikleri ile geçersiz kılma dosyasında karşılık gelen özellik adı arasındaki eşleme gösterilmektedir:

Malzeme özellik adı Geçersiz kılma dosyasındaki özellik adı
PbrFlags.TransparentMaterial transparent
PbrFlags.AlphaClipped alphaClipEnabled
PbrFlags.UseVertexColor useVertexColor
PbrFlags.DoubleSided isDoubleSided
PbrFlags.TransparencyWritesDepth transparencyWritesDepth
AlbedoColor albedoColor
TexCoordScale textureCoordinateScale
TexCoordOffset textureCoordinateOffset
NormalmapScale normalMapScale
Metalness metalness
Roughness roughness
AlphaClipThreshold alphaClipThreshold

Teknik ayrıntılar

Azure Remote Rendering, GGX NDF, Schlick Fresnel ile Cook-Torrance mikro model BRDF'sini ve Lambert diffuse terimiyle bağıntılı bir GGX Smith görünürlük terimini kullanır. Bu model şu anda de facto endüstri standardıdır. Daha ayrıntılı bilgi için şu makaleye bakın: Fiziksel tabanlı İşleme - Aşçı Torrance

Azure Uzaktan İşleme'de kullanılan Metalness-Roughness PBR modeline alternatif olarak Specular-Glossiness PBR modeli kullanılır. Bu model daha geniş bir malzeme yelpazesini temsil edebilir. Ancak, daha pahalıdır ve genellikle gerçek zamanlı vakalar için iyi çalışmaz. (BaseColor, Metalness) değerine dönüştürülemez (Diffuse, Specular) değer çiftleri olduğundan, Specular-Glossiness'ten Metalness-Roughness'e dönüştürmek her zaman mümkün değildir. Diğer yönde dönüştürme daha basit ve daha hassastır, çünkü tüm (BaseColor, Metalness) çiftleri iyi tanımlanmış (Diffuse, Specular) çiftlerine karşılık gelir.

API belgeleri

Sonraki adımlar