![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <qquick3dlightmapper_p.h>
Public Slots | |
void | setOpacityThreshold (float opacity) |
void | setBias (float bias) |
void | setAdaptiveBiasEnabled (bool enabled) |
void | setIndirectLightEnabled (bool enabled) |
void | setSamples (int count) |
void | setIndirectLightWorkgroupSize (int size) |
void | setBounces (int count) |
void | setIndirectLightFactor (float factor) |
Q_REVISION (6, 10) void setSource(const QUrl &source) | |
Q_REVISION (6, 10) void setDenoiseSigma(float new DenoiseSigma) | |
Q_REVISION (6, 10) void setTexelsPerUnit(float new TexelsPerUnit) | |
Public Slots inherited from QObject | |
void | deleteLater () |
\threadsafe |
Signals | |
void | changed () |
void | opacityThresholdChanged () |
void | biasChanged () |
void | adaptiveBiasEnabledChanged () |
void | indirectLightEnabledChanged () |
void | samplesChanged () |
void | indirectLightWorkgroupSizeChanged () |
void | bouncesChanged () |
void | indirectLightFactorChanged () |
Q_REVISION (6, 10) void sourceChanged() | |
Q_REVISION (6, 10) void denoiseSigmaChanged() | |
Q_REVISION (6, 10) void texelsPerUnitChanged() | |
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 | |
float | opacityThreshold () const |
\qmltype Lightmapper \inherits QtObject \inqmlmodule QtQuick3D | |
float | bias () const |
bool | isAdaptiveBiasEnabled () const |
bool | isIndirectLightEnabled () const |
int | samples () const |
int | indirectLightWorkgroupSize () const |
int | bounces () const |
float | indirectLightFactor () const |
Q_REVISION (6, 10) QUrl source() const | |
Q_REVISION (6, 10) float denoiseSigma() const | |
Q_REVISION (6, 10) float texelsPerUnit() const | |
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< QString > | bindableObjectName () |
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 | isQmlObjectType () const |
Returns whether the object has been created by the QML engine or ownership has been explicitly set via QJSEngine::setObjectOwnership(). | |
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). | |
QThread * | thread () 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> | |
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> | |
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 QObjectList & | children () 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< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () 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 | |
float | opacityThreshold |
float | bias |
bool | adaptiveBiasEnabled |
bool | indirectLightEnabled |
int | samples |
int | indirectLightWorkgroupSize |
int | bounces |
float | indirectLightFactor |
QUrl | source |
float | denoiseSigma |
float | texelsPerUnit |
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 | |
QObject * | sender () 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< QObjectData > | d_ptr |
Related Symbols inherited from QObject | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) |
Definition at line 22 of file qquick3dlightmapper_p.h.
|
signal |
float QQuick3DLightmapper::bias | ( | ) | const |
Definition at line 201 of file qquick3dlightmapper.cpp.
|
signal |
int QQuick3DLightmapper::bounces | ( | ) | const |
Definition at line 226 of file qquick3dlightmapper.cpp.
|
signal |
|
signal |
|
signal |
float QQuick3DLightmapper::indirectLightFactor | ( | ) | const |
Definition at line 231 of file qquick3dlightmapper.cpp.
|
signal |
int QQuick3DLightmapper::indirectLightWorkgroupSize | ( | ) | const |
Definition at line 221 of file qquick3dlightmapper.cpp.
|
signal |
bool QQuick3DLightmapper::isAdaptiveBiasEnabled | ( | ) | const |
Definition at line 206 of file qquick3dlightmapper.cpp.
bool QQuick3DLightmapper::isIndirectLightEnabled | ( | ) | const |
Definition at line 211 of file qquick3dlightmapper.cpp.
QT_BEGIN_NAMESPACE float QQuick3DLightmapper::opacityThreshold | ( | ) | const |
\qmltype Lightmapper \inherits QtObject \inqmlmodule QtQuick3D
Specifies lightmap baking settings for a scene.
Used when baking direct and indirect lighting. Most of these settings are not relevant at other times, such as when using already generated lightmaps to render a scene. The exception is \l source, though this has a sensible default for development.
On a successfull bake a single file will be generated at the value specified by \l source. This binary file contains the results of the bake, including the per-model lightmaps and the mesh files with lightmap-compatible UVs. The individual model data is accessed via \l BakedLightmap::key.
The data contained in the resulting lightmap file is all tightly coupled to each other and to the current scene state. This means that any modifications to the original mesh files, Lightmapper settings or other scene changes will require a new bake to be executed to see the updated result.
The Lightmapper object works in combination with:
\list
\qmlproperty real Lightmapper::opacityThreshold
The opacity (alpha) threshold below which an object is ignored in ray - mesh intersections when calculating lighting via raytracing. When the opacity falls below the threshold, the model (submesh) will not occlude lights and thus will not generate shadows either.
The default value is 0.5.
\qmlproperty real Lightmapper::bias
Raycasting bias used during baking. Adapt the value in case artifacts occur, for example in order to reduce undesired shadowing patterns. In many cases the default value is sufficient.
The default value is 0.005.
\qmlproperty bool Lightmapper::adaptiveBiasEnabled
Enables applying an additional, dynamic bias based on the surface normal.
The default value is true.
\qmlproperty bool Lightmapper::indirectLightEnabled
Normally there is no need to change this value. The default value is true. Setting this property to false disables indirect light computation during lightmap baking. Thus the resulting texture maps will only contain direct light information. At run time, the engine will continue to use the maps normally, assuming they contain both direct and indirect lighting.
\qmlproperty int Lightmapper::samples
The number of samples per lightmap texel.
The default value is 256.
The value heavily affects both the performance and quality of the resulting lightmaps during lightmap baking.
\qmlproperty int Lightmapper::indirectLightWorkgroupSize
The size of the sample workgroups. These workgroups are attempted to be executed in parallel. (the exact behavior depends on the number of CPU cores and the QThreadPool configuration)
The default value is 32. With the default sample count of 256 this means attempting to run 8 groups in parallel per model.
\qmlproperty int Lightmapper::bounces
The maximum number of indirect light bounces per sample. The value should at least be 1, no point in indirect light calculation otherwise.
The default value is 3.
The value heavily affects both the performance and quality of the resulting lightmaps during lightmap baking.
\qmlproperty real Lightmapper::indirectLightFactor
Multiplier for the indirect light amount. While it is the value of 1 (i.e., not affecting the indirect light amount calculation) that provides the strictly correct rendering results, a slightly higher value can often give better looking results when using the lightmap, even with a lower number of bounces.
The default value is 1.
\qmlproperty url Lightmapper::source \since 6.10 \default file:lightmaps.bin The url for loading the lightmap file at runtime and the output file path on a successful bake. When baking, the output path will be deduced from the url and it needs to resolve to a regular file location that is writable. By default the value is \c{file:lightmaps.bin}, which means the file will be put in the current working directory and the final result will instantly appear on a successful bake. In the same directory as the output file, a \c{.raw} file is created that contains extra lightmap data used before creating the final lightmap file. This makes it possible to do just denoising without having to bake the whole scene between runs, assuming the \c{.raw} file is present. If you want to read the lightmap as a QRC resource you need to embed it in the usual way and add a \c{:/} or \c{qrc:/} prefix to the url. The following example always tries to load the lightmap file embedded via resources. First set the value to a writable location and bake. Then copy the generated file into the source directoy. Then by listing the file in the application's CMake project as a resource under the \c{/lightmaps} PREFIX, lets the build process pick up the file and include it in the executable. \qml Lightmapper { source: "qrc:/lightmaps/lightmaps.bin"
will attempt to load from :/lightmaps/lightmaps.bin at runtime and write a file to lightmaps/lightmaps.bin when baking. } \endqml
\qmlproperty real Lightmapper::denoiseSigma
This property defines the sigma value of the Non-local means based denoiser. This means that the higher this value is the stronger the blurring will be. Try to keep this value as low as possible to avoid losing visual features while still removing the noise.
\qmlproperty real Lightmapper::texelsPerUnit
This property defines the unit to texel scale, meaning a {1x1} quad with texelsPerUnit of
{32} will take up approximately
{32x32} texels in the lightmap.
Definition at line 196 of file qquick3dlightmapper.cpp.
|
signal |
QQuick3DLightmapper::Q_REVISION | ( | 6 | , |
10 | ) const |
QQuick3DLightmapper::Q_REVISION | ( | 6 | , |
10 | ) const |
QQuick3DLightmapper::Q_REVISION | ( | 6 | , |
10 | ) const |
|
signal |
|
newslot |
|
slot |
|
newslot |
|
signal |
|
signal |
int QQuick3DLightmapper::samples | ( | ) | const |
Definition at line 216 of file qquick3dlightmapper.cpp.
|
signal |
|
slot |
Definition at line 261 of file qquick3dlightmapper.cpp.
|
slot |
Definition at line 251 of file qquick3dlightmapper.cpp.
|
slot |
Definition at line 301 of file qquick3dlightmapper.cpp.
|
slot |
Definition at line 271 of file qquick3dlightmapper.cpp.
|
slot |
Definition at line 311 of file qquick3dlightmapper.cpp.
|
slot |
Definition at line 291 of file qquick3dlightmapper.cpp.
|
slot |
Definition at line 241 of file qquick3dlightmapper.cpp.
|
slot |
Definition at line 281 of file qquick3dlightmapper.cpp.
|
readwrite |
Definition at line 27 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 26 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 31 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 34 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 28 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 32 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 30 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 25 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 29 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 33 of file qquick3dlightmapper_p.h.
|
readwrite |
Definition at line 35 of file qquick3dlightmapper_p.h.