你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Shell 呈现

分层状态替代组件的 shell 状态为透明效果。 与 see-through 渲染相比,它只显示对象的最上面一层,与不透明渲染类似。 此外,采用 shell 渲染时,对象的正常外观也会改变。 这种效果适用于这样的用例:用户应获得可视化指引来专注于重要部分,但同时仍保持对整个场景的空间感知。

可以通过 ShellRenderingSettings 全局状态配置 shell 渲染对象的外观。 使用 shell 渲染的所有对象都将使用相同的设置。 所有对象使用相同参数。

注意

shell 呈现效果不能应用于点云。

ShellRenderingSettings 参数

ShellRenderingSettings 包含与全局 shell 渲染属性相关的设置:

参数 类型 说明
Desaturation FLOAT 要应用于常用最终对象颜色的去饱和度,范围为 0(零去饱和)到 1(全去饱和)
Opacity FLOAT Shell 渲染对象的不透明度,范围为 0(不可见)到 1(完全不透明)

另请参阅下表,了解参数在应用于整个场景时的效果示例:

0 0.25 0.5 0.75 1.0
Desaturation 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

在最终不透明颜色上应用 Shell 效果,场景将渲染为其他效果。 这包含浅色分层状态替代

示例

以下代码显示通过 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);
}

“性能”

与标准不透明渲染相比,shell 渲染功能的固定开销较小。 它比在对象上使用透明材料或 see-through 渲染要快得多。 如果仅将部分场景切换到 shell 渲染,则性能可能会大打折扣。 出现这种情况的原因是,需要渲染其他显现出来的对象。 就此而言,其性能与剪切平面功能类似。

后续步骤