مستويات القطع

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

Cut plane

CutPlaneComponent

يمكنك إضافة مستوى قطع إلى المشهد عن طريق إنشاء CutPlaneComponent. يتم تحديد موقع واتجاه الطائرة من قبل كيان مالك المكون.

void CreateCutPlane(RenderingSession session, Entity ownerEntity)
{
    CutPlaneComponent cutPlane = (CutPlaneComponent)session.Connection.CreateComponent(ObjectType.CutPlaneComponent, ownerEntity);
    cutPlane.Normal = Axis.X; // normal points along the positive x-axis of the owner object's orientation
    cutPlane.FadeColor = new Color4Ub(255, 0, 0, 128); // fade to 50% red
    cutPlane.FadeLength = 0.05f; // gradient width: 5cm
}
void CreateCutPlane(ApiHandle<RenderingSession> session, ApiHandle<Entity> ownerEntity)
{
    ApiHandle<CutPlaneComponent> cutPlane = session->Connection()->CreateComponent(ObjectType::CutPlaneComponent, ownerEntity)->as<CutPlaneComponent>();;
    cutPlane->SetNormal(Axis::X); // normal points along the positive x-axis of the owner object's orientation
    Color4Ub fadeColor;
    fadeColor.channels = { 255, 0, 0, 128 }; // fade to 50% red
    cutPlane->SetFadeColor(fadeColor);
    cutPlane->SetFadeLength(0.05f); // gradient width: 5cm
}

خصائص CutPlaneComponent

يتم الكشف عن الخصائص التالية على مكون مستوى قطع:

  • Enabledيمكنك إيقاف تشغيل الطائرات المقطوعة مؤقتا عن طريق تعطيل المكون.: لا تتحمل الطائرات المقطوعة المعطلة عرضا فوق الرأس ولا تحتسب أيضا ضمن الحد العالمي لمستوى القطع.

  • Normalيحدد الاتجاه (+X,-X,+Y,-Y,+Z,-Z) المستخدم كمستوى طبيعي.: هذا الاتجاه مرتبط بتوجه الكيان المالك. نقل كيان المالك وتدويره للحصول على موضع دقيق.

  • FadeColor و FadeLength:

    إذا كانت قيمة ألفا ل FadeColor غير صفرية، فسوف تتلاشى وحدات البكسل القريبة من المستوى المقطوع باتجاه جزء RGB من FadeColor . تحدد قوة قناة ألفا ما إذا كانت ستتلاشى بالكامل نحو لون التلاشي أو جزئيا فقط. يحدد FadeLength المسافة التي سيحدث فيها هذا التلاشي.

  • ObjectFilterMaskقناع بت مرشح يحدد الهندسة التي تتأثر بالمستوى المقطوع.: انظر الفقرة التالية للحصول على معلومات مفصلة.

طائرات القطع الانتقائية

من الممكن تكوين طائرات قطع فردية بحيث تؤثر فقط على هندسة محددة. توضح الصورة التالية كيف قد يبدو هذا الإعداد في الممارسة العملية:

Selective cut planes

تعمل التصفية من خلال مقارنة قناع بت منطقي بين قناع بت على جانب المستوى المقطوع وقناع بت ثان يتم تعيينه على الهندسة. إذا لم تكن نتيجة العملية المنطقية بين الأقنعة AND صفرا ، فسيؤثر مستوى القطع على الهندسة.

  • يتم تعيين قناع البت على مكون المستوى المقطوع عبر خاصيته ObjectFilterMask
  • يتم تعيين قناع البت على تسلسل هرمي فرعي للهندسة عبر HierarchicalStateOverrideComponent

أمثلة:

قناع مرشح الطائرة المقطوع قناع مرشح الهندسة نتيجة منطقية AND قطع الطائرة يؤثر على الهندسة؟
(0000 0001) == 1 (0000 0001) == 1 (0000 0001) == 1 نعم
(1111 0000) == 240 (0001 0001) == 17 (0001 0000) == 16 نعم
(0000 0001) == 1 (0000 0010) == 2 (0000 0000) == 0 لا
(0000 0011) == 3 (0000 1000) == 8 (0000 0000) == 0 لا

تلميح

إن تعيين مستوى ObjectFilterMask القطع إلى 0 يعني أنه لن يؤثر على أي هندسة لأن النتيجة المنطقية AND لا يمكن أبدا أن تكون غير فارغة. لن يأخذ نظام العرض في الاعتبار هذه الطائرات في المقام الأول ، لذلك هذه طريقة خفيفة الوزن لتعطيل الطائرات المقطوعة الفردية. هذه الطائرات المقطوعة أيضا لا تحتسب ضد الحد الأقصى ل 8 طائرات نشطة.

التقييدات

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

اعتبارات الأداء

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

⁧⁩مستندات API⁧⁩.

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