En esta página

Qt3DExtras::QGoochMaterial Class

class Qt3DExtras::QGoochMaterial

El QGoochMaterial proporciona un material que implementa el modelo de sombreado Gooch, popular en aplicaciones CAD y CAM. Más...

Cabecera: #include <QGoochMaterial>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: QT += 3dextras
Hereda: Qt3DRender::QMaterial
Status: Obsoleto

Propiedades

Funciones públicas

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

Ranuras públicas

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)

Señales

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)

Descripción detallada

El modelo de iluminación Gooch utiliza tanto el color como el brillo para ayudar a mostrar la curvatura de las superficies 3D. Esto suele ser mejor que modelos como Phong, que se basan exclusivamente en los cambios de brillo. En situaciones como en aplicaciones CAD y CAM donde el fotorrealismo no es un objetivo, el modelo de sombreado Gooch junto con algún tipo de entintado de bordes de silueta es una solución popular.

El modelo de iluminación de Gooch se explica en detalle en el artículo original de Gooch. El modelo Gooch mezcla un color difuso del objeto con un color frío y un color cálido proporcionados por el usuario para producir los puntos finales de una rampa de color que se utiliza para sombrear el objeto basándose en el coseno del ángulo entre el vector del fragmento a la fuente de luz y el vector normal del fragmento. Opcionalmente, se puede añadir un brillo especular. Las contribuciones relativas a los colores frío y cálido del color difuso se controlan mediante las propiedades alfa y beta respectivamente.

Este material utiliza un efecto con un enfoque de una sola pasada de renderizado y realiza una iluminación por fragmento. Se proporcionan técnicas para OpenGL 2, OpenGL 3 o superior, así como OpenGL ES 2.

Documentación de propiedades

alpha : float

Mantiene el valor alfa actual. El punto de inicio de la rampa de color utilizada por el sombreador Gooch se calcula como {c = cool + alpha * diffuse}.

Funciones de acceso:

float alpha() const
void setAlpha(float alpha)

Señal notificadora:

void alphaChanged(float alpha)

beta : float

Mantiene el valor beta actual. El punto de inicio de la rampa de color utilizada por el sombreador Gooch se calcula como {c = cálido + beta * difuso}.

Funciones de acceso:

float beta() const
void setBeta(float beta)

Señal notificadora:

void betaChanged(float beta)

cool : QColor

Mantiene el color frío actual.

Funciones de acceso:

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

Señal de aviso:

void coolChanged(const QColor &cool)

diffuse : QColor

Mantiene el color difuso actual.

Funciones de acceso:

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

Señal de aviso:

void diffuseChanged(const QColor &diffuse)

shininess : float

Mantiene el valor de brillo actual. Los valores más altos de brillo dan como resultado un realce más pequeño y brillante.

Funciones de acceso:

float shininess() const
void setShininess(float shininess)

Señal de aviso:

void shininessChanged(float shininess)

specular : QColor

Mantiene el color especular actual.

Funciones de acceso:

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

Señal del notificador:

void specularChanged(const QColor &specular)

warm : QColor

Mantiene el color cálido actual.

Funciones de acceso:

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

Señal del notificador:

void warmChanged(const QColor &warm)

Documentación de la función miembro

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

Construye una nueva instancia de QGoochMaterial con el objeto padre 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.