مواد ملونة

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

مواد الألوان أكثر كفاءة في العرض من مواد PBR بسبب نموذج التظليل الأبسط. كما أنها تدعم أوضاع الشفافية المختلفة.

خصائص مادة اللون

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

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

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

    إشعار

    وبما أن مواد الألوان لا تعكس البيئة، تصبح مادة اللون الشفافة بالكامل غير مرئية. هذا يختلف عن مواد PBR.

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

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

  • TexCoordMode: يحدد الوضع المستخدم لإنتاج إحداثيات مادة لملمس البيدو. يتم تجاهل هذا الوضع إذا لم تستخدم هذه المادة مادة. بشكل افتراضي، يتم جلب إحداثيات المادة من تدفقات ذروة إدخال الشبكة (الوضع TextureCoordinateGenerationMode.SourceUv0 أو TextureCoordinateGenerationMode.SourceUv1) ثم يتم تحويلها من خلال TexCoordScale و TexCoordOffset. عند إعداد مادة من خلال التعليمات البرمجية، يمكن أيضا تعيين هذا الوضع إلى TextureCoordinateGenerationMode.PlanarObjectSpace أو TextureCoordinateGenerationMode.PlanarWorldSpace لإنشاء الإحداثيات كمسافة الذروة إلى مستويين ثلاثيي الأبعاد TexCoordPlaneU قابلين للتكوين و TexCoordPlaneV. ويشار إلى هذا باسم "تعيين المادة التخطيطية".

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

  • TexCoordPlaneU و TexCoordPlaneV: بالنسبة لأوضاع التعيين التخطيطي، تحدد هذه مستويات المادة للإحداثيات u والإحداثيات الظاهرية على التوالي. يتم تعريف المستويات في شكل عادي قياسي (A,B,C,D)، لذلك يتم حساب الإحداثيات على أنها t = Ax + By + C*z + D، حيث (x,y,z) هو موضع الذروة في العالم أو مساحة العنصر.

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

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

  • VertexMix: تحدد هذه القيمة بين 0 و 1 مدى مساهمة vertex اللون في الشبكة في اللون النهائي. في القيمة الافتراضية 1، vertex يتم ضرب اللون في لون البيدو بالكامل. بقيمة 0، vertex يتم تجاهل الألوان تماما.

  • ColorTransparencyMode: خلافا لمواد PBR، تميز مواد الألوان بين أوضاع الشفافية المختلفة:

    • Opaque: يعطل الوضع الافتراضي الشفافية. ومع ذلك، فإن لقطة ألفا لا تزال ممكنة، وينبغي تفضيلها، إذا كانت كافية.
    • AlphaBlended: يشبه هذا الوضع وضع الشفافية لمواد PBR. يجب استخدامه لمواد العرض من خلال مثل الزجاج.
    • Additive: هذا الوضع هو أبسط وضع شفافية وأكثره كفاءة. تتم إضافة مساهمة المواد إلى الصورة المعروضة. يمكن استخدام هذا الوضع لمحاكاة العناصر المتوهجة (ولكن لا تزال شفافة)، مثل العلامات المستخدمة لتمييز العناصر المهمة.

إشعار

في حين أن AlbedoColor لها FresnelEffectColor نفس نطاق القيمة المقبولة كما هو الحال بالنسبة لمواد PBR، سيتم تضييق قنواتها بشكل فعال على [0; 1] لمواد الألوان.

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

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

اسم خاصية المادة اسم الخاصية في ملف التجاوز
ColorFlags.AlphaClipped alphaClipEnabled
ColorFlags.UseVertexColor useVertexColor
ColorFlags.DoubleSided isDoubleSided
ColorFlags.TransparencyWritesDepth transparencyWritesDepth
AlbedoColor albedoColor
TexCoordScale textureCoordinateScale
TexCoordOffset textureCoordinateOffset
ColorTransparencyMode transparent
AlphaClipThreshold alphaClipThreshold

مستندات API

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