Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QQuick3DFog Class Reference

#include <qquick3dfog_p.h>

+ Inheritance diagram for QQuick3DFog:
+ Collaboration diagram for QQuick3DFog:

Public Slots

void setEnabled (bool newEnabled)
 
void setColor (const QColor &newColor)
 
void setDensity (float newDensity)
 
void setDepthEnabled (bool newDepthEnabled)
 
void setDepthNear (float newDepthNear)
 
void setDepthFar (float newDepthFar)
 
void setDepthCurve (float newDepthCurve)
 
void setHeightEnabled (bool newHeightEnabled)
 
void setLeastIntenseY (float newleastIntenseY)
 
void setMostIntenseY (float newmostIntenseY)
 
void setHeightCurve (float newHeightCurve)
 
void setTransmitEnabled (bool newTransmitEnabled)
 
void setTransmitCurve (float newTransmitCurve)
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void changed ()
 
void enabledChanged ()
 
void colorChanged ()
 
void densityChanged ()
 
void depthEnabledChanged ()
 
void depthNearChanged ()
 
void depthFarChanged ()
 
void depthCurveChanged ()
 
void heightEnabledChanged ()
 
void leastIntenseYChanged ()
 
void mostIntenseYChanged ()
 
void heightCurveChanged ()
 
void transmitEnabledChanged ()
 
void transmitCurveChanged ()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

bool isEnabled () const
 \qmltype Fog \inherits QtObject \inqmlmodule QtQuick3D
 
QColor color () const
 \qmlproperty color Fog::color
 
float density () const
 \qmlproperty float Fog::density
 
bool isDepthEnabled () const
 \qmlproperty bool Fog::depthEnabled
 
float depthNear () const
 \qmlproperty float Fog::depthNear
 
float depthFar () const
 \qmlproperty float Fog::depthFar
 
float depthCurve () const
 \qmlproperty float Fog::depthCurve
 
bool isHeightEnabled () const
 \qmlproperty bool Fog::heightEnabled
 
float leastIntenseY () const
 \qmlproperty float Fog::leastIntenseY
 
float mostIntenseY () const
 \qmlproperty float Fog::mostIntenseY
 
float heightCurve () const
 \qmlproperty float Fog::heightCurve
 
bool isTransmitEnabled () const
 \qmlproperty bool Fog::transmitEnabled
 
float transmitCurve () const
 \qmlproperty float Fog::transmitCurve
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Properties

bool enabled
 
QColor color
 
float density
 
bool depthEnabled
 
float depthNear
 
float depthFar
 
float depthCurve
 
bool heightEnabled
 
float leastIntenseY
 
float mostIntenseY
 
float heightCurve
 
bool transmitEnabled
 
float transmitCurve
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

Definition at line 23 of file qquick3dfog_p.h.

Member Function Documentation

◆ changed

void QQuick3DFog::changed ( )
signal

◆ color()

QColor QQuick3DFog::color ( ) const

\qmlproperty color Fog::color

The color of the fog. The default value is "#8099b3"

The same scene with color changed to be more blueish:

See also
density

Definition at line 116 of file qquick3dfog.cpp.

◆ colorChanged

void QQuick3DFog::colorChanged ( )
signal

◆ density()

float QQuick3DFog::density ( ) const

\qmlproperty float Fog::density

Controls the fog amount, in practice this is a multiplier in range 0-1. The default value is 1.0. Reducing the value decreases the strength of the fog effect. Applicable only when depthEnabled is set to true.

The on-screen visual effect may be affected by a number of other settings from \l ExtendedSceneEnvironment, such as tonemapping or glow and bloom. The same density value may give different results depending on what other effects are enabled, and how those are configured.

An example scene with density set to {0.95}:

The same scene with density reduced to {0.15}:

See also
color

Definition at line 154 of file qquick3dfog.cpp.

◆ densityChanged

void QQuick3DFog::densityChanged ( )
signal

◆ depthCurve()

float QQuick3DFog::depthCurve ( ) const

\qmlproperty float Fog::depthCurve

The default value is 1.0.

Applicable only when depthEnabled is set to true.

See also
depthEnabled

Definition at line 284 of file qquick3dfog.cpp.

◆ depthCurveChanged

void QQuick3DFog::depthCurveChanged ( )
signal

