共用方式為


轉譯模式

遠端轉譯提供兩種主要作業模式: TileBasedComposition 模式和 DepthBasedComposition 模式。 這些模式會決定工作負載如何分散到伺服器上的多個 GPU。 模式必須在連線時間指定,而且無法在執行時間期間變更。

這兩種模式都有優點,但也具有固有的功能限制,因此挑選最適合的模式是特定使用案例。

模式

現在會更詳細地討論這兩種模式。

'TileBasedComposition' 模式

TileBasedComposition 模式中,每個相關的 GPU 都會在畫面上轉譯特定的子物件(磚)。 主要 GPU 會在將磚作為視訊畫面傳送至用戶端之前,先從磚撰寫最終影像。 因此,所有 GPU 都需要有一組相同的資源才能轉譯,因此載入的資產必須符合單一 GPU 的記憶體。

此模式中的轉譯品質略高於 DepthBasedComposition 模式,因為 MSAA 可以處理每個 GPU 的完整幾何集。 下列螢幕擷取畫面顯示反鋸齒同樣適用于這兩個邊緣:

MSAA in TileBasedComposition

此外,在此模式中,每個部分都可以切換至透明材質,或透過階層式StateOverrideComponent 切換到 檢視 模式

'DepthBasedComposition' 模式

DepthBasedComposition 模式中,每個相關的 GPU 都會以全螢幕解析度轉譯,但只有網格子集。 主要 GPU 上的最終影像組合會負責根據元件深度資訊正確合併。 當然,記憶體承載會分散在 GPU 上,因此允許轉譯不符合單一 GPU 記憶體的模型。

每個 GPU 都會使用 MSAA 來反鋸齒本機內容。 不過,在不同 GPU 的邊緣之間可能會有固有的別名。 此效果可藉由後置處理最終影像來減輕,但 MSAA 品質仍然比 TileBasedComposition 模式更差。

下圖說明 MSAA 成品: MSAA in DepthBasedComposition

反鋸齒在雕塑和窗簾之間正常運作,因為兩個部分都呈現在相同的 GPU 上。 另一方面,幕牆之間的邊緣會顯示一些鋸齒,因為這兩個部分是由不同的 GPU 所組成。

此模式的最大限制是,幾何部分無法動態切換為透明材質,也無法 讓階層式StateOverrideComponent 的檢視 模式運作 。 不過,其他狀態覆寫功能(外框、色彩色調...)可以正常運作。 此外,在轉換時間標示為透明的材質也會在此模式中正常運作。

效能

這兩種模式的效能特性會根據使用案例而有所不同,而且很難推理或提供一般建議。 如果您不受上述限制的限制(記憶體或透明度/查看),建議您嘗試這兩種模式,並使用各種相機位置來監視效能。

設定轉譯模式

透過 在 期間 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 文件

下一步