Тип QML PointLight
Определяет точечный источник света в сцене. Подробнее...
| Заявление об импорте: | import QtQuick3D |
| Наследует: |
Свойства
- constantFade : real
- linearFade : real
- quadraticFade : real
Подробное описание
Точечный источник света можно представить как сферу, испускающую свет с одинаковой интенсивностью во всех направлениях от центра источника. Это аналогично тому, как светит лампочка.
Поворот или масштабирование точечного источника света не оказывает никакого влияния. Перемещение точечного источника света изменит позицию, из которой исходит свет.
По умолчанию интенсивность точечного источника света уменьшается в соответствии с законом обратных квадратов. Однако затухание (и радиус) можно контролировать с помощью свойств constantFade, linearFade и quadraticFade. Затухание света вычисляется по формуле: constantFade + distance * (linearFade * 0.01) + distance^2 * (quadraticFade * 0.0001)
Простой пример: затенение сферы тремя различными способами
Рассмотрим сцену, содержащую сферу перед увеличенным прямоугольником на заднем плане. Базовый цвет PrincipledMaterial прямоугольника по умолчанию — белый.
Без источников света и с отключенным затенением, связанным со светом, для обеих мешей получаем следующее:
import QtQuick
import QtQuick3D
View3D {
anchors.fill: parent
PerspectiveCamera { z: 600 }
Model {
source: "#Rectangle"
scale: Qt.vector3d(10, 10, 10)
z: -100
materials: PrincipledMaterial {
lighting: PrincipledMaterial.NoLighting
}
}
Model {
source: "#Sphere"
scale: Qt.vector3d(2, 2, 2)
materials: PrincipledMaterial {
lighting: PrincipledMaterial.NoLighting
baseColor: "#40c060"
roughness: 0.1
}
}
} Добавление направленного источника света, испускающего свет по умолчанию вдоль оси Z, приводит к следующему:
import QtQuick
import QtQuick3D
View3D {
anchors.fill: parent
PerspectiveCamera { z: 600 }
DirectionalLight { }
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 на:
PointLight {
z: 300
} Белый точечный источник света здесь перемещен вдоль оси Z так, что он находится посередине между камерой и центром сцены. В отличие от DirectionalLight, поворот точечного источника света не имеет значения, а его положение существенно. Здесь заметно уменьшение интенсивности, особенно на прямоугольной меше на заднем плане.
Для получения дополнительных примеров использования см. Qt Quick 3D — Пример источников света.
См. также DirectionalLight и SpotLight.
Документация свойств
constantFade : real
Это свойство представляет собой постоянный множитель члена затухания света. Значение по умолчанию — 1.0.
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.2/qml-qtquick3d-pointlight.html