QDiffuseSpecularMapMaterial Class

class Qt3DExtras::QDiffuseSpecularMapMaterial

Das QDiffuseSpecularMapMaterial bietet eine Standardimplementierung des Phong-Lichteffekts, bei dem die diffusen und spiegelnden Lichtkomponenten aus Texturkarten gelesen werden. Mehr...

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

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

Eigenschaften

Öffentliche Funktionen

QDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)
virtual ~QDiffuseSpecularMapMaterial()
QColor ambient() const
Qt3DRender::QAbstractTexture *diffuse() const
float shininess() const
Qt3DRender::QAbstractTexture *specular() const
float textureScale() const

Öffentliche Slots

void setAmbient(const QColor &ambient)
void setDiffuse(Qt3DRender::QAbstractTexture *diffuse)
void setShininess(float shininess)
void setSpecular(Qt3DRender::QAbstractTexture *specular)
void setTextureScale(float textureScale)

Signale

void ambientChanged(const QColor &ambient)
void diffuseChanged(Qt3DRender::QAbstractTexture *diffuse)
void shininessChanged(float shininess)
void specularChanged(Qt3DRender::QAbstractTexture *specular)
void textureScaleChanged(float textureScale)

Detaillierte Beschreibung

Diese Klasse ist veraltet; verwenden Sie stattdessen Qt3DExtras::QDiffuseSpecularMaterial.

Der spiegelnde Lichteffekt basiert auf der Kombination der 3 Beleuchtungskomponenten ambient, diffus und spiegelnd. Die relativen Stärken dieser Komponenten werden durch 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 dem Licht abgestrahlt 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

ambient : QColor

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

Zugriffsfunktionen:

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

Melder-Signal:

void ambientChanged(const QColor &ambient)

diffuse : Qt3DRender::QAbstractTexture*

Enthält die aktuelle Diffuse-Map-Textur.

Standardmäßig hat die diffuse Textur die folgenden Eigenschaften:

  • Lineare Verkleinerungs- und Vergrößerungsfilter
  • Lineare Mipmap mit aktiviertem Mipmapping
  • Wiederholter Wrap-Modus
  • Maximale Anisotropie von 16,0

Zugriffsfunktionen:

Qt3DRender::QAbstractTexture *diffuse() const
void setDiffuse(Qt3DRender::QAbstractTexture *diffuse)

Benachrichtigungssignal:

void diffuseChanged(Qt3DRender::QAbstractTexture *diffuse)

shininess : float

Enthält den aktuellen Glanzgrad als Fließkommawert. 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 : Qt3DRender::QAbstractTexture*

Enthält die aktuelle Specular-Map-Textur.

Standardmäßig hat die Spiegelungstextur die folgenden Eigenschaften:

  • Lineare Verkleinerungs- und Vergrößerungsfilter
  • Lineare Mipmap mit aktiviertem Mipmapping
  • Wiederholter Umbruchmodus
  • Maximale Anisotropie von 16,0

Zugriffsfunktionen:

Qt3DRender::QAbstractTexture *specular() const
void setSpecular(Qt3DRender::QAbstractTexture *specular)

Benachrichtigungssignal:

void specularChanged(Qt3DRender::QAbstractTexture *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] QDiffuseSpecularMapMaterial::QDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)

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

[virtual noexcept] QDiffuseSpecularMapMaterial::~QDiffuseSpecularMapMaterial()

Zerstört die Instanz QDiffuseSpecularMapMaterial.

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