Auf dieser Seite

Qt3DExtras::QNormalDiffuseSpecularMapMaterial Class

class Qt3DExtras::QNormalDiffuseSpecularMapMaterial

Das `QNormalDiffuseSpecularMapMaterial` bietet eine Standardimplementierung der Phong-Beleuchtung und des Bump-Effekts, bei der die diffusen und spiegelnden Lichtkomponenten aus Textur-Maps gelesen werden und die Normalen des gerenderten Meshes aus einer Normaltextur-Map stammen. Mehr...

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

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

Eigenschaften

Öffentliche Funktionen

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

Öffentliche Slots

void setAmbient(const QColor &ambient)
void setDiffuse(Qt3DRender::QAbstractTexture *diffuse)
void setNormal(Qt3DRender::QAbstractTexture *normal)
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 normalChanged(Qt3DRender::QAbstractTexture *normal)
void shininessChanged(float shininess)
void specularChanged(Qt3DRender::QAbstractTexture *specular)
void textureScaleChanged(float textureScale)

Ausführliche Beschreibung

Diese Klasse ist veraltet; verwenden Sie stattdessen „ QDiffuseSpecularMaterial “.

Der Spiegelungseffekt basiert auf der Kombination von drei Beleuchtungskomponenten: Umgebungslicht, diffuses Licht und Spiegelung. Die relative Stärke dieser Komponenten wird über ihre Reflektivitätskoeffizienten gesteuert, die als RGB-Tripel modelliert sind:

  • „Ambient“ ist die Farbe, die von einem Objekt ohne weitere Lichtquelle abgestrahlt wird.
  • „Diffuse“ ist die Farbe, die bei Reflexionen an rauen Oberflächen durch das Licht ausgestrahlt wird.
  • „Specular“ ist die Farbe, die bei Reflexionen an glänzenden Oberflächen durch das Licht abgestrahlt 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

ambient : QColor

Enthält die aktuelle Umgebungsfarbe.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void ambientChanged(const QColor &ambient)

diffuse : Qt3DRender::QAbstractTexture*

Enthält die aktuelle Diffus-Map-Textur.

Standardmäßig weist die Diffus-Textur die folgenden Eigenschaften auf:

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

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void diffuseChanged(Qt3DRender::QAbstractTexture *diffuse)

normal : Qt3DRender::QAbstractTexture*

Enthält die aktuelle Normal-Map-Textur.

Standardmäßig weist die Normaltextur die folgenden Eigenschaften auf:

  • Lineare Verkleinerungs- und Vergrößerungsfilter
  • Wiederholungs- und Umschlingungsmodus
  • Maximale Anisotropie von 16,0

Zugriffsfunktionen:

Qt3DRender::QAbstractTexture *normal() const
void setNormal(Qt3DRender::QAbstractTexture *normal)

Benachrichtigungssignal:

void normalChanged(Qt3DRender::QAbstractTexture *normal)

shininess : float

Speichert den aktuellen Glanzgrad als Float-Wert.

Zugriffsfunktionen:

float shininess() const
void setShininess(float shininess)

Notifier-Signal:

void shininessChanged(float shininess)

specular : Qt3DRender::QAbstractTexture*

Enthält die aktuelle Specular-Map-Textur.

Standardmäßig weist die Specular-Textur die folgenden Eigenschaften auf:

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

Zugriffsfunktionen:

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

Benachrichtigungssignal:

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

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

[virtual noexcept] QNormalDiffuseSpecularMapMaterial::~QNormalDiffuseSpecularMapMaterial()

Löscht die Instanz „ QNormalDiffuseSpecularMapMaterial “.

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