Тип QML PointLight
Определяет точечный источник света в сцене. Подробнее...
| Заявление об импорте: | import QtQuick3D . |
| Наследуется от: |
Свойства
- constantFade : real
- linearFade : real
- quadraticFade : real
Подробное описание
Точечный источник света можно представить как сферу, испускающую свет с одинаковой интенсивностью во всех направлениях от центра источника света. Это похоже на то, как свет испускает лампочка.
Поворот или масштабирование точечного источника света не влияет на него. Перемещение точечного источника света изменяет положение, откуда испускается свет.
По умолчанию интенсивность точечного источника света уменьшается в соответствии с законом обратных квадратов. Однако затухание (и диапазон) можно контролировать с помощью свойств constantFade, linearFade и quadraticFade. Затухание света рассчитывается по формуле: constantFade + distance * (linearFade * 0.01) + distance * (quadraticFade * 0.0001)^2
Простой пример: затенение сферы тремя различными способами
Рассмотрим сцену, содержащую сферу перед увеличенным прямоугольником на заднем плане. Основной цвет 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
} Белый цвет PointLight здесь смещен по оси Z, так что он находится посередине между камерой и центром сцены. В отличие от DirectionalLight, поворот PointLight не имеет значения, а его положение существенно. Здесь заметно уменьшение интенсивности, особенно на меше прямоугольника на заднем плане.
Дополнительные примеры использования см. в 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.0/qml-qtquick3d-pointlight.html