QLevelOfDetail Class
class Qt3DRender::QLevelOfDetailQLevelOfDetailクラスは、画面上のサイズに基づいてレンダリングエンティティの複雑さを制御する方法を提供します。詳細...
ヘッダー | #include <QLevelOfDetail> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
QML で | LevelOfDetail |
を継承: | Qt3DCore::QComponent |
継承される | |
ステータス | 非推奨 |
パブリックな型
enum | ThresholdType { DistanceToCameraThreshold, ProjectedScreenPixelSizeThreshold } |
プロパティ
|
|
パブリック機能
QLevelOfDetail(Qt3DCore::QNode *parent = nullptr) | |
Qt3DRender::QCamera * | camera() const |
int | currentIndex() const |
Qt3DRender::QLevelOfDetail::ThresholdType | thresholdType() const |
QList<qreal> | thresholds() const |
Qt3DRender::QLevelOfDetailBoundingSphere | volumeOverride() const |
パブリックスロット
void | setCamera(Qt3DRender::QCamera *camera) |
void | setCurrentIndex(int currentIndex) |
void | setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
void | setThresholds(const QList<qreal> &thresholds) |
void | setVolumeOverride(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
シグナル
void | cameraChanged(Qt3DRender::QCamera *camera) |
void | currentIndexChanged(int currentIndex) |
void | thresholdTypeChanged(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
void | thresholdsChanged(const QList<qreal> &thresholds) |
void | volumeOverrideChanged(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
詳細説明
QLevelOfDetail は、オブザーバからの距離や画面上のサイズに基づいてエンティティの表現を制御するために使用できます。
レンダリングパフォーマンスを向上させるために、非常に小さいオブジェクトは、ジオメトリやテクスチャで、はるかに少ない詳細を使用してレンダリングすることができます。
このコンポーネントは、カメラからの距離または画面サイズとして解釈される値のしきい値を指定することで制御されます。
視点が変わると、currentIndex プロパティは、範囲配列の一致する値を反映するように変更されます。
currentIndex プロパティは、例えば、エンティティの有効/無効、マテリアルの変更などに使用できます。
LevelOfDetail コンポーネントは、複数のentities 間で共有することはできません。
#include <Qt3DCore/QEntity> #include <Qt3DRender/QGeometryRenderer> #include <Qt3DRender/QLevelOfDetail> // Scene Qt3DCore::QEntity *rootEntity = new Qt3DCore::Qt3DCore::QEntity; Qt3DCore::QEntity *renderableEntity = new Qt3DCore::QEntity(rootEntity); Qt3DRender::QGeometryRenderer *geometryRenderer = new Qt3DCore::QGeometryRenderer(renderableEntity); renderableEntity->addComponent(geometryRenderer); Qt3DRender::QLevelOfDetail* lod = new Qt3Render::QLevelOfDetail(renderableEntity); QList<qreal> thresholds = {20, 35, 50, 65}; lod->setThresholds(thresholds); lod->setCamera(mainCamera); renderableEntity->addComponent(lod); // connect to QLevelOfDetail::currentIndexChanged to toggle rendering ...
メンバ型ドキュメント
enum QLevelOfDetail::ThresholdType
しきい値の値の解釈方法を指定する。
定数 | 値 | 説明 |
---|---|---|
Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold | 0 | エンティティから選択されたカメラまでの距離 |
Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold | 1 | 選択されたカメラから見た、スクリーン上に投影されたときの実体の大きさを、スクリーン空間における外接正方形の辺のピクセル数で表す。 |
プロパティの説明
camera : Qt3DRender::QCamera*
実際の距離または画面サイズを計算するために使用されるカメラの ID を保持します。
アクセス関数:
Qt3DRender::QCamera * | camera() const |
void | setCamera(Qt3DRender::QCamera *camera) |
通知シグナル:
void | cameraChanged(Qt3DRender::QCamera *camera) |
currentIndex : int
現在のカメラまでの距離またはスクリーンサイズに一致する範囲配列のインデックス。
アクセス関数:
int | currentIndex() const |
void | setCurrentIndex(int currentIndex) |
通知シグナル:
void | currentIndexChanged(int currentIndex) |
thresholdType : ThresholdType
範囲値の解釈方法を指定します。
アクセス関数:
Qt3DRender::QLevelOfDetail::ThresholdType | thresholdType() const |
void | setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
通知シグナル:
void | thresholdTypeChanged(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
Qt3DRender::QLevelOfDetail::ThresholdTypeも参照 。
thresholds : QList<qreal>
浮動小数点数としての範囲値の配列。最も詳細な表現の値を最初に指定する。
Qt3DRender::QLevelOfDetail::thresholdType がQt3DRender::QLevelOfDetail::DistanceToCameraThreshold に設定されている場合、値はカメラ空間座標で昇順に指定されなければならない。
Qt3DRender::QLevelOfDetail::thresholdType がQt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold に設定されている場合、値はスクリーン空間のピクセル単位で、降順に指定されなければならない。
アクセス関数:
QList<qreal> | thresholds() const |
void | setThresholds(const QList<qreal> &thresholds) |
通知シグナル:
void | thresholdsChanged(const QList<qreal> &thresholds) |
Qt3DRender::QLevelOfDetail::ThresholdTypeも参照のこと 。
volumeOverride : Qt3DRender::QLevelOfDetailBoundingSphere
デフォルトは、半径1でエンティティのローカル原点を中心とする球体です。このプロキシ体積は、カメラまでの距離やスクリーン投影のサイズを計算するために使用されます。
この値をnullptrにすると、エンティティのバウンディングボリュームが使用されます。このバウンディングボリュームが無効にならないように注意しなければならない。
アクセス関数:
Qt3DRender::QLevelOfDetailBoundingSphere | volumeOverride() const |
void | setVolumeOverride(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
通知シグナル:
void | volumeOverrideChanged(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
メンバ関数ドキュメント
[explicit]
QLevelOfDetail::QLevelOfDetail(Qt3DCore::QNode *parent = nullptr)
指定されたparent で新しい QLevelOfDetail を構築する。
[slot]
void QLevelOfDetail::setCamera(Qt3DRender::QCamera *camera)
距離とサイズが計算されるcamera を相対的に設定する。
注: プロパティcamera のセッター関数。
camera()も参照 。
[slot]
void QLevelOfDetail::setCurrentIndex(int currentIndex)
currentIndex を設定する。
注: これは通常、ユーザーが設定すべきではない。
しかし、コンポーネントが無効になっている場合、現在のインデックスを変更することは、複数の表現を切り替える簡単な方法である。
注: プロパティcurrentIndex のセッター関数。
currentIndex()も参照 。
[slot]
void QLevelOfDetail::setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType)
パラメータで閾値の値の解釈方法を設定します。thresholdType
注: プロパティthresholdType に対するセッター関数。
thresholdType() およびQt3DRender::QLevelOfDetail::ThresholdTypeも参照してください 。
[slot]
void QLevelOfDetail::setThresholds(const QList<qreal> &thresholds)
thresholds の範囲値を設定する。
注: thresholds プロパティのセッター関数。
thresholds() およびQt3DRender::QLevelOfDetail::thresholdTypeも参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.