QDiffuseSpecularMaterial Class

class Qt3DExtras::QDiffuseSpecularMaterial

Die Klasse QDiffuseSpecularMaterial bietet eine Standardimplementierung des Phong-Lichteffekts. Mehr...

Kopfzeile: #include <QDiffuseSpecularMaterial>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: QT += 3dextras
In QML: DiffuseSpecularMaterial
Vererbt: Qt3DRender::QMaterial
Status: Veraltet

Eigenschaften

Öffentliche Funktionen

QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr)
virtual ~QDiffuseSpecularMaterial()
QColor ambient() const
QVariant diffuse() const
bool isAlphaBlendingEnabled() const
QVariant normal() const
float shininess() const
QVariant specular() const
float textureScale() const

Öffentliche Slots

void setAlphaBlendingEnabled(bool enabled)
void setAmbient(const QColor &ambient)
void setDiffuse(const QVariant &diffuse)
void setNormal(const QVariant &normal)
void setShininess(float shininess)
void setSpecular(const QVariant &specular)
void setTextureScale(float textureScale)

Signale

void alphaBlendingEnabledChanged(bool enabled)
void ambientChanged(const QColor &ambient)
void diffuseChanged(const QVariant &diffuse)
void normalChanged(const QVariant &normal)
void shininessChanged(float shininess)
void specularChanged(const QVariant &specular)
void textureScaleChanged(float textureScale)

Detaillierte Beschreibung

Der Phong-Lichteffekt basiert auf der Kombination der drei Beleuchtungskomponenten ambient, diffus und spiegelnd. Die relativen Stärken dieser Komponenten werden über ihre Reflexionskoeffizienten gesteuert, die als RGB-Tripletts modelliert werden:

  • Umgebungslicht ist die Farbe, die von einem Objekt ohne andere Lichtquelle abgestrahlt wird.
  • Diffus ist die Farbe, die bei groben Oberflächenreflexionen mit den Lichtern emittiert wird.
  • Specular ist die Farbe, die für glänzende Oberflächenreflexionen mit den Lichtern emittiert wird.
  • Der Glanz einer Oberfläche wird durch eine Float-Eigenschaft gesteuert.

Dieses Material verwendet einen Effekt mit einem einzigen Rendering-Pass-Ansatz und führt die Beleuchtung pro Fragment durch. Die Techniken werden für OpenGL 2, OpenGL 3 oder höher sowie OpenGL ES 2 bereitgestellt.

Dokumentation der Eigenschaft

alphaBlending : bool

Gibt an, ob die Alphainformationen aus der Eigenschaft "diffus" beim Rendern berücksichtigt werden sollen. Der Standardwert ist false.

Zugriffsfunktionen:

bool isAlphaBlendingEnabled() const
void setAlphaBlendingEnabled(bool enabled)

Benachrichtigungssignal:

void alphaBlendingEnabledChanged(bool enabled)

ambient : QColor

Enthält die Umgebungsfarbe, die von einem Objekt ohne eine andere Lichtquelle ausgestrahlt wird.

Zugriffsfunktionen:

QColor ambient() const
void setAmbient(const QColor &ambient)

Melder-Signal:

void ambientChanged(const QColor &ambient)

diffuse : QVariant

Enthält die diffuse Farbe des Materials, die für raue Oberflächenreflexionen mit den Lichtern emittiert wird. Dies kann entweder ein einfacher Farbwert oder eine Textur sein.

Zugriffsfunktionen:

QVariant diffuse() const
void setDiffuse(const QVariant &diffuse)

Melder-Signal:

void diffuseChanged(const QVariant &diffuse)

normal : QVariant

Enthält die aktuelle Normal Map Textur des Materials. Dies kann nur eine Textur sein, ansonsten wird sie ignoriert. Standardmäßig ist diese Map nicht gesetzt.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void normalChanged(const QVariant &normal)

shininess : float

Enthält den Glanzexponenten. Höhere Werte von shininess führen zu einem kleineren und helleren Highlight.

Der Standardwert ist 150.0.

Zugriffsfunktionen:

float shininess() const
void setShininess(float shininess)

Benachrichtigungssignal:

void shininessChanged(float shininess)

specular : QVariant

Enthält die spiegelnde Farbe des Materials, die für glänzende Oberflächenreflexionen mit den Lichtern emittiert wird. Dies kann entweder ein einfacher Farbwert oder eine Textur sein.

Zugriffsfunktionen:

QVariant specular() const
void setSpecular(const QVariant &specular)

Melder-Signal:

void specularChanged(const QVariant &specular)

textureScale : float

Enthält den aktuellen Texturmaßstab. Sie wird als Multiplikator auf die Texturkoordinaten zur Renderzeit angewendet. Der Standardwert ist 1.0.

In Verbindung mit QTextureWrapMode::Repeat bietet textureScale eine einfache Möglichkeit, eine Textur über eine Fläche zu kacheln. Zum Beispiel würde eine Texturskala von 4.0 zu 16 (4x4) Kacheln führen.

Zugriffsfunktionen:

float textureScale() const
void setTextureScale(float textureScale)

Benachrichtigungssignal:

void textureScaleChanged(float textureScale)

Member Function Dokumentation

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

Konstruiert eine neue QDiffuseSpecularMaterial-Instanz mit dem übergeordneten Objekt parent.

[virtual noexcept] QDiffuseSpecularMaterial::~QDiffuseSpecularMaterial()

Zerstört die QDiffuseSpecularMaterial.

© 2025 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.