Qt3DExtras::QGoochMaterial Class
class Qt3DExtras::QGoochMaterialDas QGoochMaterial stellt ein Material bereit, das das in CAD- und CAM-Anwendungen weit verbreitete Gooch-Schattierungsmodell implementiert. Mehr...
| Überschrift: | #include <qgoochmaterial.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
| 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) |
Ausführliche Beschreibung
Das Gooch-Beleuchtungsmodell nutzt sowohl Farbe als auch Helligkeit, um die Krümmung von 3D-Oberflächen darzustellen. Dies ist oft besser als Modelle wie Phong, die sich ausschließlich auf Helligkeitsänderungen stützen. In Anwendungsbereichen wie CAD- und CAM-Anwendungen, in denen Fotorealismus kein Ziel ist, ist das Gooch-Schattierungsmodell in Verbindung mit einer Art Konturzeichnung der Silhouetten eine beliebte Lösung.
Das Gooch-Beleuchtungsmodell wird in der ursprünglichen Gooch-Veröffentlichung ausführlich erläutert. Das Gooch-Modell mischt eine diffuse Objektfarbe mit einer vom Benutzer vorgegebenen kühlen und einer warmen Farbe, um die Endpunkte eines Farbverlaufs zu erzeugen, der zur Schattierung des Objekts verwendet wird. Dabei wird der Kosinus des Winkels zwischen dem Vektor vom Fragment zur Lichtquelle und dem Normalenvektor des Fragments zugrunde gelegt. Optional kann darüber hinaus ein spiegelndes Highlight hinzugefügt werden. Die relativen Anteile der kühlen und warmen Farben an der diffusen Farbe werden durch die Eigenschaften „alpha“ bzw. „beta“ gesteuert.
Dieses Material verwendet einen Effekt mit einem einzigen Render-Pass 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
alpha : float
Enthält den aktuellen Alpha-Wert. Der Startpunkt der vom Gooch-Shader verwendeten Farbskala wird wie folgt berechnet: {c = cool + alpha * diffuse}.
Zugriffsfunktionen:
| float | alpha() const |
| void | setAlpha(float alpha) |
Notifier-Signal:
| void | alphaChanged(float alpha) |
beta : float
Enthält den aktuellen Beta-Wert. Der Startpunkt der vom Gooch-Shader verwendeten Farbskala wird wie folgt berechnet: {c = warm + beta * diffuse}.
Zugriffsfunktionen:
| float | beta() const |
| void | setBeta(float beta) |
Notifier-Signal:
| void | betaChanged(float beta) |
cool : QColor
Enthält 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 Glanzwerte führen zu einem kleineren und helleren Glanzpunkt.
Zugriffsfunktionen:
| float | shininess() const |
| void | setShininess(float shininess) |
Benachrichtigungssignal:
| void | shininessChanged(float shininess) |
specular : QColor
Enthält die aktuelle Spiegelungsfarbe.
Zugriffsfunktionen:
| QColor | specular() const |
| void | setSpecular(const QColor &specular) |
Benachrichtigungssignal:
| void | specularChanged(const QColor &specular) |
warm : QColor
Enthält die aktuelle warme Farbe.
Zugriffsfunktionen:
| QColor | warm() const |
| void | setWarm(const QColor &warm) |
Benachrichtigungssignal:
| void | warmChanged(const QColor &warm) |
Dokumentation der Member-Funktionen
[explicit] QGoochMaterial::QGoochMaterial(Qt3DCore::QNode *parent = nullptr)
Erstellt eine neue Instanz von `QGoochMaterial` mit dem übergeordneten Objekt ` 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.