◆ depthEnabledChanged

void QQuick3DFog::depthEnabledChanged ( )
signal

◆ depthFar()

float QQuick3DFog::depthFar ( ) const

\qmlproperty float Fog::depthFar

Ending distance from the camera. The default value is 1000.0. Applicable only when depthEnabled is set to true.

Note
The scene, including the camera and the models, are expected to be set up accordingly, so that sensible ranges can be defined by properties such as depthNear and depthFar. Do not expect that fog can always be enabled on a scene containing assets imported as-is, without tuning the transforms first. For example, the example screenshots on this page with the \l{https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/Sponza}{Sponza} model are generated after manually applying an additional scale of {(100, 100, 100)} on the instantiated Sponza component that was generated by the balsam tool from the glTF source asset. This then gave a sufficient Z range to get good looking results by tuning the depthNear and depthFar values.
See also
depthNear, depthEnabled

Definition at line 259 of file qquick3dfog.cpp.

◆ depthFarChanged

void QQuick3DFog::depthFarChanged ( )
signal

◆ depthNear()

float QQuick3DFog::depthNear ( ) const

\qmlproperty float Fog::depthNear

Starting distance from the camera. The default value is 10.0. Applicable only when depthEnabled is set to true.

As an example, take this scene, first with a higher depthNear value.

Decreasing the value of depthNear results in the fog effectively "moving closer" to the camera as it now starts from a smaller distance from the camera:

Note
The scene, including the camera and the models, are expected to be set up accordingly, so that sensible ranges can be defined by properties such as depthNear and depthFar. Do not expect that fog can always be enabled on a scene containing assets imported as-is, without tuning the transforms first. For example, the example screenshots on this page with the \l{https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/Sponza}{Sponza} model are generated after manually applying an additional scale of {(100, 100, 100)} on the instantiated Sponza component that was generated by the balsam tool from the glTF source asset. This then gave a sufficient Z range to get good looking results by tuning the depthNear and depthFar values.
See also
depthFar, depthEnabled

Definition at line 223 of file qquick3dfog.cpp.

◆ depthNearChanged

void QQuick3DFog::depthNearChanged ( )
signal

◆ enabledChanged

void QQuick3DFog::enabledChanged ( )
signal

◆ heightCurve()

float QQuick3DFog::heightCurve ( ) const

\qmlproperty float Fog::heightCurve

Specifies the intensity of the height fog. The default value is 1.0. Applicable only when heightEnabled is set to true.

See also
heightEnabled

Definition at line 424 of file qquick3dfog.cpp.

◆ heightCurveChanged

void QQuick3DFog::heightCurveChanged ( )
signal

◆ heightEnabledChanged

void QQuick3DFog::heightEnabledChanged ( )
signal

◆ isDepthEnabled()

bool QQuick3DFog::isDepthEnabled ( ) const

\qmlproperty bool Fog::depthEnabled

Controls if the fog appears in the distance. The default value is false.

See also
heightEnabled, enabled, depthNear, depthFar, depthCurve

Definition at line 177 of file qquick3dfog.cpp.

◆ isEnabled()

QT_BEGIN_NAMESPACE bool QQuick3DFog::isEnabled ( ) const

\qmltype Fog \inherits QtObject \inqmlmodule QtQuick3D

Specifies fog settings for a scene.

Since
6.5

When the \l{QQuick3DSceneEnvironment::fog}{fog} property of a \l SceneEnvironment is set to a valid Fog object, the properties are used to configure the rendering of fog.

The simple fog provided by this type is implemented by the materials. It is not a post-processing effect, meaning it does not involve additional render passes processing the texture with the output of the \l View3D, but is rather implemented in the fragment shader for each renderable object (submesh of \l Model) with a \l PrincipledMaterial or shaded \l CustomMaterial.

Fog is configured by a number of properties:

\list

  • General settings: \l color and \l density
  • Depth fog settings: \l depthEnabled, \l depthNear, \l depthFar, \l depthCurve
  • Height fog settings: \l heightEnabled, \l leastIntenseY, \l mostIntenseY, \l heightCurve
  • Color transmission settings: \l transmitEnabled, \l transmitCurve

\endlist

For example, the following snippet enables depth (but not height) fog using the default fog parameters:

