أوضاع العرض

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

كلا الوضعين تأتي مع مزايا ولكن أيضا مع قيود ميزة متأصلة، لذلك اختيار الوضع الأكثر ملاءمة هو استخدام حالة محددة.

الأوضاع

تتم الآن مناقشة الوضعين بمزيد من التفصيل.

وضع 'TileBasedComposition'

في وضع TileBasedComposition ، تعرض كل وحدة معالجة الرسومات المعنية قوالب فرعية معينة (لوحات) على الشاشة. تقوم وحدة معالجة الرسومات الرئيسية بإنشاء الصورة النهائية من الإطارات المتجانبة قبل إرسالها كإطار فيديو إلى العميل. وفقا لذلك، تتطلب جميع وحدات معالجة الرسومات الحصول على نفس مجموعة الموارد للعرض، لذلك تحتاج الأصول المحملة إلى الاحتواء في ذاكرة وحدة معالجة الرسومات واحدة.

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

MSAA in TileBasedComposition

علاوة على ذلك، في هذا الوضع، يمكن تبديل كل جزء إلى مادة شفافة أو تبديله إلى وضع العرض عبر HierarchicalStateOverrideComponent

وضع "DepthBasedComposition"

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

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

يتم توضيح البيانات الاصطناعية MSAA في الصورة التالية: MSAA in DepthBasedComposition

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

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

الأداء

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

تعيين وضع العرض

يتم تحديد وضع العرض المستخدم على خادم Remote Rendering أثناء RenderingSession.ConnectAsync عبر RendererInitOptions.

async void ExampleConnect(RenderingSession session)
{
    RendererInitOptions parameters = new RendererInitOptions();

    // Connect with one rendering mode
    parameters.RenderMode = ServiceRenderMode.TileBasedComposition;
    await session.ConnectAsync(parameters);

    session.Disconnect();

    // Wait until session.IsConnected == false

    // Reconnect with a different rendering mode
    parameters.RenderMode = ServiceRenderMode.DepthBasedComposition;
    await session.ConnectAsync(parameters);
}

مستندات API

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