Тип SpotLight QML
Определяет источник света в форме луча в сцене. Подробнее...
| Заявление об импорте: | import QtQuick3D |
| С: | Qt 5.15 |
| Наследует: |
Свойства
- coneAngle : real
- constantFade : real
- innerConeAngle : real
- linearFade : real
- quadraticFade : real
Подробное описание
Источник света типа SpotLight излучает свет в одном направлении по форме конуса, которая определяется свойством coneAngle. Интенсивность света уменьшается при приближении к углу coneAngle. Угол, при котором интенсивность света начинает уменьшаться, определяется свойством innerConeAngle. Оба угла определены в градусах.
Внутри угла innerConeAngle источник света SpotLight ведет себя аналогично источнику света типа PointLight. Там интенсивность света уменьшается в соответствии с обратным квадратом расстояния. Однако ослабление (и дальность действия) могут быть контролированы свойствами constantFade, linearFade и quadraticFade. Ослабление света рассчитывается по формуле: constantFade + distance * (linearFade * 0.01) + distance * (quadraticFade * 0.0001)^2
Рассмотрим простой пример. Вот источник света SpotLight размещен на 300 по оси Z, таким образом, посередине между камерой и центром сцены. По умолчанию свет излучается в направлении оси Z. Свойство brightness увеличено до 10, чтобы он выглядел как типичный источник света SpotLight.
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, что означает, что затухание SpotLight точно следует закону обратного квадрата, т.е. при удвоении расстояния до объекта интенсивность света уменьшается в 4 раза. Используемое здесь значение умножается на 0.0001 перед использованием для расчета ослабления света.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick3d-spotlight.html