Level of Detail ノードを使用する

注釈

Level of Detail ノードは機能しておらず、今後のリリースで削除される予定です。ただし、このような機能が必要な場合は、Rightware サポートチームに連絡して機能リクエストを提出してください。サポートリクエストを送信する を参照してください。

Use the Level of Detail node when you want to show different appearances of the same object, or different object, based on the viewing distance of the Level of Detail node.

Level of Detail ノードの各子は、外観が選択され表示されるときに、単一の外観と制約を設定します。制約は次のいずれかです。

  • プレビューカメラからの最小距離。 制約は、Minimum Distance プロパティの値を設定することで設定します。値が低いほど、プレビューカメラがオブジェクトに近いときにチャイルドノードが選択されます。値が高いほど、プレビューカメラがオブジェクトから遠いときにチャイルドノードが選択されます。Kanzi は、Level of Detail ノードのプレビューカメラへの距離と比較して次に大きい距離値を持つチャイルドを表示します。

  • 画面の最小カバレッジ。 制約は、Minimum Area プロパティの値を設定することで設定します。画面のカバレッジは [0...10] の範囲で測定され、0 はオブジェクトが画面をまったくカバーしていないことを意味し、10 はオブジェクトが画面を完全にカバーしていることを意味します。Kanzi は、Level of Detail ノードのバウンディングボックスの画面への投影面積と比較して、次に大きいエリア値を持つ子を示します。

Level of Detail ノードはレンダリングのみに影響を与えるため、レイアウトで使用できないことに注意してください。Level of Detail ノードのサイズは、その最大の子のサイズであり、その子が現在の Level of Detail ノードで表示されていない場合でも同様です。

Level of Detail ノードの作成

Level of Detail ノードを作成するには:

  1. Node Tree で、Level of Detail ノードを作成したい3Dノード Alt を押しながら右クリック を選択し、Level of Detail を選択します。

    例えば、Scene ノードに Level of Detail ノードを作成します。

  2. Properties で、Type プロパティを次のいずれかに設定します。

    • Distance は、プレビューカメラからの Level of Detail ノードの距離に基づいて、その子ノードを表示する Level of Detail ノードを作成します。

    • Perspective は、Level of Detail ノードのバウンディングボックスのスクリーンへの投影面積と比較して、次に大きい面積値を持つ子ノードを表示する詳細レベルを作成します。

    例えば、Type を Distance に設定します。

  3. Node Tree で、Level of Detail ノードに子ノードを追加します。

    例えば、Sphere、Box、および Plane ノードを追加します。

    Level of Detail ノードに追加する各アイテムについて、選択した Level of Detail ノードのタイプに基づいて、Kanzi Studio は Minimum Distance プロパティまたは Minimum Area プロパティのいずれかを追加します。

  4. Level of Detail ノードに追加した各ノードを選択し、Level of Detail ノードに応じて Properties で Minimum Distance または Minimum Area プロパティの値を設定し、Level of Detail ノードが各アイテムを表示するタイミングを定義します。

    例えば、Node Tree で Type を Distance に設定する場合、アルファチャンネルを含む画像でアルファチャンネルを色チャンネルにプリマルチプライ処理する場合は:

    1. Sphere の Minimum Distance プロパティを 0 に設定します。

    2. Box の Minimum Distance プロパティを 10 に設定します。

    3. Plane とその Minimum Distance プロパティを20に設定します。

    Level of Detail ノードまたはプレビューカメラを z 軸に沿って移動すると、Kanzi は、Level of Detail ノードのプレビューカメラへの距離と比較して次に大きい距離値を持つチャイルドノードを表示します。

APIで Level of Detail ノードを使用する

3つの詳細レベルを持つ距離 Level of Detail ノードを作成するには、

// Create a level of detail selector node named LOD selector.
LevelOfDetail3DSharedPtr lodSelector = LevelOfDetail3D::create(domain, "LOD selector");

// Add three levels of detail, one child for each level.
lodSelector->addChild(lodHigh);
lodSelector->addChild(lodMedium);
lodSelector->addChild(lodLow);

// Set the level of detail selector node to show its child objects based on the
// level of detail selector node's distance from the preview camera.
lodSelector->setType(LevelOfDetail3D::LodTypeDistance);
// Use low level of distance child (lodLow) when the preview camera distance is
// at least 10.0f.
LevelOfDetail3D::setMinimumDistance(*lodLow, 10.0f);
// Use medium level of distance child (lodMedium) when the preview camera distance
// is at least 5.0f, but less than 10.0f.
LevelOfDetail3D::setMinimumDistance(*lodMedium, 5.0f);
// Use high level of distance child (lodHigh) when preview camera distance is
// less than 5.0f.
LevelOfDetail3D::setMinimumDistance(*lodHigh, 0.0f);

詳細については、LevelOfDetail3D クラスを参照してください。

Level of Detail プロパティタイプとメッセージ

Level of Detail ノードで利用可能なプロパティタイプとメッセージのリストについては、Level of Detail を参照してください。

関連項目

Empty Node ノードを使用する