共用方式為


殼層轉譯

階層式狀態覆寫元件的 殼層狀態 是透明度效果。 與 查看 轉譯相反,只有最前面的物件層是可見的,類似于不透明的轉譯。 此外,當轉譯為殼層時,可以改變物件的一般外觀。 效果適用于使用者應以視覺方式引導離開非重要部分,同時仍維持整個場景的空間感知的使用案例。

您可以透過 ShellRenderingSettings 全域狀態設定殼層轉譯物件的外觀。 所有使用殼層轉譯的物件都會使用相同的設定。 每個物件參數都沒有。

注意

殼層轉譯效果無法套用至點雲端。

ShellRendering設定參數

類別 ShellRenderingSettings 會保存與全域殼層轉譯屬性相關的設定:

參數 類型 描述
Desaturation float 要套用至一般最終物件色彩的還原量,範圍 0(無還原飽和)到 1(完整還原度)
Opacity float 殼層轉譯物件的不透明度,範圍 0 (不可見) 到 1 (完全不透明)

另請參閱下表,以取得套用至整個場景時參數效果的範例:

0 0.25 0.5 0.75 1.0
還原飽和 Desaturation-0.0 Desaturation-0.25 Desaturation-0.5 Desaturation-0.75 Desaturation-1.0
透明度 Opacity-0.0 Opacity-0.25 Opacity-0.5 Opacity-0.75 Opacity-1.0

殼層效果會套用至場景最終不透明色彩,否則會轉譯場景。 這包括色調階層式狀態覆寫

範例

下列程式碼示範透過 API 使用狀態的 ShellRenderingSettings 範例:

void SetShellSettings(RenderingSession session)
{
    ShellRenderingSettings shellRenderingSettings = session.Connection.ShellRenderingSettings;
    shellRenderingSettings.Desaturation = 0.5f;
    shellRenderingSettings.Opacity = 0.1f;
}
void SetShellSettings(ApiHandle<RenderingSession> session)
{
    ApiHandle<ShellRenderingSettings> shellRenderingSettings = session->Connection()->GetShellRenderingSettings();
    shellRenderingSettings->SetDesaturation(0.5f);
    shellRenderingSettings->SetOpacity(0.1f);
}

效能

與標準不透明轉譯相比,殼層轉譯功能具有較小的常數額外負荷。 它比在物件上使用透明材質或 查看 轉譯要快得多。 如果只有部分場景切換到殼層轉譯,效能可能會更強。 此降低可能會因為需要轉譯的額外顯示物件而發生。 在這方面,效能的行為與 切割平面 功能類似。

下一步