مواد PBR

مواد PBR هي واحدة من أنواع المواد المدعومة في Azure Remote Rendering. يتم استخدامها لالشبكات المثلثة التي يجب أن تتلقى إضاءة واقعية. من ناحية أخرى، لا تتأثر السحب النقطة بالإضاءة الديناميكية.

يرمز PBR إلى Pب hysically Based Rendering ويعني أن المادة تصف الخصائص المرئية للسطح بطريقة معقولة ماديا، بحيث تكون النتائج الواقعية ممكنة في ظل جميع ظروف الإضاءة. تدعم معظم محركات الألعاب الحديثة وأدوات إنشاء المحتوى مواد PBR لأنها تعتبر أفضل تقريب لسيناريوهات العالم الحقيقي للعرض في الوقت الفعلي.

Helmet glTF sample model rendered by ARR

الفكرة الأساسية للعرض القائم ماديا هي استخدام خصائص BaseColor و Metalness و Roughness لمحاكاة مجموعة واسعة من المواد في العالم الحقيقي. الوصف التفصيلي ل PBR خارج نطاق هذه المقالة. لمزيد من المعلومات حول PBR، راجع مصادر أخرى.

ومع ذلك، فإن مواد PBR ليست حلا عالميا. هناك مواد تعكس اللون بشكل مختلف اعتمادا على زاوية العرض. على سبيل المثال، بعض الأقمشة أو طلاء السيارات. لا يتم التعامل مع هذه الأنواع من المواد بواسطة نموذج PBR القياسي، وهي غير مدعومة حاليا من قبل Azure Remote Rendering. يتضمن هذا القيد ملحقات PBR، مثل Thin-Film (الأسطح متعددة الطبقات) و Clear-Coat (لدهانات السيارات).

خصائص مواد PBR

