Spec-Zone.ru › Qt 6.0

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

Spec-Zone.ru

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