QGoochMaterial Class
class Qt3DExtras::QGoochMaterialQGoochMaterial bietet ein Material, das das in CAD- und CAM-Anwendungen beliebte Gooch-Schattierungsmodell implementiert. Mehr...
Kopfzeile: | #include <QGoochMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
qmake: | QT += 3dextras |
Vererbt: | Qt3DRender::QMaterial |
Status: | Veraltet |
Eigenschaften
Öffentliche Funktionen
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 |
Öffentliche Slots
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) |
Signale
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) |
Detaillierte Beschreibung
Das Beleuchtungsmodell von Gooch verwendet sowohl Farbe als auch Helligkeit, um die Krümmung von 3D-Oberflächen darzustellen. Dies ist oft besser als Modelle wie Phong, die sich nur auf Helligkeitsänderungen verlassen. In Situationen, wie z. B. bei CAD- und CAM-Anwendungen, in denen Fotorealismus nicht das Ziel ist, ist das Gooch-Schattierungsmodell in Verbindung mit einer Art von Silhouetten-Kantenfärbung eine beliebte Lösung.
Das Gooch-Beleuchtungsmodell wird in der Originalarbeit von Gooch ausführlich erläutert. Das Gooch-Modell mischt eine diffuse Objektfarbe mit einer vom Benutzer bereitgestellten kühlen und warmen Farbe, um die Endpunkte einer Farbrampe zu erzeugen, die zur Schattierung des Objekts auf der Grundlage des Kosinus des Winkels zwischen dem Vektor vom Fragment zur Lichtquelle und dem Normalvektor des Fragments verwendet wird. Optional kann ein spiegelndes Highlight hinzugefügt werden. Die relativen Beiträge der diffusen Farbe zu den kühlen und warmen Farben werden durch die Alpha- bzw. Beta-Eigenschaften gesteuert.
Dieses Material verwendet einen Effekt mit einem einzigen Rendering-Durchgang 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 Eigenschaften
alpha : float
Enthält den aktuellen Alpha-Wert. Der Startpunkt der vom Gooch-Shader verwendeten Farbrampe wird wie folgt berechnet: {c = cool + alpha * diffuse}.
Zugriffsfunktionen:
float | alpha() const |
void | setAlpha(float alpha) |
Benachrichtigungssignal:
void | alphaChanged(float alpha) |
beta : float
Enthält den aktuellen Beta-Wert. Der Startpunkt der vom Gooch-Shader verwendeten Farbrampe wird wie folgt berechnet: {c = warm + beta * diffus}.
Zugriffsfunktionen:
float | beta() const |
void | setBeta(float beta) |
Benachrichtigungssignal:
void | betaChanged(float beta) |
cool : QColor
Speichert die aktuelle kühle Farbe.
Zugriffsfunktionen:
QColor | cool() const |
void | setCool(const QColor &cool) |
Benachrichtigungssignal:
void | coolChanged(const QColor &cool) |
diffuse : QColor
Enthält die aktuelle diffuse Farbe.
Zugriffsfunktionen:
QColor | diffuse() const |
void | setDiffuse(const QColor &diffuse) |
Benachrichtigungssignal:
void | diffuseChanged(const QColor &diffuse) |
shininess : float
Enthält den aktuellen Glanzwert. Höhere Werte für den Glanzgrad führen zu einem kleineren und helleren Glanzlicht.
Zugriffsfunktionen:
float | shininess() const |
void | setShininess(float shininess) |
Benachrichtigungssignal:
void | shininessChanged(float shininess) |
specular : QColor
Enthält die aktuelle Spiegelfarbe.
Zugriffsfunktionen:
QColor | specular() const |
void | setSpecular(const QColor &specular) |
Benachrichtigungssignal:
void | specularChanged(const QColor &specular) |
warm : QColor
Speichert die aktuelle warme Farbe.
Funktionen aufrufen:
QColor | warm() const |
void | setWarm(const QColor &warm) |
Benachrichtigungssignal:
void | warmChanged(const QColor &warm) |
Mitgliederfunktion Dokumentation
[explicit]
QGoochMaterial::QGoochMaterial(Qt3DCore::QNode *parent = nullptr)
Konstruiert eine neue QGoochMaterial-Instanz mit dem übergeordneten Objekt parent.
© 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.