Bagikan melalui


Mode penyajian

Remote Rendering menawarkan dua mode operasi utama, mode TileBasedComposition dan mode DepthBasedComposition. Mode ini menentukan bagaimana beban kerja didistribusikan di beberapa GPU di server. Mode harus ditentukan pada waktu sambungan dan tidak dapat diubah selama runtime bahasa umum.

Kedua mode datang dengan kelebihan tetapi juga dengan keterbatasan fitur yang inheren, jadi memilih mode yang paling cocok adalah kasus penggunaan khusus.

Mode

Dua mode tersebut kini dibahas lebih detail.

Mode 'TileBasedComposition'

Dalam mode TileBasedComposition, setiap GPU yang terlibat merender subrectangles (petak peta) tertentu di layar. GPU utama menyusun gambar akhir dari petak peta sebelum dikirim sebagai bingkai video ke klien. Oleh karena itu, semua GPU harus memiliki kumpulan sumber daya yang sama untuk penyajian, sehingga aset yang dimuat harus masuk ke dalam satu memori GPU.

Kualitas penyajian dalam mode ini sedikit lebih baik daripada dalam mode DepthBasedComposition, karena MSAA dapat bekerja pada set geometri lengkap untuk setiap GPU. Cuplikan layar berikut menunjukkan bahwa antipengaliasan berfungsi dengan baik untuk kedua jenis juga:

MSAA in TileBasedComposition

Selanjutnya, dalam mode ini, setiap bagian dapat dialihkan ke bahan transparan atau dialihkan ke mode tembus pandang melalui HierarchicalStateOverrideComponent

Mode 'DepthBasedComposition'

Dalam mode DepthBasedComposition, setiap GPU yang terlibat merender pada resolusi layar penuh tetapi hanya sebagian dari jala. Komposisi gambar akhir pada GPU utama memastikan bahwa bagian-bagian digabungkan dengan benar sesuai dengan informasi kedalamannya. Secara alami, payload memori didistribusikan di seluruh GPU, sehingga memungkinkan untuk merender model yang tidak sesuai dengan memori GPU tunggal.

Setiap GPU tunggal menggunakan MSAA untuk antialias konten lokal. Namun, mungkin ada pengaliasan inheren antar edge dari GPU yang berbeda. Efek ini dikurangi dengan pascapemrosesan gambar akhir, tetapi kualitas MSAA masih lebih buruk daripada mode TileBasedComposition.

Artefak MSAA diilustrasikan dalam gambar berikut: MSAA in DepthBasedComposition

Antipengaliasan bekerja dengan baik antara patung dan tirai, karena kedua bagian dirender pada GPU yang sama. Di sisi lain, tepi antara tirai dan dinding menunjukkan beberapa pengaliasan karena kedua bagian ini terdiri dari GPU yang berbeda.

Batasan terbesar dari mode ini adalah, bahwa bagian geometri tidak dapat dialihkan ke bahan transparan secara dinamis dan mode tembus pandang tidak berfungsi untuk HierarchicalStateOverrideComponent. Namun, fitur ambil alih status lainnya (kerangka, warna, ...) berfungsi. Juga bahan yang ditandai sebagai transparan pada waktu konversi berfungsi dengan baik dalam mode ini.

Performa

Karakteristik performa untuk kedua mode memang bervariasi berdasarkan kasus penggunaan, dan sulit untuk memberi alasan atau memberikan rekomendasi umum. Jika Anda tidak dibatasi oleh batasan yang disebutkan di atas (memori atau transparansi/tembus pandang), disarankan untuk mencoba kedua mode dan memantau performa menggunakan berbagai posisi kamera.

Mengatur mode render

Mode render yang digunakan pada server Remote Rendering ditentukan selama RenderingSession.ConnectAsync melalui 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);
}

Dokumentasi API

Langkah berikutnya