QGoochMaterial Class

class Qt3DExtras::QGoochMaterial

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