QSpotLight Class

class Qt3DRender::QSpotLight

Encapsulate a Spot Light object in a Qt 3D scene. More...

Header: #include <QSpotLight>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
Instantiated By: SpotLight
Inherits: Qt3DRender::QAbstractLight

Properties

Public Functions

QSpotLight(Qt3DCore::QNode *parent = nullptr)
float constantAttenuation() const
float cutOffAngle() const
float linearAttenuation() const
QVector3D localDirection() const
float quadraticAttenuation() const

Public Slots

void setConstantAttenuation(float value)
void setCutOffAngle(float cutOffAngle)
void setLinearAttenuation(float value)
void setLocalDirection(const QVector3D &localDirection)
void setQuadraticAttenuation(float value)

Signals

void constantAttenuationChanged(float constantAttenuation)
void cutOffAngleChanged(float cutOffAngle)
void linearAttenuationChanged(float linearAttenuation)
void localDirectionChanged(const QVector3D &localDirection)
void quadraticAttenuationChanged(float quadraticAttenuation)

Detailed Description

A spotlight is a light source that emits a cone of light in a particular direction.

A spotlight uses three attenuation factors to describe how the intensity of the light decreases over distance. These factors are designed to be used together in calcuating total attenuation. For the materials in Qt3D Extras the following formula is used, where distance is the distance from the light to the surface being rendered:

 totalAttenuation = 1.0 / (constantAttenuation + (linearAttenuation * distance) + (quadraticAttenuation * distance * distance));

Custom materials may choose to interpret these factors differently.

Property Documentation

constantAttenuation : float

Specifies the constant attenuation of the spot light.

Note: The exact meaning and use of this property is up to the material implementation.

Access functions:

float constantAttenuation() const
void setConstantAttenuation(float value)

Notifier signal:

void constantAttenuationChanged(float constantAttenuation)

cutOffAngle : float

Specifies the cut off angle of the spot light.

Note: The exact meaning and use of this property is up to the material implementation.

Access functions:

float cutOffAngle() const
void setCutOffAngle(float cutOffAngle)

Notifier signal:

void cutOffAngleChanged(float cutOffAngle)

linearAttenuation : float

Specifies the linear attenuation of the spot light.

Note: The exact meaning and use of this property is up to the material implementation.

Access functions:

float linearAttenuation() const
void setLinearAttenuation(float value)

Notifier signal:

void linearAttenuationChanged(float linearAttenuation)

localDirection : QVector3D

Specifies the local direction of the spot light.

Note: The exact meaning and use of this property is up to the material implementation.

Access functions:

QVector3D localDirection() const
void setLocalDirection(const QVector3D &localDirection)

Notifier signal:

void localDirectionChanged(const QVector3D &localDirection)

quadraticAttenuation : float

Specifies the quadratic attenuation of the spot light.

Note: The exact meaning and use of this property is up to the material implementation.

Access functions:

float quadraticAttenuation() const
void setQuadraticAttenuation(float value)

Notifier signal:

void quadraticAttenuationChanged(float quadraticAttenuation)

Member Function Documentation

[explicit] QSpotLight::QSpotLight(Qt3DCore::QNode *parent = nullptr)

Constructs a new QSpotLight with the specified parent.