Sur cette page

Qt3DExtras::QNormalDiffuseSpecularMapMaterial Class

class Qt3DExtras::QNormalDiffuseSpecularMapMaterial

Le QNormalDiffuseSpecularMapMaterial fournit une implémentation par défaut de l'éclairage de Phong et de l'effet de relief, dans laquelle les composantes de lumière diffuse et spéculaire sont lues à partir de cartes de texture, tandis que les normales du maillage en cours de rendu proviennent d'une carte de texture de normales. En savoir plus...

En-tête : #include <qnormaldiffusespecularmapmaterial.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake : QT += 3dextras
Hérite de : Qt3DRender::QMaterial
Statut : Obsolète

Cette classe est obsolète. Nous vous déconseillons fortement de l'utiliser dans du nouveau code.

Propriétés

Fonctions publiques

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

Emplacements publics

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)

Signaux

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)

Description détaillée

Cette classe est obsolète ; utilisez plutôt QDiffuseSpecularMaterial.

L'effet d'éclairage spéculaire repose sur la combinaison de trois composantes d'éclairage : ambiante, diffuse et spéculaire. L'intensité relative de ces composantes est contrôlée par leurs coefficients de réflectivité, modélisés sous forme de triplets RVB :

  • L'éclairage ambiant correspond à la couleur émise par un objet en l'absence de toute autre source lumineuse.
  • La couleur diffuse correspond à la couleur émise par les reflets sur des surfaces rugueuses sous l'effet de la lumière.
  • La couleur spéculaire est celle émise par les reflets sur une surface brillante sous l’effet de la lumière.
  • La brillance d’une surface est contrôlée par une propriété de type float.

Ce matériau utilise un effet basé sur une approche à passage de rendu unique et effectue un éclairage par fragment. Des techniques sont fournies pour OpenGL 2, OpenGL 3 ou supérieur, ainsi que pour OpenGL ES 2.

Documentation des propriétés

ambient : QColor

Contient la couleur ambiante actuelle.

Fonctions d'accès :

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

Signal de notification :

void ambientChanged(const QColor &ambient)

diffuse : Qt3DRender::QAbstractTexture*

Contient la texture de la carte diffuse actuelle.

Par défaut, la texture diffuse présente les propriétés suivantes :

  • Filtres de réduction et d'agrandissement linéaires
  • Mipmap linéaire avec mipmapping activé
  • Mode de répétition « wrap »
  • Anisotropie maximale de 16,0

Fonctions d'accès :

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

Signal de notification :

void diffuseChanged(Qt3DRender::QAbstractTexture *diffuse)

normal : Qt3DRender::QAbstractTexture*

Contient la texture de carte normale actuelle.

Par défaut, la texture normale présente les propriétés suivantes :

  • Filtres de réduction et d'agrandissement linéaires
  • Mode de répétition « Wrap »
  • Anisotropie maximale de 16,0

Fonctions d'accès :

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

Signal de notification :

void normalChanged(Qt3DRender::QAbstractTexture *normal)

shininess : float

Stocke la valeur actuelle de brillance sous forme de nombre à virgule flottante.

Fonctions d'accès :

float shininess() const
void setShininess(float shininess)

Signal de notification :

void shininessChanged(float shininess)

specular : Qt3DRender::QAbstractTexture*

Contient la texture de la carte spéculaire actuelle.

Par défaut, la texture spéculaire présente les propriétés suivantes :

  • Filtres de réduction et d'agrandissement linéaires
  • Mipmap linéaire avec mipmapping activé
  • Mode de répétition « wrap »
  • Anisotropie maximale de 16,0

Fonctions d'accès :

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

Signal de notification :

void specularChanged(Qt3DRender::QAbstractTexture *specular)

textureScale : float

Stocke l'échelle actuelle de la texture. Elle est appliquée sous forme de multiplicateur aux coordonnées de texture au moment du rendu. La valeur par défaut est 1,0.

Utilisé conjointement avec QTextureWrapMode::Repeat, textureScale offre un moyen simple de répéter une texture sur une surface. Par exemple, une échelle de texture de 4.0 donnerait lieu à 16 tuiles (4x4).

Fonctions d'accès :

float textureScale() const
void setTextureScale(float textureScale)

Signal de notification :

void textureScaleChanged(float textureScale)

Documentation des fonctions membres

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

Crée une nouvelle instance de `QNormalDiffuseSpecularMapMaterial` dont l'objet parent est ` parent`.

[virtual noexcept] QNormalDiffuseSpecularMapMaterial::~QNormalDiffuseSpecularMapMaterial()

Supprime l'instance de ` 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.