Auf dieser Seite

Qt3DExtras::QDiffuseSpecularMaterial Class

class Qt3DExtras::QDiffuseSpecularMaterial

Die Klasse „QDiffuseSpecularMaterial“ bietet eine Standardimplementierung des Phong-Beleuchtungseffekts. Mehr...

Header: #include <qdiffusespecularmaterial.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: QT += 3dextras
In QML: DiffuseSpecularMaterial
Erbt von: Qt3DRender::QMaterial
Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

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-Beleuchtungseffekt basiert auf der Kombination von drei Beleuchtungskomponenten: Umgebungslicht, diffuses Licht und Spiegelung. Die relativen Stärken dieser Komponenten werden über ihre Reflektivitätskoeffizienten gesteuert, die als RGB-Tripel modelliert sind:

  • „Ambient“ ist die Farbe, die von einem Objekt ohne weitere Lichtquelle ausgestrahlt wird.
  • „Diffuse“ ist die Farbe, die bei Reflexionen an rauen Oberflächen durch das Licht ausgestrahlt wird.
  • „Specular“ ist die Farbe, die bei Reflexionen von glänzenden Oberflächen durch das Licht ausgestrahlt wird.
  • Der Glanzgrad einer Oberfläche wird durch eine Float-Eigenschaft gesteuert.

Dieses Material verwendet einen Effekt mit einem Single-Render-Pass-Ansatz und führt eine fragmentweise Beleuchtung durch. Es werden Techniken für OpenGL 2, OpenGL 3 oder höher sowie für OpenGL ES 2 bereitgestellt.

Dokumentation der Eigenschaften

alphaBlending : bool

Gibt an, ob die aus der Eigenschaft „diffuse“ stammenden Alpha-Informationen beim Rendern berücksichtigt werden. Der Standardwert ist „false“.

Zugriffsfunktionen:

bool isAlphaBlendingEnabled() const
void setAlphaBlendingEnabled(bool enabled)

Notifier-Signal:

void alphaBlendingEnabledChanged(bool enabled)

ambient : QColor

Gibt die Umgebungsfarbe an, die von einem Objekt ohne weitere Lichtquelle ausgestrahlt wird.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void ambientChanged(const QColor &ambient)

diffuse : QVariant

Enthält die diffuse Farbe des Materials, die bei Reflexionen an rauen Oberflächen durch die Lichtquellen ausgestrahlt wird. Dabei kann es sich entweder um einen einfachen Farbwert oder um eine Textur handeln.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void diffuseChanged(const QVariant &diffuse)

normal : QVariant

Enthält die aktuelle Normal-Map-Textur des Materials. Hier darf nur eine Textur angegeben werden, andernfalls wird der Eintrag ignoriert. Standardmäßig ist diese Map nicht festgelegt.

Zugriffsfunktionen:

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

Notifier-Signal:

void normalChanged(const QVariant &normal)

shininess : float

Enthält den Glanz-Exponenten. Höhere Glanzwerte führen zu einem kleineren und helleren Glanzpunkt.

Standardwert ist 150,0.

Zugriffsfunktionen:

float shininess() const
void setShininess(float shininess)

Benachrichtigungssignal:

void shininessChanged(float shininess)

specular : QVariant

Enthält die Spiegelungsfarbe des Materials, die bei Reflexionen auf glänzenden Oberflächen durch die Lichtquellen ausgestrahlt wird. Dabei kann es sich entweder um einen einfachen Farbwert oder um eine Textur handeln.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void specularChanged(const QVariant &specular)

textureScale : float

Speichert den aktuellen Textur-Maßstab. Dieser wird beim Rendern als Multiplikator auf die Texturkoordinaten angewendet. Der Standardwert ist 1,0.

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

Zugriffsfunktionen:

float textureScale() const
void setTextureScale(float textureScale)

Notifier-Signal:

void textureScaleChanged(float textureScale)

Dokumentation der Mitgliedsfunktionen

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

Erstellt eine neue Instanz von `QDiffuseSpecularMaterial` mit dem übergeordneten Objekt ` parent`.

[virtual noexcept] QDiffuseSpecularMaterial::~QDiffuseSpecularMaterial()

Zerstört die „ QDiffuseSpecularMaterial “.

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