Spec-Zone.ru › Qt 6.1

Тип QML PointLight

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

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

Свет

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

Свойства

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

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

Точечный свет можно представить как сферу, испускающую свет с одинаковой интенсивностью во всех направлениях от центра света. Это аналогично тому, как свет испускает лампочка.

Вращение или масштабирование точечного света не оказывает никакого эффекта. Перемещение точечного света изменит позицию, откуда исходит свет.

По умолчанию интенсивность точечного света уменьшается в соответствии с законом обратных квадратов. Однако спад (и диапазон) могут быть контролируемы с помощью свойств 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
}

Белый PointLight здесь перемещен по оси Z так, что он находится посредине между камерой и центром сцены. В отличие от DirectionalLight, вращение PointLight не имеет значения, в то время как его положение существенно. Видно уменьшение интенсивности, особенно на меше прямоугольника на заднем плане.

Для получения дополнительных примеров использования см. Qt Quick 3D - Пример источников света.

См. также DirectionalLight и SpotLight.

Документация по свойствам

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

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

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

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

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

Это свойство увеличивает скорость, с которой эффект освещения уменьшает свет пропорционально закону обратных квадратов. Значение по умолчанию равно 1.0, что означает, что затухание точечного света точно следует закону обратных квадратов, т.е. когда расстояние до объекта удваивается, интенсивность света уменьшается до 1/4. Используемое здесь значение умножается на 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-pointlight.html

Spec-Zone.ru

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