\qml environment: SceneEnvironment { backgroundMode: SceneEnvironment.Color clearColor: theFog.color fog: Fog { id: theFog enabled: true depthEnabled: true } } \endqml

Instead of defining the Fog object inline, it is also possible to reference a Fog object by id. And since \l ExtendedSceneEnvironment inherits everything from its parent type \l SceneEnvironment, fog can be used with \l ExtendedSceneEnvironment as well:

\qml Fog { id: theFog enabled: true depthEnabled: true } environment: ExtendedSceneEnvironment { fog: theFog } \endqml

See also
{Qt Quick 3D - Simple Fog Example}, {Qt Quick 3D - Scene Effects Example}

\qmlproperty bool Fog::enabled

Controls whether fog is applied to the scene. The default value is false.

Enabling depth or height fog has no effect without setting this value to true.

See also
depthEnabled, heightEnabled

Definition at line 87 of file qquick3dfog.cpp.

◆ isHeightEnabled()

bool QQuick3DFog::isHeightEnabled ( ) const

\qmlproperty bool Fog::heightEnabled

Controls if a height fog is enabled. The default value is false.

See also
depthEnabled, enabled, leastIntenseY, mostIntenseY, heightCurve

Definition at line 307 of file qquick3dfog.cpp.

◆ isTransmitEnabled()

bool QQuick3DFog::isTransmitEnabled ( ) const

\qmlproperty bool Fog::transmitEnabled

Controls if the fog has a light transmission effect. The default value is false.

Definition at line 446 of file qquick3dfog.cpp.

◆ leastIntenseY()

float QQuick3DFog::leastIntenseY ( ) const

\qmlproperty float Fog::leastIntenseY

Specifies the position (Y coordinate) where the fog is the least intense. The default value is 10.0. Applicable only when heightEnabled is set to true.

Note
By default the value is larger than mostIntenseY. As long as this is true, the fog is rendered top to bottom. When this value is smaller than mostIntenseY, the fog will render bottom to top.
The Y axis points upwards in Qt Quick 3D scenes.

Pictured here is a scene with height fog enabled (no depth fog), and leastIntenseY set to a value so the fog is only spreading around the bottom of the Sponza scene.

Increasing the value of leastIntenseY makes the fog spread higher since it now effectively starts at a higher Y position in the scene. (remember that the Y axis points upwards)

Note
As with depth fog, the scene is expected to be set up accordingly, so that sensible Y coordinate ranges can be defined by leastIntenseY and mostIntenseY. Do not expect that fog can always be enabled on a scene containing assets imported as-is, without tuning the transforms first. For example, the example screenshots on this page with the \l{https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/Sponza}{Sponza} model are generated after manually applying an additional scale of {(100, 100, 100)} on the instantiated Sponza component that was generated by the balsam tool from the glTF source asset.
See also
mostIntenseY, heightEnabled

Definition at line 360 of file qquick3dfog.cpp.

◆ leastIntenseYChanged

void QQuick3DFog::leastIntenseYChanged ( )
signal

◆ mostIntenseY()

float QQuick3DFog::mostIntenseY ( ) const

\qmlproperty float Fog::mostIntenseY

Specifies the position (Y coordinate) where the fog is the most intense. The default value is 0. Applicable only when heightEnabled is set to true.

Note
By default the value is smaller than leastIntenseY. As long as this is true, the fog is rendered top to bottom. When this value is larger than leastIntenseY, the fog will render bottom to top.
The Y axis points upwards in Qt Quick 3D scenes.
As with depth fog, the scene is expected to be set up accordingly, so that sensible Y coordinate ranges can be defined by leastIntenseY and mostIntenseY. Do not expect that fog can always be enabled on a scene containing assets imported as-is, without tuning the transforms first. For example, the example screenshots on this page with the \l{https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/Sponza}{Sponza} model are generated after manually applying an additional scale of {(100, 100, 100)} on the instantiated Sponza component that was generated by the balsam tool from the glTF source asset.
See also
leastIntenseY, heightEnabled

Definition at line 400 of file qquick3dfog.cpp.

◆ mostIntenseYChanged

void QQuick3DFog::mostIntenseYChanged ( )
signal

◆ setColor

void QQuick3DFog::setColor ( const QColor & newColor)
slot

Definition at line 121 of file qquick3dfog.cpp.

◆ setDensity

