Тип SpotLight QML
Определяет источник света типа «спот» в сцене. Подробнее...
| Заявление об импорте: | import QtQuick3D . |
| С момента: | Qt 5.15 |
| Наследует: |
Свойства
- coneAngle : real
- constantFade : real
- innerConeAngle : real
- linearFade : real
- quadraticFade : real
Подробное описание
Источник света типа «спот» излучает свет в одном направлении по конусу, который определяется свойством coneAngle. Интенсивность света уменьшается при приближении к coneAngle. Угол, при котором интенсивность света начинает уменьшаться, определяется свойством innerConeAngle. Оба угла задаются в градусах.
Внутри innerConeAngle, источник света типа «спот» ведет себя подобно точечному источнику света. Там интенсивность света уменьшается в соответствии с обратным квадратичным законом. Однако затухание (и диапазон) можно контролировать с помощью свойств constantFade, linearFade и quadraticFade. Затухание света рассчитывается по формуле: constantFade + distance * (linearFade * 0.01) + distance * (quadraticFade * 0.0001)^2
Давайте рассмотрим простой пример. Здесь SpotLight помещён на 300 по оси Z, поэтому находится на полпути между камерой и центром сцены. По умолчанию свет излучается в направлении оси Z. Свойство brightness увеличено до 10, чтобы сделать его более похожим на типичный источник света типа «спот».
import QtQuick
import QtQuick3D
View3D {
anchors.fill: parent
PerspectiveCamera { z: 600 }
SpotLight {
z: 300
brightness: 10
ambientColor: Qt.rgba(0.1, 0.1, 0.1, 1.0)
}
Model {
source: "#Rectangle"
scale: Qt.vector3d(10, 10, 10)
z: -100
materials: PrincipledMaterial { }
}
Model {
source: "#Sphere"
scale: Qt.vector3d(2, 2, 2)
materials: PrincipledMaterial {
baseColor: "#40c060"
roughness: 0.1
}
}
} Вращения происходят аналогично DirectionalLight. Здесь мы хотим, чтобы свет больше излучался вправо, поэтому мы вращаемся вокруг оси Y на -20 градусов. Конус уменьшается, установив coneAngle в 30 вместо значения по умолчанию 40. Мы также делаем интенсивность света уменьшающейся раньше, изменив innerConeAngle на 10.
SpotLight {
z: 300
brightness: 10
ambientColor: Qt.rgba(0.1, 0.1, 0.1, 1.0)
eulerRotation.y: -20
coneAngle: 30
innerConeAngle: 10
} Дополнительные примеры использования см. в Примере Qt Quick 3D - источники света.
См. также DirectionalLight и PointLight.
Документация по свойствам
coneAngle : real
Это свойство определяет угол обрезания, за пределами которого свет не влияет на сцену. Задаётся в градусах в диапазоне от 0 до 180. Значение по умолчанию — 40.
constantFade : real
Это свойство представляет собой постоянный множитель члена затухания света. Значение по умолчанию — 1,0.
innerConeAngle : real
Это свойство определяет угол, при котором интенсивность света начинает постепенно уменьшаться по мере приближения к coneAngle. Задаётся в градусах в диапазоне от 0 до 180. Если значение больше coneAngle, оно будет вести себя так, как будто имеет такое же значение, как и coneAngle. Значение по умолчанию — 30.
linearFade : real
Это свойство увеличивает скорость, с которой эффект освещения затемняет свет пропорционально расстоянию до источника света. Значение по умолчанию — 0.0, что означает, что свет не имеет линейного затухания. Значение, используемое здесь, умножается на 0.01 перед использованием для расчета затухания света.
quadraticFade : real
Это свойство увеличивает скорость, с которой эффект освещения затемняет свет пропорционально закону обратных квадратов. Значение по умолчанию — 1,0, что означает, что затухание света «спот» точно соответствует закону обратных квадратов, то есть, когда расстояние до объекта удваивается, интенсивность света уменьшается в 4 раза. Значение, используемое здесь, умножается на 0.0001 перед использованием для расчета затухания света.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick3d-spotlight.html