シェル レンダリング
階層状態のオーバーライド コンポーネントのシェルの状態には、透明にする効果があります。 シースルー レンダリングと比較して、オブジェクトの最前面のレイヤーのみを表示し、不透明なレンダリングと似てます。 また、シェルとしてレンダリングした場合、オブジェクトの通常の外観を変更できます。 この効果は、シーン全体は空間的に認識し続ける必要があるが、重要ではない部分からは視覚的にユーザーの目をそらさせたい場合に使用することを意図しています。
シェル レンダリングするオブジェクトの外観は、ShellRenderingSettings
グローバル状態を使用して構成できます。 シェル レンダリングを使用するすべてのオブジェクトは、同じ設定を使用します。 オブジェクトごとのパラメーターはありません。
Note
シェル レンダリング効果をポイント クラウドに適用することはできません。
ShellRenderingSettings のパラメーター
グローバルなシェル レンダリング プロパティに関連する設定は、クラス ShellRenderingSettings
にあります。
パラメーター | Type | 説明 |
---|---|---|
Desaturation |
float | 通常の最終オブジェクトの色に適用する彩度を下げる量。範囲は 0 (不飽和度なし) から 1 (完全に不飽和) までです。 |
Opacity |
float | シェル レンダリングされたオブジェクトの不透明度。範囲は 0 (表示されない) から 1 (完全に不透明) です。 |
シーン全体に適用する場合のパラメーターの効果の例については、次の表も参照してください。
0 | 0.25 | 0.5 | 0.75 | 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);
}
パフォーマンス
シェルのレンダリング機能は、標準の不透明のレンダリングと比較して、常に一定のオーバーヘッドが少量あります。 これは、オブジェクトに透過的な素材やシースルー レンダリングを使用するよりも、はるかに高速です。 パフォーマンスは、シーンの一部だけをシェル レンダリングに切り替えた場合、さら大幅に低下する可能性があります。 この低下は、レンダリングを必要とするオブジェクトがさらに明らかになり発生します。 この点では、パフォーマンスはカット プレーン機能と同様に動作します。