Spec-Zone.ru › Qt 6.1

Тип SpotLight QML

Определяет направленный источник света в сцене. Подробнее...

Оператор импорта: import QtQuick3D .
С момента: Qt 5.15
Наследует:

Свет

  • Список всех членов, включая унаследованные

Свойства

  • coneAngle : вещественное
  • constantFade : вещественное
  • innerConeAngle : вещественное
  • linearFade : вещественное
  • quadraticFade : вещественное

Подробное описание

Направленный источник света испускает свет в одном направлении в виде конуса, определяемого свойством 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 : вещественное

Это свойство определяет угол обрезания (от края до края), за пределами которого свет не влияет на сцену. Определяется в градусах в диапазоне от 0 до 180. Значение по умолчанию равно 40.

constantFade : вещественное

Это свойство является постоянным множителем члена затухания света. Значение по умолчанию равно 1.0.

innerConeAngle : вещественное

Это свойство определяет угол (от края до края), при котором интенсивность света начинает постепенно уменьшаться по мере приближения к coneAngle. Определяется в градусах в диапазоне от 0 до 180. Если значение больше, чем coneAngle, оно будет вести себя так, как если бы имело такое же значение, как coneAngle. Значение по умолчанию равно 30.

linearFade : вещественное

Это свойство увеличивает скорость, с которой освещение тушит свет пропорционально расстоянию до источника света. Значение по умолчанию равно 0.0, что означает, что свет не имеет линейного затухания. Использованное здесь значение умножается на 0.01 перед использованием для расчета затухания света.

quadraticFade : вещественное

Это свойство увеличивает скорость, с которой освещение тушит свет пропорционально закону обратных квадратов. Значение по умолчанию равно 1.0, что означает, что затухание направленного источника света точно соответствует закону обратных квадратов, т. е. при удвоении расстояния до объекта интенсивность света уменьшается в четыре раза. Использованное здесь значение умножается на 0.0001 перед использованием для расчета затухания света.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qml-qtquick3d-spotlight.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API