Spec-Zone.ru › Qt 6.0

Тип 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

Spec-Zone.ru

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