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

轮廓渲染

可以通过分层状态重写组件添加轮廓渲染,以可视方式突出显示选定的对象。 本章介绍了如何通过客户端 API 更改轮廓渲染的全局参数。

轮廓属性是全局设置。 使用轮廓渲染的所有对象将使用相同的设置 - 无法使用按对象的轮廓颜色。

注意

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

OutlineSettings 的参数

OutlineSettings 保存与全局轮廓属性相关的设置。 此类公开以下成员:

参数 类型 说明
Color Color4Ub 用于绘制轮廓的颜色。 将忽略 alpha 部分。
PulseRateHz FLOAT 轮廓的每秒振荡频率
PulseIntensity FLOAT 轮廓脉冲效果的强度。 必须介于 0.0(无脉冲)与 1.0(全脉冲)之间。 强度将轮廓的最小不透明度隐式设置为 MinOpacity = 1.0 - PulseIntensity

An object rendered three times with different outline parameterscolor 参数从黄色(左)更改为洋红色(中)以及 pulseIntensity 从 0 更改为 0.8(右)的效果。

示例

以下代码展示了一个通过 API 设置轮廓参数的示例:

void SetOutlineParameters(RenderingSession session)
{
    OutlineSettings outlineSettings = session.Connection.OutlineSettings;
    outlineSettings.Color = new Color4Ub(255, 255, 0, 255);
    outlineSettings.PulseRateHz = 2.0f;
    outlineSettings.PulseIntensity = 0.5f;
}
void SetOutlineParameters(ApiHandle<RenderingSession> session)
{
    ApiHandle<OutlineSettings> outlineSettings = session->Connection()->GetOutlineSettings();
    Color4Ub outlineColor;
    outlineColor.channels = { 255, 255, 0, 255 };
    outlineSettings->SetColor(outlineColor);
    outlineSettings->SetPulseRateHz(2.0f);
    outlineSettings->SetPulseIntensity(0.5f);
}

性能

轮廓渲染可能会对渲染性能产生重大影响。 这种影响根据给定帧的选定对象与非选定对象之间的屏幕空间关系而异。

API 文档

后续步骤