アウトライン レンダリング
選択したオブジェクトは、階層状態のオーバーライド コンポーネントを使用してアウトライン レンダリングを追加することで、視覚的に強調表示できます。 この章では、クライアント API を使用してアウトライン レンダリングのグローバル パラメーターを変更する方法について説明します。
アウトラインのプロパティは、グローバル設定です。 アウトライン レンダリングを使用するすべてのオブジェクトは同じ設定を使用します。オブジェクトごとに異なるアウトラインの色を使用することはできません。
Note
アウトライン レンダリング効果をポイント クラウドに適用することはできません。
OutlineSettings
のパラメーター
クラス OutlineSettings
は、グローバルなアウトラインのプロパティに関連する設定を保持します。 公開されるメンバーは以下のとおりです。
パラメーター | 型 | 説明 |
---|---|---|
Color |
Color4Ub | アウトラインの描画に使用される色。 アルファ部分は無視されます。 |
PulseRateHz |
float | アウトラインが 1 秒あたりに振動する速度 |
PulseIntensity |
float | アウトラインのパルス効果の強度。 パルスを止める場合は 0.0、最大限に強める場合は 1.0 の間である必要があります。 強度では、アウトラインの最小不透明度を MinOpacity = 1.0 - PulseIntensity として暗黙的に設定します。 |
MaskTexture |
2D テクスチャ | 指定した場合、アウトラインの色はこのテクスチャによって色合いが付けられます。 テクスチャはスクリーン スペース座標でサンプリングされ、さまざまなパラメーター (MaskScale 、MaskScaleToFit 、MaskOffset 、MaskScrollSpeed 、MaskRotationCenter 、MaskRotationAngle 、MaskRotationSpeed ) は、そのマッピングのストレッチ、回転、スクロールに影響します。 この機能を使用すると、色のグラデーションや破線のような効果を得ることができます。 下の 2 番目の画像例を参照してください。 |
color
パラメータを黄色 (左) からマゼンタ (中央) に、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);
}
パフォーマンス
アウトライン レンダリングは、レンダリングのパフォーマンスに大きな影響を与える可能性があります。 この影響は、特定のフレームに対する、選択されたオブジェクトと選択されていないオブジェクトの間のスクリーン スペースの空間的な関係によって異なります。