Single-sided تقديم

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

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

single-sided يسمح لك إعداد العرض بتخصيص هذا السلوك.

تنبيه

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

المتطلبات الأساسية

single-sided يكون لإعداد العرض تأثير فقط على الشبكات التي تم تحويلها مع opaqueMaterialDefaultSidedness تعيين الخيار إلى SingleSided. بشكل افتراضي، يتم تعيين هذا الخيار إلى DoubleSided.

Single-sided إعداد العرض

هناك ثلاثة أوضاع مختلفة:

عادي: في هذا الوضع، يتم عرض الشبكات دائما أثناء تحويلها. وهذا يعني أن الشبكات التي تم تحويلها مع opaqueMaterialDefaultSidedness تعيين إلى SingleSided سيتم عرضها دائما مع تمكين القذف على الوجه الخلفي، حتى عندما تتقاطع مع مستوى القطع.

DynamicDoubleSiding: في هذا الوضع، عندما تتقاطع وحدة القطع مع شبكة، يتم تبديلها تلقائيا إلى العرض على الوجهين. هذا الوضع هو الوضع الافتراضي.

AlwaysDoubleSided: يفرض عرض جميع الهندسة أحادية الجانب على الوجهين في جميع الأوقات. يتم عرض هذا الوضع في الغالب حتى تتمكن من مقارنة تأثير الأداء بين single-sided العرض والعرض double-sided بسهولة.

single-sided يمكن تغيير إعدادات العرض على النحو التالي:

void ChangeSingleSidedRendering(RenderingSession session)
{
    SingleSidedSettings settings = session.Connection.SingleSidedSettings;

    // Single-sided geometry is rendered as is
    settings.Mode = SingleSidedMode.Normal;

    // Single-sided geometry is always rendered double-sided
    settings.Mode = SingleSidedMode.AlwaysDoubleSided;
}
void ChangeSingleSidedRendering(ApiHandle<RenderingSession> session)
{
    ApiHandle<SingleSidedSettings> settings = session->Connection()->GetSingleSidedSettings();

    // Single-sided geometry is rendered as is
    settings->SetMode(SingleSidedMode::Normal);

    // Single-sided geometry is always rendered double-sided
    settings->SetMode(SingleSidedMode::AlwaysDoubleSided);
}

مستندات API

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