يتم عرض خصائص المواد التالية في واجهة برمجة تطبيقات وقت التشغيل، على سبيل المثال في فئة C# PbrMaterial أو فئة C++ PbrMaterial، على التوالي.

  • PbrFlags: يمكن دمج علامات ميزة Misc في قناع البت هذا لتمكين الميزات التالية:

    • TransparentMaterial: بالنسبة لمواد PBR، هناك إعداد شفافية واحد فقط: يتم تمكينه أم لا. يتم تعريف التعتيم بواسطة قناة ألفا الخاصة بلون albedo. عند التمكين، يتم استدعاء أسلوب عرض أكثر تعقيدا لرسم أسطح شبه شفافة. ينفذ Azure Remote Rendering الشفافية المستقلة بالترتيب الحقيقي (OIT). الهندسة الشفافة مكلفة للعرض. إذا كنت تحتاج فقط إلى ثقوب في السطح، على سبيل المثال لأوراق الشجرة، فمن الأفضل استخدام لقطة ألفا بدلا من ذلك.

    Spheres rendered with zero to full transparency لاحظ في الصورة أعلاه، كيف أن الكرة اليمنى شفافة تماما، ولكن الانعكاس لا يزال مرئيا.

    هام

    إذا كان من المفترض أن يتم تبديل أي مادة من مبهمة إلى شفافة في وقت التشغيل، يجب أن يستخدم جهاز العرض وضع عرض TileBasedComposition. لا ينطبق هذا القيد على المواد التي يتم تحويلها كمواد شفافة لتبدأ بها.

    • UseVertexColor: إذا كانت الشبكة تحتوي على vertex ألوان وتم تمكين هذا الخيار، يتم ضرب لون الشبكات vertex في AlbedoColor و AlbedoMap. بشكل افتراضي UseVertexColor معطل.
    • DoubleSided: إذا تم تعيين الجانبين على صواب، يتم عرض المثلثات مع هذه المادة حتى إذا كانت الكاميرا تبحث في وجوههم الخلفية. بالنسبة لإضاءة مواد PBR يتم حسابها أيضا بشكل صحيح للوجوه الخلفية. يتم تعطيل هذا الخيار بشكل افتراضي. راجع أيضاً Single-sided rendering.
    • SpecularHighlights: تمكين النقاط البارزة الخاصة بهذه المادة. بشكل افتراضي، يتم تمكين العلامة SpecularHighlights .
    • AlphaClipped: تمكين القطع الثابت على أساس كل بكسل، استنادا إلى قيمة ألفا أقل من AlphaClipThreshold قيمة (انظر أدناه). هذا يعمل للمواد المبهمة أيضا.
    • FresnelEffect: تمكن هذه العلامة المادية تأثير اللوحات الجدارية المضافة على المواد المعنية. يخضع مظهر التأثير لمعلمات FresnelEffectColor fresnel الأخرى ويوضح FresnelEffectExponent أدناه.
    • TransparencyWritesDepth: إذا تم تعيين العلامة TransparencyWritesDepth على المادة وكانت المادة شفافة، فإن الكائنات التي تستخدم هذه المادة ستساهم أيضا في المخزن المؤقت للعمق النهائي. راجع علامة مادة PBR شفافة في القسم التالي. يوصى بتمكين هذه الميزة إذا كانت حالة الاستخدام الخاصة بك تحتاج إلى إعادة مشروع مرحلة متأخرة أكثر وضوحا من المشاهد الشفافة بالكامل. بالنسبة للمشاهد المبهمة/الشفافة المختلطة، قد يقدم هذا الإعداد سلوك إعادة حماية غير قابل للتطبيق أو عناصر إعادة حماية. لهذا السبب، الإعداد الافتراضي والموصى به لحالة الاستخدام العامة هو تعطيل هذه العلامة. يتم أخذ قيم العمق المكتوبة من طبقة العمق لكل بكسل للكائن الأقرب إلى الكاميرا.
  • AlbedoColor: يتم ضرب هذا اللون بألوان أخرى، مثل AlbedoMap الألوان أو vertex . إذا تم تمكين الشفافية على مادة، يتم استخدام قناة ألفا لضبط التعتيم، مع 1 معنى معتم تماما ومعنى 0 شفاف تماما. لون البيدو الافتراضي أبيض مبهم.

    إشعار

    عندما تكون مادة PBR شفافة تماما، مثل سطح زجاج نظيف تماما، فإنها لا تزال تعكس البيئة. لا تزال البقع الساطعة مثل الشمس مرئية في الانعكاس. هذا يختلف عن المواد الملونة.

  • AlbedoMap: مادة 2D لقيم albedo لكل بكسل.

  • AlphaClipThreshold: إذا تم تعيين العلامة AlphaClipped على الخاصية PbrFlags ، فلن يتم رسم جميع وحدات البكسل حيث تكون قيمة albedo alpha أقل من AlphaClipThreshold . يمكن استخدام لقطة ألفا حتى دون تمكين الشفافية وأسرع بكثير في العرض. ومع ذلك، فإن المواد المقتصاصة من ألفا لا تزال أبطأ في العرض من المواد المعتمة بالكامل. يتم تعطيل لقطة ألفا بشكل افتراضي.

  • TexCoordScale و TexCoordOffset: يتم ضرب المقياس في إحداثيات هيئة الأشعة فوق البنفسجية، تتم إضافة الإزاحة إليه. يمكن استخدامها لتمديد وإزاحة المواد. المقياس الافتراضي هو (1، 1) والإزاحة هي (0، 0).

  • FresnelEffectColor: لون اللوحات الجدارية المستخدم لهذه المادة. مهم فقط عندما يتم تعيين علامة تأثير اللوحات الجدارية على هذه المادة (انظر أعلاه). تتحكم هذه الخاصية في اللون الأساسي للتألق الجداري (راجع تأثير fresnel للحصول على شرح كامل). حاليا فقط قيم قناة RGB مهمة وسيتم تجاهل قيمة ألفا.

  • FresnelEffectExponent: الأس الجداري المستخدم لهذه المادة. مهم فقط عندما يتم تعيين علامة تأثير اللوحات الجدارية على هذه المادة (انظر أعلاه). تتحكم هذه الخاصية في انتشار تألق اللوحات الجدارية. يؤدي الحد الأدنى للقيمة 0.01 إلى انتشار عبر الكائن بأكمله. الحد الأقصى للقيمة 10.0 يمس التألق إلى الحواف الأكثر رعي فقط مرئية.

  • PbrVertexAlphaMode: يحدد كيفية استخدام قناة ألفا من ألوان الذروة. يتم توفير الأوضاع التالية:

    • Occlusion: تمثل قيمة ألفا قيمة انشغال محيطة وبالتالي تؤثر فقط على الإضاءة غير المباشرة من مربع السماء.
    • LightMask: قيمة ألفا بمثابة عامل مقياس للكمية الإجمالية للإضاءة المطبقة، ما يعني أنه يمكن استخدام ألفا لتظلم المناطق. وهذا يؤثر على الإضاءة غير المباشرة والمباشرة على حد سواء.
    • Opacity: تمثل ألفا كيف تكون المادة مبهمة (1.0) أو شفافة (0.0).
  • NormalMap: لمحاكاة التفاصيل الدقيقة، يمكن توفير خريطة عادية.

  • NormalMapScale: قيمة عددية تحجيم قوة الخريطة العادية. تأخذ القيمة 1.0 الخريطة العادية كما هي، والقيمة 0 تجعل السطح يبدو مسطحا. القيم الأكبر من 1.0 تبالغ في تشويش الخريطة العادية.

  • Roughness و RoughnessMap: تحدد الخشونة مدى خشونة السطح أو سلاسةه. السطوح الخام مبعثرة الضوء في اتجاهات أكثر من الأسطح المتجانسة، مما يجعل الانعكاسات ضبابية بدلا من حادة. نطاق القيمة هو من 0.0 إلى 1.0. عندما Roughness يساوي 0.0، ستكون الانعكاسات حادة. عندما Roughness يساوي 0.5، ستصبح الانعكاسات ضبابية. إذا تم توفير كل من قيمة الخشونة وخريطة الخشونة، ستكون القيمة النهائية هي نتاج الاثنين.

  • Metalness و MetalnessMap: في الفيزياء، تتوافق هذه الخاصية مع ما إذا كان السطح موصلا أو عازلا. المواد التوصيلية لها خصائص انعكاسية مختلفة، وتميل إلى أن تكون عاكسة بدون لون البيدو. في مواد PBR، تؤثر هذه الخاصية على مدى انعكاس السطح للبيئة المحيطة. تتراوح القيم من 0.0 إلى 1.0. عندما يكون 0.0المعدن هو ، يكون لون البيدو مرئيا بالكامل، وتبدو المادة مثل البلاستيك أو السيراميك. عندما يكون المعدن هو 0.5، فإنه يبدو مثل المعدن المطلي. عندما يكون المعدن هو 1.0، يفقد السطح تقريبا لونه من البيدو، ويعكس فقط المناطق المحيطة به. على سبيل المثال، إذا كان metalness هو 1.0 ثم roughness0.0 سطح يبدو وكأنه مرآة في العالم الحقيقي. إذا تم توفير كل من قيمة المعادن وخريطة المعادن، فإن القيمة النهائية ستكون نتاج الاثنين.

    Spheres rendered with different metalness and roughness values

    في الصورة أعلاه، تبدو الكرة في الزاوية السفلية اليسرى مثل مادة معدنية حقيقية، تبدو أسفل اليسار مثل السيراميك أو البلاستيك. يتغير لون البيدو أيضا وفقا للخصائص المادية. مع زيادة الخشونة، تفقد المادة حدة الانعكاس.

  • AOMap و AOScale: الانسداد المحيط يجعل الكائنات مع الشقوق تبدو أكثر واقعية عن طريق إضافة الظلال إلى المناطق المعزولة. تتراوح قيمة الانسداد من 0.0 إلى ، حيث 0.0 تعني الظلام (معزول) وتعني 1.0 عدم 1.0الانسداد. إذا تم توفير مادة ثنائية الأبعاد كخريطة انسداد، يتم تمكين التأثير ويعمل AOScale كمضاعف.

    An object rendered with and without ambient occlusion

