مواد ملونة
مواد الألوان هي واحدة من أنواع المواد المدعومة في 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.
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
- فئة C# ColorMaterial
- C# RenderingConnection.CreateMaterial()
- فئة C++ ColorMaterial
- C++ RenderingConnection::CreateMaterial()