QMetalRoughMaterial Class

class Qt3DExtras::QMetalRoughMaterial

The QMetalRoughMaterial provides a default implementation of PBR lighting. More...

Header: #include <QMetalRoughMaterial>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: QT += 3dextras
Instantiated By: MetalRoughMaterial
Inherits: Qt3DRender::QMaterial

Properties

Public Functions

QMetalRoughMaterial(Qt3DCore::QNode *parent = nullptr)
virtual ~QMetalRoughMaterial()
QVariant ambientOcclusion() const
QVariant baseColor() const
QVariant metalness() const
QVariant normal() const
QVariant roughness() const
float textureScale() const

Public Slots

void setAmbientOcclusion(const QVariant &ambientOcclusion)
void setBaseColor(const QVariant &baseColor)
void setMetalness(const QVariant &metalness)
void setNormal(const QVariant &normal)
void setRoughness(const QVariant &roughness)
void setTextureScale(float textureScale)

Signals

void ambientOcclusionChanged(const QVariant &ambientOcclusion)
void baseColorChanged(const QVariant &baseColor)
void metalnessChanged(const QVariant &metalness)
void normalChanged(const QVariant &normal)
void roughnessChanged(const QVariant &roughness)
void textureScaleChanged(float textureScale)

Detailed Description

This material uses an effect with a single render pass approach and performs per fragment lighting. Techniques are provided for OpenGL 3 and OpenGL ES 3.

Property Documentation

ambientOcclusion : QVariant

Holds the current ambient occlusion map texture of the material. This can only be a texture, otherwise it is ignored. By default this map is not set.

Access functions:

QVariant ambientOcclusion() const
void setAmbientOcclusion(const QVariant &ambientOcclusion)

Notifier signal:

void ambientOcclusionChanged(const QVariant &ambientOcclusion)

baseColor : QVariant

Holds the current base color of the material. This can be either a plain color value or a texture. By default the value of this property is "grey".

Access functions:

QVariant baseColor() const
void setBaseColor(const QVariant &baseColor)

Notifier signal:

void baseColorChanged(const QVariant &baseColor)

metalness : QVariant

Holds the current metalness level of the material, as a value between 0 (purely dielectric, the default) and 1 (purely metallic). This can be either a plain uniform value or a texture. By default the value of this property is 0.

Access functions:

QVariant metalness() const
void setMetalness(const QVariant &metalness)

Notifier signal:

void metalnessChanged(const QVariant &metalness)

normal : QVariant

Holds the current normal map texture of the material. This can only be a texture, otherwise it is ignored. By default this map is not set.

Access functions:

QVariant normal() const
void setNormal(const QVariant &normal)

Notifier signal:

void normalChanged(const QVariant &normal)

roughness : QVariant

Holds the current roughness level of the material. This can be either a plain uniform value or a texture. By default the value of this property is 0.

Access functions:

QVariant roughness() const
void setRoughness(const QVariant &roughness)

Notifier signal:

void roughnessChanged(const QVariant &roughness)

textureScale : float

Holds the current texture scale. It is applied as a multiplier to texture coordinates at render time. Defaults to 1.0.

When used in conjunction with QTextureWrapMode::Repeat, textureScale provides a simple way to tile a texture across a surface. For example, a texture scale of 4.0 would result in 16 (4x4) tiles.

Access functions:

float textureScale() const
void setTextureScale(float textureScale)

Notifier signal:

void textureScaleChanged(float textureScale)

Member Function Documentation

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

Constructs a new QMetalRoughMaterial instance with parent object parent.

[virtual] QMetalRoughMaterial::~QMetalRoughMaterial()

Destroys the QMetalRoughMaterial instance.

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.