Sur cette page

Qt3DExtras::QGoochMaterial Class

class Qt3DExtras::QGoochMaterial

Le QGoochMaterial fournit un matériau qui met en œuvre le modèle d'ombrage de Gooch, très répandu dans les applications de CAO et de FAO. En savoir plus...

En-tête : #include <qgoochmaterial.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 déconseillons fortement de l'utiliser dans du nouveau code.

Propriétés

Fonctions publiques

QGoochMaterial(Qt3DCore::QNode *parent = nullptr)
float alpha() const
float beta() const
QColor cool() const
QColor diffuse() const
float shininess() const
QColor specular() const
QColor warm() const

Emplacements publics

void setAlpha(float alpha)
void setBeta(float beta)
void setCool(const QColor &cool)
void setDiffuse(const QColor &diffuse)
void setShininess(float shininess)
void setSpecular(const QColor &specular)
void setWarm(const QColor &warm)

Signaux

void alphaChanged(float alpha)
void betaChanged(float beta)
void coolChanged(const QColor &cool)
void diffuseChanged(const QColor &diffuse)
void shininessChanged(float shininess)
void specularChanged(const QColor &specular)
void warmChanged(const QColor &warm)

Description détaillée

Le modèle d'éclairage de Gooch utilise à la fois la couleur et la luminosité pour aider à mettre en évidence la courbure des surfaces 3D. Ce modèle est souvent plus performant que des modèles tels que celui de Phong, qui reposent uniquement sur les variations de luminosité. Dans des contextes tels que les applications de CAO et de FAO, où le photoréalisme n’est pas un objectif, le modèle d’ombrage de Gooch, associé à une technique de tracé des contours de silhouette, constitue une solution couramment utilisée.

Le modèle d'éclairage de Gooch est expliqué en détail dans l'article original de Gooch. Le modèle de Gooch mélange la couleur diffuse de l’objet avec une couleur froide et une couleur chaude fournies par l’utilisateur afin de définir les extrémités d’un dégradé de couleurs utilisé pour ombrer l’objet en fonction du cosinus de l’angle entre le vecteur reliant le fragment à la source lumineuse et le vecteur normal du fragment. En option, un reflet spéculaire peut être ajouté par-dessus. Les contributions relatives de la couleur diffuse aux couleurs froides et chaudes sont contrôlées respectivement par les propriétés alpha et bêta.

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

alpha : float

Contient la valeur alpha actuelle. Le point de départ du dégradé de couleurs utilisé par le shader Gooch est calculé selon la formule {c = cool + alpha * diffuse}.

Fonctions d'accès :

float alpha() const
void setAlpha(float alpha)

Signal de notification :

void alphaChanged(float alpha)

beta : float

Contient la valeur bêta actuelle. Le point de départ du dégradé de couleurs utilisé par le shader Gooch est calculé selon la formule {c = warm + bêta * diffuse}.

Fonctions d'accès :

float beta() const
void setBeta(float beta)

Signal de notification :

void betaChanged(float beta)

cool : QColor

Contient la couleur froide actuelle.

Fonctions d'accès :

QColor cool() const
void setCool(const QColor &cool)

Signal de notification :

void coolChanged(const QColor &cool)

diffuse : QColor

Contient la couleur diffuse actuelle.

Fonctions d'accès :

QColor diffuse() const
void setDiffuse(const QColor &diffuse)

Signal de notification :

void diffuseChanged(const QColor &diffuse)

shininess : float

Contient la valeur actuelle de brillance. Plus la valeur de brillance est élevée, plus le reflet est petit et lumineux.

Fonctions d'accès :

float shininess() const
void setShininess(float shininess)

Signal de notification :

void shininessChanged(float shininess)

specular : QColor

Contient la couleur spéculaire actuelle.

Fonctions d’accès :

QColor specular() const
void setSpecular(const QColor &specular)

Signal de notification :

void specularChanged(const QColor &specular)

warm : QColor

Contient la couleur chaude actuelle.

Fonctions d'accès :

QColor warm() const
void setWarm(const QColor &warm)

Signal de notification :

void warmChanged(const QColor &warm)

Documentation des fonctions membres

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

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

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