Spec-Zone.ru › Qt

Тип SpotLight QML

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

Заявление об импорте: import QtQuick3D
С: Qt 5.15
Наследует:

Light

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

Свойства

  • 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

Spec-Zone.ru

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