Megosztás a következőn keresztül:


Renderelési módok

A távoli renderelés két fő üzemmódot kínál, a TileBasedComposition módot és a DepthBasedComposition módot. Ezek a módok határozzák meg, hogyan oszlik el a számítási feladat több GPU-n a kiszolgálón. A módot a kapcsolati időben kell megadni, és futásidőben nem módosítható.

Mindkét módnak vannak előnyei, de az eredendő funkciók korlátozásai is, ezért a legmegfelelőbb mód kiválasztása a használati esetekre jellemző.

Módok

A két módról most részletesebben is szó lesz.

"TileBasedComposition" mód

TileBasedComposition módban minden érintett GPU adott alhálózatokat (csempéket) jelenít meg a képernyőn. A fő GPU a csempékből összeállítja a végső képet, mielőtt videokeretként elküldené az ügyfélnek. Ennek megfelelően minden GPU-nak azonos erőforráskészlettel kell rendelkeznie a rendereléshez, így a betöltött eszközöknek egyetlen GPU memóriájába kell illeszkedniük.

A renderelési minőség ebben a módban valamivel jobb, mint a DepthBasedComposition módban, mivel az MSAA minden GPU-ra képes a geometria teljes készletén. Az alábbi képernyőképen látható, hogy az antialiasing mindkét élhez hasonlóan működik megfelelően:

MSAA in TileBasedComposition

Ezen kívül ebben a módban az egyes részeket át lehet kapcsolni átlátszó anyagra, vagy átlátszatlan üzemmódra lehet váltani a HierarchicalStateOverrideComponent használatával

"DepthBasedComposition" mód

A DepthBasedComposition módban minden érintett GPU teljes képernyős felbontásban jelenik meg, de csak a hálók egy részhalmaza. A fő GPU végső képösszeállítása gondoskodik arról, hogy az alkatrészek a mélységi információknak megfelelően megfelelően egyesüljenek. A memória hasznos adatai természetesen a GPU-k között oszlanak el, így olyan renderelési modelleket is lehetővé tesznek, amelyek nem férnek el egyetlen GPU memóriájában.

Minden egyes GPU MSAA-t használ a helyi tartalom ellen. Előfordulhat azonban, hogy a különböző GPU-k szélei között eredendő aliasolás van. Ezt a hatást a végső kép utófeldolgozása csökkenti, de az MSAA minősége még mindig rosszabb, mint a TileBasedComposition módban.

Az MSAA-összetevőket az alábbi képen szemléltetjük: MSAA in DepthBasedComposition

Az antialiasing megfelelően működik a szobor és a függöny között, mivel mindkét rész ugyanazon a GPU-n jelenik meg. Másrészt, a függöny és a fal közötti szél némi aliast mutat, mert ez a két rész különböző GPU-kból áll.

Ennek a módnak a legnagyobb korlátozása, hogy a geometriai részek nem válthatók át dinamikusan transzparens anyagokra, és az átlátszatlan mód sem működik a HierarchicalStateOverrideComponent esetében. Más állapot felülbírálási funkciók (vázlat, színárnyalat, ...) azonban működnek. Az átalakításkor transzparensként megjelölt anyagok is megfelelően működnek ebben a módban.

Teljesítmény

Mindkét mód teljesítményjellemzői a használati esettől függően változnak, és nehéz indokolni vagy általános javaslatokat tenni. Ha nem korlátozza a fent említett korlátozások (memória vagy átlátszóság/átlátszatlanság), javasoljuk, hogy próbálja ki mindkét módot, és figyelje a teljesítményt különböző kamerapozíciók használatával.

A renderelési mód beállítása

A távoli renderelési kiszolgálón használt renderelési módot a RenderingSession.ConnectAsync rendszer a 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-dokumentáció

Következő lépések