تجاوزات مواد الألوان أثناء التحويل

يمكن تجاوز مجموعة فرعية من خصائص مادة اللون أثناء تحويل النموذج من خلال ملف تجاوز المواد. يعرض الجدول التالي التعيين بين خصائص وقت التشغيل الموثقة أعلاه واسم الخاصية المقابلة في ملف التجاوز:

اسم خاصية المادة اسم الخاصية في ملف التجاوز
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

التفاصيل الفنية

يستخدم Azure Remote Rendering ميزة COOK-Torrance micro-facet BRDF مع GGX NDF و Schlick Fresnel ومصطلح رؤية GGX Smith المترابط مع مصطلح نشر Lambert. هذا النموذج هو معيار الصناعة الفعلي في الوقت الحالي. لمزيد من التفاصيل المتعمقة، راجع هذه المقالة: العرض المستند إلى ماديا - Cook Torrance

بديل لنموذج Metalness-Roughness PBR المستخدم في Azure Remote Rendering هو نموذج Specular-Glossiness PBR. يمكن أن يمثل هذا النموذج مجموعة أوسع من المواد. ومع ذلك، فهي أكثر تكلفة، وعادة لا تعمل بشكل جيد للحالات في الوقت الحقيقي. ليس من الممكن دائما التحويل من Specular-Glossiness إلى Metalness-Roughness حيث توجد أزواج قيم (منتشر، مواصفات) لا يمكن تحويلها إلى (BaseColor، Metalness). التحويل في الاتجاه الآخر أبسط وأكثر دقة، نظرا لأن جميع أزواج (BaseColor، Metalness) تتوافق مع أزواج محددة جيدا (الانتشار، Specular).

مستندات API

الخطوات التالية