QLevelOfDetail Class
class Qt3DRender::QLevelOfDetailQLevelOfDetail 클래스는 화면의 크기에 따라 렌더링된 엔티티의 복잡도를 제어하는 방법을 제공합니다. 더 보기...
Header: | #include <QLevelOfDetail> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
QML에서: | LevelOfDetail |
상속합니다: | Qt3DCore::QComponent |
상속 대상: | |
상태: | Deprecated |
공용 유형
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
임계값의 값을 해석하는 방법을 지정합니다.
Constant | 값 | 설명 |
---|---|---|
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.