void QQuick3DFog::setDensity ( float newDensity)
slot

Definition at line 159 of file qquick3dfog.cpp.

◆ setDepthCurve

void QQuick3DFog::setDepthCurve ( float newDepthCurve)
slot

Definition at line 289 of file qquick3dfog.cpp.

◆ setDepthEnabled

void QQuick3DFog::setDepthEnabled ( bool newDepthEnabled)
slot

Definition at line 182 of file qquick3dfog.cpp.

◆ setDepthFar

void QQuick3DFog::setDepthFar ( float newDepthFar)
slot

Definition at line 264 of file qquick3dfog.cpp.

◆ setDepthNear

void QQuick3DFog::setDepthNear ( float newDepthNear)
slot

Definition at line 228 of file qquick3dfog.cpp.

◆ setEnabled

void QQuick3DFog::setEnabled ( bool newEnabled)
slot

Definition at line 92 of file qquick3dfog.cpp.

◆ setHeightCurve

void QQuick3DFog::setHeightCurve ( float newHeightCurve)
slot

Definition at line 429 of file qquick3dfog.cpp.

◆ setHeightEnabled

void QQuick3DFog::setHeightEnabled ( bool newHeightEnabled)
slot

Definition at line 312 of file qquick3dfog.cpp.

◆ setLeastIntenseY

void QQuick3DFog::setLeastIntenseY ( float newleastIntenseY)
slot

Definition at line 365 of file qquick3dfog.cpp.

◆ setMostIntenseY

void QQuick3DFog::setMostIntenseY ( float newmostIntenseY)
slot

Definition at line 405 of file qquick3dfog.cpp.

◆ setTransmitCurve

void QQuick3DFog::setTransmitCurve ( float newTransmitCurve)
slot

Definition at line 473 of file qquick3dfog.cpp.

◆ setTransmitEnabled

void QQuick3DFog::setTransmitEnabled ( bool newTransmitEnabled)
slot

Definition at line 451 of file qquick3dfog.cpp.

◆ transmitCurve()

float QQuick3DFog::transmitCurve ( ) const

\qmlproperty float Fog::transmitCurve

Intensity of the light transmission effect. The default value is 1.0. Applicable only when transmitEnabled is set to true.

Definition at line 468 of file qquick3dfog.cpp.

◆ transmitCurveChanged

void QQuick3DFog::transmitCurveChanged ( )
signal

◆ transmitEnabledChanged

void QQuick3DFog::transmitEnabledChanged ( )
signal

Property Documentation

◆ color

QColor QQuick3DFog::color
readwrite

Definition at line 27 of file qquick3dfog_p.h.

◆ density

float QQuick3DFog::density
readwrite

Definition at line 28 of file qquick3dfog_p.h.

◆ depthCurve

float QQuick3DFog::depthCurve
readwrite

Definition at line 32 of file qquick3dfog_p.h.

◆ depthEnabled

bool QQuick3DFog::depthEnabled
readwrite

Definition at line 29 of file qquick3dfog_p.h.

◆ depthFar

float QQuick3DFog::depthFar
readwrite

Definition at line 31 of file qquick3dfog_p.h.

◆ depthNear

float QQuick3DFog::depthNear
readwrite

Definition at line 30 of file qquick3dfog_p.h.

◆ enabled

bool QQuick3DFog::enabled
readwrite

Definition at line 26 of file qquick3dfog_p.h.

◆ heightCurve

float QQuick3DFog::heightCurve
readwrite

Definition at line 36 of file qquick3dfog_p.h.

◆ heightEnabled

bool QQuick3DFog::heightEnabled
readwrite

Definition at line 33 of file qquick3dfog_p.h.

◆ leastIntenseY

float QQuick3DFog::leastIntenseY
readwrite

Definition at line 34 of file qquick3dfog_p.h.

◆ mostIntenseY

float QQuick3DFog::mostIntenseY
readwrite

Definition at line 35 of file qquick3dfog_p.h.

◆ transmitCurve

float QQuick3DFog::transmitCurve
readwrite

Definition at line 38 of file qquick3dfog_p.h.

◆ transmitEnabled

bool QQuick3DFog::transmitEnabled
readwrite

Definition at line 37 of file qquick3dfog_p.h.


The documentation for this class was generated from the following files: